blob: d0d15645b7bdbdc5423273b0ab2ce909cd97cb64 [file] [log] [blame]
yu.dongc33b3072024-08-21 23:14:49 -07001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2005
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35
36/*****************************************************************************
37 *
38 * Filename:
39 * ---------
40 * mmi2voip_enums.h
41 *
42 * Project:
43 * --------
44 * MAUI
45 *
46 * Description:
47 * ------------
48 * This file contains the Enum for interface between MMI and VoIP task.
49 *
50 * Author:
51 * -------
52 * -------
53 *
54 *==============================================================================
55 * HISTORY
56 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
57 *------------------------------------------------------------------------------
58 * removed!
59 *
60 * removed!
61 * removed!
62 * removed!
63 *
64 * removed!
65 * removed!
66 * removed!
67 *
68 * removed!
69 * removed!
70 * removed!
71 *
72 * removed!
73 * removed!
74 * removed!
75 *
76 * removed!
77 * removed!
78 * removed!
79 *
80 * removed!
81 * removed!
82 * removed!
83 *
84 * removed!
85 * removed!
86 * removed!
87 *
88 * removed!
89 * removed!
90 * removed!
91 *
92 * removed!
93 * removed!
94 * removed!
95 *
96 * removed!
97 * removed!
98 * removed!
99 *
100 * removed!
101 * removed!
102 * removed!
103 *
104 * removed!
105 * removed!
106 * removed!
107 *
108 * removed!
109 * removed!
110 * removed!
111 *
112 * removed!
113 * removed!
114 * removed!
115 *
116 *------------------------------------------------------------------------------
117 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
118 *==============================================================================
119 *******************************************************************************/
120
121#ifndef _MMI2VOIP_ENUMS_H
122#define _MMI2VOIP_ENUMS_H
123
124/* call act enum */
125typedef enum
126{
127 VOIP_CALL_ACT_IDLE = 0, /* 0 No action */
128 VOIP_CALL_ACT_DIAL_CALL, /* 1 Make a call */
129 VOIP_CALL_ACT_RETRIEVE_CALL, /* 2 retrieve a specific held call */
130 VOIP_CALL_ACT_HOLD_CALL, /* 3 Hold an active call */
131 VOIP_CALL_ACT_ACCEPT_CALL, /* 4 Accept call */
132 VOIP_CALL_ACT_REL_CALL, /* 5 Release a specific call, whether it is a waiting, active, or help call */
133 VOIP_CALL_ACT_REL_ALL_CALLS, /* 6 Release all calls */
134 VOIP_CALL_ACT_REL_ALL_HOLD, /* 7 Release all held calls */
135 VOIP_CALL_ACT_REL_ALL_EXCEPT_WAITING, /* 8 Release all calls except waiting call */
136 VOIP_CALL_ACT_REL_ACTIVE_AND_ACCEPT, /* 9 Release active call and accept waiting call */
137 VOIP_CALL_ACT_FORCE_REL_CALL, /* 10 Force to release an call that is already released but response not comes back yet */
138 VOIP_CALL_ACT_SWAP_CALL, /* 11 Hold active call and activate a specific held call */
139 VOIP_CALL_ACT_SPLIT_CALL, /* 12 Split a multiparty call into two calls */
140 VOIP_CALL_ACT_MERGE_CALL, /* 13 Add a held call into an active call */
141 VOIP_CALL_ACT_BLIND_TRANSFER, /* 14 Blind transfer a call */
142 VOIP_CALL_ACT_UNATTENDED_TRANSFER, /* 15 Unattended transfer a call */
143 VOIP_CALL_ACT_CONSULT_TRNASFER, /* 16 Consultive transfer a call (Not supported yet) */
144 VOIP_CALL_ACT_ATTENDED_TRNASFER, /* 17 Attended transfer a call (Not supported yet) */
145 VOIP_CALL_ACT_REL_ALL_AND_DIAL_EMERGENCY, /* 18 Force release all call and dial emergency call */
146 VOIP_CALL_ACT_HOLD_AND_DIAL, /* 19 Hold active and dial */
147 VOIP_CALL_ACT_HOLD_AND_ACCEPT, /* 20 Hold active and accept */
148 VOIP_CALL_ACT_TRANSFEREE, /* 21 Transfer call to another location (transfee case). Triggered by remove site. */
149 VOIP_CALL_ACT_BK_REL_MT_CALL, /* 22 Release call in the background */
150 VOIP_CALL_ACT_BK_REL_ALL_CALL, /* 23 Release all calls in the background */
151 VOIP_CALL_ACT_ADD_PARTICIPANT, /* 24 Add participant into a conference call */
152 VOIP_CALL_ACT_REMOVE_PARTICIPANT, /* 25 Remove participant from a conference call */
153 VOIP_CALL_ACT_CONF_REFRESH, /* 26 Subscribe state of a call (Not supported yet) */
154 VOIP_CALL_ACT_ACCEPT_REPLACED_CALL, /* 27 Accept new call with replaces */
155 VOIP_CALL_ACT_TOTAL /* 28 Total number of call action */
156}voip_call_act_enum;
157
158/* call main state. */
159typedef enum
160{
161 VOIP_CALL_STATE_TERMINATED = 0, /* 0 Call is terminated */
162 VOIP_CALL_STATE_CONFIRMED, /* 1 Call is connected. The call might be active or hold */
163 VOIP_CALL_STATE_GET_MO_ADDR, /* 2 Getting NAT address for MO call For MO call */
164 VOIP_CALL_STATE_INVITE_PENDING, /* 3 Waiting for the response of INVITE request */
165 VOIP_CALL_STATE_RECV_1XX, /* 4 Receive 1XX resposne for INVITE */
166 VOIP_CALL_STATE_RECV_2XX_REINVITE, /* 5*/
167 VOIP_CALL_STATE_RINGING, /* 6 Incoming call, waiting user to accept (for MT call) */
168 VOIP_CALL_STATE_GET_MT_ADDR, /* 7 Getting NAT address (for MT call) */
169 VOIP_CALL_STATE_ACCEPTING, /* 8 Waiting for the ACK of ACCEPT request (for MT call) */
170 VOIP_CALL_STATE_HOLDING, /* 9 Holding dialog inner a single call (Call HOLD) */
171 VOIP_CALL_STATE_UNHOLDING, /* 10 Retrieving dialog inner a single call (Call HOLD) */
172 VOIP_CALL_STATE_HOLDING_1D, /* 11 Holding the first dialog of a call and waiting for the response (Call HOLD)*/
173 VOIP_CALL_STATE_HOLDING_2D, /* 12 Holding the second dialog of a call and waiting for the response (Call HOLD) */
174 VOIP_CALL_STATE_REL_HOLD_FAILED, /* 13 Releasing the failed dialog during the HOLD process (Call HOLD) */
175 VOIP_CALL_STATE_UNHOLDING_1D, /* 14 Retrieving the first dialog of a call and waiting for the response (Call UNHOLD) */
176 VOIP_CALL_STATE_UNHOLDING_2D, /* 15 Retrieving the second dialog of a call and waiting for the response (Call UNHOLD) */
177 VOIP_CALL_STATE_REL_UNHOLD_FAILED, /* 16 Releasing the failed dialog during the UNHOLD process (Call UNHOLD) */
178 VOIP_CALL_STATE_TERMINATING, /* 17 Releasing call */
179 VOIP_CALL_STATE_WAIT_TRANSFER, /* 18 Waiting for the response of previous sent REFER CALL Transfer */
180 VOIP_CALL_STATE_TRANSFERING, /* 19 Trasfering a call and waiting for the result. */
181 VOIP_CALL_STATE_ABORT_MO_NAT_ADDR, /* 20 Aborting the getting derived address process */
182 VOIP_CALL_STATE_ABORT_MT_NAT_ADDR, /* 21 Aborting the getting derived address process */
183 VOIP_CALL_STATE_WAIT_CANCEL, /* 22 Received the request to abort the MO, is waiting the 1xx indication to proceed the canceling procedure */
184 VOIP_CALL_STATE_CANCELING, /* 23 Canceling a MO call, and waiting for the response */
185 VOIP_CALL_STATE_WAIT_TERMINATE, /* 24 Waiting for the reposne of accpetance to proceed the terminating process */
186 VOIP_CALL_STATE_TERMINATING_2D, /* 25 Terminating a mulit-party call, and waiting for the response */
187 VOIP_CALL_STATE_TERMINATING_1D, /* 26 Terminating a mulit-party call, and already received the first response */
188 VOIP_CALL_STATE_ADD_PARTICIPANT, /* 27 Adding participant and waiting for the response */
189 VOIP_CALL_STATE_REMOVE_PARTICIPENT, /* 28 Removing participant and waiting for the response */
190 VOIP_CALL_STATE_SUBSCRIBING, /* 29 Subscribing the call state */
191// VOIP_CALL_STATE_UNSUBSCRIBING, /* 30 Unsubscribing the call state before release a call */
192 VOIP_CALL_STATE_TOTAL
193}voip_call_state_enum;
194
195/* dialog state */
196typedef enum
197{
198 VOIP_DLG_STATE_TERMINATED = 0, /* dialog is terminated */
199 VOIP_DLG_STATE_ACTIVE, /* 1 Active call */
200 VOIP_DLG_STATE_HOLD, /* 2 Held call */
201 VOIP_DLG_STATE_WAITING, /* 3 Waiting call */
202 VOIP_DLG_STATE_HOLDING, /* 4 The dialog is holding and waiting for the response */
203 VOIP_DLG_STATE_UNHOLDING, /* 5 The dialog is unholding and waiting for the response */
204 VOIP_DLG_STATE_TERMINATING, /* 6 Terminating a dialog */
205 VOIP_DLG_STATE_WAIT_NAT, /* 7 Wait NAT response to proceed MO/MT call */
206 VOIP_DLG_STATE_MO, /* 8 During MO procedure */
207 VOIP_DLG_STATE_MT, /* 9 During MT procedure */
208 VOIP_DLG_STATE_WAIT_ACK, /* 10 Waiting for remote ACK */
209 VOIP_DLG_STATE_WAIT_PRACK, /* 11 Waiting for PRACK */
210 VOIP_DLG_STATE_WAIT_PRACK_RESP, /* 12 Waiting for 200 of PRACK */
211 VOIP_DLG_STATE_TRANSFERING, /* 12 During transfering procedure */
212 VOIP_DLG_STATE_TRANSFEREE, /* 13 During background transfering procedure */
213 VOIP_DLG_STATE_TOTAL
214}voip_dlg_state_enum;
215
216
217typedef enum
218{
219 VOIP_RTP_DIRECTION_SENDRECV = 0, /* Send and Receive */
220 VOIP_RTP_DIRECTION_SENDONLY, /* Send only */
221 VOIP_RTP_DIRECTION_RECVONLY, /* Receive only */
222 VOIP_RTP_DIRECTION_INACTIVE, /* RTP session suspends */
223 VOIP_RTP_DIRECTION_DEFAULT,
224 VOIP_RTP_DIRECTION_TOTAL
225}voip_rtp_direction_enum;
226
227
228/* PROGRESSING_IND */
229typedef enum
230{
231 VOIP_CALL_PROG_TRYING = 0, /* specific for sending call_id to mmi */
232 VOIP_CALL_PROG_RINGING, /* Receive 180 (ringing indication) */
233 VOIP_CALL_PROG_FORWARDED, /* Receove 181 (call forwarded) */
234 VOIP_CALL_PROG_SDP_EXCHANGED, /* Receive 1xx with SDP */
235 VOIP_CALL_PROG_TOTAL
236}voip_call_progress_enum;
237
238/* Type of call state in CALL_STATE_IND. */
239typedef enum
240{
241 VOIP_STATE_IND_SDP_CHANGE = 0,
242 VOIP_STATE_IND_TRANSFERING,
243 VOIP_STATE_IND_TRANSFERED,
244 VOIP_STATE_IND_TRANSFER_FAILED,
245 VOIP_STATE_IND_TOTAL
246}voip_state_ind_enum;
247
248typedef enum
249{
250 VOIP_MWI_VOICE=0, /* Voice Message */
251 VOIP_MWI_FAX, /* Fax Message */
252 VOIP_MWI_PAGER, /* Pager Message */
253 VOIP_MWI_MM, /* Multimedia Message */
254 VOIP_MWI_TEXT, /* Text Message */
255 VOIP_MWI_NONE, /* Unrecognized Message */
256 VOIP_MWI_TOTAL
257} voip_mwi_type_enum;
258
259
260typedef enum
261{
262 VOIP_CONF_STATE_FULL = 0, /* full information of conference */
263 VOIP_CONF_STATE_PARTIAL, /* particial information, contains only changed part */
264 VOIP_CONF_STATE_DELETED, /* conference is deleted (call end) */
265 VOIP_CONF_STATE_END
266}voip_conf_state_enum;
267
268typedef enum
269{
270 VOIP_CONF_USER_STATUS_CONNECTED = 0, /* User connected */
271 VOIP_CONF_USER_STATUS_DISCONNECTED, /* User disconnected */
272 VOIP_CONF_USER_STATUS_END
273}voip_conf_user_status_enum;
274
275typedef enum
276{
277 VOIP_SUBS_STATE_NONE = 0,
278 VOIP_SUBS_STATE_SUCCESS,
279 VOIP_SUBS_STATE_BK_SUBSCRIBING,
280 VOIP_SUBS_STATE_END
281}voip_subs_state_enum;
282
283typedef enum
284{
285 VOIP_ANNEX_NONE = 0,
286 VOIP_ANNEX_NO,
287 VOIP_ANNEX_YES,
288 VOIP_ANNEX_END
289}voip_annex_enum;
290
291typedef enum
292{
293 VOIP_SIP_CAP_AUDIO = 0, /* 0 sip.audio */
294 VOIP_SIP_CAP_APPLICATION, /* 1 sip.application */
295 VOIP_SIP_CAP_DATA, /* 2 sip.data */
296 VOIP_SIP_CAP_CONTROL, /* 3 sip.control */
297 VOIP_SIP_CAP_VIDEO, /* 4 sip.video */
298 VOIP_SIP_CAP_TEXT, /* 5 sip.text */
299 VOIP_SIP_CAP_AUTOMATA, /* 6 sip.automata */
300 VOIP_SIP_CAP_CLASS, /* 7 sip.class */
301 VOIP_SIP_CAP_DUPLEX, /* 8 sip.duplex */
302 VOIP_SIP_CAP_MOBILITY, /* 9 sip.mobility */
303 VOIP_SIP_CAP_DESCRIPTION, /* 10 sip.description */
304 VOIP_SIP_CAP_EVENTS, /* 11 sip.events */
305 VOIP_SIP_CAP_PRIORITY, /* 12 sip.priority */
306 VOIP_SIP_CAP_METHODS, /* 13 sip.methods */
307 VOIP_SIP_CAP_EXTENSIONS, /* 14 sip.extensions */
308 VOIP_SIP_CAP_SCHEMES, /* 15 sip.schemes */
309 VOIP_SIP_CAP_ACTOR, /* 16 sip.actor */
310 VOIP_SIP_CAP_ISFOCUS, /* 17 sip.isfocus */
311 VOIP_SIP_CAP_BASE_TAGS = VOIP_SIP_CAP_ISFOCUS,
312/* new defined tags starting from here */
313 VOIP_SIP_CAP_TOTAL
314} voip_sip_capability_enum;
315
316#define VOIP_SIP_CAP_NON_SPECIFIED 0
317typedef enum
318{
319 VOIP_SIP_CAP_BOOLEAN_TRUE = 1,
320 VOIP_SIP_CAP_BOOLEAN_FALSE
321} voip_sip_cap_boolean_type_enum;
322
323typedef enum
324{
325 VOIP_SIP_CAP_CLASS_BUSINESS = 1,
326 VOIP_SIP_CAP_CLASS_PERSONAL,
327 VOIP_SIP_CAP_CLASS_SYSTEM = VOIP_SIP_CAP_CLASS_PERSONAL
328} voip_sip_cap_class_type_enum;
329
330typedef enum
331{
332 VOIP_SIP_CAP_DUPLEX_FULL = 1,
333 VOIP_SIP_CAP_DUPLEX_SYSTEM = VOIP_SIP_CAP_DUPLEX_FULL,
334 VOIP_SIP_CAP_DUPLEX_HALF,
335 VOIP_SIP_CAP_DUPLEX_RECVONLY,
336 VOIP_SIP_CAP_DUPLEX_SENDONLY
337} voip_sip_cap_duplex_type_enum;
338
339typedef enum
340{
341 VOIP_SIP_CAP_MOBILITY_FIXED = 1,
342 VOIP_SIP_CAP_MOBILITY_MOBILE,
343 VOIP_SIP_CAP_MOBILITY_SYSTEM = VOIP_SIP_CAP_MOBILITY_MOBILE
344} voip_sip_cap_mobility_type_enum;
345
346typedef enum
347{
348 VOIP_SIP_CAP_ACTOR_PRINCIPAL = 1,
349 VOIP_SIP_CAP_ACTOR_SYSTEM = VOIP_SIP_CAP_ACTOR_PRINCIPAL,
350 VOIP_SIP_CAP_ACTOR_ATTENDANT,
351 VOIP_SIP_CAP_ACTOR_MSG_TAKER,
352 VOIP_SIP_CAP_ACTOR_INFORMATION
353} voip_sip_cap_actor_type_enum;
354
355typedef enum
356{
357 VOIP_CALLER_PREF_NON_SPECIFIED = 0,
358 VOIP_CALLER_PREF_ACCEPT_EXPLICIT,
359 VOIP_CALLER_PREF_ACCEPT_REQUIRE,
360 VOIP_CALLER_PREF_ACCEPT_NONE,
361 VOIP_CALLER_PREF_REJECT_EXPLICIT,
362 VOIP_CALLER_PREF_REJECT_REQUIRE,
363 VOIP_CALLER_PREF_REJECT_NONE
364} voip_caller_pref_type_enum;
365
366#endif /* _MMI2VOIP_ENUMS_H */
367