b5e3cb1dde04f663035946019cb387bf499465ba
[apps/core/preloaded/ciss.git] / include / ciss-converter.h
1 /*\r
2  * Copyright 2012  Samsung Electronics Co., Ltd\r
3  *\r
4  * Licensed under the Flora License, Version 1.0 (the "License");\r
5  * you may not use this file except in compliance with the License.\r
6  * You may obtain a copy of the License at\r
7  *\r
8  * http://www.tizenopensource.org/license\r
9  *\r
10  * Unless required by applicable law or agreed to in writing, software\r
11  * distributed under the License is distributed on an "AS IS" BASIS,\r
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  * See the License for the specific language governing permissions and\r
14  * limitations under the License.\r
15  */\r
16 \r
17 #ifndef _CISS_CONVERTER_MMI_H_\r
18 #define _CISS_CONVERTER_MMI_H_\r
19 \r
20 #ifdef __cplusplus\r
21 extern "C" {\r
22 #endif /* __cplusplus */\r
23 \r
24 #include "ciss-common.h"\r
25 #include <glib.h>\r
26 \r
27 #define MAX_BSG_LEN             2\r
28 \r
29 #define MAX_BSG_ENTRY           47\r
30 \r
31 /*\r
32 ** Local Supplementary Service Codes (SC)\r
33 */\r
34 \r
35 #define CISS_ENG_SC_ALL               ""\r
36 #define CISS_ENG_SC_CF                "002"\r
37 #define CISS_ENG_SC_CFC               "004"\r
38 #define CISS_ENG_SC_CFU               "21"\r
39 #define CISS_ENG_SC_CFB               "67"\r
40 #define CISS_ENG_SC_CFNRY             "61"\r
41 #define CISS_ENG_SC_CFNRC             "62"\r
42 #define CISS_ENG_SC_CLIP              "30"\r
43 #define CISS_ENG_SC_CLIR              "31"\r
44 #define CISS_ENG_SC_COLP              "76"\r
45 #define CISS_ENG_SC_COLR              "77"\r
46 #define CISS_ENG_SC_CNAP              "300"\r
47 #define CISS_ENG_SC_CW                "43"\r
48 #define CISS_ENG_SC_B                 "330"\r
49 #define CISS_ENG_SC_OB                "333"\r
50 #define CISS_ENG_SC_IB                "353"\r
51 #define CISS_ENG_SC_BAOC              "33"\r
52 #define CISS_ENG_SC_BOIC              "331"\r
53 #define CISS_ENG_SC_BOICEXHC          "332"\r
54 #define CISS_ENG_SC_BAIC              "35"\r
55 #define CISS_ENG_SC_BICROAM           "351"\r
56 \r
57 /*\r
58 ** Local Basic Service Codes\r
59 */\r
60 \r
61 #define CISS_ENG_BSG_ALL              ""\r
62 #define CISS_ENG_BSG_ALL_TS           "10"\r
63 #define CISS_ENG_BSG_TELEPHONY        "11"\r
64 #define CISS_ENG_BSG_AUX_TELEPHONY   "89"\r
65 #define CISS_ENG_BSG_ALL_DATA         "12"\r
66 #define CISS_ENG_BSG_FAX              "13"\r
67 #define CISS_ENG_BSG_SMS              "16"\r
68 #define CISS_ENG_BSG_ALL_TELE_EX_SMS  "19"\r
69 #define CISS_ENG_BSG_PLMN_TELE_ALL    "50"\r
70 #define CISS_ENG_BSG_PLMN_TELE_1      "51"\r
71 #define CISS_ENG_BSG_PLMN_TELE_2      "51"\r
72 #define CISS_ENG_BSG_PLMN_TELE_3      "53"\r
73 #define CISS_ENG_BSG_PLMN_TELE_4      "54"\r
74 #define CISS_ENG_BSG_PLMN_TELE_5      "55"\r
75 #define CISS_ENG_BSG_PLMN_TELE_6      "56"\r
76 #define CISS_ENG_BSG_PLMN_TELE_7      "57"\r
77 #define CISS_ENG_BSG_PLMN_TELE_8      "58"\r
78 #define CISS_ENG_BSG_PLMN_TELE_9      "59"\r
79 #define CISS_ENG_BSG_PLMN_TELE_A      "60"\r
80 #define CISS_ENG_BSG_PLMN_TELE_B      "61"\r
81 #define CISS_ENG_BSG_PLMN_TELE_C      "62"\r
82 #define CISS_ENG_BSG_PLMN_TELE_D      "63"\r
83 #define CISS_ENG_BSG_PLMN_TELE_E      "64"\r
84 #define CISS_ENG_BSG_PLMN_TELE_F      "65"\r
85 \r
86 #define CISS_ENG_BSG_ALL_BS           "20"\r
87 #define CISS_ENG_BSG_ALL_ASYNC        "21"\r
88 #define CISS_ENG_BSG_ALL_SYNC         "22"\r
89 #define CISS_ENG_BSG_ALL_DC_SYNC      "24"\r
90 #define CISS_ENG_BSG_ALL_DC_ASYNC     "25"\r
91 #define CISS_ENG_BSG_ALL_DED_PACKET   "26"\r
92 #define CISS_ENG_BSG_ALL_DED_PAD      "27"\r
93 #define CISS_ENG_BSG_12_KBIT          "29"\r
94 #define CISS_ENG_BSG_PLMN_BEAR_ALL    "70"\r
95 #define CISS_ENG_BSG_PLMN_BEAR_1      "71"\r
96 #define CISS_ENG_BSG_PLMN_BEAR_2      "71"\r
97 #define CISS_ENG_BSG_PLMN_BEAR_3      "73"\r
98 #define CISS_ENG_BSG_PLMN_BEAR_4      "74"\r
99 #define CISS_ENG_BSG_PLMN_BEAR_5      "75"\r
100 #define CISS_ENG_BSG_PLMN_BEAR_6      "76"\r
101 #define CISS_ENG_BSG_PLMN_BEAR_7      "77"\r
102 #define CISS_ENG_BSG_PLMN_BEAR_8      "78"\r
103 #define CISS_ENG_BSG_PLMN_BEAR_9      "79"\r
104 #define CISS_ENG_BSG_PLMN_BEAR_A      "80"\r
105 #define CISS_ENG_BSG_PLMN_BEAR_B      "81"\r
106 #define CISS_ENG_BSG_PLMN_BEAR_C      "82"\r
107 #define CISS_ENG_BSG_PLMN_BEAR_D      "83"\r
108 #define CISS_ENG_BSG_PLMN_BEAR_E      "84"\r
109 #define CISS_ENG_BSG_PLMN_BEAR_F      "85"\r
110 \r
111 typedef enum {\r
112         NO_CODE = -1,\r
113         BS_CODE,\r
114         TS_CODE,\r
115         MAX_CODE\r
116 } bsg_code_type;\r
117 \r
118 \r
119 typedef struct {\r
120         char*                   local_sc;       /* local value of Service Code */\r
121         unsigned char           tapi_flavor;    /* TAPI flavor */\r
122         unsigned char           ss_type;        /* barring, fwding, waiting, etc*/\r
123 } sc_table_element_type;\r
124 \r
125 \r
126 /* convert between local and network BSG values */\r
127 typedef struct {\r
128         char                    *local_bsg;     /* local BSG value */\r
129         char                    bsg_type;       /* BSG type - bearer services, teleservices */\r
130         TelSsClass_t            tapi_bsg_code;  /* TAPI BSG value */\r
131 } bsg_table_element_type;\r
132 \r
133 int _ciss_convert_bsg_to_tapi_bsg(char *local_bsg, TelSsClass_t *tapi_bsg);\r
134 int _ciss_convert_sc_to_tapi_flavor(char *sc, unsigned char *tapi_flavor, unsigned char *ss_type);\r
135 \r
136 /**\r
137  * This function gets the ciss error from the tapi error.\r
138  *\r
139  * @return                                              This function returns TRUE on success, or false on failure.\r
140  * @param[in]           tapi_err                        the tapi error\r
141  * @param[out]  ciss_err                        the ciss error.\r
142  */\r
143 int _ciss_get_error_from_tapi_error(ciss_err_t *ciss_err, TelSsCause_t tapi_err);\r
144 \r
145 /**\r
146  * This function gets the ciss sbse service from the tapi tele service\r
147  *\r
148  * @return                                              This function returns TRUE on success, or false on failure.\r
149  * @param[in]           tapi_tele_service       the tapi tele service\r
150  * @param[out]  ciss_tele_service       the ciss tele service\r
151  */\r
152 int _ciss_get_telecomm_svc(TelSsClass_t in_teleservice, ciss_telecomm_svc_t *out_teleservice);\r
153 \r
154 /**\r
155  * This function gets the ciss flavor type of call forward from the tapi flavor type\r
156  *\r
157  * @return                                              This function returns TRUE on success, or false on failure.\r
158  * @param[in]           tapi_flavor_type        the tapi flavor type\r
159  * @param[out]  ciss_flavor_type        the ciss flavor type\r
160  */\r
161 int _ciss_get_forward_flavor_type(TelSsForwardWhen_t in_flavor, ciss_flavor_t *out_flavor);\r
162 \r
163 /**\r
164  * This function gets the ciss flavor type of call barring from the tapi flavor type\r
165  *\r
166  * @return                                              This function returns TRUE on success, or false on failure.\r
167  * @param[in]           tapi_flavor_type        the tapi flavor type\r
168  * @param[out]  ciss_flavor_type        the ciss flavor type\r
169  */\r
170 int _ciss_get_barring_flavor_type(TelSsBarringType_t in_flavor, ciss_flavor_t *out_flavor);\r
171 \r
172 /**\r
173  * This function gets the ciss status type from the tapi status type\r
174  *\r
175  * @return                                              This function returns TRUE on success, or false on failure.\r
176  * @param[in]           tapi_status_type                the tapi status type.\r
177  * @param[out]  ciss_status_type                the ciss status type.\r
178  */\r
179 int _ciss_get_result_status_type(TelSsStatus_t in_status, ciss_status_t *out_status);\r
180 \r
181 void _ciss_ui_mmi_get_service_name(ciss_service_t in_service, char *service_name);\r
182 void _ciss_ui_mmi_get_flavor_name(ciss_flavor_t in_flavor, char *flavor_name);\r
183 void _ciss_ui_mmi_get_bearer_name(ciss_service_t ss_type, ciss_telecomm_svc_t in_teleservice, char *teleservice_name);\r
184 void _ciss_ui_mmi_get_result_status_type(ciss_service_t ss_type, ciss_status_t result_status, char *szResult);\r
185 #endif /* _CISS_CONVERTER_MMI_H_ */\r
186 \r