4 * Copyright (c) 2011 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: Kyeongchul Kim <kyeongchul.kim@samsung.com>
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
12 * http://www.apache.org/licenses/LICENSE-2.0
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.
22 #include "tel_cs_conn.h"
23 #include "ITapiProductivity.h"
24 #include "TapiUtility.h"
26 #include "tapi_proxy_internal.h"
28 /**********************************************************************************************
32 ***********************************************************************************************/
35 /**********************************************************************************************
37 * This function is used to start the service mode.
39 * @param svc_mode tapi_service_mode_t , test_sub tapi_test_mode_sub_t
40 * @return enum type TapiResult_t
43 ***********************************************************************************************/
44 EXPORT_API int tel_start_svcmode(tapi_service_mode_t svc_mode, tapi_test_mode_sub_t test_sub)
47 int ret_val = TAPI_API_SUCCESS;
49 TAPI_LIB_DEBUG(LEVEL_DEBUG,"Func Entrance ");
51 TAPI_GLIB_INIT_PARAMS();
53 TAPI_RET_ERR_NUM_IF_FAIL(tapi_check_dbus_status_internal(), TAPI_API_SYSTEM_RPC_LINK_NOT_EST);
55 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,
56 out_param1,out_param2,out_param3,out_param4);
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));
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);
66 ret_val = g_array_index(out_param1, int, 0);
69 ret_val = TAPI_API_SYSTEM_RPC_LINK_DOWN;
72 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,
73 out_param1,out_param2,out_param3,out_param4);
78 /**********************************************************************************************
80 * This function is used to end the service mode.
82 * @param svc_mode tapi_service_mode_t
83 * @return enum type TapiResult_t
86 ***********************************************************************************************/
87 EXPORT_API int tel_end_svcmode(tapi_service_mode_t svc_mode)
90 int ret_val = TAPI_API_SUCCESS;
92 TAPI_LIB_DEBUG(LEVEL_DEBUG,"Func Entrance ");
94 TAPI_GLIB_INIT_PARAMS();
96 TAPI_RET_ERR_NUM_IF_FAIL(tapi_check_dbus_status_internal(), TAPI_API_SYSTEM_RPC_LINK_NOT_EST);
98 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,
99 out_param1,out_param2,out_param3,out_param4);
101 g_array_append_vals(in_param1, &svc_mode, sizeof(tapi_service_mode_t));
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);
108 ret_val = g_array_index(out_param1, int, 0);
111 ret_val = TAPI_API_SYSTEM_RPC_LINK_DOWN;
114 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,
115 out_param1,out_param2,out_param3,out_param4);
120 /**********************************************************************************************
122 * This function is used to process the code enterred when service mode is running.
124 * @param key_code char type
125 * @return enum type TapiResult_t
128 ***********************************************************************************************/
129 EXPORT_API int tel_send_svcmode_keycode(char key_code)
132 int ret_val = TAPI_API_SUCCESS;
134 TAPI_LIB_DEBUG(LEVEL_DEBUG,"Func Entrance ");
136 TAPI_GLIB_INIT_PARAMS();
138 TAPI_RET_ERR_NUM_IF_FAIL(tapi_check_dbus_status_internal(), TAPI_API_SYSTEM_RPC_LINK_NOT_EST);
140 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,
141 out_param1,out_param2,out_param3,out_param4);
143 g_array_append_vals(in_param1, &key_code, sizeof(char));
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);
150 ret_val = g_array_index(out_param1, int, 0);
153 ret_val = TAPI_API_SYSTEM_RPC_LINK_DOWN;
156 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,
157 out_param1,out_param2,out_param3,out_param4);
162 /**********************************************************************************************
164 * This function is invoked to dump cp debug.
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)
172 ***********************************************************************************************/
173 EXPORT_API int tel_request_svcmode_dump(tapi_service_mode_debug_cp_dump_t type)
176 int ret_val = TAPI_API_SUCCESS;
178 TAPI_LIB_DEBUG(LEVEL_DEBUG,"Func Entrance ");
180 TAPI_GLIB_INIT_PARAMS();
182 TAPI_RET_ERR_NUM_IF_FAIL(tapi_check_dbus_status_internal(), TAPI_API_SYSTEM_RPC_LINK_NOT_EST);
184 TAPI_GLIB_ALLOC_PARAMS(in_param1, in_param2, in_param3, in_param4,
185 out_param1,out_param2,out_param3,out_param4);
187 g_array_append_vals(in_param1, &type, sizeof(tapi_service_mode_debug_cp_dump_t));
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);
194 ret_val = g_array_index(out_param1, int, 0);
197 ret_val = TAPI_API_SYSTEM_RPC_LINK_DOWN;
200 TAPI_GLIB_FREE_PARAMS(in_param1, in_param2, in_param3, in_param4,
201 out_param1, out_param2, out_param3, out_param4);
207 * Process the starting Factory Process.
209 * @return TapiResult_t API result code. Either Success or some Error Code.
214 EXPORT_API int tel_start_imei_process(void)
217 int api_err = TAPI_API_SUCCESS;
219 TAPI_LIB_DEBUG(LEVEL_DEBUG,"Func Entrance ");
221 TAPI_GLIB_INIT_PARAMS();
223 TAPI_RET_ERR_NUM_IF_FAIL(tapi_check_dbus_status_internal(), TAPI_API_SYSTEM_RPC_LINK_NOT_EST);
225 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,
226 out_param1,out_param2,out_param3,out_param4);
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);
233 api_err = g_array_index(out_param1, int, 0);
236 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
239 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,
240 out_param1,out_param2,out_param3,out_param4);
246 * Process the tapi_imei_CompareItemIND
248 * @return TapiResult_t API result code. Either Success or some Error Code.
253 EXPORT_API int tel_compare_imei_item(unsigned char nItemID, unsigned char bResult)
256 int api_err = TAPI_API_SUCCESS;
258 TAPI_LIB_DEBUG(LEVEL_DEBUG,"Func Entrance ");
260 TAPI_GLIB_INIT_PARAMS();
262 TAPI_RET_ERR_NUM_IF_FAIL(tapi_check_dbus_status_internal(), TAPI_API_SYSTEM_RPC_LINK_NOT_EST);
264 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,
265 out_param1,out_param2,out_param3,out_param4);
267 g_array_append_vals(in_param1, &nItemID, sizeof(unsigned char));
268 g_array_append_vals(in_param2, &bResult, sizeof(unsigned char));
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);
275 api_err = g_array_index(out_param1, int, 0);
278 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
281 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,
282 out_param1,out_param2,out_param3,out_param4);
287 EXPORT_API int tel_get_factory_omission_avoidance(tapi_factory_omission_avoidance_read_cmd_t cmd)
291 TAPI_LIB_DEBUG(LEVEL_DEBUG,"Func Entrance");
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();
300 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,
301 out_param1,out_param2,out_param3,out_param4);
303 g_array_append_vals(in_param1, &cmd, sizeof(tapi_factory_omission_avoidance_read_cmd_t));
305 TAPI_LIB_DEBUG(LEVEL_DEBUG,"Calling Call Back func");
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);
312 /* Get the API error value as out param 1, from the server. */
313 ret = g_array_index(out_param1, int, 0);
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;
321 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,
322 out_param1,out_param2,out_param3,out_param4);
325 /* Invalid input range given by the APP. */
326 TAPI_LIB_DEBUG(LEVEL_ERR,"Received Invalid Input ");
327 ret = TAPI_API_INVALID_INPUT;
330 TAPI_LIB_DEBUG(LEVEL_INFO, "Returning TapiResult_t [%+d]", ret);
335 EXPORT_API int tel_set_factory_omission_avoidance(tapi_factory_omission_avoidance_info_t *info)
339 TAPI_LIB_DEBUG(LEVEL_DEBUG,"Func Entrance");
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();
348 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,
349 out_param1,out_param2,out_param3,out_param4);
351 g_array_append_vals(in_param1, info, sizeof(tapi_factory_omission_avoidance_info_t));
353 TAPI_LIB_DEBUG(LEVEL_DEBUG,"Calling Call Back func");
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);
360 /* Get the API error value as out param 1, from the server. */
361 ret = g_array_index(out_param1, int, 0);
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;
369 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,
370 out_param1,out_param2,out_param3,out_param4);
373 /* Invalid input range given by the APP. */
374 TAPI_LIB_DEBUG(LEVEL_ERR,"Received Invalid Input ");
375 ret = TAPI_API_INVALID_INPUT;
378 TAPI_LIB_DEBUG(LEVEL_INFO, "Returning TapiResult_t [%+d]", ret);