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