7bfbee37d0a37438d3c336bc3b574ec2a1bb7077
[framework/telephony/libslp-tapi.git] / wearable / include / TelCall.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  TAPI_CALL       CALL
25  * @{
26  *
27  * @file TelCall.h
28
29  @brief This file serves as a "C" header file defines structures for Tapi Call Services. \n
30  It contains a sample set of constants, enums, structs that would be required by applications.
31  */
32
33 #ifndef _TEL_CALL_H_
34 #define _TEL_CALL_H_
35
36 #include <TelSs.h>
37 #include <TelDefines.h>
38
39 #ifdef __cplusplus
40 extern "C" {
41 #endif
42
43 #define TAPI_CALLING_NAME_SIZE_MAX      80      /**< The maximum length of the string for calling party name.   */
44 #define TAPI_CALL_UUS_DATA_LEN_MAX      131     /**< The Maximum length of the user to user singnalling data string.   */
45 #define TAPI_CALL_DISPLAY_RECORD_MAX    32      /**< The maximum length of the string for display record in CDMA   */
46 #define MAX_TAPI_CALL_COUNT                             6       /**< Maximum number of call can be possible at a time */
47 #define MAX_TAPI_CONF_CALL_COUNT                5       /**< Maximum number of Call can be possible in a conference call at a time */
48 #define INVALID_CALL_HANDLE                             0               /**< TS_UINT is used for call handle */
49
50 /* Call */
51 #define TAPI_CALL_DIALDIGIT_LEN_MAX             82              /**< Maximum Dialling Digit Length  */
52 #define TAPI_CALL_SUBADDRESS_LEN_MAX    40              /**< Maximum Call Subaddress Length */
53 #define TAPI_CALL_NUMBER_LEN_MAX                7               /**< Dialling Num length */
54 #define TAPI_CONTEXT_CALL_SIZE_MAX              6               /**< Maximum Call context */
55 #define TAPI_CALL_DIAL_NUMBER_LEN_MAX   82              /**< Maximum Dail Number Length */
56
57 /**
58  * @enum TelCallCause_t
59  * This structure defines the values for Call Cause.
60  */
61 typedef enum {
62         TAPI_CAUSE_SUCCESS,                             /**< Success  */
63         TAPI_CAUSE_ACCESSDISCARD,                       /**< Access discarded  */
64         TAPI_CAUSE_BARR_BYOPERATOR,             /**< Barred by operator */
65         TAPI_CAUSE_BEARERMODE_NOTIMPL,          /**< Bearer mode not implemented */
66         TAPI_CAUSE_BEARERMODE_RESTRICTED,       /**< Bearer mode restricted */
67         TAPI_CAUSE_BEARERMODE_UNAUTH,           /**< Bearer mode un authorized */
68         TAPI_CAUSE_BEARERMODE_UNAVAIL,          /**< Bearer mode not available */
69         TAPI_CAUSE_BUSY,                                        /**< (Network/Server) busy */
70         TAPI_CAUSE_CALLMETER_EXPIRED,           /**< Call meter expired */
71         TAPI_CAUSE_CALLNO_ERROR,                        /**< Call number error */
72         TAPI_CAUSE_CKTUNAVAIL,                          /**< Circuit channel unavailable */                     //10
73         TAPI_CAUSE_CONGESTION,                          /**< Congestion happened */
74         TAPI_CAUSE_NO_CIRCUIT_AVAIL,            /**< Circuit  not available */
75         TAPI_CAUSE_DESTIN_INCOMPAT,             /**< Destination incompatibility */
76         TAPI_CAUSE_DTMF_NOSPEECH,                       /**< No speech in DTMF */
77         TAPI_CAUSE_DTMF_REJECTED,                       /**< DTMF rejected */
78         TAPI_CAUSE_FACILITY_NOTIMPL,            /**< Facility not implemented */
79         TAPI_CAUSE_FACILITY_NOTSUBSCRIBED,      /**< Facility not subscribed */
80         TAPI_CAUSE_INCOMINGCUGCALLS_BARRED, /**< Incoming CUG Calls barred */
81         TAPI_CAUSE_INVALNUM,                            /**< Invalid number */
82         TAPI_CAUSE_MPTY_ERROR,                          /**< Multiparty error */                                                //20
83         TAPI_CAUSE_NOANSWER,                            /**< No answer  */
84         TAPI_CAUSE_NONCUGMEMBER,                        /**< Non CUG member */
85         TAPI_CAUSE_NUMBERCHANGED,                       /**< Number changed */
86         TAPI_CAUSE_NUMBER_ERROR,                        /**< Number error */
87         TAPI_CAUSE_NWFAILURE,                           /**< Network failure */
88         TAPI_CAUSE_OPERATIONUNAVAIL,            /**< Operation not available */
89         TAPI_CAUSE_OUTOFORDER,                          /**< Out of order */
90         TAPI_CAUSE_PROTOCOL_ERROR,                      /**< Protocol error */
91         TAPI_CAUSE_QOSUNAVAIL,                          /**< QOS unavailable */
92         TAPI_CAUSE_REJECT,                                      /**< Rejected */                                                                //30
93         TAPI_CAUSE_REJ_FAIL,                            /**< Rejection failed */
94         TAPI_CAUSE_REJ_SRVC_NOT_AVL,            /**< Rejection service not available  */
95         TAPI_CAUSE_REJ_SAT_CALL_CTRL,           /**< Rejection SAT Call Contorl */
96         TAPI_CAUSE_REMOTE_CKTUNAVAIL,           /**< Remote Circuit channel unavailable */
97         TAPI_CAUSE_RESOURCEUNAVAIL,             /**< Resource not available */
98         TAPI_CAUSE_SERVICEID_ERROR,             /**< Service id error */
99         TAPI_CAUSE_SERVICE_NOTIMPL,             /**< Service not implemented */
100         TAPI_CAUSE_SERVICE_UNAVAIL,             /**< Service not available */
101         TAPI_CAUSE_MODIFY_SAME_BEARER,          /**< Modify same bearer */
102         TAPI_CAUSE_MODIFY_NOT_PERMITTED,        /**< Modification not permitted */
103         TAPI_CAUSE_HOLD_FAIL,                           /**< Call hold fail */                                                  //40
104         TAPI_CAUSE_TEMPFAILURE,                 /**< Temporary failure */
105         TAPI_CAUSE_WRONGNUM,                            /**< Wrong number */
106         TAPI_CAUSE_NORMAL_UNSPECIFIED,          /**< Normal but unspecified */
107         TAPI_CAUSE_SSERRINVALIDTIVALUE, /**< SS invalid Transaction ID Value */
108         TAPI_CAUSE_SSERRINVALIDTI,                      /**< SS Invalid transaction ID */
109         TAPI_CAUSE_SSINCOMPATIBLESTATE, /**< SS incompatible state */
110         TAPI_CAUSE_SSERRSYNTAXERROR,            /**< SS syntax error */
111         TAPI_CAUSE_SSPROTOCOLERROR,             /**< Protocol error */
112         TAPI_CAUSE_SSNEGATIVEPASSWORDCHECK, /**< Negative password check */
113         TAPI_CAUSE_SSSENTASPHASE1,                      /**< SS sent as phase1 message */                               //50
114         TAPI_CAUSE_SSERROR,                             /**< Supplementary service error */
115         TAPI_CAUSE_SS_USSD_BUSY,                        /**< Second USSD request will be rejected when already USSD transaction is ongoing. */
116         TAPI_CAUSE_IDLE,                                        /**< Idle */
117         TAPI_CAUSE_NETWORK_SPECIFIC,            /**< Network specific error */
118         TAPI_CAUSE_FADE,                                        /**< voice call was dropped e.g. because of a loss of signal */
119         TAPI_CAUSE_UNKNOWN,                             /**< unknown no details available */
120         TAPI_CAUSE_INCOM_CALL,                          /**< terminated by incoming call */
121         TAPI_CAUSE_ALERT_STOP,                          /**< terminated by alert stop */
122         TAPI_CAUSE_INTERCEPT,                           /**< voice call was dropped by interception */
123         TAPI_CAUSE_REORDER,                             /**< voice call was dropped by reordering */    //60
124         TAPI_CAUSE_CLIENT_END,                          /**< client ended the call */
125         TAPI_CAUSE_ACCESS_CLASS_BLOCKED,        /**< access class blocked */
126         TAPI_CAUSE_MEMCAPEXCEEDED,                      /**< Memory capacity exceeded */
127         TAPI_CAUSE_TYPENOTSUPPORTED,            /**< Type not supported */
128         TAPI_CAUSE_REPLACENOTSUPPORTED, /**< Replace not supported */
129         TAPI_CAUSE_PROTOCOLID_ERROR,            /**< Protocol id error */
130         TAPI_CAUSE_CLASSNOTSUPPORTED,           /**< Class not supported */
131         TAPI_CAUSE_DATACODING_ERROR,            /**< Data coding error */
132         TAPI_CAUSE_INVAL_MSG,                           /**< Invalid message */
133         TAPI_CAUSE_CALL_BARRED,                 /**< Call barred */                                                     //70
134         TAPI_CAUSE_SIM_CALL_CONTROL_CHANGED_TO_SS,              /**< Sim call control changed to SS */
135         TAPI_CAUSE_SIM_CALL_CONTROL_CHANGED_TO_CALL,    /**< SIM Call control changed to call */
136         TAPI_CAUSE_SIM_ERROR,                           /**< SIM error */
137         TAPI_CAUSE_SIM_CALL_CONTROL_MODIFIED,                   /**< SIM call control modified */
138         TAPI_CAUSE_RANDOM_ACCESS_FAILURE,       /**< Random access error */
139         TAPI_CAUSE_LOWER_LAYER_FAILURE, /**< Lower layer error */
140         TAPI_CAUSE_ACCESS_REJECTED,             /**< Access rejected */
141         TAPI_CAUSE_RESET_NOT_ALLOWED,           /**< Reset not allowed */
142         TAPI_CAUSE_EMERGENCY_CALL_NOT_ALLOWED,                  /**< Emergency call not allowed */
143         TAPI_CAUSE_ACCESS_NOT_ALLOWED,          /**< Access not allowed */                                              //80
144         TAPI_CAUSE_RADIO_LINK_FAILURE,          /**< Radio link failure */
145         TAPI_CAUSE_INVALID_IDENTITY,            /**< Invalid identity */
146         TAPI_CAUSE_UNKNOWN_IDENTITY,            /**< Unknown identity */
147         TAPI_CAUSE_UNACCEPTABLE_IDENTITY,       /**< Un acceptable identity */
148         TAPI_CAUSE_NO_SERVICE_HERE,             /**< No service here */
149         TAPI_CAUSE_SERVICE_NOT_ALLOWED, /**< Service not allowed */
150         TAPI_CAUSE_SERVICE_NOT_AVAIL,           /**< Service not available */
151         TAPI_CAUSE_SERVICE_NOT_WORKING, /**< Service not working */
152         TAPI_CAUSE_CANNOT_IDENTIFY_CALL,        /**< Cannot identify the call */
153         TAPI_CAUSE_DEACTIVATION,                        /**< Deactivation */                                                    //90
154         TAPI_CAUSE_FATAL_ERROR,                 /**< Fatal error */
155         TAPI_CAUSE_SEND_DTMF_SUCCESS,           /**< Sending DTMF Success */
156         TAPI_CAUSE_SEND_DTMF_FAIL,                      /**< Sending DTMF Failed */
157         TAPI_CAUSE_FIXED_DIALING_NUMBER_ONLY,   /**< Fixed Dialing Number Only */
158         TAPI_CAUSE_TIMER_EXPIRED,                       /**< Call Timer Expired */
159 } TelCallCause_t;
160
161 /**
162  * @enum TelTapiEndCause_t
163  * When a call is ended, this end cause is given with the CALL END notification to the application.  This end cause can be originated
164  * from different elements in the communication path or different modules in the same element.
165  */
166 typedef enum {
167         TAPI_CALL_END_NO_CAUSE = 0x00,                          /**< No Cause */
168
169         TAPI_CC_CAUSE_UNASSIGNED_NUMBER,                        /**< Unassigned Number */
170         TAPI_CC_CAUSE_NO_ROUTE_TO_DEST,                 /**< No Route to Destination */
171         TAPI_CC_CAUSE_CHANNEL_UNACCEPTABLE,             /**< Channel Unacceptable */
172         TAPI_CC_CAUSE_OPERATOR_DETERMINED_BARRING,      /**< Operator Determined Barring */
173         TAPI_CC_CAUSE_NORMAL_CALL_CLEARING,             /**< Normal Call Clearing */
174
175         TAPI_CC_CAUSE_USER_BUSY,                                        /**< User Busy */
176         TAPI_CC_CAUSE_NO_USER_RESPONDING,                       /**< No user Responding */
177         TAPI_CC_CAUSE_USER_ALERTING_NO_ANSWER,          /**< User Alerting no Answer */
178         TAPI_CC_CAUSE_CALL_REJECTED,                            /**< Call Rejected */
179         TAPI_CC_CAUSE_NUMBER_CHANGED,                           /**< Number Changed */
180
181         TAPI_CC_CAUSE_NON_SELECTED_USER_CLEARING,       /**< Non Selected User Clearing */
182         TAPI_CC_CAUSE_DESTINATION_OUT_OF_ORDER, /**< Destination out of Order */
183         TAPI_CC_CAUSE_INVALID_NUMBER_FORMAT,            /**< Invalid Number Format */
184         TAPI_CC_CAUSE_FACILITY_REJECTED,                        /**< Facility Rejected */
185         TAPI_CC_CAUSE_RESPONSE_TO_STATUS_ENQUIRY,       /**< Response to Status Enquiry */
186
187         TAPI_CC_CAUSE_NORMAL_UNSPECIFIED,                               /**< Normal Unspecified */
188         TAPI_CC_CAUSE_NO_CIRCUIT_CHANNEL_AVAILABLE,     /**< No Circuit Channel Available */
189         TAPI_CC_CAUSE_NETWORK_OUT_OF_ORDER,                     /**< Network out of Order */
190         TAPI_CC_CAUSE_TEMPORARY_FAILURE,                                /**< Temporary Failure */
191         TAPI_CC_CAUSE_SWITCHING_EQUIPMENT_CONGESTION,   /**< Switching Equipment Congestion */
192
193         TAPI_CC_CAUSE_ACCESS_INFORMATION_DISCARDED,                     /**< Access Information Discarded */
194         TAPI_CC_CAUSE_REQUESTED_CIRCUIT_CHANNEL_NOT_AVAILABLE,  /**< Requested Circuit channel not available */
195         TAPI_CC_CAUSE_RESOURCES_UNAVAILABLE_UNSPECIFIED,                /**< Resources unavailable unspecified */
196         TAPI_CC_CAUSE_QUALITY_OF_SERVICE_UNAVAILABLE,                   /**< Quality of service unavailable */
197         TAPI_CC_CAUSE_REQUESTED_FACILITY_NOT_SUBSCRIBED,                /**< Requested facility not subscribed */
198
199         TAPI_CC_CAUSE_INCOMING_CALL_BARRED_WITHIN_CUG,                  /**< incomming call barred within CUG */
200         TAPI_CC_CAUSE_BEARER_CAPABILITY_NOT_AUTHORISED,         /**< Bearer Capability not Authorised */
201         TAPI_CC_CAUSE_BEARER_CAPABILITY_NOT_PRESENTLY_AVAILABLE,/**< Bearer capability not presently Available */
202         TAPI_CC_CAUSE_SERVICE_OR_OPTION_NOT_AVAILABLE,                  /**< Service or Option not available */
203         TAPI_CC_CAUSE_BEARER_SERVICE_NOT_IMPLEMENTED,                   /**< Service not implemented */
204
205         TAPI_CC_CAUSE_ACM_GEQ_ACMMAX,                                                   /**< ACM GEQ ACMAX */
206         TAPI_CC_CAUSE_REQUESTED_FACILITY_NOT_IMPLEMENTED,               /**< Requested facility not implemented */
207         TAPI_CC_CAUSE_ONLY_RESTRICTED_DIGITAL_INFO_BC_AVAILABLE,/**< Resticted digital info BC not available */
208         TAPI_CC_CAUSE_SERVICE_OR_OPTION_NOT_IMPLEMENTED,                /**< Service or Option not Implemented  */
209         TAPI_CC_CAUSE_INVALID_TRANSACTION_ID_VALUE,                     /**< Transaction ID value */
210
211         TAPI_CC_CAUSE_USER_NOT_MEMBER_OF_CUG,                           /**< Not member of CUG */
212         TAPI_CC_CAUSE_INCOMPATIBLE_DESTINATION,                 /**< Incompatible Destination */
213         TAPI_CC_CAUSE_INVALID_TRANSIT_NETWORK_SELECTION,        /**< Transit Network selection */
214         TAPI_CC_CAUSE_SEMANTICALLY_INCORRECT_MESSAGE,           /**< Semantically Incorrect message */
215         TAPI_CC_CAUSE_INVALID_MANDATORY_INFORMATION,            /**< Invalid Mandatory Message */
216
217         TAPI_CC_CAUSE_MESSAGE_TYPE_NON_EXISTENT,                                        /**< Message Type Non Existent */
218         TAPI_CC_CAUSE_MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROT_STATE,      /**< Message type not compatible with Prot state */
219         TAPI_CC_CAUSE_IE_NON_EXISTENT_OR_NOT_IMPLEMENTED,                       /**< IE non exitent or not implemented */
220         TAPI_CC_CAUSE_CONDITIONAL_IE_ERROR,                                             /**< Conditional IE error */
221         TAPI_CC_CAUSE_MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE,       /**< Not Compatible with protocol state */
222
223         TAPI_CC_CAUSE_RECOVERY_ON_TIMER_EXPIRY, /**< Recovery on timer expiry */
224         TAPI_CC_CAUSE_PROTOCOL_ERROR_UNSPECIFIED,       /**< Protocol error unspecified */
225         TAPI_CC_CAUSE_INTERWORKING_UNSPECIFIED, /**< Interworking unspecified */
226
227         TAPI_CC_CAUSE_END = 128,        /**< End unspecified */
228
229         /* Reject causes*/
230         TAPI_REJECT_CAUSE_IMSI_UNKNOWN_IN_HLR,  /**< IMSI unknown in HLR */
231         TAPI_REJECT_CAUSE_ILLEGAL_MS,                   /**< Illegal MS */
232         TAPI_REJECT_CAUSE_IMSI_UNKNOWN_IN_VLR,  /**< IMSI unknown in VLR */
233         TAPI_REJECT_CAUSE_IMEI_NOT_ACCEPTED,    /**< IMEI not accepted */
234         TAPI_REJECT_CAUSE_ILLEGAL_ME,                   /**< Illegal ME */
235
236         TAPI_REJECT_CAUSE_GPRS_SERVICES_NOT_ALLOWED,                                            /**< GPRS service not allowed */
237         TAPI_REJECT_CAUSE_GPRS_SERVICES_AND_NON_GPRS_SERVICES_NOT_ALLOWED,      /**< GPRS services and Non-GPRS services not allowed */
238         TAPI_REJECT_CAUSE_MS_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK, /**< MS device cannot be derived by the network */
239         TAPI_REJECT_CAUSE_IMPLICITLY_DETACHED,                                                          /**< Implicitly detached */
240         TAPI_REJECT_CAUSE_PLMN_NOT_ALLOWED,                                                             /**< PLMN not allowed */
241
242         TAPI_REJECT_CAUSE_LA_NOT_ALLOWED,                                                       /**< LA not allowed */
243         TAPI_REJECT_CAUSE_NATIONAL_ROAMING_NOT_ALLOWED,                 /**< National roaming not allowed */
244         TAPI_REJECT_CAUSE_GPRS_SERVICES_NOT_ALLOWED_IN_THIS_PLMN,       /**< GPRS services not allowed in this PLMN */
245         TAPI_REJECT_CAUSE_NO_SUITABLE_CELLS_IN_LA,                                      /**< No suitable cells in the LA */
246         TAPI_REJECT_CAUSE_MSC_TEMPORARILY_NOT_REACHABLE,                        /**< MSC temporarily not reachable */
247
248         TAPI_REJECT_CAUSE_NETWORK_FAILURE,              /**< Network unavailable */
249         TAPI_REJECT_CAUSE_MAC_FAILURE,                  /**< MAC failure */
250         TAPI_REJECT_CAUSE_SYNCH_FAILURE,                /**< SYNCh failure */
251         TAPI_REJECT_CAUSE_CONGESTTION,                  /**< Congestion */
252         TAPI_REJECT_CAUSE_GSM_AUTH_UNACCEPTED,  /**< GSM Auth unaccepted */
253
254         TAPI_REJECT_CAUSE_SERVICE_OPTION_NOT_SUPPORTED, /**< Service option not supported */
255         TAPI_REJECT_CAUSE_REQ_SERV_OPT_NOT_SUBSCRIBED,  /**< REQ_SERV option not suscribed */
256         TAPI_REJECT_CAUSE_SERVICE_OPT__OUT_OF_ORDER,    /**< Service OPT out of order */
257         TAPI_REJECT_CAUSE_CALL_CANNOT_BE_IDENTIFIED,    /**< Call cannot be identified */
258         TAPI_REJECT_CAUSE_NO_PDP_CONTEXT_ACTIVATED,     /**< No PDP context Activated */
259
260         TAPI_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_A_NEW_CELL_MIN_VALUE,   /**< Retry upon entry into a new call min value */
261         TAPI_REJECT_CAUSE_RETRY_UPON_ENTRY_INTO_A_NEW_CELL_MAX_VALUE,   /**< Retry upon entry into a new call max value */
262         TAPI_REJECT_CAUSE_SEMANTICALLY_INCORRECT_MSG,                                   /**< Semantically incorret message */
263         TAPI_REJECT_CAUSE_INVALID_MANDATORY_INFO,                                               /**< Invalid mandatory information */
264         TAPI_REJECT_CAUSE_MESSAGE_TYPE_NON_EXISTANT,                                    /**< Message type non-existant */
265
266         TAPI_REJECT_CAUSE_MESSAGE_TYPE_NOT_COMP_PRT_ST,         /**< Message type not COMP PRT ST */
267         TAPI_REJECT_CAUSE_IE_NON_EXISTANT,                                              /**< IE not existant */
268         TAPI_REJECT_CAUSE_MSG_NOT_COMPATIBLE_PROTOCOL_STATE,    /**< MSG not compatible protocol state */
269
270         /* Connection Management establishment rejection cause */
271         TAPI_REJECT_CAUSE_REJ_UNSPECIFIED,      /**< rej unspecified */
272
273         /* AS reject causes */
274         TAPI_REJECT_CAUSE_AS_REJ_RR_REL_IND,                                            /**< RR release indication */
275         TAPI_REJECT_CAUSE_AS_REJ_RR_RANDOM_ACCESS_FAILURE,                      /**< Random Access Failure */
276         TAPI_REJECT_CAUSE_AS_REJ_RRC_REL_IND,                                           /**< RRC release indication */
277         TAPI_REJECT_CAUSE_AS_REJ_RRC_CLOSE_SESSION_IND,                 /**< RRC close session indication */
278         TAPI_REJECT_CAUSE_AS_REJ_RRC_OPEN_SESSION_FAILURE,                      /**< RRC open session failure */
279         TAPI_REJECT_CAUSE_AS_REJ_LOW_LEVEL_FAIL,                                        /**< Low level failure */
280         TAPI_REJECT_CAUSE_AS_REJ_LOW_LEVEL_FAIL_REDIAL_NOT_ALLOWED, /**< Low level failure redial not alowed */
281         TAPI_REJECT_CAUSE_AS_REJ_LOW_LEVEL_IMMED_RETRY,                 /**< low level immediate retry */
282
283         /* MM reject causes */
284         TAPI_REJECT_CAUSE_MM_REJ_INVALID_SIM,                   /**< invalid Sim */
285         TAPI_REJECT_CAUSE_MM_REJ_NO_SERVICE,                    /**< No service */
286         TAPI_REJECT_CAUSE_MM_REJ_TIMER_T3230_EXP,               /**< Timer T3230 expire */
287         TAPI_REJECT_CAUSE_MM_REJ_NO_CELL_AVAILABLE,     /**< No call available  */
288         TAPI_REJECT_CAUSE_MM_REJ_WRONG_STATE,                   /**< wrong state */
289         TAPI_REJECT_CAUSE_MM_REJ_ACCESS_CLASS_BLOCKED,  /**< Access class blocked */
290
291         /* Definitions for release ind causes between MM  and CNM*/
292         TAPI_REJECT_CAUSE_ABORT_MSG_RECEIVED,   /**< Abort Message received */
293         TAPI_REJECT_CAUSE_OTHER_CAUSE,                  /**< Other cause  */
294
295         /* CNM reject causes */
296         TAPI_REJECT_CAUSE_CNM_REJ_TIMER_T303_EXP,       /**< Timer T303 expiry */
297         TAPI_REJECT_CAUSE_CNM_REJ_NO_RESOURCES, /**< Rejected due to unavailibilty of resources */
298         TAPI_REJECT_CAUSE_CNM_MM_REL_PENDING,           /**< MM release pending */
299         TAPI_REJECT_CAUSE_CNM_INVALID_USER_DATA,        /**< Invalid user data */
300         TAPI_CALL_END_CAUSE_MAX = 255,                          /**< Maximum End Cause limit for gsm/wcdma */
301
302         /* CDMA CALL END CAUSE */
303         TAPI_CDMA_END_CAUSE_REL_BY_USER = 0x1001,               /**< Call Released by User */
304         TAPI_CDMA_END_CAUSE_REL_BY_NET,                         /**< Call Released by Network */
305         TAPI_CDMA_END_CAUSE_REL_NET_BUSY,                               /**< Call Released because of Network busy */
306         TAPI_CDMA_END_CAUSE_NO_SVC,                                     /**< Call Released because of No Service area */
307         TAPI_CDMA_END_CAUSE_FADING,                                     /**< Call Released because of Fading */
308         TAPI_CDMA_END_CAUSE_RELEASE_BY_REORDER,         /**< Call Released because of reorder */
309         TAPI_CDMA_END_CAUSE_RELEASE_BY_INTERCEPT,               /**< Call Released because of intercept */
310         TAPI_CDMA_END_CAUSE_SILENT_ZONE_RETRY,                  /**< Call Released because of silent zone retry */
311         TAPI_CDMA_END_CAUSE_OTA_CALL_FAIL,                              /**< Call Released because of OTA cal failure */
312         TAPI_CDMA_END_CAUSE_PHONE_OFFLINE,                              /**< Call Released because of phone offline */
313         TAPI_CDMA_END_CAUSE_PHONE_IS_CDMA_LOCKED,               /**< Call Released because of CDMA locked */
314         TAPI_CDMA_END_CAUSE_FLASH_IS_IN_PROGRESS_ERR,   /**< Call Released because of flash-is-in-progress error */
315         TAPI_CDMA_END_CAUSE_E911_MODE_ERR,                              /**< Call Released because of e911 mode */
316         TAPI_CDMA_END_CAUSE_OTHERS,                                     /**< Call Released by Others */
317         TAPI_CDMA_END_CAUSE_MAX                                         /**< Maximum End Cause limit for cdma */
318 } TelTapiEndCause_t;
319
320 /**
321  * @enum TelConferenceCallState_t
322  * This enum defines the call conference states
323  */
324 typedef enum {
325         TAPI_CALL_CONFERENCE_IDLE,      /**< idle */
326         TAPI_CALL_CONFERENCE_ACTIVE /**< active */
327 } TelConferenceCallState_t;
328
329 /**
330  * @enum TelCallStates_t
331  * Applications can use these sates or can have their own states.
332  */
333 typedef enum {
334         TAPI_CALL_STATE_IDLE,           /**< Call is in idle state - i.e. no call */
335         TAPI_CALL_STATE_ACTIVE,         /**< Call is in connected and conversation state */
336         TAPI_CALL_STATE_HELD,           /**< Call is in held state */
337         TAPI_CALL_STATE_DIALING,        /**< Call is in dialing state */
338         TAPI_CALL_STATE_ALERT,          /**< Call is in alerting state */
339         TAPI_CALL_STATE_INCOMING,       /**< Call is in incoming state */
340         TAPI_CALL_STATE_WAITING,        /**< Call is in answered state, and waiting for connected indication event */
341         TAPI_CALL_STATE_MAX     /**< Call state unknown */
342 } TelCallStates_t;
343
344 /**
345  * IN GSM ONLY: call identification number.
346  */
347 typedef enum {
348         TAPI_CALL_ACTIVE_LINE1, /**< Line 1 */
349         TAPI_CALL_ACTIVE_LINE2  /**< Line 2 */
350 } TelCallActiveLine_t;
351
352 typedef enum {
353         TAPI_CALL_UUS_NONE, /**< No User to User information  */
354         TAPI_CALL_UUS_1,        /**< User to User information 1 */
355 } TelCallUusType_t;
356
357 /**
358  * The Incoming call indication could have be one of the following SS info messages in it.
359  */
360 typedef enum {
361         TAPI_CALL_MT_CLI_PRESENT = 0x31, /**< Number details are present in the "char number" of call info struct. if number is not present then "no cli cause" member in  mt_ss_info is set accordingly.*/
362         TAPI_CALL_MT_CNA_PRESENT = 0x32, /**< Calling Name Info presnet,TelCallingNameInfo_t of call info struct contains this info.*/
363         TAPI_CALL_MT_SS_UNDEFINED = 0x00, /**< Undefined ss indication. Ignore mt_ss_info*/
364
365 } TelCallMtSSInfo_t;
366
367 /**
368  * @enum TelCallAnswerType_t
369  * Answer type used as in parameter in the answer call API.
370  */
371 typedef enum {
372         TAPI_CALL_ANSWER_ACCEPT = 0,            /**< Used to answer an incoming call when there are no current active calls. */
373         TAPI_CALL_ANSWER_REJECT,                        /**< Used to reject the incoming call */
374         TAPI_CALL_ANSWER_REPLACE,                       /**< Release current active call and accept the */
375         TAPI_CALL_ANSWER_HOLD_AND_ACCEPT,       /**< Hold the current active call, and accept the wating call */
376 } TelCallAnswerType_t;
377
378 /**
379  * @enum TelCallEndType_t
380  * End type used as in parameter in the end call API.
381  */
382 typedef enum {
383         TAPI_CALL_END = 0, /**< End Specific Call*/
384         TAPI_CALL_END_ALL, /**< End All Calls*/
385         TAPI_CALL_END_ACTIVE_ALL, /**< End All Active Calls*/
386         TAPI_CALL_END_HOLD_ALL, /**< End All Held Calls*/
387 } TelCallEndType_t;
388
389
390
391
392 /**
393  * @enum TelCallType_t
394  * Applications needs to use this call type while using the setup call API. Like the requested call is a voice call or video call.
395  */
396 typedef enum {
397         TAPI_CALL_TYPE_VOICE,   /**< Voice call type. */// in ipcv4, 0x0100
398         TAPI_CALL_TYPE_DATA,    /**< Data call type - (for modem, fax, packet, etc. calls). */// in ipcv4, 0x0200
399         TAPI_CALL_TYPE_E911     /**< Emergency call type. */// in ipcv4, 0x0700
400 } TelCallType_t;
401
402 /**
403  * @enum TelCallAlertingPattern_t
404  * This enumeration defines the different alerting patterns available.
405  */
406 typedef enum {
407         TAPI_CALL_ALERTING_PATTERN_1 = 0x00, /**< Pattern 1 */
408         TAPI_CALL_ALERTING_PATTERN_2 = 0x01, /**< Pattern 2 */
409         TAPI_CALL_ALERTING_PATTERN_3 = 0x02, /**< Pattern 3 */
410         TAPI_CALL_ALERTING_PATTERN_4 = 0x03, /**< Pattern 4 */
411         TAPI_CALL_ALERTING_PATTERN_5 = 0x04, /**< Pattern 5 */
412         TAPI_CALL_ALERTING_PATTERN_6 = 0x05, /**< Pattern 6 */
413         TAPI_CALL_ALERTING_PATTERN_7 = 0x06, /**< Pattern 7 */
414         TAPI_CALL_ALERTING_PATTERN_8 = 0x07, /**< Pattern 8 */
415         TAPI_CALL_NO_ALERTING_PATTERN = 0x08 /**< No Alerting Pattern */
416 } TelCallAlertingPattern_t;
417
418 /**
419  * @enum TelCallActiveState_t
420  * State of the current call.
421  */
422 typedef enum {
423         TAPI_CALL_CONNECT_IDLE, /**< Call is in Idle state. */
424         TAPI_CALL_CONNECT_ACTIVE,       /**< Call is in Active state.*/
425         TAPI_CALL_CONNECT_HELD          /**< Call is in Held state. */
426 } TelCallActiveState_t;
427
428 /**
429  * @enum TelCallCugOptions_t
430  * This enumeration defines the closed user group options
431  */
432 typedef enum {
433         TAPI_CALL_CUG_NO_INFO = 0x00,           /**< No information */
434         TAPI_CALL_CUG_SUPRESS_OA,                       /**< suppress OA */
435         TAPI_CALL_CUG_SUPRESS_PRF_CUG,          /**< suppress preferential CUG */
436         TAPI_CALL_CUG_SUPRESS_OA_AND_CUG        /**< suppress OA and preferential CUG */
437 } TelCallCugOptions_t;
438
439 /**
440  * @enum TelCallUusProtocolType_t
441  *  This enumeration defines the tapi call uus protocol types
442  */
443 typedef enum {
444         TAPI_CALL_UUS_PROTO_SPECIFIC = 0,                       /**< The user information is structured according to user needs. */
445         TAPI_CALL_UUS_PROTO_OSI_HIGHER_LAYER = 1,       /**< OSI high layer protocols */
446         TAPI_CALL_UUS_PROTO_IA5_CHARS = 4,                      /**< user information consists of IA5 characters */
447         TAPI_CALL_UUS_PROTO_V120 = 7,                           /**< rate adaptation */
448         TAPI_CALL_UUS_PROTO_Q931 = 8                            /**< user-network call control messages */
449 } TelCallUusProtocolType_t;
450
451 /**
452  * @enum TelCallNameMode_t
453  *  This enumeration defines the call name mode
454  */
455 typedef enum {
456         TAPI_CALL_NAME_AVAIL = 0,       /**< This identifier refers to the presentation of the calling party's name identity to the called party. */
457         TAPI_CALL_NAME_RESTRICTED = 1,                  /**< This identifier refers to the restriction of presentation of the name identity of the calling party to the called party. */
458         TAPI_CALL_NAME_UNAVAIL = 2,                     /**< This identifier refers to the unavailability of the calling party's name identity to be offered to the called party. */
459         TAPI_CALL_NAME_AVAIL_RESTRICTED = 3     /**< This identifier refers to the calling party's name identity to be offered to the called party with which presentation restriction is overridden.  */
460 } TelCallNameMode_t;
461
462 /**
463  * @enum TelCallNoCliCause_t
464  * This enumeration defines the value for "No Cli cause".
465  */
466 typedef enum {
467         TAPI_CALL_NO_CLI_CAUSE_NONE = -1,        /**< None */
468         TAPI_CALL_NO_CLI_CAUSE_UNAVAILABLE = 0x00,              /**< Unavailable */
469         TAPI_CALL_NO_CLI_CAUSE_REJECTBY_USER = 0x01,            /**< Rejected by User */
470         TAPI_CALL_NO_CLI_CAUSE_INTERACTION_OTHERSERVICES = 0x02, /**<  Other services */
471         TAPI_CALL_NO_CLI_CAUSE_COINLINE_PAYPHONE = 0x03,        /**< Coin line phone */
472 } TelCallNoCliCause_t;
473
474 /**
475  * @enum TelCallCliMode_t
476  * This enumeration defines the value for "Cli mode".
477  */
478 typedef enum {
479         TAPI_CALL_PRES_AVAIL,           /** <Presentation Allowed */
480         TAPI_CALL_PRES_RESTRICTED,      /**<Presentation Restricted */
481         TAPI_CALL_NUM_UNAVAIL,          /**<Number Not Available */
482 }TelCallCliMode_t;
483
484 /**
485  * Fwded Ind Type used for MO and Mt from SS Noti Info
486  */
487 typedef enum {
488         TAPI_CALL_OUTGOING_FWDED = 0x00,         /**<Outgoing call forwarded */
489         TAPI_CALL_INCOMMING_FWDED = 0x01,       /**< Incoming call forwarded */
490 } TelCallForwardType_t;
491
492 /**
493  * @enum TelCallPrivacyMode_t
494  * This structure contains the voice privacy option mode(CDMA only).
495  */
496 typedef enum {
497         TAPI_CALL_PRIVACY_MODE_STANDARD = 0x00, /**< Standard mode */
498         TAPI_CALL_PRIVACY_MODE_ENHANCED         /**< Enhanced mode */
499 } TelCallPrivacyMode_t;
500
501 /**
502  * @enum TelCallPrivacyType_t
503  * This structure contains the voice privacy request type(CDMA only).
504  */
505 typedef enum {
506         TAPI_CALL_PRIVACY_TYPE_MS = 0x01,       /**< Mobile Station Voice Privacy Mode */
507         TAPI_CALL_PRIVACY_TYPE_BS,                      /**< Base Station Voice Privacy Mode */
508         TAPI_CALL_PRIVACY_TYPE_CURRENT          /**< Current Serving Privacy Mode */
509 } TelCallPrivacyType_t;
510
511 /**
512  * @enum TelCallEmergecyMode_t
513  * This structure contains the emergency callback mode(CDMA only).
514  */
515 typedef enum {
516         TAPI_CALL_EMERGENCY_MODE_EXIT,  /**< Emergency CB Exit mode */
517         TAPI_CALL_EMERGENCY_MODE_ENTER  /**< Emergency CB Enter mode */
518 } TelCallEmergecyMode_t;
519
520 /**
521  * @enum TelCallOtaType_t
522  * This structure contains the OTA type(CDMA only).
523  */
524 typedef enum {
525         TAPI_CALL_OTATYPE_OTASP = 0x01, /**< OTASP : mobile initiated OTA*/
526         TAPI_CALL_OTATYPE_OTAPA,                /**< OTAPA : network initiated OTA */
527 } TelCallOtaType_t;
528
529 /**
530  * @enum TelCallOtaspStatus_t
531  * This structure contains the OTASP Status(CDMA only).
532  */
533 typedef enum {
534         TAPI_CALL_OTASP_OK_SPL_UNLOCKED = 0x01, /**< OTASP : SPL unlocked ok*/
535         TAPI_CALL_OTASP_OK_AKEY_EXCESS,         /**< OTASP : A-Key excess ok*/
536         TAPI_CALL_OTASP_OK_SSD_UPDATE,                  /**< OTASP : SSD update ok */
537         TAPI_CALL_OTASP_OK_NAM_DWNLD,                   /**< OTASP : NAM download ok */
538         TAPI_CALL_OTASP_OK_MDN_DWNLD,                   /**< OTASP : MDN download ok */
539         TAPI_CALL_OTASP_OK_IMSI_DWNLD,                  /**< OTASP :  IMSI download ok*/
540         TAPI_CALL_OTASP_OK_PRL_DWNLD,                   /**< OTASP : PRL download ok */
541         TAPI_CALL_OTASP_OK_COMMIT,                              /**< OTASP : commit ok */
542         TAPI_CALL_OTASP_OK_PROGRAMMING,         /**< OTASP : programming ok */
543         TAPI_CALL_OTASP_SUCCESS,                                /**< OTASP : success */
544         TAPI_CALL_OTASP_UNSUCCESS,                              /**< OTASP : unsuccess */
545         TAPI_CALL_OTASP_OK_OTAPA_VERIFY,                /**< OTASP : verify ok */
546         TAPI_CALL_OTASP_PROGRESS,                               /**< OTASP : progress */
547         TAPI_CALL_OTASP_FAILURES_EXCESS_SPC,    /**< OTASP : SPC excess failure */
548         TAPI_CALL_OTASP_LOCK_CODE_PW_SET,               /**< OTASP : lock code password set*/
549 } TelCallOtaspStatus_t;
550
551 /**
552  * @enum TelCallOtapaStatus_t
553  * This structure contains the OTAPA Status(CDMA only).
554  */
555 typedef enum {
556         TAPI_CALL_OTAPA_STOP = 0x00,    /**< OTAPA : stop */
557         TAPI_CALL_OTAPA_START,                  /**< OTAPA : start */
558 } TelCallOtapaStatus_t;
559
560 /**
561  * @enum TelCallTimeMaskType_t
562  * This structure contains call time request mask type.
563  */
564 typedef enum {
565         TAPI_CALL_TIME_TYPE_TOTAL_CALL_CNT = 0x01,      /**< Total Call Count Mask */
566         TAPI_CALL_TIME_TYPE_TOTAL_CALL_TIME = 0x02, /**< Total Call Time Mask */
567         TAPI_CALL_TIME_TYPE_LAST_CALL_TIME = 0x04,      /**< Last Call Time Mask */
568 } TelCallTimeMaskType_t;
569
570 /**
571  * @enum TelCallToneDuration_t
572  * This structure contains dtmf tone length.
573  */
574 typedef enum {
575         TAPI_CALL_TONE_DURATION_SHORT = 0x01, /**< Tone Duration Short*/
576         TAPI_CALL_TONE_DURATION_LONG /**< Tone Duration Long */
577 } TelCallToneDuration_t;
578
579 /**
580  * @enum TelCallEmergencyCategory_t
581  * This structure contains emergency category type
582  */
583 typedef enum {
584         TAPI_CALL_ECC_DEFAULT = 0x00, /**< Default case*/
585         TAPI_CALL_ECC_POLICE = 0x01, /**< Police emergency */
586         TAPI_CALL_ECC_AMBULANCE = 0x02, /**< Ambulance emergency */
587         TAPI_CALL_ECC_FIREBRIGADE = 0x04, /**< Firebrigade emergency */
588         TAPI_CALL_ECC_MARINEGUARD = 0x08, /**< Marineguard emergency */
589         TAPI_CALL_ECC_MOUNTAINRESCUE = 0x10, /**< Mountain rescue emergency */
590         TAPI_CALL_ECC_MANUAL_ECALL = 0x20, /**< Manual emergency call */
591         TAPI_CALL_ECC_AUTO_ECALL = 0x40, /**< Automatic emergency call */
592         TAPI_CALL_ECC_NONE = 0xff, /**< unspecfied emergency */
593 } TelCallEmergencyCategory_t;
594
595 typedef enum {
596         TAPI_CALL_IDENTITY_DEFAULT, /**< Calling line identity will be sent. Based on network setting, Line identity will presented to the called party. */
597         TAPI_CALL_IDENTITY_SHOW,        /**< Display calling line identity */
598         TAPI_CALL_IDENTITY_HIDE /**< Hide the display of Calling line identity */
599 } TelCallIdentityMode_t;
600
601
602 /**
603  * context type
604  */
605 typedef enum {
606         TAPI_CONTEXT_TYPE_NONE = 0x00, /**< Unspecified context*/
607         TAPI_CONTEXT_TYPE_VOICE_CALL = 0x01, /**< Voice call context*/
608         TAPI_CONTEXT_TYPE_DATA_CALL = 0x2, /**< Data call context*/
609         TAPI_CONTEXT_TYPE_VIDEO_CALL = 0x3, /**< Video call context*/
610         TAPI_CONTEXT_TYPE_NETTEXT, /**< Network text context*/
611         TAPI_CONTEXT_TYPE_E911, /**< Emergency context*/
612 } TapiContextType;
613
614
615 /**
616  * Timer State and or Call Timer ID
617  */
618 typedef enum {
619         TAPI_CALL_TSTATE_IDLE = 0x00,           /**< No timer running */
620         TAPI_CALL_TSTATE_SETUP_PENDING, /**< Setup Timer */
621         TAPI_CALL_TSTATE_CONNECT_PENDING,       /**< Connected Timer */
622         TAPI_CALL_TSTATE_END_PENDING,           /**< Release Timer */
623         TAPI_CALL_TSTATE_HOLD_PENDING,          /**< Hold Timer */
624         TAPI_CALL_TSTATE_RETRIEVE_PENDING,      /**< Retrieve Timer */
625         TAPI_CALL_TSTATE_JOIN_PENDING,          /**< Join Timer */
626         TAPI_CALL_TSTATE_SPLIT_PENDING, /**< Split Timer */
627         TAPI_CALL_TSTATE_ECT_PENDING,           /**< ECT Timer */
628         TAPI_CALL_TSTATE_DTMF_PENDING,          /**< DTMF Timer */
629 } TelTapiCallTimerState;
630
631 typedef struct {
632         TS_BOOL bRequestedBySAT;                        /** This flag is to indicate whether the request has been initiated by SAT or not.Possible values are 0 and 1. This flag should be updated only when originating a setup request */
633         TelCallIdentityMode_t IdentityMode; /**< Sets Calling Line Identity mode. If default value  TAPI_IDENTITY_DEFAULT is set, OEM will set the default value. */
634         TelCallEmergencyCategory_t ecc;
635 } tel_set_call_satflag_identiymode;
636
637 /**
638  * This structure contains information about the redirect destination  information.
639  */
640 typedef struct {
641         unsigned char number[TAPI_CALL_DIAL_NUMBER_LEN_MAX + 1]; /**< Redirect destination number */
642 } TelCallDeflectDstInfo_t;
643
644 /**
645  * This structure defines the calling name information
646  */
647 typedef struct {
648         TelCallNameMode_t NameMode;                                     /**< Display mode of the szNameData. */
649         char szNameData[TAPI_CALLING_NAME_SIZE_MAX];    /**< Calling party name string.   */
650 } TelCallingNameInfo_t;
651
652 /**
653  * This structure contains information about an outgoing call.
654  */
655 typedef struct {
656         TelCallType_t CallType;                                         /**< sets type of call (voice, data, video, emergency) */
657         TelCallEmergencyCategory_t Ecc;
658         char szNumber[TAPI_CALL_DIALDIGIT_LEN_MAX + 1]; /**< A string containing the destination phone number. This follows the dial number format.*/
659 } TelCallDial_t;
660
661 /**
662  * This structure contains information about call status.
663  */
664 typedef struct {
665         int CallHandle;
666         int bMoCall;                                                                    /**< Status will be yes for MO Call. If MT call, then FALSE*/
667         char pNumber[TAPI_CALL_DIALDIGIT_LEN_MAX + 1];  /**< Mobile Number */
668         TelCallType_t CallType;                                         /**< Specifies type of call (voice, data, emergency) */
669         TelCallStates_t CallState;                                              /**< Current Call state */
670         int bConferenceState;                                                   /**< Whether Call is in Conference or not*/
671 } TelCallStatus_t;
672
673 typedef void (*TelCallStatusCallback)( TelCallStatus_t *out, void *user_data ); /**< Callback function to get call status*/
674
675
676 /**
677  * This structure contains information about call redirection details.
678  */
679 typedef struct {
680         char szRedirectedNumber[TAPI_CALL_DIALDIGIT_LEN_MAX + 1];               /**< Redirected party number */
681         char szRedirectSubAddress[TAPI_CALL_SUBADDRESS_LEN_MAX + 1];    /**< Redirect party sub-address */
682 } TelCallRedirectionInfo_t;
683
684 /**
685  * This structure contains the incoming call information.
686  */
687 typedef struct {
688         unsigned int CallHandle;                                /**< At Foundation API Level, Call handle indicates the Handle of the Call for the Application . At Framework API Level, call handle indicates the Call identifier used for call by the OEM Adaptation Layer Plug-in */
689         TelCallType_t CallType;                         /**< Call type */
690         TelSsLineIdentificationType_t CliPresentationIndicator; /**< Calling Party presentation indicator */
691         char szCallingPartyNumber[TAPI_CALL_DIALDIGIT_LEN_MAX + 1]; /**< caller number,null terminated ASCII */
692         TelCallingNameInfo_t CallingNameInfo;   /**< Call name info. If there is no information from network, this information will be NULL.*/
693         TelCallRedirectionInfo_t RedirectInfo;  /**< The data for the Call Redirect information. If there is no information from network, this information will be NULL.  */
694         TelCallCliMode_t CliMode;               /**<CLI mode> */
695         TelCallNoCliCause_t CliCause;           /**< No of CLI cause */
696         int fwded;                                                              /**< True or false. If Incoming call is a forwarded call, then true else false. */
697         TelCallActiveLine_t ActiveLine;         /**< Current Active Line */
698 } TelCallIncomingCallInfo_t;
699
700 /**
701  *SS Info message.
702  */
703 typedef struct {
704         TelCallMtSSInfo_t type; /* Type of the SS Info presnet. */
705         TelCallCliMode_t CliMode;               /**<CLI mode> */
706         TelCallNoCliCause_t no_cli_cause;
707 } TelCallMtSsInfo_t; // not used
708
709 typedef struct {
710         int isMobileOriginated;                                 /* Is this call Mobile Originated? */
711         TelCallNameMode_t nameMode;                             /* Calling Party Name availability mode */
712         char callNumber[TAPI_CALL_DIALDIGIT_LEN_MAX + 1]; /* A character array of the destination address. This follows the dial callNumber format. */
713         unsigned int startTime;                                 /* Time when a call is started */
714         unsigned int endTime;                                           /* Time when a call is ended */
715         TelCallType_t callType;                                 /* Type of a call */
716         TelCallStates_t callState;                                      /* State of a call */
717         TelCallActiveState_t activeState;                       /* Status of a call */
718         TelConferenceCallState_t conferenceState;       /* State of a conference call */
719         TelCallingNameInfo_t callingNameInfo;           /* Calling name information of a call */
720         TelCallActiveLine_t current_line;                       /* Line information of a call */
721         TelCallCause_t cause;                                           /* End type of a call when a call is ended */
722         TelTapiEndCause_t endCause;                             /* EndCause */
723 } TelTapiCallInfo_t;
724
725 /**
726  * This structure contains the connected number information.
727  */
728 typedef struct {
729         TelCallCliMode_t CliMode;               /**<CLI mode> */
730         TelCallNoCliCause_t no_cli_cause; /**< Cause when no CLI number. */
731         unsigned char dcs;                                      /**< DCS */
732         unsigned char number_type;                      /**< Number type */
733         TelCallNameMode_t name_mode;            /**< Display mode of the name. */
734         char number[TAPI_CALL_DIALDIGIT_LEN_MAX + 1];           /**< Caller number, null terminated ASCII */
735         char sub_address[TAPI_CALL_SUBADDRESS_LEN_MAX + 1]; /**< Called sub-address, null terminated ASCII */
736 } TelCallConnectedNumberInfo_t;
737
738 /**
739  * This structure contains the voice privacy info(CDMA only).
740  */
741 typedef struct {
742         TelCallPrivacyType_t PrivacyType; /**< Voice Privacy Request Type */
743         TelCallPrivacyMode_t PrivacyMode; /**< Voice Privacy Mode */
744 } TelCallVoicePrivacyInfo_t;
745
746 /**
747  * This structure contains the OTA progress indication information(CDMA only).
748  */
749 typedef struct {
750         TelCallOtaType_t OtaType;                       /**< OTA type */
751         TelCallOtaspStatus_t OtaspStatus;       /**< OTASP status : if OTA type is  OTASP, it is valid */
752         TelCallOtapaStatus_t OtapaStatus;       /**< OTAPA status : if OTA type is  OTAPA, it is valid */
753 } TelCallOtaProgressInfo_t;
754
755 /**
756  * This structure contains information about a call time and call count.
757  */
758 typedef struct {
759         unsigned short req_type_mask;   /**< call time request type */
760         unsigned long TotalCallCnt;     /**< Total Call Count */
761         unsigned long OutgoingCallCnt;  /**< Outgoing Call Count */
762         unsigned long IncomingCallCnt;  /**< Incoming Call Count */
763         unsigned long TotalCallTime;    /**< Overall Call Time(Outgoing + Incoming, in second) */
764         unsigned long OutgoingCallTime; /**< Overall Outgoing Call Time(in second) */
765         unsigned long IncomingCallTime; /**< Overall Incoming Call Time(in second) */
766         unsigned long LastCallTime;     /**< Last Call Time(in second) */
767 } TelCallTimeInfo_t;
768
769 /**
770  * This structure contains information about display record in CDMA.
771  */
772 typedef struct {
773         unsigned char Record[TAPI_CALL_DISPLAY_RECORD_MAX + 1]; /**< display record */
774 } TelCallDisplayRecordInfo_t;
775
776 // New Struct for New API
777 typedef enum {
778         TAPI_SOUND_MUTE              =0x00,             /**<Sound is mute*/
779         TAPI_SOUND_VOLUME_LEVEL_1=0x01,         /**<Volume level is 1*/
780         TAPI_SOUND_VOLUME_LEVEL_2=0x02,         /**<Volume level is 2*/
781         TAPI_SOUND_VOLUME_LEVEL_3=0x03,         /**<Volume level is 3*/
782         TAPI_SOUND_VOLUME_LEVEL_4=0x04,         /**<Volume level is 4*/
783         TAPI_SOUND_VOLUME_LEVEL_5=0x05,         /**<Volume level is 5*/
784         TAPI_SOUND_VOLUME_LEVEL_6=0x06,         /**<Volume level is 6*/
785         TAPI_SOUND_VOLUME_LEVEL_7=0x07,         /**<Volume level is 7*/
786         TAPI_SOUND_VOLUME_LEVEL_8=0x08,         /**<Volume level is 8*/
787         TAPI_SOUND_VOLUME_LEVEL_9=0x09          /**<Volume level is 9*/
788 } TelSoundVolume_t;
789
790 /**
791  * Call Sound recording ON/OFF.
792  */
793 typedef enum {
794         TAPI_SOUND_RECORDING_OFF, /**< Call Sound Recording OFF */
795         TAPI_SOUND_RECORDING_ON, /**< Call Sound Recording ON */
796
797 } TelSoundRecording_t;
798
799 /**
800  * Call Sound device type.
801  */
802 typedef enum {
803         TAPI_SOUND_DEVICE_RECEIVER = 0x00, /**< Device type Receiver*/
804         TAPI_SOUND_DEVICE_SPEAKER_PHONE = 0x10, /**< Device type Speaker */
805         TAPI_SOUND_DEVICE_HFK = 0x20, /**< Device type Hand free */
806         TAPI_SOUND_DEVICE_HEADSET = 0x30,  /**< Device type HeadSet */
807         TAPI_SOUND_DEVICE_BLUETOOTH = 0x40, /**< Device type Bluetooth */
808         TAPI_SOUND_DEVICE_EC = 0xA0, /**< Device type external*/
809 } TelSoundDevice_t;
810
811 /**
812  * Call Sound type.
813  */
814 typedef enum {
815         TAPI_SOUND_TYPE_VOICE = 0x01, /**< Call Sound type voice*/
816         TAPI_SOUND_TYPE_KEYTONE = 0x02, /**< Call Sound type keytone */
817         TAPI_SOUND_TYPE_BELL = 0x03, /**< Call Sound type bell*/
818         TAPI_SOUND_TYPE_MESSAGE = 0x04, /**< Call Sound type message*/
819         TAPI_SOUND_TYPE_ALARM = 0x05, /**< Call Sound type alarm*/
820         TAPI_SOUND_TYPE_PDA_MISC = 0x06, /**< Call Sound type PDA miscellaneous*/
821 } TelSoundType_t;
822
823
824 typedef struct {
825         TelSoundDevice_t device; /**<Call Sound device info structure*/
826         TelSoundType_t type; /**< Call Sound type info structure*/
827         TelSoundVolume_t volume; /**< Call Sound volume info structure*/
828 } TelCallVolumeInfo_t;
829
830 typedef enum {
831         TAPI_SOUND_PATH_HANDSET                 =0x01,          /**<Audio path is handset*/
832         TAPI_SOUND_PATH_HEADSET         =0x02,          /**<Audio path is handset*/
833         TAPI_SOUND_PATH_HANDSFREE               =0x03,          /**<Audio path is Handsfree*/
834         TAPI_SOUND_PATH_BLUETOOTH               =0x04,  /**<Audio path is bluetooth*/
835         TAPI_SOUND_PATH_STEREO_BLUETOOTH   =0x05,       /**<Audio path is stereo bluetooth*/
836         TAPI_SOUND_PATH_SPK_PHONE               =0x06,  /**<Audio path is speaker phone*/
837         TAPI_SOUND_PATH_HEADSET_3_5PI       =0x07,      /**<Audio path is headset_3_5PI*/
838         TAPI_SOUND_PATH_BT_NSEC_OFF         =0x08, /**<Audio path Bluetooth NSEC is off*/
839         TAPI_SOUND_PATH_MIC1                =0x09, /**<Audio path Mice one*/
840         TAPI_SOUND_PATH_MIC2                =0x0A, /**<Audio path Bluetooth mice two*/
841         TAPI_SOUND_PATH_HEADSET_HAC         =0x0B, /**<Audio path is headset hac*/
842 } TelSoundPath_t;
843
844 typedef struct {
845         TelSoundPath_t path;
846         enum ExtraVolumeStatus {
847                 TAPI_SOUND_EX_VOLUME_OFF,
848                 TAPI_SOUND_EX_VOLUME_ON,
849         } ex_volume;
850 } TelCallSoundPathInfo_t;
851
852 typedef enum {
853         TAPI_SOUND_MUTE_PATH_TX = 0x00, /**< Sound mute path transmit */
854         TAPI_SOUND_MUTE_PATH_RX = 0x02, /**< Sound mute path receiver */
855         TAPI_SOUND_MUTE_PATH_ALL= 0x04, /**< Sound mute path all*/
856 } TelSoundMutePath_t;
857
858 typedef enum {
859         TAPI_SOUND_MUTE_STATUS_OFF = 0x00, /**< Sound mute status off*/
860         TAPI_SOUND_MUTE_STATUS_ON  = 0x01, /**< Sound mute status on */
861 } TelSoundMuteStatus_t;
862
863 typedef enum {
864         TAPI_SOUND_NOISE_REDUCTION_OFF, /**< Sound noise reduction off*/
865         TAPI_SOUND_NOISE_REDUCTION_ON, /**< Sound noise reduction on */
866 } TelSoundNoiseReduction_t;
867
868 typedef enum {
869         TAPI_SOUND_EQUALIZATION_MODE_OFF, /**< Sound equalization mode is off */
870         TAPI_SOUND_EQUALIZATION_MODE_ON, /**< Sound equalization mode is on*/
871         TAPI_SOUND_EQUALIZATION_MODE_FLAG_OFF, /**< Sound  equalization mode flag is off*/
872         TAPI_SOUND_EQUALIZATION_MODE_FLAG_ON, /**< Sound  equalization mode flag is on */
873         TAPI_SOUND_EQUALIZATION_MODE_SOFT1, /**< Sound  equalization mode soft 1*/
874         TAPI_SOUND_EQUALIZATION_MODE_SOFT2, /**< Sound  equalization mode soft 2*/
875 } TelSoundEqualizationMode_t;
876
877 typedef enum {
878         TAPI_SOUND_DIRECTION_LEFT, /**< Sound direction left*/
879         TAPI_SOUND_DIRECTION_RIGHT, /**< Sound  direction right*/
880 } TelSoundDirection_t;
881
882
883 #define MAX_SOUND_EQ_PARAMETER_SIZE 6
884 typedef struct {
885         TelSoundEqualizationMode_t mode;
886         TelSoundDirection_t direction;
887         unsigned short parameter[MAX_SOUND_EQ_PARAMETER_SIZE];
888 } TelCallSoundEqualization_t;
889
890
891
892
893 typedef struct {
894         unsigned int id;
895 } TelCallAnswerCnf_t;
896
897 typedef struct {
898         TelCallEndType_t type;
899         unsigned int id;
900 } TelCallEndCnf_t;
901
902 typedef struct {
903         unsigned int id;
904 } TelCallHoldCnf_t;
905
906 typedef struct {
907         unsigned int id;
908 } TelCallActiveCnf_t;
909
910 typedef struct {
911         unsigned int id;
912 } TelCallSwapCnf_t;
913
914 typedef struct {
915         unsigned int id;
916 } TelCallJoinCnf_t;
917
918 typedef struct {
919         unsigned int id;
920 } TelCallSplitCnf_t;
921
922 typedef struct {
923         unsigned int id;
924 } TelCallTransferCnf_t;
925
926 typedef struct {
927         unsigned int record_num;
928         TelCallVolumeInfo_t record[ 20 ];
929 } TelCallGetVolumeInfoResp_t;
930
931 typedef struct {
932         TelSoundMutePath_t path;
933         TelSoundMuteStatus_t status;
934 } TelCallGetMuteStatusResp_t;
935
936
937
938
939
940
941 typedef struct {
942         unsigned int id;
943         TelTapiEndCause_t cause; /**< End cause for the call indicates whether the call is released normally or due to other cause*/
944 } TelCallStatusIdleNoti_t;
945
946 typedef struct {
947         unsigned int id;
948 } TelCallStatusActiveNoti_t;
949
950 typedef struct {
951         unsigned int id;
952 } TelCallStatusHeldNoti_t;
953
954 typedef struct {
955         unsigned int id;
956 } TelCallStatusDialingNoti_t;
957
958 typedef struct {
959         unsigned int id;
960 } TelCallStatusAlertNoti_t;
961
962 typedef struct {
963         unsigned int id;
964 } TelCallStatusIncomingNoti_t;
965
966 typedef struct {
967         unsigned int id;
968 } TelCallStatusWaitingNoti_t;
969
970 typedef struct {
971         unsigned int id;
972 } TelCallInfoWaitingNoti_t;
973
974 typedef struct {
975         unsigned int id;
976 } TelCallInfoForwardedNoti_t;
977
978 typedef struct {
979         unsigned int id;
980 } TelCallInfoBarredIncomingNoti_t;
981
982 typedef struct {
983         unsigned int id;
984 } TelCallInfoBarredOutgoingNoti_t;
985
986 typedef struct {
987         unsigned int id;
988 } TelCallInfoForwardConditionalNoti_t;
989
990 typedef struct {
991         unsigned int id;
992 } TelCallInfoForwardUnconditionalNoti_t;
993
994 typedef struct {
995         unsigned int id;
996 } TelCallInfoActiveNoti_t;
997
998 typedef struct {
999         unsigned int id;
1000 } TelCallInfoHeldNoti_t;
1001
1002 typedef struct {
1003         unsigned int id;
1004 } TelCallInfoJoinedNoti_t;
1005
1006 typedef struct {
1007         TelSoundPath_t path;
1008 } TelCallSoundPathNoti_t;
1009
1010 typedef enum {
1011         TAPI_CALL_SOUND_RINGBACK_TONE_END,
1012         TAPI_CALL_SOUND_RINGBACK_TONE_START,
1013 } TelCallSoundRingbackToneNoti_t;
1014
1015 typedef enum {
1016         TAPI_CALL_SOUND_WBAMR_STATUS_OFF,
1017         TAPI_CALL_SOUND_WBAMR_STATUS_ON,
1018         TAPI_CALL_SOUND_WBAMR_STATUS_OFF_16K,
1019         TAPI_CALL_SOUND_WBAMR_STATUS_ON_8K,
1020 } TelCallSoundWbamrNoti_t;
1021
1022 typedef struct {
1023         TelSoundNoiseReduction_t status;
1024 } TelCallSoundNoiseReductionNoti_t;
1025
1026 typedef struct {
1027         TelSoundEqualizationMode_t mode;
1028         TelSoundDirection_t direction;
1029 } TelCallSoundEqualizationNoti_t;
1030
1031
1032 #ifdef __cplusplus
1033 }
1034 #endif
1035
1036 #endif  // _TEL_CALL_H_
1037 /**
1038  * @}
1039  */