9494a56111a0d2552a80b231c9827bab97c64493
[framework/telephony/libslp-tapi.git] / wearable / include / TelSs.h
1 /*
2  * libslp-tapi
3  *
4  * Copyright (c) 2011 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: Ja-young Gu <jygu@samsung.com>
7  *
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
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
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.
19  */
20
21 /**
22  * @open
23  * @ingroup             TelephonyAPI
24  * @addtogroup  SS_TAPI SS(Supplementary services)
25  * @{
26  *
27  * @file TelSs.h
28
29  @brief This file serves as a "C" header file and defines structures for Tapi Supplementary Services\n
30  It contains a sample set of constants, enums, structs that would be required by applications.
31  */
32
33 #ifndef _TEL_SS_H_
34 #define _TEL_SS_H_
35
36 #include <TelDefines.h>
37 #include <TelErr.h>
38
39 #ifdef __cplusplus
40 extern "C"
41 {
42 #endif
43
44 /** maximum length of barring password */
45 #define TAPI_SS_GSM_BARR_PW_LEN_MAX                             4 /**<Maximum length of barring password */
46
47 /** maximum length of dial digit */
48 #define TAPI_CALL_DIALDIGIT_LEN_MAX                             82 /**<maximum length of dial digit *///( To Accommodate Unpacked string length, which will be greater than 182, 182* 8 /7 = 208, Packed len = 182* 7/8 = 160)
49 #define TAPI_SS_USSD_DATA_SIZE_MAX                              208      /**<User-to-user data maximum size */
50 #define TAPI_SS_RECORD_NUM_MAX                                  5 /**< SS record maximum size */
51 #define TAPI_SS_AOC_CURRENCY_LEN_MAX                    3 /**< maximum length of AOC currency */
52
53 /* Supplementary Svc */
54 #define TAPI_SS_ADDRESS_LEN_MAX                                 40
55 #define TAPI_SS_CCBS_SIZE_MAX                                   5
56 #define TAPI_SS_TELECOMM_SERVCE_SIZE_MAX                13
57 #define TAPI_SS_PHONE_NUM_LEN_MAX                               33
58 #define TAPI_SS_MMISTRING_LEN_MAX                               33
59 #define TAPI_SS_PWD_LEN_MAX                                             5
60 #define TAPI_MAX_RELEASE_COMPLETE_DATA_LEN              260
61 #define TAPI_MAX_ULONG                                                  0xffffffff
62
63 /**
64  *  This enumeration defines the call forwarding flavor.
65  */
66 typedef enum {
67         TAPI_SS_CF_WHEN_CFU = 0x01, /* 0x01 : Call Forwarding Unconditional */
68         TAPI_SS_CF_WHEN_CFB,        /* 0x02 : Call Forwarding Mobile Busy */
69         TAPI_SS_CF_WHEN_CFNRy,      /* 0x03 : Call Forwarding No Reply */
70         TAPI_SS_CF_WHEN_CFNRc,      /* 0x04 : Call Forwarding Not Reachable */
71         TAPI_SS_CF_WHEN_CF_ALL,     /* 0x05 : All Call Forwarding */
72         TAPI_SS_CF_WHEN_CFC,        /* 0x06 : All Conditional Call Forwarding */
73         TAPI_SS_CF_WHEN_MAX         /* 0x07 : Max */
74 } TelSsForwardWhen_t;
75
76 typedef enum {
77         TAPI_SS_CF_TON_UNKNOWN = 0, /**< unknown */
78         TAPI_SS_CF_TON_INTERNATIONAL = 1, /**< international number */
79         TAPI_SS_CF_TON_NATIONAL = 2, /**< national number */
80         TAPI_SS_CF_TON_NETWORK_SPECIFIC = 3, /**< network specific number */
81         TAPI_SS_CF_TON_DEDICATED_ACCESS = 4, /**< subscriber number */
82         TAPI_SS_CF_TON_ALPHA_NUMERIC = 5, /**< alphanumeric, GSM 7-bit default alphabet) */
83         TAPI_SS_CF_TON_ABBREVIATED_NUMBER = 6, /**< abbreviated number */
84         TAPI_SS_CF_TON_RESERVED_FOR_EXT = 7 /**< reserved for extension */
85 } TelSsForwardTypeOfNum_t;
86
87 typedef enum {
88         TAPI_SS_CF_NPI_UNKNOWN = 0, /**< Unknown */
89         TAPI_SS_CF_NPI_ISDN_TEL = 1, /**< ISDN/Telephone numbering plan */
90         TAPI_SS_CF_NPI_DATA_NUMBERING_PLAN = 3, /**< Data numbering plan */
91         TAPI_SS_CF_NPI_TELEX = 4, /**< Telex numbering plan */
92         TAPI_SS_CF_NPI_SVC_CNTR_SPECIFIC_PLAN = 5, /**< Service Center Specific plan */
93         TAPI_SS_CF_NPI_SVC_CNTR_SPECIFIC_PLAN2 = 6, /**< Service Center Specific plan */
94         TAPI_SS_CF_NPI_NATIONAL = 8, /**< National numbering plan */
95         TAPI_SS_CF_NPI_PRIVATE = 9, /**< Private numbering plan */
96         TAPI_SS_CF_NPI_ERMES_NUMBERING_PLAN = 10, /**< ERMES numbering plan */
97         TAPI_SS_CF_NPI_RESERVED_FOR_EXT = 0xF /**< Reserved for extension */
98 } TelSsForwardNumberingPlanIdentity_t;
99
100
101
102 /**
103  * The various types of call barring. Note, only one type of incoming barring and only one type of outgoing barring may be active at any time.
104  */
105 typedef enum {
106         TAPI_SS_CB_TYPE_BAOC = 0x01,                /* 0x01 : Barring All Outgoing Calls */
107         TAPI_SS_CB_TYPE_BOIC,                /* 0x02 : Barring Outgoing International Calls */
108         TAPI_SS_CB_TYPE_BOIC_NOT_HC, /* 0x03 : Barring Outgoing International Calls
109                                                                  except to Home Country */
110         TAPI_SS_CB_TYPE_BAIC,                /* 0x04 : Barring All Incoming Calls */
111         TAPI_SS_CB_TYPE_BIC_ROAM,       /* 0x05 : Barring Incoming Calls when roam,
112                                                                         outside of the Home Country */
113         TAPI_SS_CB_TYPE_AB,                   /* 0x06 : All Barring Services */
114         TAPI_SS_CB_TYPE_AOB,                 /* 0x07 : All Outgoing Barring Services */
115         TAPI_SS_CB_TYPE_AIB,                  /* 0x08 : All Incoming Barring Services */
116         TAPI_SS_CB_TYPE_BIC_NOT_SIM, /* 0x09 : Barring Incoming Calls which is
117                                                                  not stored in the SIM memory */
118         TAPI_SS_CB_TYPE_MAX
119 } TelSsBarringType_t;
120
121 /**
122  * This enumeration defines the ussd Indication Type
123  */
124 typedef enum {
125         TAPI_SS_USSD_STATUS_NOTIFY = 0x00, /**< notify : to display USSD data to user */
126         TAPI_SS_USSD_STATUS_NO_ACTION_REQUIRE = 0x01, /**< No further user action required */
127         TAPI_SS_USSD_STATUS_ACTION_REQUIRE = 0x02, /**< Further user action required*/
128         TAPI_SS_USSD_STATUS_TERMINATED_BY_NET = 0x03, /**< 0x03 : USSD terminated by network */
129         TAPI_SS_USSD_STATUS_OTHER_CLIENT = 0x04, /**< 0x04 : other local client has responded */
130         TAPI_SS_USSD_STATUS_NOT_SUPPORT = 0x05, /**< 0x05 : operation not supported */
131         TAPI_SS_USSD_STATUS_TIME_OUT = 0x06 /**< 0x06 : Time out when there is no response from network */
132 } TelSsUssdStatus_t;
133
134 /**
135  *
136  * This enum defines the values for USSD type.
137  */
138 typedef enum {
139         TAPI_SS_USSD_TYPE_USER_INIT = 0x01, /**< USSD request type User Initiated. */
140         TAPI_SS_USSD_TYPE_USER_RSP, /**< USSD request type User Response. */
141         TAPI_SS_USSD_TYPE_USER_REL /**< USSD request type User Release. */
142 } TelSsUssdType_t;
143
144 /**
145  *  This enumeration defines the call barring operation mode .
146  */
147 typedef enum {
148         TAPI_SS_CB_MODE_ACTIVATE, /**< Activate call barring  */
149         TAPI_SS_CB_MODE_DEACTIVATE, /**< De Activate call barring */
150 } TelSsBarringMode_t;
151
152 /**
153  *  This enumeration defines the call barring operation mode .
154  */
155 typedef enum {
156         TAPI_SS_CW_MODE_ACTIVATE, /**< Activate call barring  */
157         TAPI_SS_CW_MODE_DEACTIVATE, /**< De Activate call barring */
158 } TelSsCallWaitingMode_t;
159
160 /**
161  *  This enumeration defines the call type .
162  */
163 typedef enum {
164         /* TELESERVICE */
165         TAPI_SS_CLASS_ALL_TELE=0x10,                        /* 0x10 : All Teleservices */
166         TAPI_SS_CLASS_VOICE=0x11,                              /* 0x11 : All Voice ( telephony ) */
167         TAPI_SS_CLASS_ALL_DATA_TELE=0x12,             /* 0x12 : All Data Teleservices */
168         TAPI_SS_CLASS_FAX=0x13,                                /* 0x13 : All Fax Service */
169         TAPI_SS_CLASS_SMS=0x16,                                /* 0x16 : SMS service     */
170         TAPI_SS_CLASS_VGCS=0x17,                              /* 0x17 : Voice Group Call Service */
171         TAPI_SS_CLASS_VBS=0x18,                                /* 0x18 : Voice Broadcast */
172         TAPI_SS_CLASS_ALL_TELE_EXPT_SMS=0x19,    /* 0x19 : All teleservice except SMS */
173
174         /* BEARER SERVICE */
175         TAPI_SS_CLASS_ALL_BEARER=0x20,                  /* 0X20 : all bearer services */
176         TAPI_SS_CLASS_ALL_ASYNC=0x21,                    /* 0x21 : All Async services */
177         TAPI_SS_CLASS_ALL_SYNC=0x22,                      /* 0x22 : All sync services*/
178         TAPI_SS_CLASS_ALL_CS_SYNC=0x24,                /* 0x24 : All Circuit switched sync */
179         TAPI_SS_CLASS_ALL_CS_ASYNC=0x25,              /* 0x25 : All Circuit switched async */
180         TAPI_SS_CLASS_ALL_DEDI_PS=0x26,                /* 0x26 : All Dedicated packet Access */
181         TAPI_SS_CLASS_ALL_DEDI_PAD=0x27,              /* 0x27 : All Dedicated PAD Access */
182         TAPI_SS_CLASS_ALL_DATA_CDA=0x28,                /*0x28 : All Data CDA*/
183
184         /* PLMN SPECIFIC TELESERVICE */
185         TAPI_SS_CLASS_PLMN_TELE_ALL = 0x50,         /*0x50 : PLMN specific teleservices*/
186         TAPI_SS_CLASS_PLMN_TELE_1 = 0x51,              /*0x51 :PLMN specific teleservice 1*/
187         TAPI_SS_CLASS_PLMN_TELE_2 = 0x52,             /*0x52 : PLMN specific teleservice 2*/
188         TAPI_SS_CLASS_PLMN_TELE_3 = 0x53,             /*0x53 : PLMN specific teleservice 3*/
189         TAPI_SS_CLASS_PLMN_TELE_4 = 0x54,             /*0x54 : PLMN specific teleservice 4*/
190         TAPI_SS_CLASS_PLMN_TELE_5 = 0x55,             /*0x55 : PLMN specific teleservice 5*/
191         TAPI_SS_CLASS_PLMN_TELE_6 = 0x56,             /*0x56 : PLMN specific teleservice 6*/
192         TAPI_SS_CLASS_PLMN_TELE_7 = 0x57,             /*0x57 : PLMN specific teleservice 7*/
193         TAPI_SS_CLASS_PLMN_TELE_8 = 0x58,             /*0x58 : PLMN specific teleservice 8*/
194         TAPI_SS_CLASS_PLMN_TELE_9 = 0x59,             /*0x59 : PLMN specific teleservice 9*/
195         TAPI_SS_CLASS_PLMN_TELE_A = 0x60,           /*0x60 :PLMN specific teleservice 10*/
196         TAPI_SS_CLASS_PLMN_TELE_B = 0x61,           /*0x61 :PLMN specific teleservice 11*/
197         TAPI_SS_CLASS_PLMN_TELE_C = 0x62,             /*0x62 : PLMN specific teleservice 12*/
198         TAPI_SS_CLASS_PLMN_TELE_D = 0x63,             /*0x63 : PLMN specific teleservice 13*/
199         TAPI_SS_CLASS_PLMN_TELE_E = 0x64,             /*0x64 : PLMN specific teleservice 14*/
200         TAPI_SS_CLASS_PLMN_TELE_F = 0x65,             /*0x65 : PLMN specific teleservice 15*/
201
202         /* PLMN SPECIFIC BEARER SERVICE */
203         TAPI_SS_CLASS_PLMN_BEAR_ALL = 0x70,         /*0x70 : All PLMN specific bearer services*/
204         TAPI_SS_CLASS_PLMN_BEAR_1 = 0x71,              /*0x71 :PLMN specific bearer service 1*/
205         TAPI_SS_CLASS_PLMN_BEAR_2 = 0x72,             /*0x72 : PLMN specific bearer service  2*/
206         TAPI_SS_CLASS_PLMN_BEAR_3 = 0x73,             /*0x73 : PLMN specific bearer service  3*/
207         TAPI_SS_CLASS_PLMN_BEAR_4 = 0x74,             /*0x74 : PLMN specific bearer service  4*/
208         TAPI_SS_CLASS_PLMN_BEAR_5 = 0x75,             /*0x75 : PLMN specific bearer service  5*/
209         TAPI_SS_CLASS_PLMN_BEAR_6 = 0x76,             /*0x76 : PLMN specific bearer service  6*/
210         TAPI_SS_CLASS_PLMN_BEAR_7 = 0x77,             /*0x77 : PLMN specific bearer service  7*/
211         TAPI_SS_CLASS_PLMN_BEAR_8 = 0x78,             /*0x78 : PLMN specific bearer service  8*/
212         TAPI_SS_CLASS_PLMN_BEAR_9 = 0x79,             /*0x79 : PLMN specific bearer service  9*/
213         TAPI_SS_CLASS_PLMN_BEAR_A = 0x80,            /*0x80 : PLMN specific bearer service  10*/
214         TAPI_SS_CLASS_PLMN_BEAR_B = 0x81,             /*0x81 : PLMN specific bearer service  11*/
215         TAPI_SS_CLASS_PLMN_BEAR_C = 0x82,            /*0x82 : PLMN specific bearer service  12*/
216         TAPI_SS_CLASS_PLMN_BEAR_D = 0x83,            /*0x83 : PLMN specific bearer service  13*/
217         TAPI_SS_CLASS_PLMN_BEAR_E = 0x84,             /*0x84 : PLMN specific bearer service  14*/
218         TAPI_SS_CLASS_PLMN_BEAR_F = 0x85,             /*0x85 : PLMN specific bearer service  15*/
219
220         /* CPHS - AUXILIARY SERVICE */
221         TAPI_SS_CLASS_AUX_VOICE = 0x89,                 /* 0x89 : All Auxiliary Voice ( Auxiliary telephony ) */
222
223         TAPI_SS_CLASS_ALL_GPRS_BEARER=0x99,       /* 0x99 : All GPRS bearer services */
224         TAPI_SS_CLASS_ALL_TELE_BEARER=0xFF,        /* 0xFF : all tele and bearer services */
225 } TelSsClass_t;
226
227 /**
228  *  This enumeration defines the forward mode .
229  */
230 typedef enum {
231         TAPI_SS_CF_MODE_DISABLE_EV, /**< Deactivate call forwarding  */
232         TAPI_SS_CF_MODE_ENABLE_EV, /**< Activate call forwarding */
233         TAPI_SS_CF_MODE_REGISTRATION_EV, /**< Register Call forwarding  */
234         TAPI_SS_CF_MODE_ERASURE_EV, /**< De-register call forwarding */
235 } TelSsForwardMode_t;
236
237 typedef enum {
238         TAPI_SS_CF_NO_REPLY_TIME_5_SECS = 5, /**< Timer value set to 5secs*/
239         TAPI_SS_CF_NO_REPLY_TIME_10_SECS = 10, /**< Timer value set to 10secs*/
240         TAPI_SS_CF_NO_REPLY_TIME_15_SECS = 15, /**< Timer value set to 15secs*/
241         TAPI_SS_CF_NO_REPLY_TIME_20_SECS = 20, /**< Timer value set to 20secs*/
242         TAPI_SS_CF_NO_REPLY_TIME_25_SECS = 25, /**< Timer value set to 25secs*/
243         TAPI_SS_CF_NO_REPLY_TIME_30_SECS = 30, /**< Timer value set to 30secs*/
244 } TelSsNoReplyTime_t;
245
246 /**
247  *  Describes whether a supplementary service request was a success or a failure; and if it failed, why.
248  */
249 typedef enum {
250         TAPI_SS_SUCCESS=0x0, /**<  SS operation was successful */
251
252         TAPI_SS_UNKNOWNSUBSCRIBER= 0x01, /**< SS error indicating unknown/illegal subscriber.  */
253         TAPI_SS_ILLEGALSUBSCRIBER= 0x09, /**<This error is returned when illegality of the access has been @n
254          established by use of authentication procedure. */
255
256         TAPI_SS_BEARERSERVICENOTPROVISIONED= 0x0a, /**<The network returns this error when it is requested to  @n
257          perform an operation on a supplementary service  */
258         TAPI_SS_TELESERVICENOTPROVISIONED= 0x0b, /**<The network returns this error when it is requested to perform  @n
259          an operation on a supplementary service  */
260         TAPI_SS_ILLEGALEQUIPMENT= 0x0c, /**<This error is returned when the IMEI check procedure has shown that  @n
261          the IMEI is blacklisted or not whitelisted  */
262         TAPI_SS_CALLBARRED= 0x0d, /**< This error is returned by the network to the MS when call independent subscriber control procedures are barred by the operator */
263         TAPI_SS_ILLEGALSSOPERATION=0x10, /**<This error is returned by the network when it is requested to perform an illegal operation @n
264          which is defined as not applicable for the relevant supplementary service */
265         TAPI_SS_ERRORSTATUS= 0x11, /**<This error is returned by the network when it is requested to perform an operation @n
266          which is not compatible with the current status of the relevant supplementary service. */
267         TAPI_SS_NOTAVAILABLE= 0x12, /**< SS not available in network */
268         TAPI_SS_SUBSCRIPTIONVIOLATION= 0x13, /**< SS service subscription violation. */
269         TAPI_SS_INCOMPATIBILITY= 0x14, /**< This error is returned by the network when it is requested for a supplementary service operation incompatible with the @n
270          status of another supplementary service or with the teleservice or bearer service for which the operation is requested */
271         TAPI_SS_FACILITYNOTSUPPORTED= 0x15, /**< SS service facility not supported  */
272         TAPI_SS_ABSENTSUBSCRIBER= 0x1b, /**< This error is returned when the subscriber has activated the detach service or the system detects the absence condition */
273
274         TAPI_SS_SYSTEMFAILURE= 0x22, /**< This error is returned by the network, when it cannot perform an operation because of a failure in the network */
275         TAPI_SS_DATAMISSING= 0x23, /**< This error is returned by the network when an optional parameter is missing in an invoke component @n
276          or an inner data structure, while it is required by the context of the request. */
277         TAPI_SS_UNEXPECTEDDATAVALUE= 0x24, /**< SS error indicating unexpected data value on network side *//**< SS operation barred.  */
278         TAPI_SS_PWREGISTRATIONFAILURE= 0x25, /**< SS error indicating change password failure. */
279         TAPI_SS_NEGATIVEPWCHECK= 0x26, /**< SS error indicating negative password check.  */
280         TAPI_SS_NUMBEROFPWATTEMPTSVIOLATION= 0x2b, /**< SS error indicating barring password attempts violated.  */
281
282         TAPI_SS_UNKNOWNALPHABET= 0x47, /**< SS error indicating unknown SS data coding of alphabet */
283         TAPI_SS_USSDBUSY= 0x48, /**< SS error indicating USSD Busy(Already SS / USSD is ongoing).  */
284
285         TAPI_SS_FIXED_DIALING_NUMBER_ONLY = 0x5F, /**< SS error indicating Dialing number is not FDN */
286
287         TAPI_SS_REJECTEDBYUSER= 0x79, /**< SS operation rejected by user.  */
288         TAPI_SS_REJECTEDBYNETWORK=0x7a, /**< SS operation rejected by network.  */
289         TAPI_SS_DEFLECTIONTOSERVEDSUBSCRIBER= 0x7b, /**< This error is returned if a diversion to the served  @n
290          subscriber's number was requested.  */
291         TAPI_SS_SPECIALSERVICECODE= 0x7c, /**< This error is returned if diversion to a special service code was requested.  */
292         TAPI_SS_INVALIDDEFLECTEDTONUMBER= 0x7d, /**< SS error indicating the invalid deflected to number.  */
293         TAPI_SS_MAXNOMPTYEXCEEDED= 0x7e, /**< SS error indicating Maximum MPTY is reached.  */
294         TAPI_SS_RESOURCESNOTAVAILABLE= 0x7f, /**< SS error indicating resources not available in network.  */
295         TAPI_SS_REJECTEDBYCALLCONTROL= 0x80, /**< SS error indicating resources not available in network.  */
296
297         TAPI_SS_TIMEREXPIRE, /**< SS operation timer expired on network. */
298         TAPI_SS_NET_NOT_ALLOWED_EMERGENCY_CALLS_ONLY, /**< SS operation is not allowed by network.  */
299         TAPI_SS_UNKNOWNERROR, /**< SS error indicating unknown error  */
300         TAPI_SS_OEM_NOT_SUPPORTED /**< If oem do not support any of SS requests, then this error will be returned back */
301 } TelSsCause_t;
302
303 /**
304  *   The status of a supplementary service feature (e.g. Call Forwarding or Call Barring). @n
305  *   These enumerated values should be used as masks
306  */
307 typedef enum {
308         TAPI_SS_STATUS_REGISTERED = 0x01, /**< Provisioned & registered (but not active/active-quiescent */
309         TAPI_SS_STATUS_PROVISIONED, /**<Provisioned but not registered (or active/active-quiescent) */
310         TAPI_SS_STATUS_ACTIVE, /**< Provisioned & registered & active */
311         TAPI_SS_STATUS_QUIESCENT, /**< Provisioned & registered & active but quiescent */
312         TAPI_SS_STATUS_NOTHING /**< Not provisioned */
313 } TelSsStatus_t;
314
315 /**
316  * These are the four types of identity presentation / restriction services.
317  */
318 typedef enum {
319         TAPI_CALLING_LINE_IDENTITY_PRESENTATION= 0x01, /**< identify the party calling this phone */
320         TAPI_CALLING_LINE_IDENTITY_RESTRICTION, /**< hide the identity of this phone when calling others */
321         TAPI_CONNECTED_LINE_IDENTITY_PRESENTATION, /**< identify the party to whom the calling party (this phone) is connected */
322         TAPI_CONNECTED_LINE_IDENTITY_RESTRICTION, /**< restrict yourself from being identified by incoming calls, such as forwarded calls */
323         TAPI_CALLED_LINE_IDENTITY_PRESENTATION, /**< Called line identity presentation  */
324         TAPI_CALLING_NAME_PRESENTATION /**< Calling Name Presentation */
325 } TelSsLineIdentificationType_t;
326
327 /**
328  *  This enumeration defines the cli service status .
329  */
330 typedef enum {
331         TAPI_CLI_STATUS_NOT_PROVISONED = 0x01, /**<Service not provided by the service provider */
332         TAPI_CLI_STATUS_PROVISIONED, /**<Service is provided by the service provider */
333         TAPI_CLI_STATUS_ACTIVATED, /**<Service is activated at the network */
334         TAPI_CLI_STATUS_UNKOWN, /**<Service status is unknown*/
335         TAPI_CLI_STATUS_TEMP_RESTRICTED, /**<Service is temporarily restricted */
336         TAPI_CLI_STATUS_TEMP_ALLOWED /**<Service is temporarily allowed */
337 } TelSsCliStatus_t;
338
339 /**
340  *  This enumeration defines the values for Cli service type .
341  */
342 typedef enum {
343         TAPI_SS_CLI_CLIP = 0x01, /**< Calling Line Identification Presentation. */
344         TAPI_SS_CLI_CLIR = 0x02, /**<  Calling Line Identification Restriction. */
345         TAPI_SS_CLI_COLP = 0x03, /**<  Connected Line Identification Presentation. */
346         TAPI_SS_CLI_COLR = 0x04, /**<  Connected Line Identification Restriction. */
347         TAPI_SS_CLI_CDIP = 0x05, /**<  Called Line Identification Presentation. */
348         TAPI_SS_CLI_CNAP = 0x06, /**<  Calling Name Presentation.*/
349 } TelSsCliType_t;
350
351 /**
352  * This enum defines the values for AOC type.
353  */
354 typedef enum {
355         TAPI_SS_AOC_TYPE_RESET = 0x00, /**< Specifies the Reset MAXACM Value. */
356         TAPI_SS_AOC_TYPE_ACM = 0x01, /**< Specifies the Accumulated call meter. */
357         TAPI_SS_AOC_TYPE_CCM = 0x02, /**< Specifies the Current call meter. */
358         TAPI_SS_AOC_TYPE_MAXACM = 0x04, /**< Specifies the Max accumulated call meter. */
359         TAPI_SS_AOC_TYPE_PUC = 0x08 /**< Specifies the Price per unit and currency.*/
360 } TelSsAocType_t;
361
362 typedef enum {
363         TAPI_SS_TYPE_BARRING = 0x00,
364         TAPI_SS_TYPE_FORWARDING,
365         TAPI_SS_TYPE_WAITING,
366         TAPI_SS_TYPE_CLI,
367         TAPI_SS_TYPE_SEND_USSD,
368         TAPI_SS_TYPE_MAX
369 }TelSsInfoType_t;
370
371 /**
372  *  This structure  defines the different parameters related to forward info.
373  */
374 typedef struct {
375         TelSsClass_t Class;
376         TelSsForwardMode_t Mode; /**< Forward Mode */
377         TelSsForwardWhen_t Condition; /**< Forward Condition */
378         TelSsNoReplyTime_t NoReplyConditionTimer; /**< No reply wait time 5-30 secs in intervals of 5. */
379         TelSsForwardTypeOfNum_t Ton;
380         TelSsForwardNumberingPlanIdentity_t Npi;
381         unsigned char szPhoneNumber[TAPI_CALL_DIALDIGIT_LEN_MAX]; /**< Phone Number*/
382 } TelSsForwardInfo_t;
383
384 /**
385  *  This structure defines the values for USSD request type.
386  */
387 typedef struct {
388         TelSsUssdType_t Type;
389         unsigned char  Dcs;
390         int Length; /**< USSD  String Length */
391         char szString[TAPI_SS_USSD_DATA_SIZE_MAX]; /**< USSD  String */
392 } TelSsUssdMsgInfo_t;
393
394 /**
395  *  This structure  defines the different parameters related to call barring.
396  */
397 typedef struct {
398         TelSsClass_t Class; /**< Call type */
399         TelSsBarringMode_t Mode; /**< Barring mode  */
400         TelSsBarringType_t Type; /**< Barring type */
401         char szPassword[TAPI_SS_GSM_BARR_PW_LEN_MAX]; /**< password */
402 } TelSsBarringInfo_t;
403
404 /**
405  *  This structure  defines the different parameters related to call waiting.
406  */
407 typedef struct {
408         TelSsClass_t Class; /**< Call type */
409         TelSsCallWaitingMode_t Mode; /**< Waiting mode  */
410 } TelSsWaitingInfo_t;
411
412 /**
413  *  This structure  defines the SUPS information message notification type.
414  */
415 typedef struct {
416         TelSsCause_t Cause; /**< Cause */
417         TelSsInfoType_t SsType; /**< SUPS Information  */
418 } TelSsInfo_t;
419
420
421 /**
422  * This structure defines the release complete message notification type.
423  */
424 typedef struct {
425         unsigned char RelCompMsgLen; /**< Specifies the Release complete msg length.*/
426         unsigned char szRelCompMsg[TAPI_MAX_RELEASE_COMPLETE_DATA_LEN]; /**<  Specifies the Release complete msg. */
427 } TelSsRelCompMsgInfo_t;
428
429 /**
430  * This structure defines the values for AOC request type.
431  */
432
433 typedef struct {
434         float PPM;
435         unsigned char CharTypeOfCurrency;
436         unsigned char szCurrency[TAPI_SS_AOC_CURRENCY_LEN_MAX];
437 } TelAocPucInfo_t;
438
439 typedef struct {
440         TelSsAocType_t AocType; /**< Specifies the AOC type. */
441         unsigned int ACM; /**< Specifies the accumulated call meter value. */
442         unsigned int MaxAcm; /**< Specifies the maximum value of ACM . */
443         float CCM; /**< Specifies the Current call meter value. */
444         float PPM; /**< Specifies the Price per unit value. */
445         unsigned char CharTypeOfCurrency; /**< Specifies the Char type of currency. */
446         unsigned char szCurrency[TAPI_SS_AOC_CURRENCY_LEN_MAX]; /**< Specifies the Currency characters. */
447 } TelCallAocInfo_t;
448
449 /**
450  * This structure defines the values for ss call barring record
451  */
452 typedef struct {
453         int record_num;
454         struct {
455                 TelSsClass_t Class;
456                 TelSsStatus_t Status; /**< SS status  */
457                 TelSsBarringType_t Flavour; /**< Call barring types providing various barring conditions on that basis call be barred */
458         } record[TAPI_SS_RECORD_NUM_MAX]; /**< Specifies the  Maximum of TAPI_SS_RECORD_NUM_MAX records. */
459 } TelSsBarringResp_t;
460
461 typedef TelSsBarringResp_t TelSsBarringNoti_t;
462
463 /**
464  * This structure defines the values for ss call forwarding record
465  */
466 typedef struct {
467         int record_num;
468         struct {
469                 TelSsClass_t Class;
470                 TelSsStatus_t Status; /**< Call forwarding SS status */
471                 TelSsForwardWhen_t ForwardCondition; /**< Call forward types providing various conditions when call can be forwarded */
472                 int bCallForwardingNumberPresent; /**< Call forwarding number present or not */
473                 TelSsNoReplyTime_t NoReplyWaitTime;
474                 TelSsForwardTypeOfNum_t Ton;
475                 TelSsForwardNumberingPlanIdentity_t Npi;
476                 unsigned char szCallForwardingNumber[TAPI_CALL_DIALDIGIT_LEN_MAX + 1]; /**< forwarded number.[Null Terminated string]*/
477         } record[TAPI_SS_RECORD_NUM_MAX]; /**< Specifies the  Maximum of TAPI_SS_RECORD_NUM_MAX records. */
478 } TelSsForwardResp_t;
479
480 typedef TelSsForwardResp_t TelSsForwardNoti_t;
481
482 /**
483  * This structure defines the values for ss call waiting record
484  */
485 typedef struct {
486         int record_num;
487         struct {
488                 TelSsClass_t Class;
489                 TelSsStatus_t Status; /**< SS status */
490         } record[TAPI_SS_RECORD_NUM_MAX]; /**< Specifies the  Maximum of TAPI_SS_RECORD_NUM_MAX records. */
491 } TelSsWaitingResp_t;
492
493 typedef TelSsWaitingResp_t TelSsWaitingNoti_t;
494
495 /**
496  * This structure defines the values for Calling line identity service
497  */
498 typedef struct {
499         TelSsLineIdentificationType_t Type; /**< Various line identification types */
500         TelSsCliStatus_t Status; /**< Line identification status from network */
501 } TelSsCliResp_t;
502
503 typedef struct {
504         TelSsUssdType_t Type;
505         TelSsUssdStatus_t Status;
506         unsigned char Dcs;
507         int Length; /**< USSD  String Length */
508         char szString[TAPI_SS_USSD_DATA_SIZE_MAX]; /**< USSD  String */
509 } TelSsUssdResp_t;
510
511 typedef struct {
512         TelSsUssdStatus_t Status;
513         unsigned char Dcs;
514         int Length; /**< USSD  String Length */
515         char szString[TAPI_SS_USSD_DATA_SIZE_MAX]; /**< USSD  String */
516 } TelSsUssdNoti_t;
517
518 typedef struct {
519         float PPM; /**< Specifies the Price per unit value. */
520         unsigned char CharTypeOfCurrency; /**< Specifies the Char type of currency. */
521         unsigned char szCurrency[TAPI_SS_AOC_CURRENCY_LEN_MAX]; /**< Specifies the Currency characters. */
522 } TelSsAoc_ppm_info_t;
523
524 #ifdef __cplusplus
525 }
526 #endif
527
528 #endif // _TEL_SS_H_
529 /**
530  * @}
531  */