upload tizen1.0 source
[framework/telephony/libslp-tapi.git] / src / tapi_proxy_productivity.c
1 /*
2  * libslp-tapi
3  *
4  * Copyright (c) 2011 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: Ja-young Gu <jygu@samsung.com>
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  */
20
21
22 #include "tel_cs_conn.h"
23 #include "ITapiProductivity.h"
24 #include "TapiUtility.h"
25 #include "TelErr.h"
26 #include "tapi_proxy_internal.h"
27
28 /**********************************************************************************************
29  *
30  *                      NEW API
31  *
32 ***********************************************************************************************/
33
34
35 /**********************************************************************************************
36  *
37  * This function is used to start the service mode.
38  *
39  * @param       svc_mode    tapi_service_mode_t , test_sub     tapi_test_mode_sub_t
40  * @return      enum type TapiResult_t
41  * @remark      NONE
42  *
43 ***********************************************************************************************/
44 EXPORT_API int tel_start_svcmode(tapi_service_mode_t svc_mode, tapi_test_mode_sub_t test_sub)
45 {
46         TS_BOOL ret;
47         int     ret_val = TAPI_API_SUCCESS;
48
49         TAPI_LIB_DEBUG(LEVEL_DEBUG,"Func Entrance ");
50
51         TAPI_GLIB_INIT_PARAMS();
52
53         TAPI_RET_ERR_NUM_IF_FAIL(tapi_check_dbus_status_internal(), TAPI_API_SYSTEM_RPC_LINK_NOT_EST);
54
55         TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,
56                                                    out_param1,out_param2,out_param3,out_param4);
57
58         g_array_append_vals(in_param1, &svc_mode, sizeof(tapi_service_mode_t));
59         g_array_append_vals(in_param2, &test_sub, sizeof(tapi_test_mode_sub_t));
60
61         ret = tapi_send_request_internal(TAPI_CS_SERVICE_SVCMODE,TAPI_CS_SVCMODE_ENTERSVCMODE,
62                                                 in_param1,in_param2,in_param3,in_param4,
63                                                 &out_param1,&out_param2,&out_param3,&out_param4);
64
65         if (ret) {
66                         ret_val = g_array_index(out_param1, int, 0);
67         }
68         else {
69                         ret_val = TAPI_API_SYSTEM_RPC_LINK_DOWN;
70         }
71
72         TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,
73                                                   out_param1,out_param2,out_param3,out_param4);
74
75         return ret_val;
76 }
77
78 /**********************************************************************************************
79  *
80  * This function is used to end the service mode.
81  *
82  * @param       svc_mode    tapi_service_mode_t
83  * @return      enum type TapiResult_t
84  * @remark      NONE
85  *
86 ***********************************************************************************************/
87 EXPORT_API int tel_end_svcmode(tapi_service_mode_t  svc_mode)
88 {
89         TS_BOOL ret;
90         int     ret_val = TAPI_API_SUCCESS;
91
92         TAPI_LIB_DEBUG(LEVEL_DEBUG,"Func Entrance ");
93
94         TAPI_GLIB_INIT_PARAMS();
95
96         TAPI_RET_ERR_NUM_IF_FAIL(tapi_check_dbus_status_internal(), TAPI_API_SYSTEM_RPC_LINK_NOT_EST);
97
98         TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,
99                                                    out_param1,out_param2,out_param3,out_param4);
100
101         g_array_append_vals(in_param1, &svc_mode, sizeof(tapi_service_mode_t));
102
103         ret = tapi_send_request_internal(TAPI_CS_SERVICE_SVCMODE,TAPI_CS_SVCMODE_ENDSVCMODE,
104                                                 in_param1,in_param2,in_param3,in_param4,
105                                                 &out_param1,&out_param2,&out_param3,&out_param4);
106
107         if (ret) {
108                         ret_val = g_array_index(out_param1, int, 0);
109         }
110         else {
111                         ret_val = TAPI_API_SYSTEM_RPC_LINK_DOWN;
112         }
113
114         TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,
115                                                   out_param1,out_param2,out_param3,out_param4);
116
117         return ret_val;
118 }
119
120 /**********************************************************************************************
121  *
122  * This function is used to process the code enterred when service mode is running.
123  *
124  * @param       key_code  char type
125  * @return      enum type TapiResult_t
126  * @remark      NONE
127  *
128 ***********************************************************************************************/
129 EXPORT_API int tel_send_svcmode_keycode(char key_code)
130 {
131         TS_BOOL ret;
132         int     ret_val = TAPI_API_SUCCESS;
133
134         TAPI_LIB_DEBUG(LEVEL_DEBUG,"Func Entrance ");
135
136         TAPI_GLIB_INIT_PARAMS();
137
138         TAPI_RET_ERR_NUM_IF_FAIL(tapi_check_dbus_status_internal(), TAPI_API_SYSTEM_RPC_LINK_NOT_EST);
139
140         TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,
141                                                    out_param1,out_param2,out_param3,out_param4);
142
143         g_array_append_vals(in_param1, &key_code, sizeof(char));
144
145         ret = tapi_send_request_internal(TAPI_CS_SERVICE_SVCMODE,TAPI_CS_SVCMODE_PROCESS_KEYCODE,
146                                                 in_param1,in_param2,in_param3,in_param4,
147                                                 &out_param1,&out_param2,&out_param3,&out_param4);
148
149         if (ret) {
150                         ret_val = g_array_index(out_param1, int, 0);
151         }
152         else {
153                         ret_val = TAPI_API_SYSTEM_RPC_LINK_DOWN;
154         }
155
156         TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,
157                                                   out_param1,out_param2,out_param3,out_param4);
158
159         return ret_val;
160 }
161
162 /**********************************************************************************************
163  *
164  * This function is invoked to dump cp debug.
165  *
166  * @param       tapi_service_mode_debug_cp_dump_t [in] type  - cp dump type. refer #tapi_service_mode_debug_cp_dump_t
167  * @return      Return Type (int) \n
168  *              - Integer '0' ( same with TAPI_API_SUCCESS )  - indicating that the operation has completed successfully. \n
169  *              - Negative integer : it provides an error code (Refer #TapiResult_t)
170  * @remark      NONE
171  *
172 ***********************************************************************************************/
173 EXPORT_API int tel_request_svcmode_dump(tapi_service_mode_debug_cp_dump_t type)
174 {
175         TS_BOOL ret = FALSE;
176         int ret_val = TAPI_API_SUCCESS;
177
178         TAPI_LIB_DEBUG(LEVEL_DEBUG,"Func Entrance ");
179
180         TAPI_GLIB_INIT_PARAMS();
181
182         TAPI_RET_ERR_NUM_IF_FAIL(tapi_check_dbus_status_internal(), TAPI_API_SYSTEM_RPC_LINK_NOT_EST);
183
184         TAPI_GLIB_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4,
185                                    out_param1,out_param2,out_param3,out_param4);
186
187         g_array_append_vals(in_param1, &type, sizeof(tapi_service_mode_debug_cp_dump_t));
188
189         ret = tapi_send_request_internal(TAPI_CS_SERVICE_SVCMODE, TAPI_CS_SVCMODE_DEBUG_DUMP,
190                                         in_param1, in_param2, in_param3, in_param4,
191                                         &out_param1, &out_param2, &out_param3, &out_param4);
192
193         if (ret) {
194                 ret_val = g_array_index(out_param1, int, 0);
195         }
196         else {
197                 ret_val = TAPI_API_SYSTEM_RPC_LINK_DOWN;
198         }
199
200         TAPI_GLIB_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4,
201                                   out_param1, out_param2, out_param3, out_param4);
202
203         return ret_val;
204 }
205
206 /**
207  * Process the starting Factory Process.
208  *
209  * @return              TapiResult_t            API result code. Either Success or some Error Code.
210  * @param[in]
211  * @param[out]
212  * @Changes
213  */
214 EXPORT_API int tel_start_imei_process(void)
215 {
216         TS_BOOL ret = FALSE;
217         int     api_err = TAPI_API_SUCCESS;
218
219         TAPI_LIB_DEBUG(LEVEL_DEBUG,"Func Entrance ");
220
221         TAPI_GLIB_INIT_PARAMS();
222
223         TAPI_RET_ERR_NUM_IF_FAIL(tapi_check_dbus_status_internal(), TAPI_API_SYSTEM_RPC_LINK_NOT_EST);
224
225         TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,
226                                                    out_param1,out_param2,out_param3,out_param4);
227
228         ret = tapi_send_request_internal(TAPI_CS_SERVICE_IMEI,TAPI_CS_IMEI_STARTFACTORYPROCESS,
229                                                  in_param1,in_param2,in_param3,in_param4,
230                                                  &out_param1,&out_param2,&out_param3,&out_param4);
231
232         if (TRUE == ret) {
233                 api_err = g_array_index(out_param1, int, 0);
234         }
235         else {
236                 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
237         }
238
239         TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,
240                                                   out_param1,out_param2,out_param3,out_param4);
241
242         return api_err;
243 }
244
245 /**
246  * Process the tapi_imei_CompareItemIND
247  *
248  * @return              TapiResult_t            API result code. Either Success or some Error Code.
249  * @param[in]
250  * @param[out]
251  * @Changes
252  */
253 EXPORT_API int tel_compare_imei_item(unsigned char nItemID, unsigned char bResult)
254 {
255         TS_BOOL ret = FALSE;
256         int     api_err = TAPI_API_SUCCESS;
257
258         TAPI_LIB_DEBUG(LEVEL_DEBUG,"Func Entrance ");
259
260         TAPI_GLIB_INIT_PARAMS();
261
262         TAPI_RET_ERR_NUM_IF_FAIL(tapi_check_dbus_status_internal(), TAPI_API_SYSTEM_RPC_LINK_NOT_EST);
263
264         TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,
265                                                    out_param1,out_param2,out_param3,out_param4);
266
267         g_array_append_vals(in_param1, &nItemID, sizeof(unsigned char));
268         g_array_append_vals(in_param2, &bResult, sizeof(unsigned char));
269
270         ret = tapi_send_request_internal(TAPI_CS_SERVICE_IMEI,TAPI_CS_IMEI_COMPARE_ITEM_IND,
271                                                  in_param1,in_param2,in_param3,in_param4,
272                                                  &out_param1,&out_param2,&out_param3,&out_param4);
273
274         if (TRUE == ret) {
275                 api_err = g_array_index(out_param1, int, 0);
276         }
277         else {
278                 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
279         }
280
281         TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,
282                                                   out_param1,out_param2,out_param3,out_param4);
283
284         return api_err;
285 }
286
287 EXPORT_API int tel_get_factory_omission_avoidance(tapi_factory_omission_avoidance_read_cmd_t cmd)
288 {
289         int ret = 0;
290
291         TAPI_LIB_DEBUG(LEVEL_DEBUG,"Func Entrance");
292
293         /*      Check input range for tele service type and call barring flavour        */
294         if ((cmd >= TAPI_FACTORY_OMISSION_AVOIDANCE_ITEM_READ)
295                         && (cmd <= TAPI_FACTORY_OMISSION_AVOIDANCE_FAILDATA_READ_FULL)) {
296                 /*      Check if D-Bus service is available. If Failed then return FALSE        */
297                 TAPI_RET_ERR_NUM_IF_FAIL(tapi_check_dbus_status_internal(), TAPI_API_SYSTEM_RPC_LINK_DOWN);
298                 TAPI_GLIB_INIT_PARAMS();
299
300                 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,
301                                 out_param1,out_param2,out_param3,out_param4);
302
303                 g_array_append_vals(in_param1, &cmd, sizeof(tapi_factory_omission_avoidance_read_cmd_t));
304
305                 TAPI_LIB_DEBUG(LEVEL_DEBUG,"Calling Call Back func");
306
307                 ret = tapi_send_request_internal(TAPI_CS_SERVICE_FACTORY, TAPI_CS_FACTORY_OMISSION_AVOIDANCE_GET,
308                                 in_param1, in_param2, in_param3, in_param4,
309                                 &out_param1, &out_param2, &out_param3, &out_param4);
310
311                 if (ret) {
312                         /*      Get the API error value as out param 1, from the server.        */
313                         ret = g_array_index(out_param1, int, 0);
314                 }
315                 else {
316                         /*      RPC API failed, return err to APP       */
317                         TAPI_LIB_DEBUG(LEVEL_ALERT, "RPC Link is down");
318                         ret = TAPI_API_SYSTEM_RPC_LINK_DOWN;
319                 }
320
321                 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,
322                                 out_param1,out_param2,out_param3,out_param4);
323         }
324         else {
325                 /*      Invalid input range given by the APP.   */
326                 TAPI_LIB_DEBUG(LEVEL_ERR,"Received Invalid Input ");
327                 ret = TAPI_API_INVALID_INPUT;
328         }
329
330         TAPI_LIB_DEBUG(LEVEL_INFO, "Returning TapiResult_t [%+d]", ret);
331
332         return ret;
333 }
334
335 EXPORT_API int tel_set_factory_omission_avoidance(tapi_factory_omission_avoidance_info_t *info)
336 {
337         int ret = 0;
338
339         TAPI_LIB_DEBUG(LEVEL_DEBUG,"Func Entrance");
340
341         /*      Check input range for tele service type and call barring flavour        */
342         if ((info->cmd.write_cmd >= TAPI_FACTORY_OMISSION_AVOIDANCE_ITEM_WRITE)
343                         && (info->cmd.write_cmd <= TAPI_FACTORY_OMISSION_AVOIDANCE_FAILDATA_WRITE_FULL)) {
344                 /*      Check if D-Bus service is available. If Failed then return FALSE        */
345                 TAPI_RET_ERR_NUM_IF_FAIL(tapi_check_dbus_status_internal(), TAPI_API_SYSTEM_RPC_LINK_DOWN);
346                 TAPI_GLIB_INIT_PARAMS();
347
348                 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,
349                                 out_param1,out_param2,out_param3,out_param4);
350
351                 g_array_append_vals(in_param1, info, sizeof(tapi_factory_omission_avoidance_info_t));
352
353                 TAPI_LIB_DEBUG(LEVEL_DEBUG,"Calling Call Back func");
354
355                 ret = tapi_send_request_internal(TAPI_CS_SERVICE_FACTORY, TAPI_CS_FACTORY_OMISSION_AVOIDANCE_SET,
356                                 in_param1, in_param2, in_param3, in_param4,
357                                 &out_param1, &out_param2, &out_param3, &out_param4);
358
359                 if (ret) {
360                         /*      Get the API error value as out param 1, from the server.        */
361                         ret = g_array_index(out_param1, int, 0);
362                 }
363                 else {
364                         /*      RPC API failed, return err to APP       */
365                         TAPI_LIB_DEBUG(LEVEL_ALERT, "RPC Link is down");
366                         ret = TAPI_API_SYSTEM_RPC_LINK_DOWN;
367                 }
368
369                 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,
370                                 out_param1,out_param2,out_param3,out_param4);
371         }
372         else {
373                 /*      Invalid input range given by the APP.   */
374                 TAPI_LIB_DEBUG(LEVEL_ERR,"Received Invalid Input ");
375                 ret = TAPI_API_INVALID_INPUT;
376         }
377
378         TAPI_LIB_DEBUG(LEVEL_INFO, "Returning TapiResult_t [%+d]", ret);
379
380         return ret;
381 }
382
383 //eof