2 * Copyright 2012 Samsung Electronics Co., Ltd
4 * Licensed under the Flora License, Version 1.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.tizenopensource.org/license
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #include "ciss-converter.h"
19 static const sc_table_element_type sc_conversion_table_ss[] = {
20 {CISS_ENG_SC_CF, TAPI_SS_CF_WHEN_CF_ALL, CISS_SERVICE_FORWARDING},
21 {CISS_ENG_SC_CFC, TAPI_SS_CF_WHEN_CFC, CISS_SERVICE_FORWARDING},
22 {CISS_ENG_SC_CFU, TAPI_SS_CF_WHEN_CFU, CISS_SERVICE_FORWARDING},
23 {CISS_ENG_SC_CFB, TAPI_SS_CF_WHEN_CFB, CISS_SERVICE_FORWARDING},
24 {CISS_ENG_SC_CFNRY, TAPI_SS_CF_WHEN_CFNRy, CISS_SERVICE_FORWARDING},
25 {CISS_ENG_SC_CFNRC, TAPI_SS_CF_WHEN_CFNRc, CISS_SERVICE_FORWARDING},
26 {CISS_ENG_SC_CLIP, TAPI_SS_CLI_CLIP, CISS_SERVICE_IDENTIFICATION},
27 {CISS_ENG_SC_CLIR, TAPI_SS_CLI_CLIR, CISS_SERVICE_IDENTIFICATION},
28 {CISS_ENG_SC_COLP, TAPI_SS_CLI_COLP, CISS_SERVICE_IDENTIFICATION},
29 {CISS_ENG_SC_COLR, TAPI_SS_CLI_COLR, CISS_SERVICE_IDENTIFICATION},
30 {CISS_ENG_SC_CNAP, TAPI_SS_CLI_CNAP, CISS_SERVICE_IDENTIFICATION},
31 {CISS_ENG_SC_CW, 0, CISS_SERVICE_WAITING},
32 {CISS_ENG_SC_B, TAPI_SS_CB_TYPE_AB, CISS_SERVICE_BARRING},
33 {CISS_ENG_SC_OB, TAPI_SS_CB_TYPE_AOB, CISS_SERVICE_BARRING},
34 {CISS_ENG_SC_IB, TAPI_SS_CB_TYPE_AIB, CISS_SERVICE_BARRING},
35 {CISS_ENG_SC_BAOC, TAPI_SS_CB_TYPE_BAOC, CISS_SERVICE_BARRING},
36 {CISS_ENG_SC_BOIC, TAPI_SS_CB_TYPE_BOIC, CISS_SERVICE_BARRING},
37 {CISS_ENG_SC_BOICEXHC, TAPI_SS_CB_TYPE_BOIC_NOT_HC, CISS_SERVICE_BARRING},
38 {CISS_ENG_SC_BAIC, TAPI_SS_CB_TYPE_BAIC, CISS_SERVICE_BARRING},
39 {CISS_ENG_SC_BICROAM, TAPI_SS_CB_TYPE_BIC_ROAM, CISS_SERVICE_BARRING}
42 /* table for conversion between local basic service group (BSG)
45 elements represent - local BSG value,
46 BSG code : basic service code (BS code) or
47 tele service code (TS code)
52 /* need to find mapping with the call type or forward type for call barring and call forwarding else not required */
53 static const bsg_table_element_type bsg_conversion_table[MAX_BSG_ENTRY] = {
54 {CISS_ENG_BSG_ALL, 0, TAPI_SS_CLASS_ALL_TELE_BEARER},
55 {CISS_ENG_BSG_ALL_TS, TS_CODE, TAPI_SS_CLASS_ALL_TELE},
56 {CISS_ENG_BSG_TELEPHONY, TS_CODE, TAPI_SS_CLASS_VOICE },
57 {CISS_ENG_BSG_AUX_TELEPHONY, TS_CODE, TAPI_SS_CLASS_AUX_VOICE},
58 {CISS_ENG_BSG_ALL_DATA, TS_CODE, TAPI_SS_CLASS_ALL_DATA_TELE},
59 {CISS_ENG_BSG_FAX, TS_CODE, TAPI_SS_CLASS_FAX},
60 {CISS_ENG_BSG_SMS, TS_CODE, TAPI_SS_CLASS_SMS},
61 {CISS_ENG_BSG_ALL_TELE_EX_SMS, TS_CODE, TAPI_SS_CLASS_ALL_TELE_EXPT_SMS},
62 {CISS_ENG_BSG_PLMN_TELE_ALL, TS_CODE, TAPI_SS_CLASS_PLMN_TELE_ALL },
63 {CISS_ENG_BSG_PLMN_TELE_1, TS_CODE, TAPI_SS_CLASS_PLMN_TELE_1},
64 {CISS_ENG_BSG_PLMN_TELE_2, TS_CODE, TAPI_SS_CLASS_PLMN_TELE_2},
65 {CISS_ENG_BSG_PLMN_TELE_3, TS_CODE, TAPI_SS_CLASS_PLMN_TELE_3},
66 {CISS_ENG_BSG_PLMN_TELE_4, TS_CODE, TAPI_SS_CLASS_PLMN_TELE_4},
67 {CISS_ENG_BSG_PLMN_TELE_5, TS_CODE, TAPI_SS_CLASS_PLMN_TELE_5},
68 {CISS_ENG_BSG_PLMN_TELE_6, TS_CODE, TAPI_SS_CLASS_PLMN_TELE_6},
69 {CISS_ENG_BSG_PLMN_TELE_7, TS_CODE, TAPI_SS_CLASS_PLMN_TELE_7},
70 {CISS_ENG_BSG_PLMN_TELE_8, TS_CODE, TAPI_SS_CLASS_PLMN_TELE_8},
71 {CISS_ENG_BSG_PLMN_TELE_9, TS_CODE, TAPI_SS_CLASS_PLMN_TELE_9},
72 {CISS_ENG_BSG_PLMN_TELE_A, TS_CODE, TAPI_SS_CLASS_PLMN_TELE_A},
73 {CISS_ENG_BSG_PLMN_TELE_B, TS_CODE, TAPI_SS_CLASS_PLMN_TELE_B},
74 {CISS_ENG_BSG_PLMN_TELE_C, TS_CODE, TAPI_SS_CLASS_PLMN_TELE_C},
75 {CISS_ENG_BSG_PLMN_TELE_D, TS_CODE, TAPI_SS_CLASS_PLMN_TELE_D},
76 {CISS_ENG_BSG_PLMN_TELE_E, TS_CODE, TAPI_SS_CLASS_PLMN_TELE_E},
77 {CISS_ENG_BSG_PLMN_TELE_F, TS_CODE, TAPI_SS_CLASS_PLMN_TELE_F},
78 {CISS_ENG_BSG_ALL_BS, BS_CODE, TAPI_SS_CLASS_ALL_BEARER},
79 {CISS_ENG_BSG_ALL_ASYNC, BS_CODE, TAPI_SS_CLASS_ALL_ASYNC},
80 {CISS_ENG_BSG_ALL_SYNC, BS_CODE, TAPI_SS_CLASS_ALL_SYNC},
81 {CISS_ENG_BSG_ALL_DC_SYNC, BS_CODE, TAPI_SS_CLASS_ALL_CS_SYNC},
82 {CISS_ENG_BSG_ALL_DC_ASYNC, BS_CODE, TAPI_SS_CLASS_ALL_CS_ASYNC},
83 {CISS_ENG_BSG_ALL_DED_PACKET, BS_CODE, TAPI_SS_CLASS_ALL_DEDI_PS},
84 {CISS_ENG_BSG_ALL_DED_PAD, BS_CODE, TAPI_SS_CLASS_ALL_DEDI_PAD},
85 {CISS_ENG_BSG_PLMN_BEAR_ALL, BS_CODE, TAPI_SS_CLASS_PLMN_BEAR_ALL},
86 {CISS_ENG_BSG_PLMN_BEAR_1, BS_CODE, TAPI_SS_CLASS_PLMN_BEAR_1},
87 {CISS_ENG_BSG_PLMN_BEAR_2, BS_CODE, TAPI_SS_CLASS_PLMN_BEAR_2},
88 {CISS_ENG_BSG_PLMN_BEAR_3, BS_CODE, TAPI_SS_CLASS_PLMN_BEAR_3},
89 {CISS_ENG_BSG_PLMN_BEAR_4, BS_CODE, TAPI_SS_CLASS_PLMN_BEAR_4},
90 {CISS_ENG_BSG_PLMN_BEAR_5, BS_CODE, TAPI_SS_CLASS_PLMN_BEAR_5},
91 {CISS_ENG_BSG_PLMN_BEAR_6, BS_CODE, TAPI_SS_CLASS_PLMN_BEAR_6},
92 {CISS_ENG_BSG_PLMN_BEAR_7, BS_CODE, TAPI_SS_CLASS_PLMN_BEAR_7},
93 {CISS_ENG_BSG_PLMN_BEAR_8, BS_CODE, TAPI_SS_CLASS_PLMN_BEAR_8},
94 {CISS_ENG_BSG_PLMN_BEAR_9, BS_CODE, TAPI_SS_CLASS_PLMN_BEAR_9},
95 {CISS_ENG_BSG_PLMN_BEAR_A, BS_CODE, TAPI_SS_CLASS_PLMN_BEAR_A},
96 {CISS_ENG_BSG_PLMN_BEAR_B, BS_CODE, TAPI_SS_CLASS_PLMN_BEAR_B},
97 {CISS_ENG_BSG_PLMN_BEAR_C, BS_CODE, TAPI_SS_CLASS_PLMN_BEAR_C},
98 {CISS_ENG_BSG_PLMN_BEAR_D, BS_CODE, TAPI_SS_CLASS_PLMN_BEAR_D},
99 {CISS_ENG_BSG_PLMN_BEAR_E, BS_CODE, TAPI_SS_CLASS_PLMN_BEAR_E},
100 {CISS_ENG_BSG_PLMN_BEAR_F, BS_CODE, TAPI_SS_CLASS_PLMN_BEAR_F}
103 int _ciss_convert_bsg_to_tapi_bsg(char *local_bsg, TelSsClass_t *tapi_bsg)
105 int valid_bsg = FALSE;
108 int local_bsg_len =0;
110 local_bsg_len = strlen(local_bsg);
111 if (local_bsg_len > MAX_BSG_LEN) {
115 DBG("\n [CISS-ENGINE] local_bsg : %s", local_bsg);
116 while (n < MAX_BSG_ENTRY) {
117 DBG("\n [CISS-ENGINE] n : %d", n);
118 if (!strncmp(bsg_conversion_table[n].local_bsg, local_bsg, MAX_SC_LEN)) {
119 DBG("\n [CISS-ENGINE] bsg_conversion_table[n].local_bsg : %s", bsg_conversion_table[n].local_bsg);
120 *tapi_bsg = bsg_conversion_table[n].tapi_bsg_code;
126 DBG("\n [CISS-ENGINE] end _ciss_convert_bsg_to_tapi_bsg()");
130 int _ciss_convert_sc_to_tapi_flavor(char *sc, unsigned char *tapi_flavor, unsigned char *ss_type)
132 int valid_sc = FALSE;
135 DBG("\n [CISS-ENGINE] sc : %s", sc);
136 while (n < MAX_SC_ENTRY) {
137 if (!strncmp(sc_conversion_table_ss[n].local_sc, sc, MAX_SC_LEN)) {
138 DBG("\n [CISS-ENGINE] sc_conversion_table_ss[n].local_sc : %s", sc_conversion_table_ss[n].local_sc);
139 *tapi_flavor = sc_conversion_table_ss[n].tapi_flavor;
140 *ss_type = sc_conversion_table_ss[n].ss_type;
149 int _ciss_get_error_from_tapi_error(ciss_err_t *ciss_err, TelSsCause_t tapi_err)
151 DBG("\n [CISS-ENGINE] _ciss_get_error_from_tapi_error:defined =%x\n", tapi_err);
153 case TAPI_SS_UNKNOWNSUBSCRIBER:
154 *ciss_err = CISS_ERR_UNKNOWN_SUBSCRIBER;
156 case TAPI_SS_BEARERSERVICENOTPROVISIONED:
157 *ciss_err = CISS_ERR_BEARER_NOT_PROVISIONED;
159 case TAPI_SS_TELESERVICENOTPROVISIONED:
160 *ciss_err = CISS_ERR_TELESERVICE_NOT_PROVISIONED;
162 case TAPI_SS_CALLBARRED:
163 *ciss_err = CISS_ERR_CALL_BARRED;
165 case TAPI_SS_ILLEGALSSOPERATION:
166 *ciss_err = CISS_ERR_ILLEGAL_SS_OPER;
168 case TAPI_SS_ERRORSTATUS:
169 *ciss_err = CISS_ERR_ERR_STATUS;
171 case TAPI_SS_NOTAVAILABLE:
172 *ciss_err = CISS_ERR_NOT_AVAIL;
174 case TAPI_SS_SUBSCRIPTIONVIOLATION:
175 *ciss_err = CISS_ERR_SUBSCRIPTION_VIOLATION;
177 case TAPI_SS_INCOMPATIBILITY:
178 *ciss_err = CISS_ERR_INCOMPATIBILITY;
180 case TAPI_SS_FACILITYNOTSUPPORTED:
181 *ciss_err = CISS_ERR_FACILITY_NOT_SUPPORT;
183 case TAPI_SS_SYSTEMFAILURE:
184 *ciss_err = CISS_ERR_SYS_FAILURE;
186 case TAPI_SS_DATAMISSING:
187 *ciss_err = CISS_ERR_DATA_MISSING;
189 case TAPI_SS_UNEXPECTEDDATAVALUE:
190 *ciss_err = CISS_ERR_UNEXPECTED_DATA;
192 case TAPI_SS_MAXNOMPTYEXCEEDED:
193 *ciss_err = CISS_ERR_MPTY_PARTICIPANTS_EXCEED;
195 case TAPI_SS_RESOURCESNOTAVAILABLE:
196 *ciss_err = CISS_ERR_RESOURCE_NOT_AVAIL;
198 /*Show message Password error for Vodafone R11 */
199 case TAPI_SS_PWREGISTRATIONFAILURE:
200 *ciss_err = CISS_ERR_PW_REGIST_FAIL;
202 case TAPI_SS_NEGATIVEPWCHECK:
203 *ciss_err = CISS_ERR_NEGATIVE_PW_CHECK;
205 /*Show message password error
206 this function has been locked, so please call customer center for Vodafone R11 */
207 case TAPI_SS_NUMBEROFPWATTEMPTSVIOLATION:
208 *ciss_err = CISS_ERR_PW_ATTEMPS_VIOLATION;
211 DBG("\n [CISS-ENGINE] _ciss_get_error_from_tapi_error:undefined =%x\n", tapi_err);
212 *ciss_err = CISS_ERR_UNKNOWN;
218 int _ciss_get_telecomm_svc(TelSsClass_t in_teleservice, ciss_telecomm_svc_t *out_teleservice)
220 switch (in_teleservice) {
221 case TAPI_SS_CLASS_VOICE:
222 *out_teleservice = CISS_TELECOMM_SVC_VOICE;
224 case TAPI_SS_CLASS_AUX_VOICE:
225 *out_teleservice = CISS_TELECOMM_SVC_AUX_VOICE;
227 case TAPI_SS_CLASS_FAX:
228 *out_teleservice = CISS_TELECOMM_SVC_FAX;
230 case TAPI_SS_CLASS_SMS:
231 *out_teleservice = CISS_TELECOMM_SVC_SMS;
233 case TAPI_SS_CLASS_ALL_CS_SYNC:
234 *out_teleservice = CISS_TELECOMM_SVC_ALL_CS_SYNC;
236 case TAPI_SS_CLASS_ALL_TELE_BEARER:
237 *out_teleservice = CISS_TELECOMM_SVC_ALL_TELE_BEARER;
239 case TAPI_SS_CLASS_ALL_TELE:
240 *out_teleservice = CISS_TELECOMM_SVC_ALL_TELE;
242 case TAPI_SS_CLASS_ALL_DATA_TELE:
243 *out_teleservice = CISS_TELECOMM_SVC_ALL_DATA_TELE;
245 case TAPI_SS_CLASS_ALL_TELE_EXPT_SMS:
246 *out_teleservice = CISS_TELECOMM_SVC_ALL_TELE_EXPT_SMS;
248 case TAPI_SS_CLASS_PLMN_TELE_ALL:
249 *out_teleservice = CISS_TELECOMM_SVC_PLMN_TELE_ALL;
251 case TAPI_SS_CLASS_ALL_BEARER:
252 *out_teleservice = CISS_TELECOMM_SVC_ALL_BEARER;
254 case TAPI_SS_CLASS_ALL_DATA_CDA:
255 *out_teleservice = CISS_TELECOMM_SVC_ALL_DATA_CDA;
257 case TAPI_SS_CLASS_ALL_SYNC:
258 *out_teleservice = CISS_TELECOMM_SVC_ALL_SYNC;
260 case TAPI_SS_CLASS_ALL_ASYNC:
261 *out_teleservice = CISS_TELECOMM_SVC_ALL_ASYNC;
263 case TAPI_SS_CLASS_ALL_DEDI_PAD:
264 *out_teleservice = CISS_TELECOMM_SVC_ALL_DEDI_PAD;
266 case TAPI_SS_CLASS_PLMN_BEAR_ALL:
267 *out_teleservice = CISS_TELECOMM_SVC_PLMN_BEAR_ALL;
269 case TAPI_SS_CLASS_ALL_CS_ASYNC:
270 *out_teleservice = CISS_TELECOMM_SVC_ALL_CS_ASYNC;
272 case TAPI_SS_CLASS_ALL_DEDI_PS:
273 *out_teleservice = CISS_TELECOMM_SVC_ALL_DEDI_PS;
276 *out_teleservice = CISS_TELECOMM_SVC_NONE;
277 DBG("\n [CISS-ENGINE] _ciss_get_telecomm_svc: ERROR Wrong Bearer = %d come. \n", in_teleservice);
283 int _ciss_get_forward_flavor_type(TelSsForwardWhen_t in_flavor, ciss_flavor_t *out_flavor)
286 case TAPI_SS_CF_WHEN_CFU:
287 *out_flavor = CISS_FLAVOR_FORWARD_UNCONDITIONAL;
289 case TAPI_SS_CF_WHEN_CFB:
290 *out_flavor = CISS_FLAVOR_FORWARD_BUSY;
292 case TAPI_SS_CF_WHEN_CFNRy:
293 *out_flavor = CISS_FLAVOR_FORWARD_NOREPLY;
295 case TAPI_SS_CF_WHEN_CFNRc:
296 *out_flavor = CISS_FLAVOR_FORWARD_UNREACHABLE;
298 case TAPI_SS_CF_WHEN_CFC:
299 *out_flavor = CISS_FLAVOR_FORWARD_ALL_CONDITIONAL_FLAVORS;
301 case TAPI_SS_CF_WHEN_CF_ALL:
302 *out_flavor = CISS_FLAVOR_FORWARD_ALL_FLAVORS;
305 *out_flavor = CISS_FLAVOR_NONE;
306 DBG("\n [CISS-ENGINE] _ciss_get_forward_flavor_type: ERROR Wrong Flavor = %d come. \n", in_flavor);
312 int _ciss_get_barring_flavor_type(TelSsBarringType_t in_flavor, ciss_flavor_t *out_flavor)
315 case TAPI_SS_CB_TYPE_AB:
316 *out_flavor = CISS_FLAVOR_BARRING_ALL_FLAVORS;
318 case TAPI_SS_CB_TYPE_BAOC:
319 *out_flavor = CISS_FLAVOR_BARRING_ALL_OUTGOING_CALLS;
321 case TAPI_SS_CB_TYPE_BOIC:
322 *out_flavor = CISS_FLAVOR_BARRING_ALL_OUTGOING_INTERNATIONAL;
324 case TAPI_SS_CB_TYPE_BOIC_NOT_HC:
325 *out_flavor = CISS_FLAVOR_BARRING_OUTGOING_INTERNATIONAL_CALLS_EXCEPT_HOME;
327 case TAPI_SS_CB_TYPE_BAIC:
328 *out_flavor = CISS_FLAVOR_BARRING_ALL_INCOMING_CALLS;
330 case TAPI_SS_CB_TYPE_BIC_ROAM:
331 *out_flavor = CISS_FLAVOR_BARRING_INCOMING_CALLS_WHEN_ROAMING;
333 case TAPI_SS_CB_TYPE_AOB:
334 *out_flavor = CISS_FLAVOR_BARRING_ALL_OUTGOING_CALLS;
336 case TAPI_SS_CB_TYPE_AIB:
337 *out_flavor = CISS_FLAVOR_BARRING_ALL_INCOMING_CALLS;
340 *out_flavor = CISS_FLAVOR_NONE;
341 DBG("\n [CISS-ENGINE] _ciss_get_barring_flavor_type: ERROR Wrong Flavor = %d come. \n", in_flavor);
347 int _ciss_get_result_status_type(TelSsStatus_t in_status, ciss_status_t *out_status)
350 case TAPI_SS_STATUS_REGISTERED:
351 *out_status = CISS_STATUS_REGISTERED;
353 case TAPI_SS_STATUS_PROVISIONED:
354 *out_status = CISS_STATUS_PROVISIONED;
356 case TAPI_SS_STATUS_ACTIVE:
357 *out_status = CISS_STATUS_ACTIVE;
359 case TAPI_SS_STATUS_QUIESCENT:
360 *out_status = CISS_STATUS_QUIESCENT;
362 case TAPI_SS_STATUS_NOTHING:
363 *out_status = CISS_STATUS_NOTHING;
366 *out_status = CISS_STATUS_NOTHING;
367 DBG("\n [CISS-ENGINE] _ciss_get_result_status_type: ERROR Wrong TelSsStatus_t = %d come. \n", in_status);
373 void _ciss_ui_mmi_get_service_name(ciss_service_t in_service, char *service_name)
375 switch (in_service) {
376 case CISS_SERVICE_FORWARDING:
377 strncpy(service_name, CISS_STR_CALL_FORWARDING, CISS_TEXT_LEN_MAX - 1);
379 case CISS_SERVICE_BARRING:
380 strncpy(service_name, CISS_STR_CALL_BARRING, CISS_TEXT_LEN_MAX - 1);
382 case CISS_SERVICE_WAITING:
383 strncpy(service_name, CISS_STR_CALL_WAITING, CISS_TEXT_LEN_MAX - 1);
385 case CISS_SERVICE_CHANGE_BARRING_PASSWD:
386 strncpy(service_name, CISS_STR_CHANGE_PASSWORD, CISS_TEXT_LEN_MAX - 1);
388 case CISS_SERVICE_USSD:
389 strncpy(service_name, CISS_STR_INFORMATION, CISS_TEXT_LEN_MAX - 1);
391 case CISS_SERVICE_IDENTIFICATION:
393 strncpy(service_name, "", CISS_TEXT_LEN_MAX - 1);
396 service_name[CISS_TEXT_LEN_MAX - 1] = '\0';
399 void _ciss_ui_mmi_get_flavor_name(ciss_flavor_t in_flavor, char *flavor_name)
402 case CISS_FLAVOR_FORWARD_UNCONDITIONAL:
403 strncpy(flavor_name, CISS_STR_CALL_FORWARDING_ACTIVE_C_ALWAYS, CISS_TEXT_LEN_MAX - 1);
405 case CISS_FLAVOR_FORWARD_BUSY:
406 strncpy(flavor_name, CISS_STR_CALL_FORWARDING_ACTIVE_C_WHEN_BUSY, CISS_TEXT_LEN_MAX - 1);
408 case CISS_FLAVOR_FORWARD_NOREPLY:
409 strncpy(flavor_name, CISS_STR_CALL_FORWARDING_ACTIVE_C_WHEN_NOREPLY, CISS_TEXT_LEN_MAX - 1);
411 case CISS_FLAVOR_FORWARD_UNREACHABLE:
412 strncpy(flavor_name, CISS_STR_CALL_FORWARDING_ACTIVE_C_UNREACHABLE, CISS_TEXT_LEN_MAX - 1);
414 case CISS_FLAVOR_FORWARD_ALL_FLAVORS:
415 strncpy(flavor_name, CISS_STR_ALL_CALLS, CISS_TEXT_LEN_MAX - 1);
417 case CISS_FLAVOR_FORWARD_ALL_CONDITIONAL_FLAVORS:
418 strncpy(flavor_name, CISS_STR_CONDITIONAL, CISS_TEXT_LEN_MAX - 1);
420 case CISS_FLAVOR_BARRING_ALL_OUTGOING_CALLS:
421 strncpy(flavor_name, CISS_STR_ALL_OUTGOING_CALLS_BARRED, CISS_TEXT_LEN_MAX - 1);
423 case CISS_FLAVOR_BARRING_ALL_OUTGOING_INTERNATIONAL:
424 strncpy(flavor_name, CISS_STR_OUTGOING_INTERNATIONAL_CALLS_BARRED, CISS_TEXT_LEN_MAX - 1);
426 case CISS_FLAVOR_BARRING_OUTGOING_INTERNATIONAL_CALLS_EXCEPT_HOME:
427 strncpy(flavor_name, CISS_STR_OUTGOING_INTERNATIONAL_CALLS_EXCEPT_HOME_BARRED, CISS_TEXT_LEN_MAX - 1);
429 case CISS_FLAVOR_BARRING_ALL_INCOMING_CALLS:
430 strncpy(flavor_name, CISS_STR_ALL_INCOMING_CALLS_BARRED, CISS_TEXT_LEN_MAX - 1);
432 case CISS_FLAVOR_BARRING_INCOMING_CALLS_WHEN_ROAMING:
433 strncpy(flavor_name, CISS_STR_INCOMING_CALLS_BARRED_WHEN_ROAMING, CISS_TEXT_LEN_MAX - 1);
435 case CISS_FLAVOR_BARRING_ALL_FLAVORS:
436 strncpy(flavor_name, CISS_STR_ALL_BARRING, CISS_TEXT_LEN_MAX - 1);
438 case CISS_FLAVOR_BARRING_OUTGOING:
439 strncpy(flavor_name, CISS_STR_OUTGOING_BARRING, CISS_TEXT_LEN_MAX - 1);
441 case CISS_FLAVOR_BARRING_INCOMING:
442 strncpy(flavor_name, CISS_STR_INCOMING_BARRING, CISS_TEXT_LEN_MAX - 1);
445 strncpy(flavor_name, "", CISS_TEXT_LEN_MAX - 1);
447 flavor_name[CISS_TEXT_LEN_MAX - 1] = '\0';
450 void _ciss_ui_mmi_get_bearer_name(ciss_service_t ss_type, ciss_telecomm_svc_t in_teleservice, char *teleservice_name)
452 DBG("\n [CISS-MMI] _ciss_ui_get_bearer_name: in_teleservice = %d come. \n", in_teleservice);
454 switch (in_teleservice) {
455 case CISS_TELECOMM_SVC_VOICE:
456 strncpy(teleservice_name, CISS_STR_VOICE, CISS_TEXT_LEN_MAX - 1);
458 case CISS_TELECOMM_SVC_PLMN_TELE_1:
459 strncpy(teleservice_name, CISS_STR_VOICE, CISS_TEXT_LEN_MAX - 1);
461 case CISS_TELECOMM_SVC_FAX:
462 strncpy(teleservice_name, CISS_STR_FAX, CISS_TEXT_LEN_MAX - 1);
464 case CISS_TELECOMM_SVC_ALL_CS_SYNC:
465 strncpy(teleservice_name, CISS_STR_VIDEO, CISS_TEXT_LEN_MAX - 1);
467 case CISS_TELECOMM_SVC_ALL_TELE_BEARER:
468 strncpy(teleservice_name, CISS_STR_ALL_SERVICES, CISS_TEXT_LEN_MAX - 1);
470 case CISS_TELECOMM_SVC_ALL_TELE:
471 strncpy(teleservice_name, CISS_STR_ALL_TELECOM_SERVICES, CISS_TEXT_LEN_MAX - 1);
473 case CISS_TELECOMM_SVC_ALL_DATA_TELE:
474 strncpy(teleservice_name, CISS_STR_ALL_DATA_SERVICES, CISS_TEXT_LEN_MAX - 1);
476 case CISS_TELECOMM_SVC_ALL_TELE_EXPT_SMS:
477 strncpy(teleservice_name, CISS_STR_FOR_ALL_TELE_SERVICES_EXCEPT_SMS, CISS_TEXT_LEN_MAX - 1);
479 case CISS_TELECOMM_SVC_PLMN_TELE_ALL:
480 strncpy(teleservice_name, CISS_STR_ALL_PLMN_BEARERS, CISS_TEXT_LEN_MAX - 1);
482 case CISS_TELECOMM_SVC_ALL_BEARER:
483 strncpy(teleservice_name, CISS_STR_ALL_BEARER_SERVICES, CISS_TEXT_LEN_MAX - 1);
485 case CISS_TELECOMM_SVC_ALL_DATA_CDA:
486 strncpy(teleservice_name, CISS_STR_ALL_ASYNCHRONOUS_DATA, CISS_TEXT_LEN_MAX - 1);
488 case CISS_TELECOMM_SVC_ALL_SYNC:
489 strncpy(teleservice_name, CISS_STR_ALL_SYNCHRONOUS_SERVICES, CISS_TEXT_LEN_MAX - 1);
491 case CISS_TELECOMM_SVC_ALL_ASYNC:
492 strncpy(teleservice_name, CISS_STR_ALL_ASYNCHRONOUS_DATA, CISS_TEXT_LEN_MAX - 1);
494 case CISS_TELECOMM_SVC_ALL_DEDI_PAD:
495 strncpy(teleservice_name, CISS_STR_ALL_PADCA_SERVICES, CISS_TEXT_LEN_MAX - 1);
497 case CISS_TELECOMM_SVC_PLMN_BEAR_ALL:
498 strncpy(teleservice_name, CISS_STR_ALL_PLMN_BEARERS, CISS_TEXT_LEN_MAX - 1);
500 case CISS_TELECOMM_SVC_SMS:
501 strncpy(teleservice_name, CISS_STR_SMS, CISS_TEXT_LEN_MAX - 1);
503 case CISS_TELECOMM_SVC_ALL_CS_ASYNC:
504 strncpy(teleservice_name, CISS_STR_ASYNCHRONOUS_DATA_SERVICES, CISS_TEXT_LEN_MAX - 1);
506 case CISS_TELECOMM_SVC_ALL_DEDI_PS:
507 strncpy(teleservice_name, CISS_STR_ALL_PDS_SERVICES, CISS_TEXT_LEN_MAX - 1);
509 case CISS_TELECOMM_SVC_NONE:
511 DBG("\n [CISS-MMI] _ciss_ui_get_bearer_name: ERROR Wrong Bearer = %d come. \n", in_teleservice);
512 if ((ss_type == CISS_SERVICE_WAITING) ||
513 (ss_type == CISS_SERVICE_IDENTIFICATION)) {
514 strncpy(teleservice_name, "", CISS_TEXT_LEN_MAX - 1);
516 strncpy(teleservice_name, CISS_STR_ALL_SERVICES, CISS_TEXT_LEN_MAX - 1);
519 teleservice_name[CISS_TEXT_LEN_MAX - 1] = '\0';
522 void _ciss_ui_mmi_get_result_status_type(ciss_service_t ss_type, ciss_status_t result_status, char *szResult)
524 if (ss_type == CISS_SERVICE_FORWARDING) {
525 switch (result_status) {
526 case CISS_STATUS_ACTIVE:
527 strncpy(szResult, CISS_STR_ACTIVATED, CISS_TEXT_LEN_MAX - 1);
530 case CISS_STATUS_REGISTERED:
531 case CISS_STATUS_PROVISIONED:
532 case CISS_STATUS_QUIESCENT:
533 case CISS_STATUS_NOTHING:
535 strncpy(szResult, CISS_STR_DEACTIVATED, CISS_TEXT_LEN_MAX - 1);
539 /* Wating or Barring case only have Act / Deact status */
540 switch (result_status) {
541 case CISS_STATUS_ACTIVE:
542 case CISS_STATUS_REGISTERED:
543 strncpy(szResult, CISS_STR_ACTIVATED, CISS_TEXT_LEN_MAX - 1);
546 case CISS_STATUS_PROVISIONED:
547 case CISS_STATUS_QUIESCENT:
548 case CISS_STATUS_NOTHING:
550 strncpy(szResult, CISS_STR_DEACTIVATED, CISS_TEXT_LEN_MAX - 1);
554 szResult[CISS_TEXT_LEN_MAX - 1] = '\0';