merge from master branch's latest code.
[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_H_\r
18 #define _CISS_CONVERTER_H_\r
19 \r
20 #include "ciss-common.h"\r
21 #include <glib.h>\r
22 \r
23 #define MAX_BSG_LEN             2\r
24 \r
25 #define MAX_BSG_ENTRY           47\r
26 \r
27 /*\r
28 ** Local Supplementary Service Codes (SC)\r
29 */\r
30 \r
31 #define CISS_ENG_SC_ALL               ""\r
32 #define CISS_ENG_SC_CF                "002"\r
33 #define CISS_ENG_SC_CFC               "004"\r
34 #define CISS_ENG_SC_CFU               "21"\r
35 #define CISS_ENG_SC_CFB               "67"\r
36 #define CISS_ENG_SC_CFNRY             "61"\r
37 #define CISS_ENG_SC_CFNRC             "62"\r
38 #define CISS_ENG_SC_CLIP              "30"\r
39 #define CISS_ENG_SC_CLIR              "31"\r
40 #define CISS_ENG_SC_COLP              "76"\r
41 #define CISS_ENG_SC_COLR              "77"\r
42 #define CISS_ENG_SC_CNAP              "300"\r
43 #define CISS_ENG_SC_CW                "43"\r
44 #define CISS_ENG_SC_B                 "330"\r
45 #define CISS_ENG_SC_OB                "333"\r
46 #define CISS_ENG_SC_IB                "353"\r
47 #define CISS_ENG_SC_BAOC              "33"\r
48 #define CISS_ENG_SC_BOIC              "331"\r
49 #define CISS_ENG_SC_BOICEXHC          "332"\r
50 #define CISS_ENG_SC_BAIC              "35"\r
51 #define CISS_ENG_SC_BICROAM           "351"\r
52 \r
53 /*\r
54 ** Local Basic Service Codes\r
55 */\r
56 \r
57 #define CISS_ENG_BSG_ALL              ""\r
58 #define CISS_ENG_BSG_ALL_TS           "10"\r
59 #define CISS_ENG_BSG_TELEPHONY        "11"\r
60 #define CISS_ENG_BSG_AUX_TELEPHONY   "89"\r
61 #define CISS_ENG_BSG_ALL_DATA         "12"\r
62 #define CISS_ENG_BSG_FAX              "13"\r
63 #define CISS_ENG_BSG_SMS              "16"\r
64 #define CISS_ENG_BSG_ALL_TELE_EX_SMS  "19"\r
65 #define CISS_ENG_BSG_PLMN_TELE_ALL    "50"\r
66 #define CISS_ENG_BSG_PLMN_TELE_1      "51"\r
67 #define CISS_ENG_BSG_PLMN_TELE_2      "51"\r
68 #define CISS_ENG_BSG_PLMN_TELE_3      "53"\r
69 #define CISS_ENG_BSG_PLMN_TELE_4      "54"\r
70 #define CISS_ENG_BSG_PLMN_TELE_5      "55"\r
71 #define CISS_ENG_BSG_PLMN_TELE_6      "56"\r
72 #define CISS_ENG_BSG_PLMN_TELE_7      "57"\r
73 #define CISS_ENG_BSG_PLMN_TELE_8      "58"\r
74 #define CISS_ENG_BSG_PLMN_TELE_9      "59"\r
75 #define CISS_ENG_BSG_PLMN_TELE_A      "60"\r
76 #define CISS_ENG_BSG_PLMN_TELE_B      "61"\r
77 #define CISS_ENG_BSG_PLMN_TELE_C      "62"\r
78 #define CISS_ENG_BSG_PLMN_TELE_D      "63"\r
79 #define CISS_ENG_BSG_PLMN_TELE_E      "64"\r
80 #define CISS_ENG_BSG_PLMN_TELE_F      "65"\r
81 \r
82 #define CISS_ENG_BSG_ALL_BS           "20"\r
83 #define CISS_ENG_BSG_ALL_ASYNC        "21"\r
84 #define CISS_ENG_BSG_ALL_SYNC         "22"\r
85 #define CISS_ENG_BSG_ALL_DC_SYNC      "24"\r
86 #define CISS_ENG_BSG_ALL_DC_ASYNC     "25"\r
87 #define CISS_ENG_BSG_ALL_DED_PACKET   "26"\r
88 #define CISS_ENG_BSG_ALL_DED_PAD      "27"\r
89 #define CISS_ENG_BSG_12_KBIT          "29"\r
90 #define CISS_ENG_BSG_PLMN_BEAR_ALL    "70"\r
91 #define CISS_ENG_BSG_PLMN_BEAR_1      "71"\r
92 #define CISS_ENG_BSG_PLMN_BEAR_2      "71"\r
93 #define CISS_ENG_BSG_PLMN_BEAR_3      "73"\r
94 #define CISS_ENG_BSG_PLMN_BEAR_4      "74"\r
95 #define CISS_ENG_BSG_PLMN_BEAR_5      "75"\r
96 #define CISS_ENG_BSG_PLMN_BEAR_6      "76"\r
97 #define CISS_ENG_BSG_PLMN_BEAR_7      "77"\r
98 #define CISS_ENG_BSG_PLMN_BEAR_8      "78"\r
99 #define CISS_ENG_BSG_PLMN_BEAR_9      "79"\r
100 #define CISS_ENG_BSG_PLMN_BEAR_A      "80"\r
101 #define CISS_ENG_BSG_PLMN_BEAR_B      "81"\r
102 #define CISS_ENG_BSG_PLMN_BEAR_C      "82"\r
103 #define CISS_ENG_BSG_PLMN_BEAR_D      "83"\r
104 #define CISS_ENG_BSG_PLMN_BEAR_E      "84"\r
105 #define CISS_ENG_BSG_PLMN_BEAR_F      "85"\r
106 \r
107 typedef enum {\r
108         NO_CODE = -1,\r
109         BS_CODE,\r
110         TS_CODE,\r
111         MAX_CODE\r
112 } bsg_code_type;\r
113 \r
114 \r
115 typedef struct {\r
116         char                    *local_sc;      /* local value of Service Code */\r
117         unsigned char           tapi_flavor;    /* TAPI flavor */\r
118         unsigned char           ss_type;        /* barring, fwding, waiting, etc*/\r
119 } sc_table_element_type;\r
120 \r
121 \r
122 /* convert between local and network BSG values */\r
123 typedef struct {\r
124         char                    *local_bsg;     /* local BSG value */\r
125         char                    bsg_type;       /* BSG type - bearer services, teleservices */\r
126         TelSsClass_t            tapi_bsg_code;  /* TAPI BSG value */\r
127 } bsg_table_element_type;\r
128 \r
129 int _ciss_convert_bsg_to_tapi_bsg(char *local_bsg, TelSsClass_t *tapi_bsg);\r
130 int _ciss_convert_sc_to_tapi_flavor(char *sc, unsigned char *tapi_flavor, unsigned char *ss_type);\r
131 \r
132 /**\r
133  * This function gets the ciss error from the tapi error.\r
134  *\r
135  * @return                                              This function returns TRUE on success, or false on failure.\r
136  * @param[in]           tapi_err                        the tapi error\r
137  * @param[out]  ciss_err                        the ciss error.\r
138  */\r
139 int _ciss_get_error_from_tapi_error(ciss_err_t *ciss_err, TelSsCause_t tapi_err);\r
140 \r
141 /**\r
142  * This function gets the ciss sbse service from the tapi tele service\r
143  *\r
144  * @return                                              This function returns TRUE on success, or false on failure.\r
145  * @param[in]           tapi_tele_service       the tapi tele service\r
146  * @param[out]  ciss_tele_service       the ciss tele service\r
147  */\r
148 int _ciss_get_telecomm_svc(TelSsClass_t in_teleservice, ciss_telecomm_svc_t *out_teleservice);\r
149 \r
150 /**\r
151  * This function gets the ciss flavor type of call forward from the tapi flavor type\r
152  *\r
153  * @return                                              This function returns TRUE on success, or false on failure.\r
154  * @param[in]           tapi_flavor_type        the tapi flavor type\r
155  * @param[out]  ciss_flavor_type        the ciss flavor type\r
156  */\r
157 int _ciss_get_forward_flavor_type(TelSsForwardWhen_t in_flavor, ciss_flavor_t *out_flavor);\r
158 \r
159 /**\r
160  * This function gets the ciss flavor type of call barring from the tapi flavor type\r
161  *\r
162  * @return                                              This function returns TRUE on success, or false on failure.\r
163  * @param[in]           tapi_flavor_type        the tapi flavor type\r
164  * @param[out]  ciss_flavor_type        the ciss flavor type\r
165  */\r
166 int _ciss_get_barring_flavor_type(TelSsBarringType_t in_flavor, ciss_flavor_t *out_flavor);\r
167 \r
168 /**\r
169  * This function gets the ciss status type from the tapi status type\r
170  *\r
171  * @return                                              This function returns TRUE on success, or false on failure.\r
172  * @param[in]           tapi_status_type                the tapi status type.\r
173  * @param[out]  ciss_status_type                the ciss status type.\r
174  */\r
175 int _ciss_get_result_status_type(TelSsStatus_t in_status, ciss_status_t *out_status);\r
176 \r
177 void _ciss_ui_mmi_get_service_name(ciss_service_t in_service, char *service_name);\r
178 void _ciss_ui_mmi_get_flavor_name(ciss_flavor_t in_flavor, char *flavor_name);\r
179 void _ciss_ui_mmi_get_bearer_name(ciss_service_t ss_type, ciss_telecomm_svc_t in_teleservice, char *teleservice_name);\r
180 void _ciss_ui_mmi_get_result_status_type(ciss_service_t ss_type, ciss_status_t result_status, char *szResult);\r
181 \r
182 #endif  /* _CISS_CONVERTER_H_ */\r
183 \r