4 * Copyright (c) 2011 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: Ja-young Gu <jygu@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.
27 #include "tel_cs_conn.h"
28 #include "tapi_proxy.h"
29 #include "TelDefines.h"
30 #include "TelUtility.h"
32 #include "TapiUtility.h"
34 extern tapi_dbus_connection_name conn_name;
36 static int _tel_check_tapi_state()
41 vconf_ret = vconf_get_int(VCONFKEY_TELEPHONY_TAPI_STATE, (int*) &tapi_state);
43 if (vconf_ret != 0 || tapi_state !=1) {
44 TAPI_LIB_DEBUG(LEVEL_ALERT,"FAIL TO GET VCONFKEY_TELEPHONY_TAPI_STATE or SERVICE NOT READY");
45 return TAPI_API_SERVICE_NOT_READY;
50 EXPORT_API int tel_get_sim_init_info(TelSimCardStatus_t *sim_status, int *card_changed)
53 int api_err = TAPI_API_SUCCESS;
55 TelSimCardStatus_t CardStatus = 0;
57 TAPI_RETURN_VAL_IF_FAIL(sim_status, TAPI_API_INVALID_PTR);
59 if(_tel_check_tapi_state() != 0 )
60 return TAPI_API_SERVICE_NOT_READY;
62 /* for reducing dbus connection request on boot time - start */
63 vconf_ret = vconf_get_int(VCONFKEY_TELEPHONY_SIM_CHV, (int*) &CardStatus);
66 TAPI_LIB_DEBUG(LEVEL_ALERT,"FAIL TO GET VCONFKEY_TELEPHONY_SIM_CHV ");
67 return TAPI_API_SERVICE_NOT_READY;
70 TAPI_LIB_DEBUG(LEVEL_ALERT,"VCONFKEY_TELEPHONY_SIM_CHV api ret[%d], return value[%d] ",vconf_ret,CardStatus);
72 if (CardStatus != TAPI_SIM_STATUS_SIM_INIT_COMPLETED) {
73 *sim_status = CardStatus;
74 if (card_changed != NULL)
79 /* for reducing dbus connection request on boot time - end */
80 TAPI_GLIB_INIT_PARAMS();
82 if (FALSE == tapi_check_dbus_status()) {
83 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
86 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
88 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_GETSIMINITINFO, in_param1, in_param2, in_param3,
89 in_param4, &out_param1, &out_param2, &out_param3, &out_param4);
92 api_err = g_array_index(out_param1, int ,0);
93 if(api_err == TAPI_API_SUCCESS) {
94 *sim_status = g_array_index(out_param2, TelSimCardStatus_t ,0);
95 if (card_changed != NULL)
96 *card_changed = g_array_index(out_param3, int ,0);
99 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
102 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
107 EXPORT_API int tel_verifiy_sim_pins(const TelSimSecPw_t *pin_data, int *req_id)
110 int api_err = TAPI_API_SUCCESS;
112 TAPI_RETURN_VAL_IF_FAIL(req_id , TAPI_API_INVALID_PTR);
113 TAPI_RETURN_VAL_IF_FAIL(pin_data , TAPI_API_INVALID_PTR);
114 TAPI_RETURN_VAL_IF_FAIL(pin_data->pw , TAPI_API_INVALID_PTR);
116 if(_tel_check_tapi_state() != 0 )
117 return TAPI_API_SERVICE_NOT_READY;
119 if (conn_name.length_of_name == 0) {
120 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
121 return TAPI_API_OPERATION_FAILED;
124 TAPI_GLIB_INIT_PARAMS();
126 TAPI_LIB_DEBUG(LEVEL_ALERT, "PIN Type [%d]", pin_data->type);
128 if (pin_data->type != TAPI_SIM_PTYPE_PIN1 && pin_data->type != TAPI_SIM_PTYPE_PIN2 && pin_data->type
129 != TAPI_SIM_PTYPE_SIM) {
130 return TAPI_API_INVALID_INPUT;
133 TAPI_LIB_DEBUG(LEVEL_ALERT, "PIN Code [%s]", pin_data->pw);
134 TAPI_LIB_DEBUG(LEVEL_ALERT, "PIN Code length[%d]", pin_data->pw_len);
136 if (((pin_data->type == TAPI_SIM_PTYPE_PIN1) || (pin_data->type == TAPI_SIM_PTYPE_PIN2) || (pin_data->type
137 == TAPI_SIM_PTYPE_SIM)) && ((pin_data->pw_len < 4) || (pin_data->pw_len > 8))) {
138 return TAPI_API_INVALID_INPUT;
141 if (FALSE == tapi_check_dbus_status()) {
142 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
145 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
147 g_array_append_vals(in_param1, pin_data, sizeof(TelSimSecPw_t));
148 g_array_append_vals(in_param2, pin_data->pw, pin_data->pw_len);
149 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
151 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_VERIFYSEC, in_param1, in_param2, in_param3, in_param4,
152 &out_param1, &out_param2, &out_param3, &out_param4);
155 api_err = g_array_index(out_param1, int ,0);
157 if(api_err == TAPI_API_SUCCESS )
158 *req_id = g_array_index(out_param2, int ,0);
160 *req_id = INVALID_REQUEST_ID;
162 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
165 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
170 EXPORT_API int tel_verify_sim_puks(const TelSimSecPw_t *puk_data, const TelSimSecPw_t *new_pin_data, int *req_id)
173 int api_err = TAPI_API_SUCCESS;
175 TAPI_RETURN_VAL_IF_FAIL(req_id , TAPI_API_INVALID_PTR);
176 TAPI_RETURN_VAL_IF_FAIL((puk_data != NULL && new_pin_data != NULL), TAPI_API_INVALID_PTR);
177 TAPI_RETURN_VAL_IF_FAIL((puk_data->pw != NULL && new_pin_data->pw != NULL), TAPI_API_INVALID_PTR);
179 if(_tel_check_tapi_state() != 0 )
180 return TAPI_API_SERVICE_NOT_READY;
182 if (conn_name.length_of_name == 0) {
183 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
184 return TAPI_API_OPERATION_FAILED;
187 TAPI_GLIB_INIT_PARAMS();
189 TAPI_LIB_DEBUG(LEVEL_ALERT, "Unblock PIN Type [%d]", puk_data->type);
190 TAPI_LIB_DEBUG(LEVEL_ALERT, "New PIN Type [%d]", new_pin_data->type);
192 if ((puk_data->type != TAPI_SIM_PTYPE_PUK1 && puk_data->type != TAPI_SIM_PTYPE_PUK2) || (new_pin_data->type
193 != TAPI_SIM_PTYPE_PIN1 && new_pin_data->type != TAPI_SIM_PTYPE_PIN2)) {
194 return TAPI_API_INVALID_INPUT;
197 if ((puk_data->type != TAPI_SIM_PTYPE_PUK1 || new_pin_data->type != TAPI_SIM_PTYPE_PIN1) && (puk_data->type
198 != TAPI_SIM_PTYPE_PUK2 || new_pin_data->type != TAPI_SIM_PTYPE_PIN2)) {
199 return TAPI_API_INVALID_INPUT;
202 //pin and puk code length validation check
203 if ((puk_data->pw_len < 4) || (puk_data->pw_len > 8) || (new_pin_data->pw_len < 4) || (new_pin_data->pw_len > 8)) {
204 return TAPI_API_INVALID_INPUT;
207 TAPI_LIB_DEBUG(LEVEL_ALERT, "Unblock PIN Code [%s]", puk_data->pw);
208 TAPI_LIB_DEBUG(LEVEL_ALERT, "New PIN Code [%s]", new_pin_data->pw);
210 if (FALSE == tapi_check_dbus_status()) {
211 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
214 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
216 g_array_append_vals(in_param1, puk_data, sizeof(TelSimSecPw_t));
217 g_array_append_vals(in_param1, new_pin_data, sizeof(TelSimSecPw_t));
218 g_array_append_vals(in_param2, puk_data->pw, puk_data->pw_len);
219 g_array_append_vals(in_param3, new_pin_data->pw, new_pin_data->pw_len);
220 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
222 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_VERIFYPUK, in_param1, in_param2, in_param3, in_param4,
223 &out_param1, &out_param2, &out_param3, &out_param4);
226 api_err = g_array_index(out_param1, int ,0);
227 if(api_err == TAPI_API_SUCCESS )
228 *req_id = g_array_index(out_param2, int ,0);
230 *req_id = INVALID_REQUEST_ID;
232 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
235 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
240 EXPORT_API int tel_change_sim_pins(const TelSimSecPw_t *old_pin, const TelSimSecPw_t *new_pin, int *req_id)
243 int api_err = TAPI_API_SUCCESS;
245 TAPI_RETURN_VAL_IF_FAIL(req_id , TAPI_API_INVALID_PTR);
246 TAPI_RETURN_VAL_IF_FAIL((old_pin != NULL && new_pin != NULL) , TAPI_API_INVALID_PTR);
247 TAPI_RETURN_VAL_IF_FAIL((old_pin->pw != NULL && new_pin->pw != NULL) , TAPI_API_INVALID_PTR);
249 if(_tel_check_tapi_state() != 0 )
250 return TAPI_API_SERVICE_NOT_READY;
252 if (conn_name.length_of_name == 0) {
253 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
254 return TAPI_API_OPERATION_FAILED;
257 TAPI_GLIB_INIT_PARAMS();
259 TAPI_LIB_DEBUG(LEVEL_ALERT, "old_pin->type[%d], new_pin->type[%d]",old_pin->type, new_pin->type);
261 if ((old_pin->type != TAPI_SIM_PTYPE_PIN1) && (old_pin->type != TAPI_SIM_PTYPE_PIN2) && (new_pin->type
262 != TAPI_SIM_PTYPE_PIN1) && (new_pin->type != TAPI_SIM_PTYPE_PIN2)) {
263 return TAPI_API_INVALID_INPUT;
266 if (old_pin->type != new_pin->type) {
267 return TAPI_API_INVALID_INPUT;
270 //Old Pin code length check
271 if ((old_pin->pw_len < 4) || (old_pin->pw_len > 8)) {
272 return TAPI_API_INVALID_INPUT;
275 //New Pin code length check
276 if ((new_pin->pw_len < 4) || (new_pin->pw_len > 8)) {
277 return TAPI_API_INVALID_INPUT;
280 TAPI_LIB_DEBUG(LEVEL_ALERT, "Old PIN Code [%s]", old_pin->pw);
281 TAPI_LIB_DEBUG(LEVEL_ALERT, "New PIN Code [%s]", new_pin->pw);
283 if (FALSE == tapi_check_dbus_status()) {
284 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
287 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
289 g_array_append_vals(in_param1, old_pin, sizeof(TelSimSecPw_t));
290 g_array_append_vals(in_param1, new_pin, sizeof(TelSimSecPw_t));
291 g_array_append_vals(in_param2, old_pin->pw, sizeof(unsigned char) * (old_pin->pw_len));
292 g_array_append_vals(in_param3, new_pin->pw, sizeof(unsigned char) * new_pin->pw_len);
293 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
295 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_CHANGEPIN, in_param1, in_param2, in_param3, in_param4,
296 &out_param1, &out_param2, &out_param3, &out_param4);
299 api_err = g_array_index(out_param1, int ,0);
300 if(api_err == TAPI_API_SUCCESS )
301 *req_id = g_array_index(out_param2, int ,0);
303 *req_id = INVALID_REQUEST_ID;
305 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
308 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
313 EXPORT_API int tel_get_sim_security_status(TelSimPinType_t type, TelSimPinStatus_t *status)
316 int api_err = TAPI_API_SUCCESS;
318 TAPI_RETURN_VAL_IF_FAIL(status, TAPI_API_INVALID_PTR);
320 if(_tel_check_tapi_state() != 0 )
321 return TAPI_API_SERVICE_NOT_READY;
323 TAPI_GLIB_INIT_PARAMS();
325 if (FALSE == tapi_check_dbus_status()) {
326 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
329 if ((type != TAPI_SIM_PTYPE_PIN1) && (type != TAPI_SIM_PTYPE_PIN2) && (type != TAPI_SIM_PTYPE_SIM)) {
330 return TAPI_API_INVALID_INPUT;
333 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
335 g_array_append_vals(in_param1, &type, sizeof(TelSimPinType_t));
337 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_GETSECSTATUS, in_param1, in_param2, in_param3, in_param4,
338 &out_param1, &out_param2, &out_param3, &out_param4);
341 api_err = g_array_index(out_param1, int ,0);
342 if(api_err == TAPI_API_SUCCESS ) {
343 *status = g_array_index(out_param2,TelSimPinStatus_t ,0);
344 TAPI_LIB_DEBUG(LEVEL_ALERT, "api_err[%d],PIN type[%d], Status[%d]",api_err, type,*status);
347 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
350 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
355 EXPORT_API int tel_disable_sim_security(TelSimSecPw_t *sec_data, int *req_id)
358 int api_err = TAPI_API_SUCCESS;
360 TAPI_RETURN_VAL_IF_FAIL((sec_data != NULL && req_id != NULL) , TAPI_API_INVALID_PTR);
361 TAPI_RETURN_VAL_IF_FAIL(sec_data->pw, TAPI_API_INVALID_PTR);
363 if(_tel_check_tapi_state() != 0 )
364 return TAPI_API_SERVICE_NOT_READY;
366 if (conn_name.length_of_name == 0) {
367 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
368 return TAPI_API_OPERATION_FAILED;
371 TAPI_GLIB_INIT_PARAMS();
373 TAPI_LIB_DEBUG(LEVEL_ALERT, "PIN Type [%d]", sec_data->type);
375 if ((sec_data->type != TAPI_SIM_PTYPE_PIN1) && (sec_data->type != TAPI_SIM_PTYPE_SIM)) {
376 return TAPI_API_INVALID_INPUT;
379 if ((sec_data->pw_len < 4) || (sec_data->pw_len > 8)) {
380 return TAPI_API_INVALID_INPUT;
383 TAPI_LIB_DEBUG(LEVEL_ALERT, "PIN Code [%s]", sec_data->pw);
385 if (FALSE == tapi_check_dbus_status()) {
386 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
389 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
391 g_array_append_vals(in_param1, sec_data, sizeof(TelSimSecPw_t));
392 g_array_append_vals(in_param2, sec_data->pw, sec_data->pw_len);
393 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
395 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_DISABLESEC, in_param1, in_param2, in_param3, in_param4,
396 &out_param1, &out_param2, &out_param3, &out_param4);
399 api_err = g_array_index(out_param1, int ,0);
400 if(api_err == TAPI_API_SUCCESS )
401 *req_id = g_array_index(out_param2, int ,0);
403 *req_id = INVALID_REQUEST_ID;
405 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
408 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
413 EXPORT_API int tel_enable_sim_security(TelSimSecPw_t *sec_data, int *req_id)
416 int api_err = TAPI_API_SUCCESS;
418 TAPI_RETURN_VAL_IF_FAIL((sec_data != NULL && req_id != NULL) , TAPI_API_INVALID_PTR);
419 TAPI_RETURN_VAL_IF_FAIL(sec_data->pw , TAPI_API_INVALID_PTR);
421 if(_tel_check_tapi_state() != 0 )
422 return TAPI_API_SERVICE_NOT_READY;
424 if (conn_name.length_of_name == 0) {
425 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
426 return TAPI_API_OPERATION_FAILED;
429 TAPI_GLIB_INIT_PARAMS();
431 TAPI_LIB_DEBUG(LEVEL_ALERT, "PIN Type [%d]", sec_data->type);
433 if ((sec_data->type != TAPI_SIM_PTYPE_PIN1) && (sec_data->type != TAPI_SIM_PTYPE_SIM)) {
434 return TAPI_API_INVALID_INPUT;
437 if ((sec_data->pw_len < 4) || (sec_data->pw_len > 8)) {
438 return TAPI_API_INVALID_INPUT;
441 TAPI_LIB_DEBUG(LEVEL_ALERT, "PIN Code [%s]", sec_data->pw);
443 if (FALSE == tapi_check_dbus_status()) {
444 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
447 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
449 g_array_append_vals(in_param1, sec_data, sizeof(TelSimSecPw_t));
450 g_array_append_vals(in_param2, sec_data->pw, sec_data->pw_len);
451 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
453 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_ENABLESEC, in_param1, in_param2, in_param3, in_param4,
454 &out_param1, &out_param2, &out_param3, &out_param4);
457 api_err = g_array_index(out_param1, int ,0);
458 if(api_err == TAPI_API_SUCCESS )
459 *req_id = g_array_index(out_param2, int ,0);
461 *req_id = INVALID_REQUEST_ID;
463 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
466 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
471 EXPORT_API int tel_get_sim_personalization_status(TelSimPersType_t type, int *req_id)
474 int api_err = TAPI_API_SUCCESS;
476 if(_tel_check_tapi_state() != 0 )
477 return TAPI_API_SERVICE_NOT_READY;
479 TAPI_GLIB_INIT_PARAMS();
481 if (conn_name.length_of_name == 0) {
482 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
483 return TAPI_API_OPERATION_FAILED;
486 if (FALSE == tapi_check_dbus_status()) {
487 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
490 if ((type != TAPI_SIM_PERS_NET) && (type != TAPI_SIM_PERS_NS) && (type != TAPI_SIM_PERS_SP) && (type
491 != TAPI_SIM_PERS_CP)) {
492 return TAPI_API_INVALID_INPUT;
495 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
497 g_array_append_vals(in_param1, &type, sizeof(TelSimPersType_t));
498 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
500 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_GETPERSSTATUS, in_param1, in_param2, in_param3, in_param4,
501 &out_param1, &out_param2, &out_param3, &out_param4);
504 api_err = g_array_index(out_param1, int ,0);
505 if(api_err == TAPI_API_SUCCESS )
506 *req_id = g_array_index(out_param2, int ,0);
508 *req_id = INVALID_REQUEST_ID;
510 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
513 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
518 EXPORT_API int tel_disable_sim_personalization(TelSimPersPw_t *pers_data, int *req_id)
521 int api_err = TAPI_API_SUCCESS;
523 TAPI_RETURN_VAL_IF_FAIL(pers_data, TAPI_API_INVALID_PTR);
524 TAPI_RETURN_VAL_IF_FAIL(pers_data->pw, TAPI_API_INVALID_PTR);
526 if(_tel_check_tapi_state() != 0 )
527 return TAPI_API_SERVICE_NOT_READY;
529 if (conn_name.length_of_name == 0) {
530 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
531 return TAPI_API_OPERATION_FAILED;
534 TAPI_GLIB_INIT_PARAMS();
536 TAPI_LIB_DEBUG(LEVEL_ALERT, "PIN Type [%d]", pers_data->type);
538 if ((pers_data->type != TAPI_SIM_PERS_NET) && (pers_data->type != TAPI_SIM_PERS_NS) && (pers_data->type
539 != TAPI_SIM_PERS_SP) && (pers_data->type != TAPI_SIM_PERS_CP)) {
540 return TAPI_API_INVALID_INPUT;
543 //personalization code length check - need to fix
544 if ((pers_data->pw_len < 6)) {
545 return TAPI_API_INVALID_INPUT;
548 TAPI_LIB_DEBUG(LEVEL_ALERT, "Personalization Password[%s]", pers_data->pw);
550 if (FALSE == tapi_check_dbus_status()) {
551 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
554 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
556 g_array_append_vals(in_param1, pers_data, sizeof(TelSimPersPw_t));
557 g_array_append_vals(in_param2, pers_data->pw, pers_data->pw_len);
558 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
560 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_DISABLEPERS, in_param1, in_param2, in_param3, in_param4,
561 &out_param1, &out_param2, &out_param3, &out_param4);
564 api_err = g_array_index(out_param1, int ,0);
565 if(api_err == TAPI_API_SUCCESS )
566 *req_id = g_array_index(out_param2, int ,0);
568 *req_id = INVALID_REQUEST_ID;
570 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
573 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
578 EXPORT_API int tel_enable_sim_personalization(TelSimPersPw_t *pers_data, int *req_id)
581 int api_err = TAPI_API_SUCCESS;
583 TAPI_RETURN_VAL_IF_FAIL(pers_data, TAPI_API_INVALID_PTR);
584 TAPI_RETURN_VAL_IF_FAIL(pers_data->pw , TAPI_API_INVALID_PTR);
586 if(_tel_check_tapi_state() != 0 )
587 return TAPI_API_SERVICE_NOT_READY;
589 if (conn_name.length_of_name == 0) {
590 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
591 return TAPI_API_OPERATION_FAILED;
594 TAPI_GLIB_INIT_PARAMS();
596 TAPI_LIB_DEBUG(LEVEL_ALERT, "personalization type[%d]", pers_data->type);
598 if ((pers_data->type != TAPI_SIM_PERS_NET) && (pers_data->type != TAPI_SIM_PERS_NS) && (pers_data->type
599 != TAPI_SIM_PERS_SP) && (pers_data->type != TAPI_SIM_PERS_CP)) {
600 return TAPI_API_INVALID_INPUT;
603 //personalization password length check - need to fix
604 if ((pers_data->pw_len < 6)) {
605 return TAPI_API_INVALID_INPUT;
608 TAPI_LIB_DEBUG(LEVEL_ALERT, "personalization password[%s]", pers_data->pw);
610 if (FALSE == tapi_check_dbus_status()) {
611 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
614 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
616 g_array_append_vals(in_param1, pers_data, sizeof(TelSimPersPw_t));
617 g_array_append_vals(in_param2, pers_data->pw, pers_data->pw_len);
618 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
620 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_ENABLEPERS, in_param1, in_param2, in_param3, in_param4,
621 &out_param1, &out_param2, &out_param3, &out_param4);
624 api_err = g_array_index(out_param1, int ,0);
625 if(api_err == TAPI_API_SUCCESS )
626 *req_id = g_array_index(out_param2, int ,0);
628 *req_id = INVALID_REQUEST_ID;
630 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
633 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
638 EXPORT_API int tel_get_sim_fdn_status(int *fdn_status)
641 int api_err = TAPI_API_SUCCESS;
643 TAPI_RETURN_VAL_IF_FAIL(fdn_status , TAPI_API_INVALID_PTR);
645 if(_tel_check_tapi_state() != 0 )
646 return TAPI_API_SERVICE_NOT_READY;
648 TAPI_GLIB_INIT_PARAMS();
650 if (FALSE == tapi_check_dbus_status()) {
651 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
654 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
656 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_GETFDNSTATUS, in_param1, in_param2, in_param3, in_param4,
657 &out_param1, &out_param2, &out_param3, &out_param4);
660 api_err = g_array_index(out_param1, int ,0);
661 if(api_err == TAPI_API_SUCCESS) {
662 *fdn_status = g_array_index(out_param2,TS_BOOL ,0);
663 TAPI_LIB_DEBUG(LEVEL_ALERT, "FDN Status [%d]", *fdn_status);
667 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
670 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
674 EXPORT_API int tel_disable_sim_fdn(const unsigned char *pin2, int *pin2_len, int *req_id)
677 int api_err = TAPI_API_SUCCESS;
679 TAPI_RETURN_VAL_IF_FAIL((pin2 != NULL && req_id != NULL) , TAPI_API_INVALID_PTR);
681 if(_tel_check_tapi_state() != 0 )
682 return TAPI_API_SERVICE_NOT_READY;
684 if (conn_name.length_of_name == 0) {
685 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
686 return TAPI_API_OPERATION_FAILED;
689 TAPI_GLIB_INIT_PARAMS();
691 if (*pin2_len < 4 || *pin2_len > 8) {
692 return TAPI_API_INVALID_INPUT;
695 TAPI_LIB_DEBUG(LEVEL_INFO, "password [%s]", pin2);
697 ret = tapi_check_dbus_status();
700 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
703 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
705 g_array_append_vals(in_param1, pin2, *pin2_len);
706 g_array_append_vals(in_param2, pin2_len, sizeof(int));
707 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
709 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_DISABLEFDN, in_param1, in_param2, in_param3, in_param4,
710 &out_param1, &out_param2, &out_param3, &out_param4);
713 api_err = g_array_index(out_param1, int ,0);
714 if(api_err == TAPI_API_SUCCESS )
715 *req_id = g_array_index(out_param2, int ,0);
717 *req_id = INVALID_REQUEST_ID;
719 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
722 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
727 EXPORT_API int tel_enable_sim_fdn(const unsigned char *pin2, int *pin2_len, int *req_id)
730 int api_err = TAPI_API_SUCCESS;
732 TAPI_RETURN_VAL_IF_FAIL((pin2 != NULL && pin2_len != NULL && req_id != NULL) , TAPI_API_INVALID_PTR);
734 if(_tel_check_tapi_state() != 0 )
735 return TAPI_API_SERVICE_NOT_READY;
737 if (conn_name.length_of_name == 0) {
738 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
739 return TAPI_API_OPERATION_FAILED;
742 TAPI_GLIB_INIT_PARAMS();
744 if (*pin2_len < 4 || *pin2_len > 8) {
745 return TAPI_API_INVALID_INPUT;
748 TAPI_LIB_DEBUG(LEVEL_INFO, "password [%s]", pin2);
750 ret = tapi_check_dbus_status();
753 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
756 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
758 g_array_append_vals(in_param1, pin2, *pin2_len);
759 g_array_append_vals(in_param2, pin2_len, sizeof(int));
760 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
762 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_ENABLEFDN, in_param1, in_param2, in_param3, in_param4,
763 &out_param1, &out_param2, &out_param3, &out_param4);
766 api_err = g_array_index(out_param1, int ,0);
767 if(api_err == TAPI_API_SUCCESS )
768 *req_id = g_array_index(out_param2, int ,0);
770 *req_id = INVALID_REQUEST_ID;
772 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
775 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
780 EXPORT_API int tel_req_sim_access(const TelSimRSimReq_t *rsim_data, int *req_id)
783 int api_err = TAPI_API_SUCCESS;
785 TAPI_RETURN_VAL_IF_FAIL(req_id , TAPI_API_INVALID_PTR);
786 TAPI_RETURN_VAL_IF_FAIL(rsim_data , TAPI_API_INVALID_PTR);
788 if(_tel_check_tapi_state() != 0 )
789 return TAPI_API_SERVICE_NOT_READY;
791 if (conn_name.length_of_name == 0) {
792 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
793 return TAPI_API_OPERATION_FAILED;
796 /* input param validation check */
797 TAPI_GLIB_INIT_PARAMS();
799 if (FALSE == tapi_check_dbus_status()) {
800 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
803 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
805 g_array_append_vals(in_param1, rsim_data, sizeof(TelSimRSimReq_t));
806 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
808 if ((rsim_data->rsim_cmd == TAPI_SIM_UPDATE_BINARY) || (rsim_data->rsim_cmd == TAPI_SIM_UPDATE_RECORD)) {
809 g_array_append_vals(in_param2, rsim_data->data, sizeof(char*) * rsim_data->p3);
812 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_RSIMACCESS, in_param1, in_param2, in_param3, in_param4,
813 &out_param1, &out_param2, &out_param3, &out_param4);
816 api_err = g_array_index(out_param1, int ,0);
817 if(api_err == TAPI_API_SUCCESS )
818 *req_id = g_array_index(out_param2, int ,0);
820 *req_id = INVALID_REQUEST_ID;
822 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
825 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
830 EXPORT_API int tel_req_sim_apdu(TelSimApdu_t* apdu_data, int *req_id)
833 int api_err = TAPI_API_SUCCESS;
835 TAPI_RETURN_VAL_IF_FAIL(req_id , TAPI_API_INVALID_PTR);
836 TAPI_RETURN_VAL_IF_FAIL(apdu_data , TAPI_API_INVALID_PTR);
838 if(_tel_check_tapi_state() != 0 )
839 return TAPI_API_SERVICE_NOT_READY;
841 if (conn_name.length_of_name == 0) {
842 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
843 return TAPI_API_OPERATION_FAILED;
846 /* input param validation check */
847 TAPI_GLIB_INIT_PARAMS();
849 if (FALSE == tapi_check_dbus_status()) {
850 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
853 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
855 g_array_append_vals(in_param1, apdu_data, sizeof(TelSimApdu_t));
856 g_array_append_vals(in_param2, apdu_data->apdu, apdu_data->apdu_len);
857 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
859 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_APDU, in_param1, in_param2, in_param3, in_param4,
860 &out_param1, &out_param2, &out_param3, &out_param4);
863 api_err = g_array_index(out_param1, int ,0);
864 if(api_err == TAPI_API_SUCCESS )
865 *req_id = g_array_index(out_param2, int ,0);
867 *req_id = INVALID_REQUEST_ID;
869 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
872 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
877 EXPORT_API int tel_req_sim_atr(int *req_id)
880 int api_err = TAPI_API_SUCCESS;
882 TAPI_RETURN_VAL_IF_FAIL(req_id , TAPI_API_INVALID_PTR);
884 if(_tel_check_tapi_state() != 0 )
885 return TAPI_API_SERVICE_NOT_READY;
887 if (conn_name.length_of_name == 0) {
888 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
889 return TAPI_API_OPERATION_FAILED;
892 /* input param validation check */
893 TAPI_GLIB_INIT_PARAMS();
895 if (FALSE == tapi_check_dbus_status()) {
896 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
899 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
901 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
903 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_ATR, in_param1, in_param2, in_param3, in_param4,
904 &out_param1, &out_param2, &out_param3, &out_param4);
907 api_err = g_array_index(out_param1, int ,0);
908 if(api_err == TAPI_API_SUCCESS )
909 *req_id = g_array_index(out_param2, int ,0);
911 *req_id = INVALID_REQUEST_ID;
913 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
916 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
922 EXPORT_API int tel_get_sim_ecc(TelSimEccData_t *ecc_data, int *ecc_count)
925 int api_err = TAPI_API_SUCCESS;
927 TAPI_RETURN_VAL_IF_FAIL((ecc_data != NULL && ecc_count != NULL) , TAPI_API_INVALID_PTR);
929 if(_tel_check_tapi_state() != 0 )
930 return TAPI_API_SERVICE_NOT_READY;
932 TAPI_GLIB_INIT_PARAMS();
934 if (FALSE == tapi_check_dbus_status()) {
935 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
938 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
940 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_GETECCINFO, in_param1, in_param2, in_param3, in_param4,
941 &out_param1, &out_param2, &out_param3, &out_param4);
944 api_err = g_array_index(out_param1, int ,0);
945 if(api_err == TAPI_API_SUCCESS ){
946 *ecc_data = g_array_index(out_param2, TelSimEccData_t ,0);
947 *ecc_count = g_array_index(out_param3, int ,0);
949 TAPI_LIB_DEBUG(LEVEL_ALERT, "ECC count [%d]", *ecc_count);
950 TAPI_LIB_DEBUG(LEVEL_ALERT, "1st ECC data is [%s]", ecc_data->EccInfo.szEcc1);
951 TAPI_LIB_DEBUG(LEVEL_ALERT, "1st UECC data is [%s]", ecc_data->UeccInfo[0].szEcc);
954 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
957 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
961 EXPORT_API int tel_get_sim_language(TelSimLanguageInfo_t *sim_language)
964 int api_err = TAPI_API_SUCCESS;
966 TAPI_RETURN_VAL_IF_FAIL(sim_language, TAPI_API_INVALID_PTR);
968 if(_tel_check_tapi_state() != 0 )
969 return TAPI_API_SERVICE_NOT_READY;
971 TAPI_GLIB_INIT_PARAMS();
973 if (FALSE == tapi_check_dbus_status()) {
974 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
977 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
979 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_GETLANGUAGEINFO, in_param1, in_param2, in_param3,
980 in_param4, &out_param1, &out_param2, &out_param3, &out_param4);
983 api_err = g_array_index(out_param1, int ,0);
984 if(api_err == TAPI_API_SUCCESS ){
985 *sim_language = g_array_index(out_param2, TelSimLanguageInfo_t ,0);
986 TAPI_LIB_DEBUG(LEVEL_ALERT, "Language count [%lu]", sim_language->LpCount);
989 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
992 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
996 EXPORT_API int tel_set_sim_language(TelSimLanguagePreferenceCode_t language, int *req_id)
999 int api_err = TAPI_API_SUCCESS;
1001 TAPI_RETURN_VAL_IF_FAIL(req_id , TAPI_API_INVALID_PTR);
1003 if(_tel_check_tapi_state() != 0 )
1004 return TAPI_API_SERVICE_NOT_READY;
1006 if (conn_name.length_of_name == 0) {
1007 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
1008 return TAPI_API_OPERATION_FAILED;
1011 if ( language > TAPI_SIM_LP_JAPANESE )
1012 return TAPI_API_INVALID_INPUT;
1014 TAPI_GLIB_INIT_PARAMS();
1016 if (FALSE == tapi_check_dbus_status()) {
1017 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
1020 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1022 g_array_append_vals(in_param1, &language, sizeof(TelSimLanguagePreferenceCode_t));
1023 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
1025 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_SETLANGUAGE, in_param1, in_param2, in_param3, in_param4,
1026 &out_param1, &out_param2, &out_param3, &out_param4);
1029 api_err = g_array_index(out_param1, int ,0);
1030 if(api_err == TAPI_API_SUCCESS )
1031 *req_id = g_array_index(out_param2, int ,0);
1033 *req_id = INVALID_REQUEST_ID;
1035 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
1038 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1043 EXPORT_API int tel_get_sim_type(TelSimCardType_t *card_type)
1045 TS_BOOL ret = FALSE;
1046 int api_err = TAPI_API_SUCCESS;
1048 TAPI_RETURN_VAL_IF_FAIL(card_type, TAPI_API_INVALID_PTR);
1050 if(_tel_check_tapi_state() != 0 )
1051 return TAPI_API_SERVICE_NOT_READY;
1053 TAPI_GLIB_INIT_PARAMS();
1055 if (FALSE == tapi_check_dbus_status()) {
1056 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
1059 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1061 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_GETCARDTYPE, in_param1, in_param2, in_param3, in_param4,
1062 &out_param1, &out_param2, &out_param3, &out_param4);
1065 api_err = g_array_index(out_param1, int ,0);
1066 if(api_err == TAPI_API_SUCCESS ) {
1067 *card_type = g_array_index(out_param2,int ,0);
1068 TAPI_LIB_DEBUG(LEVEL_ALERT, "Card type [%d]", *card_type);
1071 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
1074 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1079 EXPORT_API int tel_get_sim_imsi(TelSimImsiInfo_t *imsi)
1081 TS_BOOL ret = FALSE;
1082 int api_err = TAPI_API_SUCCESS;
1084 TAPI_RETURN_VAL_IF_FAIL(imsi , TAPI_API_INVALID_PTR);
1086 if(_tel_check_tapi_state() != 0 )
1087 return TAPI_API_SERVICE_NOT_READY;
1089 TAPI_GLIB_INIT_PARAMS();
1091 if (FALSE == tapi_check_dbus_status()) {
1092 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
1095 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1097 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_GETIMSIINFO, in_param1, in_param2, in_param3, in_param4,
1098 &out_param1, &out_param2, &out_param3, &out_param4);
1101 api_err = g_array_index(out_param1, int ,0);
1102 if(api_err == TAPI_API_SUCCESS ) {
1103 *imsi = g_array_index(out_param2, TelSimImsiInfo_t ,0);
1104 TAPI_LIB_DEBUG(LEVEL_ALERT, "IMSI valid [%d]", imsi->bValid);
1107 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
1110 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1115 EXPORT_API int tel_get_sim_iccid(TelSimIccIdInfo_t *iccid)
1117 TS_BOOL ret = FALSE;
1118 int api_err = TAPI_API_SUCCESS;
1120 TAPI_RETURN_VAL_IF_FAIL(iccid , TAPI_API_INVALID_PTR);
1122 if(_tel_check_tapi_state() != 0 )
1123 return TAPI_API_SERVICE_NOT_READY;
1125 TAPI_GLIB_INIT_PARAMS();
1127 if (FALSE == tapi_check_dbus_status()) {
1128 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
1131 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1133 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_GETICCIDINFO, in_param1, in_param2, in_param3, in_param4,
1134 &out_param1, &out_param2, &out_param3, &out_param4);
1137 api_err = g_array_index(out_param1, int ,0);
1138 if(api_err == TAPI_API_SUCCESS) {
1139 *iccid = g_array_index(out_param2, TelSimIccIdInfo_t ,0);
1140 TAPI_LIB_DEBUG(LEVEL_ALERT, "ICCID length[%d]", iccid->icc_length);
1142 TAPI_LIB_DEBUG(LEVEL_ALERT, "api_err[%d]",api_err);
1145 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
1148 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1153 EXPORT_API int tel_get_sim_mailbox_info(TelSimMailboxNumbers_s *mbox)
1155 TS_BOOL ret = FALSE;
1156 int api_err = TAPI_API_SUCCESS;
1158 TAPI_RETURN_VAL_IF_FAIL(mbox , TAPI_API_INVALID_PTR);
1160 if(_tel_check_tapi_state() != 0 )
1161 return TAPI_API_SERVICE_NOT_READY;
1163 TAPI_GLIB_INIT_PARAMS();
1165 if (FALSE == tapi_check_dbus_status()) {
1166 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
1169 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1171 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_GETMBINFO, in_param1, in_param2, in_param3,
1172 in_param4, &out_param1, &out_param2, &out_param3, &out_param4);
1175 api_err = g_array_index(out_param1, int ,0);
1176 if(api_err == TAPI_API_SUCCESS) {
1177 *mbox = g_array_index(out_param2, TelSimMailboxNumbers_s ,0);
1178 TAPI_LIB_DEBUG(LEVEL_DEBUG, "chps?[%d]",mbox->b_cphs);
1181 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
1184 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1189 EXPORT_API int tel_get_sim_callforwarding_info(TelSimCallForwarding_s *cf)
1191 TS_BOOL ret = FALSE;
1192 int api_err = TAPI_API_SUCCESS;
1194 TAPI_RETURN_VAL_IF_FAIL(cf , TAPI_API_INVALID_PTR);
1196 if(_tel_check_tapi_state() != 0 )
1197 return TAPI_API_SERVICE_NOT_READY;
1199 TAPI_GLIB_INIT_PARAMS();
1201 if (FALSE == tapi_check_dbus_status()) {
1202 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
1205 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1207 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_GETCFINFO, in_param1, in_param2, in_param3, in_param4,
1208 &out_param1, &out_param2, &out_param3, &out_param4);
1211 api_err = g_array_index(out_param1, int ,0);
1212 if(api_err == TAPI_API_SUCCESS ) {
1213 *cf = g_array_index(out_param2, TelSimCallForwarding_s ,0);
1214 TAPI_LIB_DEBUG(LEVEL_DEBUG, "chps?[%d]",cf->b_cphs);
1217 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
1220 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1225 EXPORT_API int tel_get_sim_messagewaiting_info(TelSimMessageWaiting_s *mw)
1227 TS_BOOL ret = FALSE;
1228 int api_err = TAPI_API_SUCCESS;
1230 TAPI_RETURN_VAL_IF_FAIL(mw , TAPI_API_INVALID_PTR);
1232 if(_tel_check_tapi_state() != 0 )
1233 return TAPI_API_SERVICE_NOT_READY;
1235 TAPI_GLIB_INIT_PARAMS();
1237 if (FALSE == tapi_check_dbus_status()) {
1238 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
1241 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1243 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_GETMWINFO, in_param1, in_param2, in_param3, in_param4,
1244 &out_param1, &out_param2, &out_param3, &out_param4);
1247 api_err = g_array_index(out_param1, int ,0);
1248 if(api_err == TAPI_API_SUCCESS) {
1249 *mw = g_array_index(out_param2, TelSimMessageWaiting_s ,0);
1250 TAPI_LIB_DEBUG(LEVEL_DEBUG, "chps?[%d]",mw->b_cphs);
1253 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
1256 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1261 EXPORT_API int tel_get_sim_cphs_info(TelSimCphsLocalInfo_t *cphs)
1263 TS_BOOL ret = FALSE;
1264 int api_err = TAPI_API_SUCCESS;
1266 TAPI_RETURN_VAL_IF_FAIL(cphs , TAPI_API_INVALID_PTR);
1268 if(_tel_check_tapi_state() != 0 )
1269 return TAPI_API_SERVICE_NOT_READY;
1271 TAPI_GLIB_INIT_PARAMS();
1273 if (FALSE == tapi_check_dbus_status()) {
1274 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
1277 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1279 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_GETCPHSINFO, in_param1, in_param2, in_param3, in_param4,
1280 &out_param1, &out_param2, &out_param3, &out_param4);
1283 api_err = g_array_index(out_param1, int ,0);
1284 if(api_err == TAPI_API_SUCCESS ) {
1285 *cphs = g_array_index(out_param2, TelSimCphsLocalInfo_t ,0);
1286 TAPI_LIB_DEBUG(LEVEL_DEBUG, "chps?[%d]",cphs->b_used);
1289 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
1292 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1298 EXPORT_API int tel_get_sim_msisdn(TelSimSubscriberInfo_t *subscriber)
1300 char *t_name, *t_num;
1301 int name_len, num_len;
1302 TAPI_RETURN_VAL_IF_FAIL(subscriber, TAPI_API_INVALID_PTR);
1304 if(_tel_check_tapi_state() != 0 )
1305 return TAPI_API_SERVICE_NOT_READY;
1307 t_name = vconf_get_str(VCONFKEY_TELEPHONY_SUBSCRIBER_NAME);
1308 t_num = vconf_get_str(VCONFKEY_TELEPHONY_SUBSCRIBER_NUMBER);
1310 if (t_name == NULL || t_num == NULL) {
1311 TAPI_LIB_DEBUG(LEVEL_DEBUG, "FAIL TO GET VCONFKEY");
1312 return TAPI_API_OPERATION_FAILED;
1315 name_len = strlen(t_name);
1316 num_len = strlen(t_num);
1318 if (name_len > TAPI_SIM_XDN_ALPHA_ID_MAX_LEN) {
1319 strncpy(subscriber->name, t_name, TAPI_SIM_XDN_ALPHA_ID_MAX_LEN);
1320 subscriber->name[TAPI_SIM_XDN_ALPHA_ID_MAX_LEN] = '\0';
1322 strncpy(subscriber->name, t_name, name_len);
1323 subscriber->name[name_len] = '\0';
1326 if (num_len > TAPI_SIM_XDN_DIALING_NUMBER_LEN) {
1327 strncpy(subscriber->num, t_num, TAPI_SIM_XDN_DIALING_NUMBER_LEN);
1328 subscriber->num[TAPI_SIM_XDN_DIALING_NUMBER_LEN] = '\0';
1330 strncpy(subscriber->num, t_num, num_len);
1331 subscriber->num[num_len] = '\0';
1333 TAPI_LIB_DEBUG(LEVEL_DEBUG, "MSISDN name[%s]num[%s]",subscriber->name,subscriber->num);
1335 return TAPI_API_SUCCESS;
1338 EXPORT_API int tel_get_sim_pb_init_info(int *init_completed, TelSimPbList_t *pb_list, int *first_index)
1340 TS_BOOL ret = FALSE;
1341 int api_err = TAPI_API_SUCCESS;
1345 TAPI_RETURN_VAL_IF_FAIL((init_completed != NULL && pb_list != NULL && first_index != NULL), TAPI_API_INVALID_PTR);
1347 if(_tel_check_tapi_state() != 0 )
1348 return TAPI_API_SERVICE_NOT_READY;
1350 vconf_ret = vconf_get_int(VCONFKEY_TELEPHONY_SIM_PB_INIT, &vconf_val);
1352 TAPI_LIB_DEBUG(LEVEL_ALERT,"VCONFKEY_TELEPHONY_SIM_PB_INIT api ret[%d], return value[%d] ",vconf_ret,vconf_val);
1354 if (vconf_val != 1) {
1355 *init_completed = 0;
1356 memset(pb_list, 0x00, sizeof(TelSimPbList_t));
1357 *first_index = 0x00;
1361 TAPI_GLIB_INIT_PARAMS();
1363 if (FALSE == tapi_check_dbus_status()) {
1364 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
1367 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1369 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_GETPBINITINFO, in_param1, in_param2, in_param3, in_param4,
1370 &out_param1, &out_param2, &out_param3, &out_param4);
1373 api_err = g_array_index(out_param1, int ,0);
1374 if(api_err == TAPI_API_SUCCESS ){
1375 *init_completed = g_array_index(out_param2, int, 0);
1376 *pb_list = g_array_index(out_param3, TelSimPbList_t, 0);
1377 *first_index = g_array_index(out_param4, int, 0);
1378 TAPI_LIB_DEBUG(LEVEL_ALERT, "PB INIT Completed[%d]", *init_completed);
1379 TAPI_LIB_DEBUG(LEVEL_ALERT, "First Valid Index [%d]", *first_index);
1382 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
1385 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1390 EXPORT_API int tel_get_sim_pb_count(TelSimPbFileType_t pb_type, int* req_id)
1392 TS_BOOL ret = FALSE;
1393 int api_err = TAPI_API_SUCCESS;
1395 TAPI_RETURN_VAL_IF_FAIL(req_id, TAPI_API_INVALID_PTR);
1397 if(_tel_check_tapi_state() != 0 )
1398 return TAPI_API_SERVICE_NOT_READY;
1400 if (conn_name.length_of_name == 0) {
1401 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
1402 return TAPI_API_OPERATION_FAILED;
1405 TAPI_GLIB_INIT_PARAMS();
1407 TAPI_LIB_DEBUG(LEVEL_ALERT, "Storage type [%d]", pb_type);
1409 if ((pb_type != TAPI_SIM_PB_EN) && (pb_type != TAPI_SIM_PB_FDN) && (pb_type != TAPI_SIM_PB_LDN) && (pb_type
1410 != TAPI_SIM_PB_MSISDN) && (pb_type != TAPI_SIM_PB_ADN) && (pb_type != TAPI_SIM_PB_SDN) && (pb_type
1411 != TAPI_SIM_PB_3GSIM) && (pb_type != TAPI_SIM_PB_AAS) && (pb_type != TAPI_SIM_PB_GAS)) {
1412 return TAPI_API_INVALID_INPUT;
1415 if (FALSE == tapi_check_dbus_status()) {
1416 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
1419 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1421 g_array_append_vals(in_param1, &pb_type, sizeof(TelSimPbFileType_t));
1422 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
1424 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_PB_GETCOUNT, in_param1, in_param2, in_param3, in_param4,
1425 &out_param1, &out_param2, &out_param3, &out_param4);
1428 api_err = g_array_index(out_param1, int ,0);
1429 if(api_err == TAPI_API_SUCCESS )
1430 *req_id = g_array_index(out_param2, int ,0);
1432 *req_id = INVALID_REQUEST_ID;
1434 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
1437 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1442 EXPORT_API int tel_get_sim_pb_meta_info(TelSimPbFileType_t pb_type, int* req_id)
1444 TS_BOOL ret = FALSE;
1445 int api_err = TAPI_API_SUCCESS;
1447 TAPI_RETURN_VAL_IF_FAIL(req_id, TAPI_API_INVALID_PTR);
1449 if(_tel_check_tapi_state() != 0 )
1450 return TAPI_API_SERVICE_NOT_READY;
1452 if (conn_name.length_of_name == 0) {
1453 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
1454 return TAPI_API_OPERATION_FAILED;
1457 TAPI_GLIB_INIT_PARAMS();
1459 TAPI_LIB_DEBUG(LEVEL_ALERT, "Storage type [%d]", pb_type);
1461 if ((pb_type != TAPI_SIM_PB_EN) && (pb_type != TAPI_SIM_PB_FDN) && (pb_type != TAPI_SIM_PB_LDN) && (pb_type
1462 != TAPI_SIM_PB_MSISDN) && (pb_type != TAPI_SIM_PB_ADN) && (pb_type != TAPI_SIM_PB_SDN) && (pb_type
1463 != TAPI_SIM_PB_3GSIM) && (pb_type != TAPI_SIM_PB_AAS) && (pb_type != TAPI_SIM_PB_GAS)) {
1464 return TAPI_API_INVALID_INPUT;
1467 if (FALSE == tapi_check_dbus_status()) {
1468 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
1471 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1473 g_array_append_vals(in_param1, &pb_type, sizeof(TelSimPbFileType_t));
1474 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
1476 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_PB_GETMETAINFO, in_param1, in_param2, in_param3,
1477 in_param4, &out_param1, &out_param2, &out_param3, &out_param4);
1480 api_err = g_array_index(out_param1, int ,0);
1481 if(api_err == TAPI_API_SUCCESS )
1482 *req_id = g_array_index(out_param2, int ,0);
1484 *req_id = INVALID_REQUEST_ID;
1486 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
1489 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1494 EXPORT_API int tel_get_sim_pb_3g_meta_info(int *req_id)
1496 TS_BOOL ret = FALSE;
1497 int api_err = TAPI_API_SUCCESS;
1499 TAPI_RETURN_VAL_IF_FAIL(req_id , TAPI_API_INVALID_PTR);
1501 if(_tel_check_tapi_state() != 0 )
1502 return TAPI_API_SERVICE_NOT_READY;
1504 if (conn_name.length_of_name == 0) {
1505 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
1506 return TAPI_API_OPERATION_FAILED;
1509 TAPI_GLIB_INIT_PARAMS();
1511 if (FALSE == tapi_check_dbus_status()) {
1512 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
1515 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1517 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
1519 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_GETPBCAPABILITYINFO, in_param1, in_param2, in_param3,
1520 in_param4, &out_param1, &out_param2, &out_param3, &out_param4);
1523 api_err = g_array_index(out_param1, int ,0);
1524 if(api_err == TAPI_API_SUCCESS )
1525 *req_id = g_array_index(out_param2, int ,0);
1527 *req_id = INVALID_REQUEST_ID;
1529 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
1532 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1537 EXPORT_API int tel_read_sim_pb_record(TelSimPbFileType_t pb_type, unsigned short index, int *req_id)
1539 TS_BOOL ret = FALSE;
1540 int api_err = TAPI_API_SUCCESS;
1542 TAPI_RETURN_VAL_IF_FAIL(req_id, TAPI_API_INVALID_PTR);
1544 if(_tel_check_tapi_state() != 0 )
1545 return TAPI_API_SERVICE_NOT_READY;
1547 if (conn_name.length_of_name == 0) {
1548 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
1549 return TAPI_API_OPERATION_FAILED;
1552 TAPI_GLIB_INIT_PARAMS();
1554 TAPI_LIB_DEBUG(LEVEL_ALERT, "Storage type [%d]", pb_type);
1555 TAPI_LIB_DEBUG(LEVEL_ALERT, "Record Index [%d]", index);
1558 return TAPI_API_INVALID_INPUT;
1561 if ((pb_type != TAPI_SIM_PB_EN) && (pb_type != TAPI_SIM_PB_FDN) && (pb_type != TAPI_SIM_PB_LDN) && (pb_type
1562 != TAPI_SIM_PB_MSISDN) && (pb_type != TAPI_SIM_PB_ADN) && (pb_type != TAPI_SIM_PB_SDN) && (pb_type
1563 != TAPI_SIM_PB_3GSIM) && (pb_type != TAPI_SIM_PB_AAS) && (pb_type != TAPI_SIM_PB_GAS)) {
1565 return TAPI_API_INVALID_INPUT;
1568 if (FALSE == tapi_check_dbus_status()) {
1569 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
1572 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1574 g_array_append_vals(in_param1, &pb_type, sizeof(TelSimPbFileType_t));
1575 g_array_append_vals(in_param2, &index, sizeof(unsigned short));
1576 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
1578 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_PB_READRECORD, in_param1, in_param2, in_param3, in_param4,
1579 &out_param1, &out_param2, &out_param3, &out_param4);
1581 api_err = g_array_index(out_param1, int ,0);
1582 if(api_err == TAPI_API_SUCCESS )
1583 *req_id = g_array_index(out_param2, int ,0);
1585 *req_id = INVALID_REQUEST_ID;
1587 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
1590 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1595 EXPORT_API int tel_update_sim_pb_record(const TelSimPbRecordData_t *req_data, int *req_id)
1597 TS_BOOL ret = FALSE;
1598 int api_err = TAPI_API_SUCCESS;
1600 TAPI_RETURN_VAL_IF_FAIL((req_data != NULL && req_id != NULL) , TAPI_API_INVALID_PTR);
1602 if(_tel_check_tapi_state() != 0 )
1603 return TAPI_API_SERVICE_NOT_READY;
1605 if (conn_name.length_of_name == 0) {
1606 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
1607 return TAPI_API_OPERATION_FAILED;
1610 TAPI_GLIB_INIT_PARAMS();
1612 TAPI_LIB_DEBUG(LEVEL_INFO, "Storage type [%d]", req_data->StorageFileType);
1613 TAPI_LIB_DEBUG(LEVEL_INFO, "Record Index [%d]", req_data->Index);
1615 if (req_data->Index == 0) {
1616 return TAPI_API_INVALID_INPUT;
1619 if ((req_data->StorageFileType != TAPI_SIM_PB_EN) && (req_data->StorageFileType != TAPI_SIM_PB_FDN)
1620 && (req_data->StorageFileType != TAPI_SIM_PB_LDN) && (req_data->StorageFileType != TAPI_SIM_PB_MSISDN)
1621 && (req_data->StorageFileType != TAPI_SIM_PB_ADN) && (req_data->StorageFileType != TAPI_SIM_PB_SDN)
1622 && (req_data->StorageFileType != TAPI_SIM_PB_3GSIM) && (req_data->StorageFileType != TAPI_SIM_PB_AAS)
1623 && (req_data->StorageFileType != TAPI_SIM_PB_GAS)) {
1624 return TAPI_API_INVALID_INPUT;
1627 if (FALSE == tapi_check_dbus_status()) {
1628 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
1631 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1633 g_array_append_vals(in_param1, req_data, sizeof(TelSimPbRecordData_t));
1634 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
1636 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_PB_UPDATERECORD, in_param1, in_param2, in_param3,
1637 in_param4, &out_param1, &out_param2, &out_param3, &out_param4);
1640 api_err = g_array_index(out_param1, int ,0);
1641 if(api_err == TAPI_API_SUCCESS )
1642 *req_id = g_array_index(out_param2, int ,0);
1644 *req_id = INVALID_REQUEST_ID;
1646 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
1649 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1654 EXPORT_API int tel_delete_sim_pb_record(TelSimPbFileType_t pb_type, unsigned short index, int *req_id)
1656 TS_BOOL ret = FALSE;
1657 int api_err = TAPI_API_SUCCESS;
1659 TAPI_RETURN_VAL_IF_FAIL(req_id, TAPI_API_INVALID_PTR);
1661 if(_tel_check_tapi_state() != 0 )
1662 return TAPI_API_SERVICE_NOT_READY;
1664 if (conn_name.length_of_name == 0) {
1665 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
1666 return TAPI_API_OPERATION_FAILED;
1669 *req_id = INVALID_REQUEST_ID;
1670 TAPI_GLIB_INIT_PARAMS();
1672 TAPI_LIB_DEBUG(LEVEL_INFO, "pb_type [%d]", pb_type);
1673 TAPI_LIB_DEBUG(LEVEL_INFO, "Record Index [%d]", index);
1675 if ((pb_type != TAPI_SIM_PB_EN) && (pb_type != TAPI_SIM_PB_FDN) && (pb_type != TAPI_SIM_PB_LDN) && (pb_type
1676 != TAPI_SIM_PB_MSISDN) && (pb_type != TAPI_SIM_PB_ADN) && (pb_type != TAPI_SIM_PB_SDN) && (pb_type
1677 != TAPI_SIM_PB_3GSIM) && (pb_type != TAPI_SIM_PB_AAS) && (pb_type != TAPI_SIM_PB_GAS)) {
1678 return TAPI_API_INVALID_INPUT;
1682 return TAPI_API_INVALID_INPUT;
1685 if (FALSE == tapi_check_dbus_status()) {
1686 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
1689 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1691 g_array_append_vals(in_param1, &pb_type, sizeof(TelSimPbFileType_t));
1692 g_array_append_vals(in_param2, &index, sizeof(unsigned short));
1693 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
1695 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_PB_DELETERECORD, in_param1, in_param2, in_param3,
1696 in_param4, &out_param1, &out_param2, &out_param3, &out_param4);
1699 api_err = g_array_index(out_param1, int ,0);
1700 if(api_err == TAPI_API_SUCCESS )
1701 *req_id = g_array_index(out_param2, int ,0);
1703 *req_id = INVALID_REQUEST_ID;
1705 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
1708 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1713 EXPORT_API int tel_req_sap_connection(TelSimSapConnect_t *req_data, int *req_id)
1715 TS_BOOL ret = FALSE;
1716 int api_err = TAPI_API_SUCCESS;
1718 TAPI_RETURN_VAL_IF_FAIL((req_data != NULL && req_id != NULL) , TAPI_API_INVALID_PTR);
1720 if(_tel_check_tapi_state() != 0 )
1721 return TAPI_API_SERVICE_NOT_READY;
1723 if (conn_name.length_of_name == 0) {
1724 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
1725 return TAPI_API_OPERATION_FAILED;
1728 TAPI_GLIB_INIT_PARAMS();
1730 TAPI_LIB_DEBUG(LEVEL_INFO, "Msg Id [%d]", req_data->MsgId);
1731 TAPI_LIB_DEBUG(LEVEL_INFO, "Msg Max Size [%d]", req_data->MaxMsgSize);
1732 TAPI_LIB_DEBUG(LEVEL_INFO, "Msg Connection status [%d]", req_data->ConnectionStatus);
1734 if (FALSE == tapi_check_dbus_status()) {
1735 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
1738 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1740 g_array_append_vals(in_param1, req_data, sizeof(TelSimSapConnect_t));
1741 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
1743 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_SAPCONNECTREQUEST, in_param1, in_param2, in_param3,
1744 in_param4, &out_param1, &out_param2, &out_param3, &out_param4);
1747 api_err = g_array_index(out_param1, int ,0);
1748 if(api_err == TAPI_API_SUCCESS )
1749 *req_id = g_array_index(out_param2, int ,0);
1751 *req_id = INVALID_REQUEST_ID;
1753 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
1756 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1761 EXPORT_API int tel_req_sap_connection_status(int *req_id)
1763 TS_BOOL ret = FALSE;
1764 int api_err = TAPI_API_SUCCESS;
1766 TAPI_RETURN_VAL_IF_FAIL(req_id , TAPI_API_INVALID_PTR);
1768 if(_tel_check_tapi_state() != 0 )
1769 return TAPI_API_SERVICE_NOT_READY;
1771 if (conn_name.length_of_name == 0) {
1772 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
1773 return TAPI_API_OPERATION_FAILED;
1776 TAPI_GLIB_INIT_PARAMS();
1778 if (FALSE == tapi_check_dbus_status()) {
1779 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
1782 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1784 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
1786 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_SAPCONNECTSTATUS, in_param1, in_param2, in_param3,
1787 in_param4, &out_param1, &out_param2, &out_param3, &out_param4);
1790 api_err = g_array_index(out_param1, int ,0);
1791 if(api_err == TAPI_API_SUCCESS )
1792 *req_id = g_array_index(out_param2, int ,0);
1794 *req_id = INVALID_REQUEST_ID;
1796 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
1799 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1804 EXPORT_API int tel_req_sap_transfer_atr(int *req_id)
1806 TS_BOOL ret = FALSE;
1807 int api_err = TAPI_API_SUCCESS;
1809 TAPI_RETURN_VAL_IF_FAIL(req_id , TAPI_API_INVALID_PTR);
1811 if(_tel_check_tapi_state() != 0 )
1812 return TAPI_API_SERVICE_NOT_READY;
1814 if (conn_name.length_of_name == 0) {
1815 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
1816 return TAPI_API_OPERATION_FAILED;
1819 TAPI_GLIB_INIT_PARAMS();
1821 if (FALSE == tapi_check_dbus_status()) {
1822 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
1825 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1827 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
1829 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_SAPATRREQUEST, in_param1, in_param2, in_param3, in_param4,
1830 &out_param1, &out_param2, &out_param3, &out_param4);
1833 api_err = g_array_index(out_param1, int ,0);
1834 if(api_err == TAPI_API_SUCCESS )
1835 *req_id = g_array_index(out_param2, int ,0);
1837 *req_id = INVALID_REQUEST_ID;
1839 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
1842 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1847 EXPORT_API int tel_req_sap_transfer_apdu(TelSimSapApduData_t *apdu_data, int *req_id)
1849 TS_BOOL ret = FALSE;
1850 int api_err = TAPI_API_SUCCESS;
1852 TAPI_RETURN_VAL_IF_FAIL((apdu_data != NULL && req_id != NULL) , TAPI_API_INVALID_PTR);
1854 if(_tel_check_tapi_state() != 0 )
1855 return TAPI_API_SERVICE_NOT_READY;
1857 if (conn_name.length_of_name == 0) {
1858 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
1859 return TAPI_API_OPERATION_FAILED;
1862 TAPI_GLIB_INIT_PARAMS();
1864 TAPI_LIB_DEBUG(LEVEL_INFO, "APDU length [%d]", apdu_data->ApduLength);
1865 TAPI_LIB_DEBUG(LEVEL_INFO, "APDU data [%s]", apdu_data->Apdu);
1867 if (FALSE == tapi_check_dbus_status()) {
1868 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
1871 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1873 g_array_append_vals(in_param1, apdu_data, sizeof(TelSimSapApduData_t));
1874 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
1876 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_SAPTRANSFERAPDU, in_param1, in_param2, in_param3,
1877 in_param4, &out_param1, &out_param2, &out_param3, &out_param4);
1880 api_err = g_array_index(out_param1, int ,0);
1881 if(api_err == TAPI_API_SUCCESS )
1882 *req_id = g_array_index(out_param2, int ,0);
1884 *req_id = INVALID_REQUEST_ID;
1886 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
1889 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1894 EXPORT_API int tel_req_sap_transport_protocol(TelSimSapProtocol_t protocol, int *req_id)
1896 TS_BOOL ret = FALSE;
1897 int api_err = TAPI_API_SUCCESS;
1899 TAPI_RETURN_VAL_IF_FAIL(req_id, TAPI_API_INVALID_PTR);
1901 if(_tel_check_tapi_state() != 0 )
1902 return TAPI_API_SERVICE_NOT_READY;
1904 if (conn_name.length_of_name == 0) {
1905 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
1906 return TAPI_API_OPERATION_FAILED;
1909 TAPI_GLIB_INIT_PARAMS();
1911 TAPI_LIB_DEBUG(LEVEL_INFO, "SAP Protocol [%d]", protocol);
1913 if ((TAPI_SIM_SAP_PROTOCOL_T0 != protocol) && (TAPI_SIM_SAP_PROTOCOL_T1 != protocol)) {
1914 return TAPI_API_INVALID_INPUT;
1917 if (FALSE == tapi_check_dbus_status()) {
1918 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
1921 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1923 g_array_append_vals(in_param1, &protocol, sizeof(TelSimSapProtocol_t));
1924 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
1926 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_SAPSETPROTOCOL, in_param1, in_param2, in_param3,
1927 in_param4, &out_param1, &out_param2, &out_param3, &out_param4);
1930 api_err = g_array_index(out_param1, int ,0);
1931 if(api_err == TAPI_API_SUCCESS )
1932 *req_id = g_array_index(out_param2, int ,0);
1934 *req_id = INVALID_REQUEST_ID;
1936 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
1939 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1944 EXPORT_API int tel_req_sap_power_operation(TelSimSapMsgId_t req_data, int *req_id)
1946 TS_BOOL ret = FALSE;
1947 int api_err = TAPI_API_SUCCESS;
1949 TAPI_RETURN_VAL_IF_FAIL(req_id, TAPI_API_INVALID_PTR);
1951 if(_tel_check_tapi_state() != 0 )
1952 return TAPI_API_SERVICE_NOT_READY;
1954 if (conn_name.length_of_name == 0) {
1955 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
1956 return TAPI_API_OPERATION_FAILED;
1959 TAPI_GLIB_INIT_PARAMS();
1961 TAPI_LIB_DEBUG(LEVEL_INFO, "SAP Power Msg Id [%d]", req_data);
1963 if ((req_data < TAPI_SIM_SAP_CONNECT_REQ) || (req_data > TAPI_SIM_SAP_SET_TRANSPORT_PROTOCOL_RESP)) {
1964 return TAPI_API_INVALID_INPUT;
1967 if (FALSE == tapi_check_dbus_status()) {
1968 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
1971 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1973 g_array_append_vals(in_param1, &req_data, sizeof(TelSimSapMsgId_t));
1974 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
1976 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_SAPSETSIMPOWER, in_param1, in_param2, in_param3,
1977 in_param4, &out_param1, &out_param2, &out_param3, &out_param4);
1980 api_err = g_array_index(out_param1, int ,0);
1981 if(api_err == TAPI_API_SUCCESS )
1982 *req_id = g_array_index(out_param2, int ,0);
1984 *req_id = INVALID_REQUEST_ID;
1986 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
1989 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
1994 EXPORT_API int tel_req_sap_cardreader_status(int *req_id)
1996 TS_BOOL ret = FALSE;
1997 int api_err = TAPI_API_SUCCESS;
1999 TAPI_RETURN_VAL_IF_FAIL(req_id , TAPI_API_INVALID_PTR);
2001 if(_tel_check_tapi_state() != 0 )
2002 return TAPI_API_SERVICE_NOT_READY;
2004 if (conn_name.length_of_name == 0) {
2005 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
2006 return TAPI_API_OPERATION_FAILED;
2009 TAPI_GLIB_INIT_PARAMS();
2011 if (FALSE == tapi_check_dbus_status()) {
2012 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
2015 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
2017 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
2019 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_SAPCARDREADERSTATUS, in_param1, in_param2, in_param3,
2020 in_param4, &out_param1, &out_param2, &out_param3, &out_param4);
2023 api_err = g_array_index(out_param1, int ,0);
2024 if(api_err == TAPI_API_SUCCESS )
2025 *req_id = g_array_index(out_param2, int ,0);
2027 *req_id = INVALID_REQUEST_ID;
2029 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
2032 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
2037 EXPORT_API int tel_req_sim_authentication(TelSimAuthenticationData_t *authentication_data, int *req_id)
2039 TS_BOOL ret = FALSE;
2040 int api_err = TAPI_API_SUCCESS;
2042 TAPI_RETURN_VAL_IF_FAIL(req_id, TAPI_API_INVALID_PTR);
2043 TAPI_RETURN_VAL_IF_FAIL(authentication_data, TAPI_API_INVALID_PTR);
2045 if (authentication_data->auth_type < TAPI_SIM_AUTH_TYPE_IMS || authentication_data->auth_type > TAPI_SIM_AUTH_TYPE_3G)
2046 return TAPI_API_INVALID_INPUT;
2048 if (authentication_data->rand_length == 0)
2049 return TAPI_API_INVALID_INPUT;
2051 if (authentication_data->auth_type != TAPI_SIM_AUTH_TYPE_GSM && authentication_data->autn_length == 0)
2052 return TAPI_API_INVALID_INPUT;
2054 if (_tel_check_tapi_state() != 0)
2055 return TAPI_API_SERVICE_NOT_READY;
2057 if (conn_name.length_of_name == 0) {
2058 TAPI_LIB_DEBUG(LEVEL_ERR, "No dbus connection name");
2059 return TAPI_API_OPERATION_FAILED;
2062 TAPI_GLIB_INIT_PARAMS();
2064 TAPI_LIB_DEBUG(LEVEL_INFO, "rand_length[%d]", authentication_data->rand_length);
2065 TAPI_LIB_DEBUG(LEVEL_INFO, "rand_data[0][0x%x]", authentication_data->rand_data[0]);
2067 if (authentication_data->autn_length) {
2068 TAPI_LIB_DEBUG(LEVEL_INFO, "autn_length [%d]", authentication_data->autn_length);
2069 TAPI_LIB_DEBUG(LEVEL_INFO, "autn_data[0][0x%x]", authentication_data->autn_data[0]);
2072 if (FALSE == tapi_check_dbus_status())
2073 return TAPI_API_SYSTEM_RPC_LINK_DOWN;
2075 TAPI_GLIB_ALLOC_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);
2077 g_array_append_vals(in_param1, authentication_data, sizeof(TelSimAuthenticationData_t));
2078 g_array_append_vals(in_param4, &conn_name, sizeof(tapi_dbus_connection_name));
2080 ret = tapi_send_request(TAPI_CS_SERVICE_SIM, TAPI_CS_SIM_AUTHENTICATION, in_param1, in_param2, in_param3,
2081 in_param4, &out_param1, &out_param2, &out_param3, &out_param4);
2084 api_err = g_array_index(out_param1, int ,0);
2085 if(api_err == TAPI_API_SUCCESS )
2086 *req_id = g_array_index(out_param2, int ,0);
2088 *req_id = INVALID_REQUEST_ID;
2090 api_err = TAPI_API_SYSTEM_RPC_LINK_DOWN;
2093 TAPI_GLIB_FREE_PARAMS(in_param1,in_param2,in_param3,in_param4,out_param1,out_param2,out_param3,out_param4);