4 * Copyright (c) 2012 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.
28 enum telephony_ss_class {
30 SS_CLASS_NONE=0x00, /* 0x00 */
33 SS_CLASS_ALL_TELE=0x10, /* 0x10 : All Teleservices */
34 SS_CLASS_VOICE=0x11, /* 0x11 : All Voice ( telephony ) */
35 SS_CLASS_ALL_DATA_TELE=0x12, /* 0x12 : All Data Teleservices */
36 SS_CLASS_FAX=0x13, /* 0x13 : All Fax Service */
37 SS_CLASS_SMS=0x16, /* 0x16 : SMS service */
38 SS_CLASS_VGCS=0x17, /* 0x17 : Voice Group Call Service */
39 SS_CLASS_VBS=0x18, /* 0x18 : Voice Broadcast */
40 SS_CLASS_ALL_TELE_EXPT_SMS=0x19, /* 0x19 : All teleservice except SMS */
43 SS_CLASS_ALL_BEARER=0x20, /* 0X20 : all bearer services */
44 SS_CLASS_ALL_ASYNC=0x21, /* 0x21 : All Async services */
45 SS_CLASS_ALL_SYNC=0x22, /* 0x22 : All sync services*/
46 SS_CLASS_ALL_CS_SYNC=0x24, /* 0x24 : All Circuit switched sync */
47 SS_CLASS_ALL_CS_ASYNC=0x25, /* 0x25 : All Circuit switched async */
48 SS_CLASS_ALL_DEDI_PS=0x26, /* 0x26 : All Dedicated packet Access */
49 SS_CLASS_ALL_DEDI_PAD=0x27, /* 0x27 : All Dedicated PAD Access */
50 SS_CLASS_ALL_DATA_CDA=0x28, /*0x28 : All Data CDA*/
52 /* PLMN SPECIFIC TELESERVICE */
53 SS_CLASS_PLMN_TELE_ALL = 0x50, /*0x50 : PLMN specific teleservices*/
54 SS_CLASS_PLMN_TELE_1 = 0x51, /*0x51 :PLMN specific teleservice 1*/
55 SS_CLASS_PLMN_TELE_2 = 0x52, /*0x52 : PLMN specific teleservice 2*/
56 SS_CLASS_PLMN_TELE_3 = 0x53, /*0x53 : PLMN specific teleservice 3*/
57 SS_CLASS_PLMN_TELE_4 = 0x54, /*0x54 : PLMN specific teleservice 4*/
58 SS_CLASS_PLMN_TELE_5 = 0x55, /*0x55 : PLMN specific teleservice 5*/
59 SS_CLASS_PLMN_TELE_6 = 0x56, /*0x56 : PLMN specific teleservice 6*/
60 SS_CLASS_PLMN_TELE_7 = 0x57, /*0x57 : PLMN specific teleservice 7*/
61 SS_CLASS_PLMN_TELE_8 = 0x58, /*0x58 : PLMN specific teleservice 8*/
62 SS_CLASS_PLMN_TELE_9 = 0x59, /*0x59 : PLMN specific teleservice 9*/
63 SS_CLASS_PLMN_TELE_A = 0x60, /*0x60 :PLMN specific teleservice 10*/
64 SS_CLASS_PLMN_TELE_B = 0x61, /*0x61 :PLMN specific teleservice 11*/
65 SS_CLASS_PLMN_TELE_C = 0x62, /*0x62 : PLMN specific teleservice 12*/
66 SS_CLASS_PLMN_TELE_D = 0x63, /*0x63 : PLMN specific teleservice 13*/
67 SS_CLASS_PLMN_TELE_E = 0x64, /*0x64 : PLMN specific teleservice 14*/
68 SS_CLASS_PLMN_TELE_F = 0x65, /*0x65 : PLMN specific teleservice 15*/
70 /* PLMN SPECIFIC BEARER SERVICE */
71 SS_CLASS_PLMN_BEAR_ALL = 0x70, /*0x70 : All PLMN specific bearer services*/
72 SS_CLASS_PLMN_BEAR_1 = 0x71, /*0x71 :PLMN specific bearer service 1*/
73 SS_CLASS_PLMN_BEAR_2 = 0x72, /*0x72 : PLMN specific bearer service 2*/
74 SS_CLASS_PLMN_BEAR_3 = 0x73, /*0x73 : PLMN specific bearer service 3*/
75 SS_CLASS_PLMN_BEAR_4 = 0x74, /*0x74 : PLMN specific bearer service 4*/
76 SS_CLASS_PLMN_BEAR_5 = 0x75, /*0x75 : PLMN specific bearer service 5*/
77 SS_CLASS_PLMN_BEAR_6 = 0x76, /*0x76 : PLMN specific bearer service 6*/
78 SS_CLASS_PLMN_BEAR_7 = 0x77, /*0x77 : PLMN specific bearer service 7*/
79 SS_CLASS_PLMN_BEAR_8 = 0x78, /*0x78 : PLMN specific bearer service 8*/
80 SS_CLASS_PLMN_BEAR_9 = 0x79, /*0x79 : PLMN specific bearer service 9*/
81 SS_CLASS_PLMN_BEAR_A = 0x80, /*0x80 : PLMN specific bearer service 10*/
82 SS_CLASS_PLMN_BEAR_B = 0x81, /*0x81 : PLMN specific bearer service 11*/
83 SS_CLASS_PLMN_BEAR_C = 0x82, /*0x82 : PLMN specific bearer service 12*/
84 SS_CLASS_PLMN_BEAR_D = 0x83, /*0x83 : PLMN specific bearer service 13*/
85 SS_CLASS_PLMN_BEAR_E = 0x84, /*0x84 : PLMN specific bearer service 14*/
86 SS_CLASS_PLMN_BEAR_F = 0x85, /*0x85 : PLMN specific bearer service 15*/
88 /* CPHS - AUXILIARY SERVICE */
89 SS_CLASS_AUX_VOICE = 0x89, /* 0x89 : All Auxiliary Voice ( Auxiliary telephony ) */
91 SS_CLASS_ALL_GPRS_BEARER=0x99, /* 0x99 : All GPRS bearer services */
92 SS_CLASS_ALL_TELE_BEARER=0xFF, /* 0xFF : all tele and bearer services */
95 enum telephony_ss_status {
96 SS_STATUS_REG=0x01, /* 0x01 : Registration */
97 SS_STATUS_DEREG, /* 0x02 : De-registration( erase ) */
98 SS_STATUS_ACTIVATE, /* 0x03 : Activation */
99 SS_STATUS_DEACTIVATE, /* 0x04 : De-activation */
103 enum telephony_ss_barring_mode {
105 SS_BARR_MODE_BAOC, /* 0x01 : Barring All Outgoing Calls */
106 SS_BARR_MODE_BOIC, /* 0x02 : Barring Outgoing International Calls */
107 SS_BARR_MODE_BOIC_NOT_HC, /* 0x03 : Barring Outgoing International Calls
108 except to Home Country */
109 SS_BARR_MODE_BAIC, /* 0x04 : Barring All Incoming Calls */
110 SS_BARR_MODE_BIC_ROAM, /* 0x05 : Barring Incoming Calls when roam,
111 outside of the Home Country */
112 SS_BARR_MODE_AB, /* 0x06 : All Barring Services */
113 SS_BARR_MODE_AOB, /* 0x07 : All Outgoing Barring Services */
114 SS_BARR_MODE_AIB, /* 0x08 : All Incoming Barring Services */
115 SS_BARR_MODE_BIC_NOT_SIM, /* 0x09 : Barring Incoming Calls which is
116 not stored in the SIM memory */
120 enum telephony_ss_forwarding_mode {
121 SS_CF_MODE_CFU = 0x01, /* 0x01 : Call Forwarding Unconditional */
122 SS_CF_MODE_CFB, /* 0x02 : Call Forwarding Mobile Busy */
123 SS_CF_MODE_CFNRy, /* 0x03 : Call Forwarding No Reply */
124 SS_CF_MODE_CFNRc, /* 0x04 : Call Forwarding Not Reachable */
125 SS_CF_MODE_CF_ALL, /* 0x05 : All Call Forwarding */
126 SS_CF_MODE_CFC, /* 0x06 : All Conditional Call Forwarding */
127 SS_CF_MODE_MAX /* 0x07 : Max */
130 enum telephony_ss_forwarding_no_reply_time {
131 SS_CF_NO_REPLY_5_SEC = 5,
132 SS_CF_NO_REPLY_10_SEC = 10,
133 SS_CF_NO_REPLY_15_SEC = 15,
134 SS_CF_NO_REPLY_20_SEC = 20,
135 SS_CF_NO_REPLY_25_SEC = 25,
136 SS_CF_NO_REPLY_30_SEC = 30,
139 enum telephony_ss_forwarding_type_of_number {
140 SS_CF_TON_UNKNOWN = 0, /**< unknown */
141 SS_CF_TON_INTERNATIONAL = 1, /**< international number */
142 SS_CF_TON_NATIONAL = 2, /**< national number */
143 SS_CF_TON_NETWORK_SPECIFIC = 3, /**< network specific number */
144 SS_CF_TON_DEDICATED_ACCESS = 4, /**< subscriber number */
145 SS_CF_TON_ALPHA_NUMERIC = 5, /**< alphanumeric, GSM 7-bit default alphabet) */
146 SS_CF_TON_ABBREVIATED_NUMBER = 6, /**< abbreviated number */
147 SS_CF_TON_RESERVED_FOR_EXT = 7 /**< reserved for extension */
150 enum telephony_ss_forwarding_numbering_plan_identity {
151 SS_CF_NPI_UNKNOWN = 0, /**< Unknown */
152 SS_CF_NPI_ISDN_TEL = 1, /**< ISDN/Telephone numbering plan */
153 SS_CF_NPI_DATA_NUMBERING_PLAN = 3, /**< Data numbering plan */
154 SS_CF_NPI_TELEX = 4, /**< Telex numbering plan */
155 SS_CF_NPI_SVC_CNTR_SPECIFIC_PLAN = 5, /**< Service Center Specific plan */
156 SS_CF_NPI_SVC_CNTR_SPECIFIC_PLAN2 = 6, /**< Service Center Specific plan */
157 SS_CF_NPI_NATIONAL = 8, /**< National numbering plan */
158 SS_CF_NPI_PRIVATE = 9, /**< Private numbering plan */
159 SS_CF_NPI_ERMES_NUMBERING_PLAN = 10, /**< ERMES numbering plan */
160 SS_CF_NPI_RESERVED_FOR_EXT = 0xF /**< Reserved for extension */
165 enum telephony_ss_cli_type {
167 SS_CLI_TYPE_CLIP, /* 0x01 : Calling Line Identification Presentation */
168 SS_CLI_TYPE_CLIR, /* 0x02 : Calling Line Identification Restriction */
169 SS_CLI_TYPE_COLP, /* 0x03 : Connected Line Identification Presentation */
170 SS_CLI_TYPE_COLR, /* 0x04 : Connected Line Identification Restriction */
171 SS_CLI_TYPE_CDIP, /* 0x05 : Called Line Identification Presentation */
172 SS_CLI_TYPE_CNAP, /* 0x06 : Calling Name Presentation */
176 enum telephony_ss_cli_status{
177 SS_CLI_STATUS_NOT_PROVISONED = 0x01, /**<Service not provided by the service provider */
178 SS_CLI_STATUS_PROVISIONED, /**<Service is provided by the service provider */
179 SS_CLI_STATUS_ACTIVATED, /**<Service is activated at the network */
180 SS_CLI_STATUS_UNKOWN, /**<Service status is unknown*/
181 SS_CLI_STATUS_TEMP_RESTRICTED, /**<Service is temporarily restricted */
182 SS_CLI_STATUS_TEMP_ALLOWED /**<Service is temporarily allowed */
185 enum telephony_ss_ussd_type {
186 SS_USSD_TYPE_USER_INITIATED=0x01, /* User Initiated USSD Message */
187 SS_USSD_TYPE_USER_RES, /* User Response to Network Initiated Message */
188 SS_USSD_TYPE_USER_RELEASE, /* SS Termination by user */
192 enum telephony_ss_ussd_status {
193 SS_USSD_NO_ACTION_REQUIRE = 0x01, /* 0x01 : no further user action required
194 information needed after mobile initiated operation) */
195 SS_USSD_ACTION_REQUIRE, /* 0x02 : further user action required
196 (network initiated USSD Request, or further
197 information needed after mobile initiated operation) */
198 SS_USSD_TERMINATED_BY_NET, /* 0x03 : USSD terminated by network */
199 SS_USSD_OTHER_CLIENT, /* 0x04 : other local client has responded */
200 SS_USSD_NOT_SUPPORT, /* 0x05 : operation not supported */
201 SS_USSD_TIME_OUT, /* 0x06 : network time out */
205 enum telephony_ss_info_type {
206 SS_INFO_TYPE_BARRING = 0x00,
207 SS_INFO_TYPE_FORWARDING,
208 SS_INFO_TYPE_WAITING,
210 SS_INFO_TYPE_SEND_USSD,
214 enum telephony_ss_aoc_type {
215 SS_AOC_TYPE_RESET =0x00, /* AoC Reset Message */
216 SS_AOC_TYPE_ACM =0x01, /* Accumulated call meter Message */
217 SS_AOC_TYPE_CCM =0x02, /* Current call meter Message */
218 SS_AOC_TYPE_MAXACM =0x04, /* Max Accumulated call meter Message */
219 SS_AOC_TYPE_PUC =0x08, /* Price per unit and currency Message */
220 SS_AOC_TYPE_MAX =0x10
223 enum telephony_ss_error {
224 SS_ERROR_NONE =0x0, /**< SS operation was successful */
226 SS_ERROR_UNKNOWNSUBSCRIBER =0x01, /**< SS error indicating unknown/illegal subscriber. */
227 SS_ERROR_ILLEGALSUBSCRIBER= 0x09, /**<This error is returned when illegality of the access has been @n
228 established by use of authentication procedure. */
229 SS_ERROR_BEARERSERVICENOTPROVISIONED = 0x0a, /**<The network returns this error when it is requested to @n
230 perform an operation on a supplementary service */
231 SS_ERROR_TELESERVICENOTPROVISIONED= 0x0b, /**<The network returns this error when it is requested to perform @n
232 an operation on a supplementary service */
233 SS_ERROR_ILLEGALEQUIPMENT= 0x0c, /**<This error is returned when the IMEI check procedure has shown that @n
234 the IMEI is blacklisted or not whitelisted */
235 SS_ERROR_CALLBARRED= 0x0d, /**< This error is returned by the network to the MS when call independent subscriber control procedures are barred by the operator */
237 SS_ERROR_ILLEGALSSOPERATION= 0x10, /**<This error is returned by the network when it is requested to perform an illegal operation @n
238 which is defined as not applicable for the relevant supplementary service */
239 SS_ERROR_ERRORSTATUS= 0x11, /**<This error is returned by the network when it is requested to perform an operation @n
240 which is not compatible with the current status of the relevant supplementary service. */
241 SS_ERROR_NOTAVAILABLE= 0x12, /**< SS not available in network */
242 SS_ERROR_SUBSCRIPTIONVIOLATION= 0x13, /**< SS service subscription violation. */
243 SS_ERROR_INCOMPATIBILITY= 0x14, /**< This error is returned by the network when it is requested for a supplementary service operation incompatible with the @n
244 status of another supplementary service or with the teleservice or bearer service for which the operation is requested */
245 SS_ERROR_FACILITYNOTSUPPORTED= 0x15, /**< SS service facility not supported */
246 SS_ERROR_ABSENTSUBSCRIBER= 0x1b, /**< This error is returned when the subscriber has activated the detach service or the system detects the absence condition */
248 SS_ERROR_SYSTEMFAILURE= 0x22, /**< This error is returned by the network, when it cannot perform an operation because of a failure in the network */
249 SS_ERROR_DATAMISSING= 0x23, /**< This error is returned by the network when an optional parameter is missing in an invoke component @n
250 or an inner data structure, while it is required by the context of the request. */
251 SS_ERROR_UNEXPECTEDDATAVALUE= 0x24, /**< SS error indicating unexpected data value on network side *//**< SS operation barred. */
252 SS_ERROR_PWREGISTRATIONFAILURE= 0x25, /**< SS error indicating change password failure. */
253 SS_ERROR_NEGATIVEPWCHECK= 0x26, /**< SS error indicating negative password check. */
254 SS_ERROR_NUMBEROFPWATTEMPTSVIOLATION= 0x2b, /**< SS error indicating barring password attempts violated. */
256 SS_ERROR_UNKNOWNALPHABET= 0x47, /**< SS error indicating unknown SS data coding of alphabet */
257 SS_ERROR_USSDBUSY= 0x48, /**< SS error indicating USSD Busy(Already SS / USSD is ongoing). */
259 SS_ERROR_FIXED_DIALING_NUMBER_ONLY = 0x5F, /**< SS error indicating Dialing number is not FDN */
261 SS_ERROR_REJECTEDBYUSER= 0x79, /**< SS operation rejected by user. */
262 SS_ERROR_REJECTEDBYNETWORK= 0x7a, /**< SS operation rejected by network. */
263 SS_ERROR_DEFLECTIONTOSERVEDSUBSCRIBER= 0x7b, /**< This error is returned if a diversion to the served @n
264 subscriber's number was requested. */
265 SS_ERROR_SPECIALSERVICECODE= 0x7c, /**< This error is returned if diversion to a special service code was requested. */
266 SS_ERROR_INVALIDDEFLECTEDTONUMBER= 0x7d, /**< SS error indicating the invalid deflected to number. */
267 SS_ERROR_MAXNOMPTYEXCEEDED= 0x7e, /**< SS error indicating Maximum MPTY is reached. */
268 SS_ERROR_RESOURCESNOTAVAILABLE= 0x7f, /**< SS error indicating resources not available in network. */
269 SS_ERROR_REJECTEDBYCALLCONTROL= 0x80, /**< SS operation rejected by call control. */
271 SS_ERROR_TIMEREXPIRE, /**< SS operation timer expired on network. */
273 SS_ERROR_NET_NOT_ALLOWED_EMERGENCY_CALLS_ONLY, /**< SS operation is not allowed by network. */
274 SS_ERROR_OEM_NOT_SUPPORTED, /**< If oem do not support any of SS requests, then this error will be returned back */
275 SS_ERROR_UNKNOWNERROR /**< SS error indicating unknown error */
279 #define MAX_SS_BARRING_PASSWORD_LEN 4
280 struct treq_ss_barring {
281 enum telephony_ss_class class;
282 enum telephony_ss_barring_mode mode;
283 char password[ MAX_SS_BARRING_PASSWORD_LEN ];
286 struct treq_ss_barring_change_password {
287 char password_old[ MAX_SS_BARRING_PASSWORD_LEN ];
288 char password_new[ MAX_SS_BARRING_PASSWORD_LEN ];
289 char password_confirm[ MAX_SS_BARRING_PASSWORD_LEN ];
292 #define MAX_SS_FORWARDING_NUMBER_LEN 32
293 struct treq_ss_forwarding {
294 enum telephony_ss_class class;
295 enum telephony_ss_forwarding_mode mode;
296 enum telephony_ss_forwarding_no_reply_time time;
297 enum telephony_ss_forwarding_type_of_number ton;
298 enum telephony_ss_forwarding_numbering_plan_identity npi;
299 char number[ MAX_SS_FORWARDING_NUMBER_LEN ];
302 struct treq_ss_waiting {
303 enum telephony_ss_class class;
308 enum telephony_ss_cli_type type;
311 struct treq_ss_set_cli {
312 enum telephony_ss_cli_type type;
313 enum telephony_ss_cli_status status;
316 #define MAX_SS_USSD_LEN 208
317 struct treq_ss_ussd {
318 enum telephony_ss_ussd_type type;
321 unsigned char str[ MAX_SS_USSD_LEN ];
326 struct tresp_ss_general {
327 enum telephony_ss_error err;
330 struct tresp_ss_barring {
332 struct barring_info {
333 enum telephony_ss_class class;
334 enum telephony_ss_status status;
335 enum telephony_ss_barring_mode mode;
337 enum telephony_ss_error err;
340 struct tresp_ss_forwarding {
342 struct forwarding_info {
343 enum telephony_ss_class class;
344 enum telephony_ss_status status;
345 enum telephony_ss_forwarding_mode mode;
346 enum telephony_ss_forwarding_no_reply_time time;
347 enum telephony_ss_forwarding_type_of_number ton;
348 enum telephony_ss_forwarding_numbering_plan_identity npi;
349 gboolean number_present;
350 char number[ MAX_SS_FORWARDING_NUMBER_LEN ];
352 enum telephony_ss_error err;
355 struct tresp_ss_waiting {
357 struct waiting_info {
358 enum telephony_ss_class class;
359 enum telephony_ss_status status;
361 enum telephony_ss_error err;
364 struct tresp_ss_set_cli {
365 enum telephony_ss_error err;
368 struct tresp_ss_cli {
369 enum telephony_ss_cli_type type;
370 enum telephony_ss_cli_status status;
371 enum telephony_ss_error err;
374 struct tresp_ss_ussd {
375 enum telephony_ss_ussd_type type;
376 enum telephony_ss_ussd_status status;
379 unsigned char str[ MAX_SS_USSD_LEN ];
380 enum telephony_ss_error err;
385 struct tnoti_ss_ussd {
386 enum telephony_ss_ussd_status status;
389 unsigned char str[ MAX_SS_USSD_LEN ];
392 struct tnoti_ss_barring_status {
394 struct barring_info *record;
397 struct tnoti_ss_forwarding_status {
399 struct forwarding_info *record;
402 struct tnoti_ss_waiting_status {
404 struct waiting_info *record;
407 #define MAX_SS_RELEASE_COMPLETE_DATA_SIZE 260
408 struct tnoti_ss_release_complete {
410 unsigned char data[ MAX_SS_RELEASE_COMPLETE_DATA_SIZE ];
413 struct tnoti_ss_information {
414 enum telephony_ss_error err;
415 enum telephony_ss_info_type ss_type;
416 #if 0 /* To be expanded later with ss information */
417 void *data; /* ( struct barring_info *, struct forwarding_info *, struct waiting_info * ...etc...) */