Code sync from tizen_2.4
[platform/core/telephony/tel-plugin-dbus_tapi.git] / src / sat_ui_support / TelSs.h
1 /*
2  * tel-plugin-dbus_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 /**
77  * 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.
78  */
79 typedef enum {
80         TAPI_SS_CB_TYPE_BAOC = 0x01,                /* 0x01 : Barring All Outgoing Calls */
81         TAPI_SS_CB_TYPE_BOIC,                /* 0x02 : Barring Outgoing International Calls */
82         TAPI_SS_CB_TYPE_BOIC_NOT_HC, /* 0x03 : Barring Outgoing International Calls
83                                                                  except to Home Country */
84         TAPI_SS_CB_TYPE_BAIC,                /* 0x04 : Barring All Incoming Calls */
85         TAPI_SS_CB_TYPE_BIC_ROAM,       /* 0x05 : Barring Incoming Calls when roam,
86                                                                         outside of the Home Country */
87         TAPI_SS_CB_TYPE_AB,                   /* 0x06 : All Barring Services */
88         TAPI_SS_CB_TYPE_AOB,                 /* 0x07 : All Outgoing Barring Services */
89         TAPI_SS_CB_TYPE_AIB,                  /* 0x08 : All Incoming Barring Services */
90         TAPI_SS_CB_TYPE_BIC_NOT_SIM, /* 0x09 : Barring Incoming Calls which is
91                                                                  not stored in the SIM memory */
92         TAPI_SS_CB_TYPE_MAX
93 } TelSsBarringType_t;
94
95 /**
96  * This enumeration defines the ussd Indication Type
97  */
98 typedef enum {
99         TAPI_SS_USSD_STATUS_NOTIFY = 0x00, /**< notify : to display USSD data to user */
100         TAPI_SS_USSD_STATUS_NO_ACTION_REQUIRE = 0x01, /**< No further user action required */
101         TAPI_SS_USSD_STATUS_ACTION_REQUIRE = 0x02, /**< Further user action required*/
102         TAPI_SS_USSD_STATUS_TERMINATED_BY_NET = 0x03, /**< 0x03 : USSD terminated by network */
103         TAPI_SS_USSD_STATUS_OTHER_CLIENT = 0x04, /**< 0x04 : other local client has responded */
104         TAPI_SS_USSD_STATUS_NOT_SUPPORT = 0x05, /**< 0x05 : operation not supported */
105         TAPI_SS_USSD_STATUS_TIME_OUT = 0x06 /**< 0x06 : Time out when there is no response from network */
106 } TelSsUssdStatus_t;
107
108 /**
109  *
110  * This enum defines the values for USSD type.
111  */
112 typedef enum {
113         TAPI_SS_USSD_TYPE_USER_INIT = 0x01, /**< USSD request type User Initiated. */
114         TAPI_SS_USSD_TYPE_USER_RSP, /**< USSD request type User Response. */
115         TAPI_SS_USSD_TYPE_USER_REL /**< USSD request type User Release. */
116 } TelSsUssdType_t;
117
118 /**
119  *  This enumeration defines the call barring operation mode .
120  */
121 typedef enum {
122         TAPI_SS_CB_MODE_ACTIVATE, /**< Activate call barring  */
123         TAPI_SS_CB_MODE_DEACTIVATE, /**< De Activate call barring */
124 } TelSsBarringMode_t;
125
126 /**
127  *  This enumeration defines the call barring operation mode .
128  */
129 typedef enum {
130         TAPI_SS_CW_MODE_ACTIVATE, /**< Activate call barring  */
131         TAPI_SS_CW_MODE_DEACTIVATE, /**< De Activate call barring */
132 } TelSsCallWaitingMode_t;
133
134 /**
135  *  This enumeration defines the call type .
136  */
137 typedef enum {
138         /* TELESERVICE */
139         TAPI_SS_CLASS_ALL_TELE=0x10,                        /* 0x10 : All Teleservices */
140         TAPI_SS_CLASS_VOICE=0x11,                              /* 0x11 : All Voice ( telephony ) */
141         TAPI_SS_CLASS_ALL_DATA_TELE=0x12,             /* 0x12 : All Data Teleservices */
142         TAPI_SS_CLASS_FAX=0x13,                                /* 0x13 : All Fax Service */
143         TAPI_SS_CLASS_SMS=0x16,                                /* 0x16 : SMS service     */
144         TAPI_SS_CLASS_VGCS=0x17,                              /* 0x17 : Voice Group Call Service */
145         TAPI_SS_CLASS_VBS=0x18,                                /* 0x18 : Voice Broadcast */
146         TAPI_SS_CLASS_ALL_TELE_EXPT_SMS=0x19,    /* 0x19 : All teleservice except SMS */
147
148         /* BEARER SERVICE */
149         TAPI_SS_CLASS_ALL_BEARER=0x20,                  /* 0X20 : all bearer services */
150         TAPI_SS_CLASS_ALL_ASYNC=0x21,                    /* 0x21 : All Async services */
151         TAPI_SS_CLASS_ALL_SYNC=0x22,                      /* 0x22 : All sync services*/
152         TAPI_SS_CLASS_ALL_CS_SYNC=0x24,                /* 0x24 : All Circuit switched sync */
153         TAPI_SS_CLASS_ALL_CS_ASYNC=0x25,              /* 0x25 : All Circuit switched async */
154         TAPI_SS_CLASS_ALL_DEDI_PS=0x26,                /* 0x26 : All Dedicated packet Access */
155         TAPI_SS_CLASS_ALL_DEDI_PAD=0x27,              /* 0x27 : All Dedicated PAD Access */
156         TAPI_SS_CLASS_ALL_DATA_CDA=0x28,                /*0x28 : All Data CDA*/
157
158         /* PLMN SPECIFIC TELESERVICE */
159         TAPI_SS_CLASS_PLMN_TELE_ALL = 0x50,         /*0x50 : PLMN specific teleservices*/
160         TAPI_SS_CLASS_PLMN_TELE_1 = 0x51,              /*0x51 :PLMN specific teleservice 1*/
161         TAPI_SS_CLASS_PLMN_TELE_2 = 0x52,             /*0x52 : PLMN specific teleservice 2*/
162         TAPI_SS_CLASS_PLMN_TELE_3 = 0x53,             /*0x53 : PLMN specific teleservice 3*/
163         TAPI_SS_CLASS_PLMN_TELE_4 = 0x54,             /*0x54 : PLMN specific teleservice 4*/
164         TAPI_SS_CLASS_PLMN_TELE_5 = 0x55,             /*0x55 : PLMN specific teleservice 5*/
165         TAPI_SS_CLASS_PLMN_TELE_6 = 0x56,             /*0x56 : PLMN specific teleservice 6*/
166         TAPI_SS_CLASS_PLMN_TELE_7 = 0x57,             /*0x57 : PLMN specific teleservice 7*/
167         TAPI_SS_CLASS_PLMN_TELE_8 = 0x58,             /*0x58 : PLMN specific teleservice 8*/
168         TAPI_SS_CLASS_PLMN_TELE_9 = 0x59,             /*0x59 : PLMN specific teleservice 9*/
169         TAPI_SS_CLASS_PLMN_TELE_A = 0x60,           /*0x60 :PLMN specific teleservice 10*/
170         TAPI_SS_CLASS_PLMN_TELE_B = 0x61,           /*0x61 :PLMN specific teleservice 11*/
171         TAPI_SS_CLASS_PLMN_TELE_C = 0x62,             /*0x62 : PLMN specific teleservice 12*/
172         TAPI_SS_CLASS_PLMN_TELE_D = 0x63,             /*0x63 : PLMN specific teleservice 13*/
173         TAPI_SS_CLASS_PLMN_TELE_E = 0x64,             /*0x64 : PLMN specific teleservice 14*/
174         TAPI_SS_CLASS_PLMN_TELE_F = 0x65,             /*0x65 : PLMN specific teleservice 15*/
175
176         /* PLMN SPECIFIC BEARER SERVICE */
177         TAPI_SS_CLASS_PLMN_BEAR_ALL = 0x70,         /*0x70 : All PLMN specific bearer services*/
178         TAPI_SS_CLASS_PLMN_BEAR_1 = 0x71,              /*0x71 :PLMN specific bearer service 1*/
179         TAPI_SS_CLASS_PLMN_BEAR_2 = 0x72,             /*0x72 : PLMN specific bearer service  2*/
180         TAPI_SS_CLASS_PLMN_BEAR_3 = 0x73,             /*0x73 : PLMN specific bearer service  3*/
181         TAPI_SS_CLASS_PLMN_BEAR_4 = 0x74,             /*0x74 : PLMN specific bearer service  4*/
182         TAPI_SS_CLASS_PLMN_BEAR_5 = 0x75,             /*0x75 : PLMN specific bearer service  5*/
183         TAPI_SS_CLASS_PLMN_BEAR_6 = 0x76,             /*0x76 : PLMN specific bearer service  6*/
184         TAPI_SS_CLASS_PLMN_BEAR_7 = 0x77,             /*0x77 : PLMN specific bearer service  7*/
185         TAPI_SS_CLASS_PLMN_BEAR_8 = 0x78,             /*0x78 : PLMN specific bearer service  8*/
186         TAPI_SS_CLASS_PLMN_BEAR_9 = 0x79,             /*0x79 : PLMN specific bearer service  9*/
187         TAPI_SS_CLASS_PLMN_BEAR_A = 0x80,            /*0x80 : PLMN specific bearer service  10*/
188         TAPI_SS_CLASS_PLMN_BEAR_B = 0x81,             /*0x81 : PLMN specific bearer service  11*/
189         TAPI_SS_CLASS_PLMN_BEAR_C = 0x82,            /*0x82 : PLMN specific bearer service  12*/
190         TAPI_SS_CLASS_PLMN_BEAR_D = 0x83,            /*0x83 : PLMN specific bearer service  13*/
191         TAPI_SS_CLASS_PLMN_BEAR_E = 0x84,             /*0x84 : PLMN specific bearer service  14*/
192         TAPI_SS_CLASS_PLMN_BEAR_F = 0x85,             /*0x85 : PLMN specific bearer service  15*/
193
194         /* CPHS - AUXILIARY SERVICE */
195         TAPI_SS_CLASS_AUX_VOICE = 0x89,                 /* 0x89 : All Auxiliary Voice ( Auxiliary telephony ) */
196
197         TAPI_SS_CLASS_ALL_GPRS_BEARER=0x99,       /* 0x99 : All GPRS bearer services */
198         TAPI_SS_CLASS_ALL_TELE_BEARER=0xFF,        /* 0xFF : all tele and bearer services */
199 } TelSsClass_t;
200
201 /**
202  *  This enumeration defines the forward mode .
203  */
204 typedef enum {
205         TAPI_SS_CF_MODE_DISABLE_EV, /**< Deactivate call forwarding  */
206         TAPI_SS_CF_MODE_ENABLE_EV, /**< Activate call forwarding */
207         TAPI_SS_CF_MODE_REGISTRATION_EV, /**< Register Call forwarding  */
208         TAPI_SS_CF_MODE_ERASURE_EV, /**< De-register call forwarding */
209 } TelSsForwardMode_t;
210
211 typedef enum {
212         TAPI_SS_CF_NO_REPLY_TIME_5_SECS = 5, /**< Timer value set to 5secs*/
213         TAPI_SS_CF_NO_REPLY_TIME_10_SECS = 10, /**< Timer value set to 10secs*/
214         TAPI_SS_CF_NO_REPLY_TIME_15_SECS = 15, /**< Timer value set to 15secs*/
215         TAPI_SS_CF_NO_REPLY_TIME_20_SECS = 20, /**< Timer value set to 20secs*/
216         TAPI_SS_CF_NO_REPLY_TIME_25_SECS = 25, /**< Timer value set to 25secs*/
217         TAPI_SS_CF_NO_REPLY_TIME_30_SECS = 30, /**< Timer value set to 30secs*/
218 } TelSsNoReplyTime_t;
219
220 /**
221  *  Describes whether a supplementary service request was a success or a failure; and if it failed, why.
222  */
223 typedef enum {
224         TAPI_SS_SUCCESS=0x0, /**<  SS operation was successful */
225
226         TAPI_SS_UNKNOWNSUBSCRIBER= 0x01, /**< SS error indicating unknown/illegal subscriber.  */
227         TAPI_SS_ILLEGALSUBSCRIBER= 0x09, /**<This error is returned when illegality of the access has been @n
228          established by use of authentication procedure. */
229
230         TAPI_SS_BEARERSERVICENOTPROVISIONED= 0x0a, /**<The network returns this error when it is requested to  @n
231          perform an operation on a supplementary service  */
232         TAPI_SS_TELESERVICENOTPROVISIONED= 0x0b, /**<The network returns this error when it is requested to perform  @n
233          an operation on a supplementary service  */
234         TAPI_SS_ILLEGALEQUIPMENT= 0x0c, /**<This error is returned when the IMEI check procedure has shown that  @n
235          the IMEI is blacklisted or not whitelisted  */
236         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 */
237         TAPI_SS_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         TAPI_SS_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         TAPI_SS_NOTAVAILABLE= 0x12, /**< SS not available in network */
242         TAPI_SS_SUBSCRIPTIONVIOLATION= 0x13, /**< SS service subscription violation. */
243         TAPI_SS_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         TAPI_SS_FACILITYNOTSUPPORTED= 0x15, /**< SS service facility not supported  */
246         TAPI_SS_ABSENTSUBSCRIBER= 0x1b, /**< This error is returned when the subscriber has activated the detach service or the system detects the absence condition */
247
248         TAPI_SS_SYSTEMFAILURE= 0x22, /**< This error is returned by the network, when it cannot perform an operation because of a failure in the network */
249         TAPI_SS_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         TAPI_SS_UNEXPECTEDDATAVALUE= 0x24, /**< SS error indicating unexpected data value on network side *//**< SS operation barred.  */
252         TAPI_SS_PWREGISTRATIONFAILURE= 0x25, /**< SS error indicating change password failure. */
253         TAPI_SS_NEGATIVEPWCHECK= 0x26, /**< SS error indicating negative password check.  */
254         TAPI_SS_NUMBEROFPWATTEMPTSVIOLATION= 0x2b, /**< SS error indicating barring password attempts violated.  */
255
256         TAPI_SS_UNKNOWNALPHABET= 0x47, /**< SS error indicating unknown SS data coding of alphabet */
257         TAPI_SS_USSDBUSY= 0x48, /**< SS error indicating USSD Busy(Already SS / USSD is ongoing).  */
258
259         TAPI_SS_REJECTEDBYUSER= 0x79, /**< SS operation rejected by user.  */
260         TAPI_SS_REJECTEDBYNETWORK=0x7a, /**< SS operation rejected by network.  */
261         TAPI_SS_DEFLECTIONTOSERVEDSUBSCRIBER= 0x7b, /**< This error is returned if a diversion to the served  @n
262          subscriber's number was requested.  */
263         TAPI_SS_SPECIALSERVICECODE= 0x7c, /**< This error is returned if diversion to a special service code was requested.  */
264         TAPI_SS_INVALIDDEFLECTEDTONUMBER= 0x7d, /**< SS error indicating the invalid deflected to number.  */
265         TAPI_SS_MAXNOMPTYEXCEEDED= 0x7e, /**< SS error indicating Maximum MPTY is reached.  */
266         TAPI_SS_RESOURCESNOTAVAILABLE= 0x7f, /**< SS error indicating resources not available in network.  */
267
268         TAPI_SS_TIMEREXPIRE, /**< SS operation timer expired on network. */
269         TAPI_SS_NET_NOT_ALLOWED_EMERGENCY_CALLS_ONLY, /**< SS operation is not allowed by network.  */
270         TAPI_SS_UNKNOWNERROR, /**< SS error indicating unknown error  */
271         TAPI_SS_OEM_NOT_SUPPORTED /**< If oem do not support any of SS requests, then this error will be returned back */
272 } TelSsCause_t;
273
274 /**
275  *   The status of a supplementary service feature (e.g. Call Forwarding or Call Barring). @n
276  *   These enumerated values should be used as masks
277  */
278 typedef enum {
279         TAPI_SS_STATUS_REGISTERED = 0x01, /**< Provisioned & registered (but not active/active-quiescent */
280         TAPI_SS_STATUS_PROVISIONED, /**<Provisioned but not registered (or active/active-quiescent) */
281         TAPI_SS_STATUS_ACTIVE, /**< Provisioned & registered & active */
282         TAPI_SS_STATUS_QUIESCENT, /**< Provisioned & registered & active but quiescent */
283         TAPI_SS_STATUS_NOTHING /**< Not provisioned */
284 } TelSsStatus_t;
285
286 /**
287  * These are the four types of identity presentation / restriction services.
288  */
289 typedef enum {
290         TAPI_CALLING_LINE_IDENTITY_PRESENTATION= 0x01, /**< identify the party calling this phone */
291         TAPI_CALLING_LINE_IDENTITY_RESTRICTION, /**< hide the identity of this phone when calling others */
292         TAPI_CONNECTED_LINE_IDENTITY_PRESENTATION, /**< identify the party to whom the calling party (this phone) is connected */
293         TAPI_CONNECTED_LINE_IDENTITY_RESTRICTION, /**< restrict yourself from being identified by incoming calls, such as forwarded calls */
294         TAPI_CALLED_LINE_IDENTITY_PRESENTATION, /**< Called line identity presentation  */
295         TAPI_CALLING_NAME_PRESENTATION /**< Calling Name Presentation */
296 } TelSsLineIdentificationType_t;
297
298 /**
299  *  This enumeration defines the cli service status .
300  */
301 typedef enum {
302         TAPI_CLI_STATUS_NOT_PROVISONED = 0x01, /**<Service not provided by the service provider */
303         TAPI_CLI_STATUS_PROVISIONED, /**<Service is provided by the service provider */
304         TAPI_CLI_STATUS_ACTIVATED, /**<Service is activated at the network */
305         TAPI_CLI_STATUS_UNKOWN, /**<Service status is unknown*/
306         TAPI_CLI_STATUS_TEMP_RESTRICTED, /**<Service is temporarily restricted */
307         TAPI_CLI_STATUS_TEMP_ALLOWED /**<Service is temporarily allowed */
308 } TelSsCliStatus_t;
309
310 /**
311  *  This enumeration defines the values for Cli service type .
312  */
313 typedef enum {
314         TAPI_SS_CLI_CLIP = 0x01, /**< Calling Line Identification Presentation. */
315         TAPI_SS_CLI_CLIR = 0x02, /**<  Calling Line Identification Restriction. */
316         TAPI_SS_CLI_COLP = 0x03, /**<  Connected Line Identification Presentation. */
317         TAPI_SS_CLI_COLR = 0x04, /**<  Connected Line Identification Restriction. */
318         TAPI_SS_CLI_CDIP = 0x05, /**<  Called Line Identification Presentation. */
319         TAPI_SS_CLI_CNAP = 0x06, /**<  Calling Name Presentation.*/
320 } TelSsCliType_t;
321
322 /**
323  * This enum defines the values for AOC type.
324  */
325 typedef enum {
326         TAPI_SS_AOC_TYPE_RESET = 0x00, /**< Specifies the Reset MAXACM Value. */
327         TAPI_SS_AOC_TYPE_ACM = 0x01, /**< Specifies the Accumulated call meter. */
328         TAPI_SS_AOC_TYPE_CCM = 0x02, /**< Specifies the Current call meter. */
329         TAPI_SS_AOC_TYPE_MAXACM = 0x04, /**< Specifies the Max accumulated call meter. */
330         TAPI_SS_AOC_TYPE_PUC = 0x08 /**< Specifies the Price per unit and currency.*/
331 } TelSsAocType_t;
332
333 typedef enum {
334         TAPI_SS_TYPE_BARRING = 0x00,
335         TAPI_SS_TYPE_FORWARDING,
336         TAPI_SS_TYPE_WAITING,
337         TAPI_SS_TYPE_CLI,
338         TAPI_SS_TYPE_SEND_USSD,
339         TAPI_SS_TYPE_MAX
340 }TelSsInfoType_t;
341
342 /**
343  *  This structure  defines the different parameters related to forward info.
344  */
345 typedef struct {
346         TelSsClass_t Class;
347         TelSsForwardMode_t Mode; /**< Forward Mode */
348         TelSsForwardWhen_t Condition; /**< Forward Condition */
349         char szPhoneNumber[TAPI_CALL_DIALDIGIT_LEN_MAX]; /**< Phone Number*/
350         TelSsNoReplyTime_t NoReplyConditionTimer; /**< No reply wait time 5-30 secs in intervals of 5. */
351 } TelSsForwardInfo_t;
352
353 /**
354  *  This structure defines the values for USSD request type.
355  */
356 typedef struct {
357         TelSsUssdType_t Type;
358         int Length; /**< USSD  String Length */
359         char szString[TAPI_SS_USSD_DATA_SIZE_MAX]; /**< USSD  String */
360 } TelSsUssdMsgInfo_t;
361
362 /**
363  *  This structure  defines the different parameters related to call barring.
364  */
365 typedef struct {
366         TelSsClass_t Class; /**< Call type */
367         TelSsBarringMode_t Mode; /**< Barring mode  */
368         TelSsBarringType_t Type; /**< Barring type */
369         char szPassword[TAPI_SS_GSM_BARR_PW_LEN_MAX]; /**< password */
370 } TelSsBarringInfo_t;
371
372 /**
373  *  This structure  defines the different parameters related to call waiting.
374  */
375 typedef struct {
376         TelSsClass_t Class; /**< Call type */
377         TelSsCallWaitingMode_t Mode; /**< Waiting mode  */
378 } TelSsWaitingInfo_t;
379
380 /**
381  *  This structure  defines the SUPS information message notification type.
382  */
383 typedef struct {
384         TelSsCause_t Cause; /**< Cause */
385         TelSsInfoType_t SsType; /**< SUPS Information  */
386 } TelSsInfo_t;
387
388 /**
389  * This structure defines the release complete message notification type.
390  */
391 typedef struct {
392         unsigned char RelCompMsgLen; /**< Specifies the Release complete msg length.*/
393         unsigned char szRelCompMsg[TAPI_MAX_RELEASE_COMPLETE_DATA_LEN]; /**<  Specifies the Release complete msg. */
394 } TelSsRelCompMsgInfo_t;
395
396 /**
397  * This structure defines the values for AOC request type.
398  */
399
400 typedef struct {
401         float PPM;
402         unsigned char CharTypeOfCurrency;
403         unsigned char szCurrency[TAPI_SS_AOC_CURRENCY_LEN_MAX];
404 } TelAocPucInfo_t;
405
406 typedef struct {
407         TelSsAocType_t AocType; /**< Specifies the AOC type. */
408         unsigned int ACM; /**< Specifies the accumulated call meter value. */
409         unsigned int MaxAcm; /**< Specifies the maximum value of ACM . */
410         float CCM; /**< Specifies the Current call meter value. */
411         float PPM; /**< Specifies the Price per unit value. */
412         unsigned char CharTypeOfCurrency; /**< Specifies the Char type of currency. */
413         unsigned char szCurrency[TAPI_SS_AOC_CURRENCY_LEN_MAX]; /**< Specifies the Currency characters. */
414 } TelCallAocInfo_t;
415
416 /**
417  * This structure defines the values for ss call barring record
418  */
419 typedef struct {
420         int record_num;
421         struct {
422                 TelSsClass_t Class;
423                 TelSsStatus_t Status; /**< SS status  */
424                 TelSsBarringType_t Flavour; /**< Call barring types providing various barring conditions on that basis call be barred */
425         } record[TAPI_SS_RECORD_NUM_MAX]; /**< Specifies the  Maximum of TAPI_SS_RECORD_NUM_MAX records. */
426 } TelSsBarringResp_t;
427
428 /**
429  * This structure defines the values for ss call forwarding record
430  */
431 typedef struct {
432         int record_num;
433         struct {
434                 TelSsClass_t Class;
435                 TelSsStatus_t Status; /**< Call forwarding SS status */
436                 TelSsForwardWhen_t ForwardCondition; /**< Call forward types providing various conditions when call can be forwarded */
437                 int bCallForwardingNumberPresent; /**< Call forwarding number present or not */
438                 unsigned char NoReplyWaitTime;
439                 unsigned char szCallForwardingNumber[TAPI_CALL_DIALDIGIT_LEN_MAX + 1]; /**< forwarded number.[Null Terminated string]*/
440         } record[TAPI_SS_RECORD_NUM_MAX]; /**< Specifies the  Maximum of TAPI_SS_RECORD_NUM_MAX records. */
441 } TelSsForwardResp_t;
442
443 /**
444  * This structure defines the values for ss call waiting record
445  */
446 typedef struct {
447         int record_num;
448         struct {
449                 TelSsClass_t Class;
450                 TelSsStatus_t Status; /**< SS status */
451         } record[TAPI_SS_RECORD_NUM_MAX]; /**< Specifies the  Maximum of TAPI_SS_RECORD_NUM_MAX records. */
452 } TelSsWaitingResp_t;
453
454 /**
455  * This structure defines the values for Calling line identity service
456  */
457 typedef struct {
458         TelSsLineIdentificationType_t Type; /**< Various line identification types */
459         TelSsCliStatus_t Status; /**< Line identification status from network */
460 } TelSsCliResp_t;
461
462 typedef struct {
463         TelSsUssdType_t Type;
464         TelSsUssdStatus_t Status;
465         int Length; /**< USSD  String Length */
466         char szString[TAPI_SS_USSD_DATA_SIZE_MAX]; /**< USSD  String */
467 } TelSsUssdResp_t;
468
469 typedef struct {
470         TelSsUssdStatus_t Status;
471         int Length; /**< USSD  String Length */
472         char szString[TAPI_SS_USSD_DATA_SIZE_MAX]; /**< USSD  String */
473 } TelSsUssdNoti_t;
474
475 typedef struct {
476         float PPM; /**< Specifies the Price per unit value. */
477         unsigned char CharTypeOfCurrency; /**< Specifies the Char type of currency. */
478         unsigned char szCurrency[TAPI_SS_AOC_CURRENCY_LEN_MAX]; /**< Specifies the Currency characters. */
479 } TelSsAoc_ppm_info_t;
480
481 #ifdef __cplusplus
482 }
483 #endif
484
485 #endif // _TEL_SS_H_
486 /**
487  * @}
488  */