upload tizen1.0 source
[framework/telephony/libslp-tapi.git] / include / common / 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_FORWARD_WHEN_UNCONDITIONAL_EV, /**< Unconditional */
68         TAPI_SS_FORWARD_WHEN_BUSY_EV, /**< When Busy */
69         TAPI_SS_FORWARD_WHEN_NO_ANSWER_EV, /**< When No Reply */
70         TAPI_SS_FORWARD_WHEN_NOT_REACHABLE_EV, /**< When Not Reachable */
71         TAPI_SS_FORWARD_WHEN_ALL_FORWARDING_EV, /**< Forward All Calls */
72         TAPI_SS_FORWARD_WHEN_ALL_CONDITIONAL_EV, /**< Conditional */
73 } TelSsForwardWhen_t;
74
75 /**
76  * 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.
77  */
78 typedef enum {
79         TAPI_CALL_BARRING_ALL, /**< Barring all outgoing and incoming calls */
80         TAPI_CALL_BARRING_OUTGOING, /**< Barring outgoing call */
81         TAPI_CALL_BARRING_ALL_OUTGOING_CALLS, /**< Barring all outgoing calls */
82         TAPI_CALL_BARRING_ALL_OUTGOING_INTERN_CALL, /**< Barring all outgoing international calls */
83         TAPI_CALL_BARRING_ALL_OUTGOING_INTERN_CALL_EXCEPT, /**< Barring all international outgoing */
84         TAPI_CALL_BARRING_INCOMING, /**< Barring the incoming call */
85         TAPI_CALL_BARRING_ALL_INCOMING_CALLS, /**< Barring all incoming calls */
86         TAPI_CALL_BARRING_ALL_INCOMING_CALLS_ROAMING, /**< Barring all incoming calls while roaming */
87         TAPI_CALL_BARRING_ALL_INCOMING_CALLS_INSIM, /**< Barring Incoming Calls from numbers which is not stored in the SIM memory */
88 } TelSsCallBarType_t;
89
90 /*
91  * The types of telecommunication services are used for setting the statuses of supplementary services.
92  * They are typically not supported in IS-2000 or IS-136. See GSM 02.30 Annex C and GSM 22.030 Annex C.
93  */
94 typedef enum {
95         TAPI_SS_TS_NONE = 0x00, /**< Teleservice None*/
96
97         TAPI_SS_TS_ALL_TELESERVICES, /**< All Teleservices */
98         TAPI_SS_TS_ALL_SPEECH, /**< All Speech Services */
99         TAPI_SS_TS_ALL_DATA_TELESERVICES, /**< All Data Teleservices */
100         TAPI_SS_TS_FACS, /**< All Fax Service */
101         TAPI_SS_TS_SMS, /**< SMS service         */
102
103         TAPI_SS_TS_ALL_TELESERVICES_EXCEPT_SMS, /**< All teleservice except SMS */
104         TAPI_SS_TS_ALL_PLMN_SPEC_TELE, /**< PLMN specific teleservices*/
105         TAPI_SS_TS_PLMN_SPEC_TELE_1, /**< PLMN specific teleservice 1*/
106         TAPI_SS_TS_PLMN_SPEC_TELE_2, /**< PLMN specific teleservice 2*/
107         TAPI_SS_TS_PLMN_SPEC_TELE_3, /**< PLMN specific teleservice 3*/
108
109         TAPI_SS_TS_PLMN_SPEC_TELE_4, /**< PLMN specific teleservice 4*/
110         TAPI_SS_TS_PLMN_SPEC_TELE_5, /**< PLMN specific teleservice 5*/
111         TAPI_SS_TS_PLMN_SPEC_TELE_6, /**< PLMN specific teleservice 6*/
112         TAPI_SS_TS_PLMN_SPEC_TELE_7, /**< PLMN specific teleservice 7*/
113         TAPI_SS_TS_PLMN_SPEC_TELE_8, /**< PLMN specific teleservice 8*/
114
115         TAPI_SS_TS_PLMN_SPEC_TELE_9, /**< PLMN specific teleservice 9*/
116         TAPI_SS_TS_PLMN_SPEC_TELE_A, /**< PLMN specific teleservice 10*/
117         TAPI_SS_TS_PLMN_SPEC_TELE_B, /**< PLMN specific teleservice 11*/
118         TAPI_SS_TS_PLMN_SPEC_TELE_C, /**< PLMN specific teleservice 12*/
119         TAPI_SS_TS_PLMN_SPEC_TELE_D, /**< PLMN specific teleservice 13*/
120
121         TAPI_SS_TS_PLMN_SPEC_TELE_E, /**< PLMN specific teleservice 14*/
122         TAPI_SS_TS_PLMN_SPEC_TELE_F, /**< PLMN specific teleservice 15*/
123         TAPI_SS_TS_PLMN_SPEC_TELE_, /**< PLMN specific teleservice*/
124         TAPI_SS_BS_ALL_BEARER_SERVICES, /**< All PLMN specific bearer services*/
125         TAPI_SS_BS_ALL_DATA_CDA, /**< All Data CDA*/
126
127         TAPI_SS_BS_ALL_DATA_CDS, /**< All Data CDS*/
128         TAPI_SS_BS_ALL_ASYNCHRONOUS, /**< All  Asynchronous */
129         TAPI_SS_BS_ALL_SYNCHRONOUS, /**< All  Synchronous */
130         TAPI_SS_BS_DATA_CIRCUIT_SYNC, /**< All Data Circuit Synchronous */
131         TAPI_SS_BS_DATA_CIRCUIT_ASYNC, /**< All Data Circuit Asynchronous */
132
133         TAPI_SS_BS_DATA_ALL_PDS, /**< All Data PDS */
134         TAPI_SS_BS_ALL_DATA_PADCA, /**< All Data PADCA */
135         TAPI_SS_BS_ALL_PLMN_SPEC_BS, /**< All PLMN SPEC BS */
136         TAPI_SS_BS_PLMN_SPEC_TELE_1, /**< PLMN specific bearer service 1*/
137         TAPI_SS_BS_PLMN_SPEC_TELE_2, /**< PLMN specific bearer service 2*/
138
139         TAPI_SS_BS_PLMN_SPEC_TELE_3, /**< PLMN specific bearer service 3*/
140         TAPI_SS_BS_PLMN_SPEC_TELE_4, /**< PLMN specific bearer service 4*/
141         TAPI_SS_BS_PLMN_SPEC_TELE_5, /**< PLMN specific bearer service 5*/
142         TAPI_SS_BS_PLMN_SPEC_TELE_6, /**< PLMN specific bearer service 6*/
143         TAPI_SS_BS_PLMN_SPEC_TELE_7, /**< PLMN specific bearer service 7*/
144
145         TAPI_SS_BS_PLMN_SPEC_TELE_8, /**< PLMN specific bearer service 8*/
146         TAPI_SS_BS_PLMN_SPEC_TELE_9, /**< PLMN specific bearer service 9*/
147         TAPI_SS_BS_PLMN_SPEC_TELE_A, /**< PLMN specific bearer service 10*/
148         TAPI_SS_BS_PLMN_SPEC_TELE_B, /**< PLMN specific bearer service 11 */
149         TAPI_SS_BS_PLMN_SPEC_TELE_C, /**< PLMN specific bearer service 12 */
150
151         TAPI_SS_BS_PLMN_SPEC_TELE_D, /**< PLMN specific bearer service 13 */
152         TAPI_SS_BS_PLMN_SPEC_TELE_E, /**< PLMN specific bearer service 14 */
153         TAPI_SS_BS_PLMN_SPEC_TELE_F, /**< PLMN specific bearer service 15*/
154         TAPI_SS_TS_ALL_DATA, /**< All Data*/
155         TAPI_SS_TS_DATA_CIRCUIT_SYNC, /**< Data Circuit Sync*/
156
157         TAPI_SS_TS_MULTIPLE, /**< multiple*/
158         TAPI_SS_TS_TELEPHONY, /**< Telephony */
159         TAPI_SS_TS_DATA_CIRCUIT_ASYNC, /**< Data Circuit Async */
160         TAPI_SS_TS_DATA_PACKET, /**< Data packet */
161
162         /* CPHS - AUXILIARY SERVICE */
163         TAPI_SS_TS_AUX_VOICE, /**< All Auxiliary Voice ( Auxiliary telephony ) */
164
165         TAPI_SS_ALL_TELE_BEARER, /**< all tele and bearer services */
166         TAPI_SS_TS_ALL_TELE_AND_BEARER_SERVICES, /**< Teleservices & Bearer Services */
167 } TelSsTeleService_t;
168
169 /**
170  * This enumeration defines the ussd response type
171  */
172 typedef enum {
173         TAPI_USSD_RES_UNKNOWN_ALPHABET, /**< USSD data is unknown */
174         TAPI_USSD_RES_DISPL_BUSY, /**< USSD Data response is display busy  */
175         TAPI_USSD_RES_OK, /**< USSD Data is encoded and properly propagated */
176         TAPI_USSD_RES_NONE /**< NO USSD Response from client */
177 } TelSsUssdRespType_t;
178
179 /**
180  * This enumeration defines the ussd Indication Type
181  */
182 typedef enum {
183         TAPI_USSD_IND_NOTIFY = 0x00, /**< notify : to display USSD data to user */
184         TAPI_USSD_IND_NO_ACTION_REQUIRE = 0x01, /**< No further user action required */
185         TAPI_USSD_IND_ACTION_REQUIRE = 0x02, /**< Further user action required*/
186         TAPI_USSD_IND_TERMINATED_BY_NET = 0x03, /**< 0x03 : USSD terminated by network */
187         TAPI_USSD_IND_OTHER_CLIENT = 0x04, /**< 0x04 : other local client has responded */
188         TAPI_USSD_IND_NOT_SUPPORT = 0x05, /**< 0x05 : operation not supported */
189         TAPI_USSD_IND_TIME_OUT = 0x06 /**< 0x06 : Time out when there is no response from network */
190 } TelSsUssdIndType_t;
191
192 /**
193  *
194  * This enum defines the values for USSD type.
195  */
196 typedef enum {
197         TAPI_USSD_USER_INIT = 0x01, /**< USSD request type User Initiated. */
198         TAPI_USSD_USER_RSP, /**< USSD request type User Response. */
199         TAPI_USSD_USER_REL /**< USSD request type User Release. */
200 } TelSsUssdType_t;
201
202 /**
203  *  This enumeration defines the call barring operation mode .
204  */
205 typedef enum {
206         TAPI_SS_CALL_BAR_ACTIVATE, /**< Activate call barring  */
207         TAPI_SS_CALL_BAR_DEACTIVATE, /**< De Activate call barring */
208 } TelSsCallBarOperationMode_t;
209
210 /**
211  *  This enumeration defines the call barring operation mode .
212  */
213 typedef enum {
214         TAPI_SS_CW_ACTIVATE, /**< Activate call barring  */
215         TAPI_SS_CW_DEACTIVATE, /**< De Activate call barring */
216 } TelSsCallWaitOperationMode_t;
217
218 /**
219  *  This enumeration defines the call type .
220  */
221 typedef enum {
222         TAPI_CALL_TYPE_VOICE_EV, /**< Voice Call */
223         TAPI_CALL_TYPE_DATA_EV, /**< Data Call */
224         TAPI_CALL_TYPE_FAX_EV, /**< FAX   Call */
225         TAPI_CALL_TYPE_SHORT_MESS_EV, /**< Short Message */
226         TAPI_CALL_TYPE_ALL_ASYNC_EV, /**< All Async services */
227         TAPI_CALL_TYPE_ALL_SYNC_EV, /**< All sync services */
228         TAPI_CALL_TYPE_DATA_CIRCUIT_SYNC_EV, /**< Data Circuit Sync */
229         TAPI_CALL_TYPE_ALL_TELE_BEARER, /**< all tele and bearer services */
230         TAPI_CALL_TYPE_ALL_TELE, /**< All tele services */
231 } TelSsCallType_t;
232
233 /**
234  *  This enumeration defines the forward mode .
235  */
236 typedef enum {
237         TAPI_CALL_FORWARD_MODE_DISABLE_EV, /**< Deactivate call forwarding  */
238         TAPI_CALL_FORWARD_MODE_ENABLE_EV, /**< Activate call forwarding */
239         TAPI_CALL_FORWARD_MODE_REGISTRATION_EV, /**< Register Call forwarding  */
240         TAPI_CALL_FORWARD_MODE_ERASURE_EV, /**< De-register call forwarding */
241 } TelSsForwardMode_t;
242
243 /**
244  *  This enumeration defines the forward type .
245  */
246 typedef enum {
247         TAPI_CS_FORWARD_TYPE_VOICE_EV = 0, /**< Voice call forward */
248         TAPI_CS_FORWARD_TYPE_ALL_ASYNC_EV, /**< All Async services */
249         TAPI_CS_FORWARD_TYPE_ALL_SYNC_EV, /**< All sync services */
250         TAPI_CS_FORWARD_TYPE_DATA_EV, /**< Data call forward */
251         TAPI_CS_FORWARD_TYPE_FAX_EV, /**< Fax call forward */
252         TAPI_CS_FORWARD_TYPE_ALL_TELE_BEARER, /**< All tele and bearer services */
253         TAPI_CS_FORWARD_TYPE_ALL_TELE, /**< All tele services */
254         TAPI_CS_FORWARD_TYPE_AUX_VOICE, /**< AUX Voice */
255 } TelSsForwardType_t;
256
257 typedef enum {
258         TAPI_SS_CF_NO_REPLY_TIME_5_SECS = 5, /**< Timer value set to 5secs*/
259         TAPI_SS_CF_NO_REPLY_TIME_10_SECS = 10, /**< Timer value set to 10secs*/
260         TAPI_SS_CF_NO_REPLY_TIME_15_SECS = 15, /**< Timer value set to 15secs*/
261         TAPI_SS_CF_NO_REPLY_TIME_20_SECS = 20, /**< Timer value set to 20secs*/
262         TAPI_SS_CF_NO_REPLY_TIME_25_SECS = 25, /**< Timer value set to 25secs*/
263         TAPI_SS_CF_NO_REPLY_TIME_30_SECS = 30, /**< Timer value set to 30secs*/
264 } TelSsNoReplyTime_t;
265
266 /**
267  *  This enumeration type defines the Supplementary service types
268  */
269 typedef enum {
270         TAPI_SS_TYPE_BARRING, /**< Barring SS */
271         TAPI_SS_TYPE_FORWARDING, /**<  Forward SS  */
272         TAPI_SS_TYPE_WAITING, /**<  Waiting SS */
273         TAPI_SS_TYPE_IDENTIFICATION, /**< Identification SS  */
274         TAPI_SS_TYPE_CNAP, /**< CNAP SS */
275         TAPI_SS_TYPE_USSD, /**<  Unstructured supplementary data SS  */
276         TAPI_SS_TYPE_AOC, /**< AOC SS*/
277 } TelSsType_t;
278
279 /**
280  *  Describes whether a supplementary service request was a success or a failure; and if it failed, why.
281  */
282 typedef enum {
283         TAPI_SS_SUCCESS, /**<  SS operation was successful */
284         TAPI_SS_TIMEREXPIRE, /**< SS operation timer expired on network. */
285         TAPI_SS_UNKNOWNSUBSCRIBER, /**< SS error indicating unknown/illegal subscriber.  */
286         TAPI_SS_BEARERSERVICENOTPROVISIONED, /**<The network returns this error when it is requested to  @n
287          perform an operation on a supplementary service  */
288         TAPI_SS_TELESERVICENOTPROVISIONED, /**<The network returns this error when it is requested to perform  @n
289          an operation on a supplementary service  */
290         TAPI_SS_ILLEGALSSOPERATION, /**<This error is returned by the network when it is requested to perform an illegal operation @n
291          which is defined as not applicable for the relevant supplementary service */
292         TAPI_SS_ERRORSTATUS, /**<This error is returned by the network when it is requested to perform an operation @n
293          which is not compatible with the current status of the relevant supplementary service. */
294         TAPI_SS_NOTAVAILABLE, /**< SS not available in network */
295         TAPI_SS_SUBSCRIPTIONVIOLATION, /**< SS service subscription violation. */
296         TAPI_SS_INCOMPATIBILITY, /**< This error is returned by the network when it is requested for a supplementary service operation incompatible with the @n
297          status of another supplementary service or with the teleservice or bearer service for which the operation is requested */
298         TAPI_SS_SYSTEMFAILURE, /**< This error is returned by the network, when it cannot perform an operation because of a failure in the network */
299         TAPI_SS_DATAMISSING, /**< This error is returned by the network when an optional parameter is missing in an invoke component @n
300          or an inner data structure, while it is required by the context of the request. */
301         TAPI_SS_UNEXPECTEDDATAVALUE, /**< SS error indicating unexpected data value on network side *//**< SS operation barred.  */
302         TAPI_SS_PWREGISTRATIONFAILURE, /**< SS error indicating change password failure. */
303         TAPI_SS_NEGATIVEPWCHECK, /**< SS error indicating negative password check.  */
304         TAPI_SS_FACILITYNOTSUPPORTED, /**< SS service facility not supported  */
305         TAPI_SS_RESOURCESNOTAVAILABLE, /**< SS error indicating resources not available in network.  */
306         TAPI_SS_MAXNOMPTYEXCEEDED, /**< SS error indicating Maximum MPTY is reached.  */
307         TAPI_SS_CALLBARRED, /**< This error is returned by the network to the MS when call independent subscriber control procedures are barred by the operator */
308         TAPI_SS_NUMBEROFPWATTEMPTSVIOLATION, /**< SS error indicating barring password attempts violated.  */
309         TAPI_SS_ABSENTSUBSCRIBER, /**< This error is returned when the subscriber has activated the detach service or the system detects the absence condition */
310         TAPI_SS_ILLEGALSUBSCRIBER, /**<This error is returned when illegality of the access has been @n
311          established by use of authentication procedure. */
312         TAPI_SS_ILLEGALEQUIPMENT, /**<This error is returned when the IMEI check procedure has shown that  @n
313          the IMEI is blacklisted or not whitelisted  */
314         TAPI_SS_USSDBUSY, /**< SS error indicating USSD Busy(Already SS / USSD is ongoing).  */
315         TAPI_SS_UNKNOWNALPHABET, /**< SS error indicating unknown SS data coding of alphabet */
316         TAPI_SS_INVALIDDEFLECTEDTONUMBER, /**< SS error indicating the invalid deflected to number.  */
317         TAPI_SS_DEFLECTIONTOSERVEDSUBSCRIBER, /**< This error is returned if a diversion to the served  @n
318          subscriber's number was requested.  */
319         TAPI_SS_SPECIALSERVICECODE, /**< This error is returned if diversion to a special service code was requested.  */
320         TAPI_SS_REJECTEDBYUSER, /**< SS operation rejected by user.  */
321         TAPI_SS_REJECTEDBYNETWORK, /**< SS operation rejected by network.  */
322         TAPI_SS_NET_NOT_ALLOWED_EMERGENCY_CALLS_ONLY, /**< SS operation is not allowed by network.  */
323         TAPI_SS_UNKNOWNERROR, /**< SS error indicating unknown error  */
324         TAPI_SS_OEM_NOT_SUPPORTED /**< If oem do not support any of SS requests, then this error will be returned back */
325 } TelSsCause_t;
326
327 /**
328  *   The status of a supplementary service feature (e.g. Call Forwarding or Call Barring). @n
329  *   These enumerated values should be used as masks
330  */
331 typedef enum {
332         TAPI_SS_STATUS_ACTIVE, /**< Provisioned & registered & active */
333         TAPI_SS_STATUS_REGISTERED, /**< Provisioned & registered (but not active/active-quiescent */
334         TAPI_SS_STATUS_PROVISIONED, /**<Provisioned but not registered (or active/active-quiescent) */
335         TAPI_SS_STATUS_QUIESCENT, /**< Provisioned & registered & active but quiescent */
336         TAPI_SS_STATUS_NOTHING /**< Not provisioned */
337 } TelSsStatus_t;
338
339 /**
340  * These are the four types of identity presentation / restriction services.
341  */
342 typedef enum {
343         TAPI_CALLING_LINE_IDENTITY_PRESENTATION, /**< identify the party calling this phone */
344         TAPI_CALLING_LINE_IDENTITY_RESTRICTION, /**< hide the identity of this phone when calling others */
345         TAPI_CONNECTED_LINE_IDENTITY_PRESENTATION, /**< identify the party to whom the calling party (this phone) is connected */
346         TAPI_CONNECTED_LINE_IDENTITY_RESTRICTION, /**< restrict yourself from being identified by incoming calls, such as forwarded calls */
347         TAPI_CALLED_LINE_IDENTITY_PRESENTATION, /**< Called line identity presentation  */
348         TAPI_CALLING_NAME_PRESENTATION /**< Calling Name Presentation */
349 } TelSsLineIdentificationType_t;
350
351 /**
352  *  This enumeration defines the cli service status .
353  */
354 typedef enum {
355         TAPI_CLI_STATUS_NOT_PROVISONED = 0x01, /**<Service not provided by the service provider */
356         TAPI_CLI_STATUS_PROVISIONED, /**<Service is provided by the service provider */
357         TAPI_CLI_STATUS_ACTIVATED, /**<Service is activated at the network */
358         TAPI_CLI_STATUS_UNKOWN, /**<Service status is unknown*/
359         TAPI_CLI_STATUS_TEMP_RESTRICTED, /**<Service is temporarily restricted */
360         TAPI_CLI_STATUS_TEMP_ALLOWED /**<Service is temporarily allowed */
361 } TelSsCliStatus_t;
362
363 /**
364  *  This enumeration defines the values for Cli service type .
365  */
366 typedef enum {
367         TAPI_SS_CLI_CLIP = 0x01, /**< Calling Line Identification Presentation. */
368         TAPI_SS_CLI_CLIR = 0x02, /**<  Calling Line Identification Restriction. */
369         TAPI_SS_CLI_COLP = 0x03, /**<  Connected Line Identification Presentation. */
370         TAPI_SS_CLI_COLR = 0x04, /**<  Connected Line Identification Restriction. */
371         TAPI_SS_CLI_CDIP = 0x05, /**<  Called Line Identification Presentation. */
372         TAPI_SS_CLI_CNAP = 0x06, /**<  Calling Name Presentation.*/
373 } TelSsCliType_t;
374
375 /**
376  * This enum defines the values for AOC type.
377  */
378 typedef enum {
379         TAPI_SS_AOC_TYPE_RESET = 0x00, /**< Specifies the Reset MAXACM Value. */
380         TAPI_SS_AOC_TYPE_ACM = 0x01, /**< Specifies the Accumulated call meter. */
381         TAPI_SS_AOC_TYPE_CCM = 0x02, /**< Specifies the Current call meter. */
382         TAPI_SS_AOC_TYPE_MAXACM = 0x04, /**< Specifies the Max accumulated call meter. */
383         TAPI_SS_AOC_TYPE_PUC = 0x08 /**< Specifies the Price per unit and currency.*/
384 } TelSsAocType_t;
385
386 /**
387  *  This structure  defines the different parameters related to forward info.
388  */
389 typedef struct {
390         TelSsForwardMode_t Mode; /**< Forward Mode */
391         TelSsForwardType_t Type; /**< Forward Type */
392         TelSsForwardWhen_t Condition; /**< Forward Condition */
393         char szPhoneNumber[TAPI_CALL_DIALDIGIT_LEN_MAX]; /**< Phone Number*/
394         TelSsNoReplyTime_t NoReplyConditionTimer; /**< No reply wait time 5-30 secs in intervals of 5. */
395 } TelSsForwardInfo_t;
396
397 /**
398  *  This structure defines the values for USSD request type.
399  */
400 typedef struct {
401         int UssdStringLength; /**< USSD  String Length */
402         char szUssdString[TAPI_SS_USSD_DATA_SIZE_MAX]; /**< USSD  String */
403 } TelSsUssdMsgInfo_t;
404
405 /**
406  *This structure defines the UssdMessageResponse Information
407  */
408 typedef struct {
409         TelSsUssdRespType_t SsRespType; /**< USSD Response Type*/
410         TelSsUssdIndType_t IndType; /**< USSD Indication Type*/
411         TelSsUssdMsgInfo_t UssdInfo; /**< USSD Data*/
412 } TelSsUssdMsgRspInfo_t;
413
414 typedef struct {
415         TelSsUssdIndType_t IndType; /**< USSD Indication Type*/
416         TelSsUssdMsgInfo_t UssdInfo; /**< USSD Data */
417 } TelSsUssdMsgIndInfo_t;
418
419 /**
420  *  This structure  defines the different parameters related to call barring.
421  */
422 typedef struct {
423         TelSsCallBarOperationMode_t Mode; /**< Barring mode  */
424         TelSsCallBarType_t Type; /**< Barring type */
425         TelSsCallType_t CallType; /**< Call type */
426         char szPassword[TAPI_SS_GSM_BARR_PW_LEN_MAX]; /**< password */
427 } TelSsCallBarringInfo_t;
428
429 /**
430  *  This structure  defines the different parameters related to call waiting.
431  */
432 typedef struct {
433         TelSsCallWaitOperationMode_t Mode; /**< Waiting mode  */
434         TelSsCallType_t CallType; /**< Call type */
435 } TelSsWaitingInfo_t;
436
437 /**
438  * This structure defines the values for Calling line identity service
439  */
440 typedef struct {
441         TelSsLineIdentificationType_t IdentificationType; /**< Various line identification types */
442         TelSsCliStatus_t CliStatus; /**< Line identification status from network */
443 } TelSsCliRecord_t;
444
445 /**
446  * This structure defines the release complete message notification type.
447  */
448 typedef struct {
449         unsigned char RelCompMsgLen; /**< Specifies the Release complete msg length.*/
450         unsigned char szRelCompMsg[TAPI_MAX_RELEASE_COMPLETE_DATA_LEN]; /**<  Specifies the Release complete msg. */
451 } TelSsRelCompMsgInfo_t;
452
453 /**
454  * This structure defines the values for AOC request type.
455  */
456
457 typedef struct {
458         float PPM;
459         unsigned char CharTypeOfCurrency;
460         unsigned char szCurrency[TAPI_SS_AOC_CURRENCY_LEN_MAX];
461 } TelAocPucInfo_t;
462
463 typedef struct {
464         TelSsAocType_t AocType; /**< Specifies the AOC type. */
465         unsigned int ACM; /**< Specifies the accumulated call meter value. */
466         unsigned int MaxAcm; /**< Specifies the maximum value of ACM . */
467         float CCM; /**< Specifies the Current call meter value. */
468         float PPM; /**< Specifies the Price per unit value. */
469         unsigned char CharTypeOfCurrency; /**< Specifies the Char type of currency. */
470         unsigned char szCurrency[TAPI_SS_AOC_CURRENCY_LEN_MAX]; /**< Specifies the Currency characters. */
471 } TelCallAocInfo_t;
472
473 /**
474  * This structure defines the values for ss call barring record
475  */
476 typedef struct {
477         struct {
478                 TelSsStatus_t Status; /**< SS status  */
479                 TelSsCallBarType_t Flavour; /**< Call barring types providing various barring conditions on that basis call be barred */
480                 TelSsTeleService_t TeleCommService; /**<  Teleservice */
481         } rec_class[TAPI_SS_RECORD_NUM_MAX]; /**< Specifies the  Maximum of TAPI_SS_RECORD_NUM_MAX records. */
482 } TelSsCallBarringRecord_t;
483
484 /**
485  * This structure defines the values for ss call forwarding record
486  */
487 typedef struct {
488         struct {
489                 TelSsStatus_t Status; /**< Call forwarding SS status */
490                 TelSsForwardWhen_t ForwardCondition; /**< Call forward types providing various conditions when call can be forwarded */
491                 TelSsTeleService_t TeleCommService; /**< Teleservice type */
492                 int bCallForwardingNumberPresent; /**< Call forwarding number present or not */
493                 unsigned char NoReplyWaitTime;
494                 unsigned char szCallForwardingNumber[TAPI_CALL_DIALDIGIT_LEN_MAX]; /**< forwarded number.[Null Terminated string]*/
495         } rec_class[TAPI_SS_RECORD_NUM_MAX]; /**< Specifies the  Maximum of TAPI_SS_RECORD_NUM_MAX records. */
496
497 } TelSsForwardRecord_t;
498
499 /**
500  * This structure defines the values for ss call waiting record
501  */
502 typedef struct {
503         struct {
504                 TelSsStatus_t Status; /**< SS status */
505                 TelSsTeleService_t TeleCommService; /**< Teleservice */
506         } rec_class[TAPI_SS_RECORD_NUM_MAX]; /**< Specifies the  Maximum of TAPI_SS_RECORD_NUM_MAX records. */
507 } TelSsCallWaitingRecord_t;
508
509 /**
510  *This structure defines the parameters for SS record type
511  */
512 typedef union {
513         TelSsCallWaitingRecord_t WaitingRecord; /**< Call waiting information */
514         TelSsCallBarringRecord_t BarringRecord; /**< Call barring information*/
515         TelSsCliRecord_t CliRecord; /**< Line identification information */
516         TelSsForwardRecord_t ForwardingRecord; /**< Call forward record information */
517 } TelSsRecord_t;
518
519 /**
520  * related all kind of SS information
521  */
522 typedef struct {
523         TelSsType_t SsType; /**< Supplementary service type */
524         TelSsStatus_t SsStatus; /**<SS status information */
525         unsigned int NumberOfRecords; /**< Number of records present for Call Barring / Call forwarding / Call waiting. In case of any error, this parameter value will be set to zero.*/
526         TelSsRecord_t SsRecord; /**< SS record (Union of Call Barring / Call Forwarding/Call waiting / line identification information). This structure can be Null when number_of_records parameter is zero.*/
527         TelSsTeleService_t SsTeleserviceType; /**< Teleservice type */
528 } TelSsInfo_t;
529
530 typedef struct {
531         float PPM; /**< Specifies the Price per unit value. */
532         unsigned char CharTypeOfCurrency; /**< Specifies the Char type of currency. */
533         unsigned char szCurrency[TAPI_SS_AOC_CURRENCY_LEN_MAX]; /**< Specifies the Currency characters. */
534 } TelSsAoc_ppm_info_t;
535
536 #ifdef __cplusplus
537 }
538 #endif
539
540 #endif // _TEL_SS_H_
541 /**
542  * @}
543  */