blob: 10901913e3a84e3964dc2118d3bd366c332bec87 [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
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) 2012
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 * Filename:
38 * ---------
39 * imsua_struct.h
40 *
41 * Project:
42 * --------
43 * VMOLY
44 *
45 * Description:
46 * ------------
47 *
48 * Author:
49 * -------
50 * -------
51 *
52 * ==========================================================================
53 * $Log$
54 *
55 * 06 10 2022 yung-liang.tsou
56 * [MOLY00876156] [T750][AT]AT+CLCC????
57 *
58 * .AT+CLCC support in IMS
59 *
60 * 01 21 2022 ari.simonen
61 * [MOLY00681724] [Gen97][MT6891][Petrus-P][R0][SQC][VDF][WW FT][Germany][Hannover][SA][TCID: FreeTest]WFC-VoLTE handover issues when pcscf addresses have been changed
62 *
63 * Changed REG to wait for IP ready during HO to prevent it from trying to re-register with an old local IP address.
64 *
65 * 12 16 2021 xin.ni
66 * [MOLY00774161] [mt2735][CS eCall][NG eCall][patch back] ecall patch back from NR15.R3.MD700.MP.ECAll.DEV. IMS interface part
67 *
68 * .
69 *
70 * 12 14 2021 ot_gang.zhang
71 * [MOLY00729679] [MT6873][Margaux][Q0][R3][JAPAN][SOFTBANK][SA][SIM][Lab][Voice-06-01-02] Please help to support OTR-Voice-032069
72 * 08 09 2021 rohit.sharma
73 *
74 * .
75 *
76 *
77 * .
78 *
79 * [MOLY00629619] [Gen97][In-house][India][Delhi][MT6853][4GMM][IFT][RJIO][TCID: DSCP_002][STATIC] Device is not sending DSCP marking for Video packets when upgrading from Volte to Vilte call, it sends CS0 instead of AF31
80 * .
81 * 05 17 2021 zhongyong.wang
82 * [MOLY00606601] [MT6853][Mouton][R0][WW FT][Colombia][IMS][Regression][SQC Excluded][VoLTE][Claro] IPv4 CP and IPv6 UP requirement by AMX
83 *
84 * .
85 *
86 * 11 13 2020 peng.pan
87 * [MOLY00589298] [MT6853][Mouton][VzW][CCP2][LC][HQ][RnS][E911][2.41][UE Without UICC, SIB1 PS 911 Supported and SIB2 Emergency Call Not Barred, UE Recently Acquired List has LTE, PS 911 Call Unsuccessful, 911 call Completes on available System ]911 call on the UMTS fail
88 * support handle invite 407 with "Proxy-Authenticate" header.
89 *
90 * 11 13 2020 peng.pan
91 * [MOLY00589298] [MT6853][Mouton][VzW][CCP2][LC][HQ][RnS][E911][2.41][UE Without UICC, SIB1 PS 911 Supported and SIB2 Emergency Call Not Barred, UE Recently Acquired List has LTE, PS 911 Call Unsuccessful, 911 call Completes on available System ]911 call on the UMTS fail
92 * support handle invite 407 with "Proxy-Authenticate" header.
93 *
94 * 11 13 2020 peng.pan
95 * support handle invite 407 with "Proxy-Authenticate" header.
96 *
97 * 11 02 2020 ari.simonen
98 * [MOLY00589251] [Gen97][MP7][Memory reduction] Stage V - IMCB cleanup and dialog/account# reduce
99 *
100 * Memory optimizations: created common CC context and stream pools to be shared between SIMs/accounts.
101 * This helps to reduce SIM structure memory consumption, as all SIMs and accounts don't need to support the maximum dialog count simultaneously.
102 * Also cleaned up some unused video parameters from IMCB structures.
103 *
104 * 11 02 2020 ari.simonen
105 * [MOLY00578691] [Gen97][IMS] IMCB memory optimizations
106 *
107 * Memory optimizations: created common CC context and stream pools to be shared between SIMs/accounts.
108 * This helps to reduce SIM structure memory consumption, as all SIMs and accounts don't need to support the maximum dialog count simultaneously.
109 * Also cleaned up some unused video parameters from IMCB structures.
110 *
111 * 09 30 2020 vend_mti_wspsd_012
112 * [MOLY00551167] �?�?测必解】�?19420】�?NZ】�?OP_Spark】�?FT】�?DVT】与QC视频通�?,无hold call tone
113 *
114 * .
115 *
116 * 09 18 2020 shu-lin.yang
117 * [MOLY00569420] [US_DEV] VZW 2020JUN IMSUA
118 *
119 * R3 TC3 VLIST.
120 *
121 * 07 29 2020 jin.liang
122 * [MOLY00550525] [Oppo] Please provide CMCC, CT and CU來電影?feature
123 * .
124 *
125 * 07 15 2020 jin.liang
126 * [MOLY00517562] [self]503???问题?请优??
127 * .
128 *
129 * 06 30 2020 tsung-kun.shih
130 * [MOLY00508983] [Call UA][TCL][Tokyo Lite TMO][RCS][Android Q]Apply RCS enriched calling feature patch for platform part.
131 *
132 * .
133 *
134 * 06 17 2020 tsung-kun.shih
135 * [MOLY00508983] [Call UA][TCL][Tokyo Lite TMO][RCS][Android Q]Apply RCS enriched calling feature patch for platform part.
136 *
137 * .
138 *
139 * 05 07 2020 yun.bai
140 * [MOLY00514296] ??19131??PVT??海??测??19131CU+CT?(IMS+IMS),�?�1CU??MO???3G,???2/20
141 *
142 * .
143 *
144 * 03 17 2020 rahul.gupta
145 * [MOLY00505502] [MT6885][Petrus][MP3][in-house FTA][FDD][4G][RnS][34.229-1][SIM1][TCID:G.15.18] unexpected receive event at the IMS_Server port
146 *
147 * .
148 *
149 * 12 04 2019 yuheng.li
150 * [MOLY00443618] [VMOLY]Gen97 Common Feature : Call and Supplementary Service �� IMSProtoc9-support 607
151 *
152 * .
153 *
154 * 10 29 2019 yuheng.li
155 * [MOLY00443618] [VMOLY]Gen97 Common Feature : Call and Supplementary Service �� IMSProtoc9-support 607
156 *
157 * .
158 * 11 08 2019 mika.leinonen
159 * [MOLY00457775] [MT6885][Petrus][MP1][India][Delhi][FT][VoLTE][JIO][IDEA][Auto][SWIFT][ASSERT] file:mcu/protocol/ims/stack/src/reg/reg.c line:9665
160 * Change Reg UA client field to 64-bit because there can be more than 32 UA contexts
161 *
162 * 11 08 2019 mika.leinonen
163 * [MOLY00457775] [MT6885][Petrus][MP1][India][Delhi][FT][VoLTE][JIO][IDEA][Auto][SWIFT][ASSERT] file:mcu/protocol/ims/stack/src/reg/reg.c line:9665
164 * Change Reg UA client field to 64-bit because there can be more than 32 UA contexts
165 *
166 * 10 07 2019 mika.leinonen
167 * [MOLY00445818] [Pre-sanity][Exception][alps-mp-q0.mp2][k6885v1_64_kasan][2019.09.20.13.00][BootAfterFlash] Externel (EE) Current Executing Process: Trigger time:[2019-09-20 15:38:38.220423] md1:(MCU_core0,vpe1,tc2
168 * Optimized routing of video capability settings from VTS to IMSUA.
169 *
170 * 10 07 2019 mika.leinonen
171 * [MOLY00445818] [Pre-sanity][Exception][alps-mp-q0.mp2][k6885v1_64_kasan][2019.09.20.13.00][BootAfterFlash] Externel (EE) Current Executing Process: Trigger time:[2019-09-20 15:38:38.220423] md1:(MCU_core0,vpe1,tc2
172 * Optimized routing of video capability settings from VTS to IMSUA.
173 *
174 * 09 23 2019 ssu-hsien.wu
175 * [MOLY00438070] [Gen97][IMS] STKCALL and STKUSSD over IMS
176 *
177 * .
178 *
179 * 09 04 2019 mika.leinonen
180 * [MOLY00437261] [MT6297][UESIM][VMOLY APOLLO][VoLTE][TC 15_17] PANI header wrong value
181 * Fixed IMSUA message definition to use enum type to be in sync with IMC interface
182 *
183 * 07 18 2019 sami.jutila
184 * [MOLY00423377] [Gen97][IMS] UT test case enabling.
185 *
186 * .
187 *
188 * 07 12 2019 theresa.yang
189 * [MOLY00357356] [US_DEV][VzW][2018_JUN] CALL/SMS UA dev
190 *
191 * Patch back VZW -MOLY00357356.
192 *
193 * [MOLY00357356] 97 Submarine scope patches sync to Submarine DEVs
194 * [MOLY00357356][US_DEV][VzW][2018_JUN] CALL/SMS UA dev
195 * [MOLY00382398][VZW][ZTE][6761] Client API patch back
196 * [MOLY00386977][US_DEV][VzW][2018_OCT] CALLUA dev
197 * [MOLY00394340][US_DEV][MDMI] CALL UA part
198 * [MOLY00395789][US_DEV][VZW][PST tool] phone context uri
199 *
200 *
201 * 04 29 2019 xw.wang
202 * [MOLY00399953] [Korea TTA][IMS][volte_stack][TTA] Registration fail retry for 403 error response
203 * 05 10 2019 shu-lin.yang
204 * [MOLY00357356] [US_DEV][VzW][2018_JUN] CALL/SMS UA dev
205 *
206 * [MOLY00357356] 97 Submarine scope patches sync to Submarine DEVs
207 * [MOLY00357356][US_DEV][VzW][2018_JUN] CALL/SMS UA dev
208 * [MOLY00382398][VZW][ZTE][6761] Client API patch back
209 * [MOLY00386977][US_DEV][VzW][2018_OCT] CALLUA dev
210 * [MOLY00394340][US_DEV][MDMI] CALL UA part
211 * [MOLY00395789][US_DEV][VZW][PST tool] phone context uri
212 *
213 * .
214 * tta submarine
215 * 07 04 2019 mika.leinonen
216 * [MOLY00367126] [Gen97][IMS] VoLTE porting
217 * IMS UT enhancements
218 *
219 * 07 03 2019 olli.kettunen
220 * [MOLY00401775] [Submarine] Improve UA to VDM mo call cnf/rsp SAP trace output
221 *
222 * - Improve tracing of UA-IMCB SAP mo_call_cnf by using enum type
223 * - Improve tracing of IMCB-IMC SAP mo_call_rsp by using enum instead of imcf_uint8 in SAP message struct definitions.
224 * - Improve IMC-VDM SAP mo_call_cnf tracing by using enum definitions in message structure.
225 * .
226 *
227 * 04 01 2019 olli.kettunen
228 * [MOLY00396145] IMS interface version 0x71 to submarine dev
229 * .
230 * Update to IMS IF version 0x71 content
231 *
232 * 03 21 2019 sami.jutila
233 * [MOLY00393545] [Submarine][M1] Plmn_type used wrongly
234 * .
235 *
236 * 02 25 2019 tsung-kun.shih
237 * [MOLY00386710] [Submarine][M1][TMOUS][CAT][18Q4][54658][L_IR94_174811_1]fail to established MO video call
238 * Caculate suggest resource_retain_timer to IMCB for TMO.
239 * UA should send pqos to IMCB for TMO normal call combine attach case where
240 * pqos = mo_invite_to_bw_cnf_timer_timeout - Dur_INVITE_to_SIP183.
241 *
242 * 01 29 2019 szu-chieh.chiu
243 * [MOLY00381194] [Submarine][M1][1stCall] decode fail on the ILM messages between IMSUA/IMCB/IMS_STACK
244 * ua naming refine.
245 *
246 * 01 25 2019 szu-chieh.chiu
247 * [MOLY00381194] [Submarine][M1][1stCall] decode fail on the ILM messages between IMSUA/IMCB/IMS_STACK
248 * call ua naming refine.
249 *
250 * 01 25 2019 szu-chieh.chiu
251 * [MOLY00381194] [Submarine][M1][1stCall] decode fail on the ILM messages between IMSUA/IMCB/IMS_STACK
252 * .
253 *
254 * 01 24 2019 szu-chieh.chiu
255 * [MOLY00381194] [Submarine][M1][1stCall] decode fail on the ILM messages between IMSUA/IMCB/IMS_STACK
256 * [gen97] UA msg/struct refine.
257 *
258 * 01 23 2019 mika.leinonen
259 * [MOLY00380857] [Submarine][M1][1stCall][CMCC]IMS register fail
260 * Update IMS Stack interface - flag field usage
261 *
262 * 01 21 2019 ari.simonen
263 * [MOLY00367126] [Gen97][IMS] VoLTE porting
264 * IMS structure reorganization to make BW message tracing work.
265 *
266 * 01 10 2019 ari.simonen
267 * [MOLY00367126] [Gen97][IMS] VoLTE porting
268 *
269 * RTP port allocation and REG message handling fixes.
270 *
271 * 01 07 2019 kari.suvivaara
272 * [MOLY00373280] [Gen97][IMS][VoLTE Porting] Coding/UT Phase 1
273 *
274 * IMS UA and Stack ramp up on MD side.
275 *
276 * 01 07 2019 kari.suvivaara
277 * [MOLY00373280] [Gen97][IMS][VoLTE Porting] Coding/UT Phase 1
278 *
279 * IMS UA and Stack ramp up on MD side.
280 *
281 ****************************************************************************/
282
283#ifndef _IMSUA_STRUCT_H_
284#define _IMSUA_STRUCT_H_
285
286#include "kal_general_types.h"
287#include "kal_public_defs.h"
288#include "ims_common_def.h"
289#include "ims_dbg_enum.h"
290#if 0
291/* under construction !*/
292#endif
293
294#define VOLTE_MAX_SUB_PARAM_LENGTH (128)
295
296
297enum VoLTE_Event_Timer_ID_e {
298 VoLTE_Event_Timer_Reg = 1,
299 VoLTE_Event_Timer_UA = 2,
300 VoLTE_Event_Timer_IMCB = 3,
301 VoLTE_Event_Timer_Stack = 4,
302};
303
304enum VoLTE_Event_3gpp_OOS_State_e {
305 VoLTE_Event_3gpp_OOS_Start = 1,
306 VoLTE_Event_3gpp_OOS_End = 2,
307};
308
309enum VoLTE_SRVCC_info_result_e {
310 VOLTE_SRVCC_Result_STARTED = 0, // when VOLTE_SRVCC_START, this is the result
311 VoLTE_SRVCC_Result_SUCCESS, // when VOLTE_SRVCC_END, this is the result if SRVCC is success
312 VoLTE_SRVCC_Result_FAILED, // when VOLTE_SRVCC_END, this is the result if SRVCC is failed
313 VoLTE_SRVCC_Result_CANCELLED, // when VOLTE_SRVCC_END without VOLTE_SRVCC_START before, this must be the result. it indicates UA need to send reINVITE
314 VoLTE_SRVCC_Result_Unknown,
315 VoLTE_SRVCC_Result_Max,
316};
317
318typedef enum VoLTE_Event_Call_stop_cause_e {
319 VoLTE_Event_Call_Cause_Normal = 0, /*receive BYE request, MO hangup, or User reject to receive the all. mapping to CS NORMAL_CLEARING = 16. */
320 VoLTE_Event_Call_Cause_Abnormal, /*memory allocation failed, or no resource for call session in the very first begin!!! VDM can require CS to make call, mapping to CS RESOURCE_UNAVAILABLE = 47*/
321 VoLTE_Event_Call_Cause_NoNumber, /*no dialing number for MO call. mapping to CS Unassigned/Unobtainable number, VDM can require CS to make call. UNOBTAINABLE_NUMBER = 1*/
322 VoLTE_Event_Call_Cause_Unregistered, /*Account is not registered, VDM can require CS to make call, mapping to CS NORMAL_UNSPECIFIED = 31*/
323 VoLTE_Event_Call_Cause_Disconnect, /* register state go to disconnect state, mapping to CS BEARER_NOT_AVAIL = 58, play congestion tone*/
324 VoLTE_Event_Call_Cause_BeCancel, /* we cancel the call, which is receive MO_HANGUP_REQ from AP side. Mapping to CS_NORMAL_CLEANING = 16*/
325 VoLTE_Event_Call_Cause_BeReject, /* receive 4xx,5xx,6xx from the peer side to cancel request, mapping to CS USER_BUSY = 17, play busy tone*/
326 VoLTE_Event_Call_Cause_BeReject_380,/* receive 380 alternative service, mapping to CS SERVICE_NOT_AVAILABLE = 63. VDM can require CS to make call */
327 VoLTE_Event_Call_Cause_BeReject_380_emergency_to_CS,/* receive 380 alternative service, mapping to CS SERVICE_NOT_AVAILABLE = 63. VDM can require CS to make call */
328 VoLTE_Event_Call_Cause_BeReject_380_emergency_rereg,/* receive 380 alternative service with reason, mapping to CS SERVICE_NOT_AVAILABLE = 63. VDM can require CS to make call */
329 VoLTE_Event_Call_Cause_BeReject_380_emergency_to_normal_CS, /* receive 380 alternative service, mapping to CS SERVICE_NOT_AVAILABLE = 63. VDM can require CS to make a normal call*/
330 VoLTE_Event_Call_Cause_BeReject_480,/*receive 480, mapping to CS TEMPORARY_FAILURE = 41, play congestion tone*/
331 VoLTE_Event_Call_Cause_BeReject_503,/*receive 503 Service Unavailable, retry-after time period is reported. In this time period, UE cannot use VoLTE to make call. mapping to CS SERVICE_NOT_AVAILABLE = 63.*/
332 VoLTE_Event_Call_Cause_TX_Timeout, /*receive internal error from SIPTX, or AP side do not send confirmation for this MT call until we timeout, we abort the MT call presentation. mapping to CS SERVICE_NOT_AVAILABLE = 63.*/
333 VoLTE_Event_Call_Cause_No_Privacy, /* network cannot support privacy service when user requires critical level. mapping to CS BEARER_NOT_AVAIL = 58, play congestion tone */
334 VoLTE_Event_Call_Cause_PrecondFail, /* receive 580 precondition failure, mapping to CS BEARER_NOT_AVAIL = 58, play congestion tone*/
335 VoLTE_Event_Call_Cause_SecondCall, /* receive second call request, VDM can have its policy, mapping to CS NORMAL_UNSPECIFIED = 31*/
336 VoLTE_Event_Call_Cause_NoMediaContent,/* peer side do not provide SDP for media content or receive 488, mapping to CS QOS_NOT_AVAIL = 49, play congestion tone*/
337 VoLTE_Event_Call_Cause_InvalidMsg, /*SIP message is not valid, so that the related SS command cannot be executed. This happens in SS function. mapping to CS FACILITY_REJECTED = 29. no tone.*/
338 VoLTE_Event_Call_Cause_InvalidCmd, /*The command cannot be executed since no related call session is existed. This happens in SS function. cannot mapping to CS, AP side require to send 0. no tone.*/
339 VoLTE_Event_Call_Cause_InvalidIdx, /*Cannot find the acct_id or call_id in the Request command, we send Confirmation with failure result and this cause. mapping to CS NORMAL_UNSPECIFIED = 31*/
340 VoLTE_Event_Call_Cause_SRVCC, /*1. for MO call, we do not send VOLTE_MO_CALL_CNF and SRVCC, 2. For MT call, we do not receive EAIC from AP and SRVCC, then we shall reject the call by this cause.*/
341 VoLTE_Event_Call_Cause_Facility_Rejected, /*receive 504 with XML body for Registrartion Restoration. Mapping to CS FACILITY_REJECTED =29*/
342 VoLTE_Event_Call_Cause_dedicated_bearer_timeout, /*for MO call, send INVITE but no response and timeout, send indication to VDM and VDM can use CS (TMO, CMCC requirement), mapping to CS BEARER_NOT_AVAIL = 58*/
343 VoLTE_Event_Call_Cause_Retry_CS, /*for TMO requirenment, some Error code need to retry CS */
344 VoLTE_Event_Call_Cause_No_Retry, /*for TMO requirenment, some Error code need to do no action */
345 VoLTE_Event_Call_Cause_Retry_IMS_CS, /*for TMO requirenment, some Error code need to retry IMS first then CSFB */
346 VoLTE_Event_Call_Cause_Aborted, /*pending operation was aborted*/
347 VoLTE_Event_Call_Cause_Timer_B_Expiry, /*for DCM requirement, do PCSCF error handling */
348 VoLTE_Event_Call_Cause_ECT_Timeout, /*for assured ECT timeout, mapping to 899 AT-interface cause value. */
349 VoLTE_Event_Call_Cause_Timer_VZW_Expiry, /*for VZW HVOLTE*/
350 VoLTE_Event_Call_Cause_AC_Barred, /*for VZW HVOLTE*/
351 VoLTE_Event_Call_Cause_NW_Rej_Conn, /*for VZW HVOLTE*/
352 VoLTE_Event_Call_Cause_BeReject_503_Outage_text, /*for VZW HVOLTE*/
353 VoLTE_Event_Call_Cause_Change_PCSCF, /*for TMOUS EMC*/
354 VoLTE_Event_Call_Cause_RTT_EMC_Fail, /*for TMOUS RTT EMC*/
355 VoLTE_Event_Call_Cause_BeReject_380_emergency_normal_CS_to_IMS, /* receive 380 alternative service,VDM can require CS to make a normal call and after that a normal IMS call to 380 contact urn. */
356 VoLTE_Event_Call_Cause_BeReject_380_emergency_action_elem_unknown, /* receive 380 alternative service, without contact header, XML type is emergency but unknown or missing action element. */
357 VoLTE_Event_Call_Cause_Retry_IMS_Video_To_Voice, /*for CMCC requirement, if original call type is video, some error codes need to retry ims as voice*/
358 VoLTE_Event_Call_Cause_No_Retry_Bar_IMS, /*Huawei's requirement, bar IMS for some specific scenarios, then VDM will only try CS during a time period*/
rjw04b9c952023-03-28 14:35:43 +0800359 VoLTE_Event_Call_Cause_BeReject_380_FlightMode_CS, /* For Claro requirement , UI should pop-up message when receive 380 alternative service during FlightMode, mapping to CS SERVICE_NOT_AVAILABLE = 380. Other behavior is same as Bereject_380 (cause = 7)*/
360 VoLTE_Event_Call_Cause_No_Retry_emergency, /* For KDDI requirement, MD don't retry IMS/CS when UA receive error code, AP may customize to choice another sim card to retry */
rjw6c1fd8f2022-11-30 14:33:01 +0800361 /*add here*/
362 VoLTE_Event_Call_Cause_Max,
363} VoLTE_Event_Call_stop_cause_e;
364
365
366typedef enum VoLTE_Event_Call_Stop_result_e {
367 VoLTE_Event_Call_Result_OK = 0,
368 VoLTE_Event_Call_Result_FAILED,
369 /*add here*/
370 VoLTE_Event_Call_Result_Max,
371} VoLTE_Event_Call_Stop_result_e;
372
373enum VoLTE_Event_Call_Rel_cause_e {
374 VoLTE_Event_Call_Rel_Cause_None = 0,
375 VoLTE_Event_Call_Rel_Cause_eHRPD,
376 VoLTE_Event_Call_Rel_Cause_3Way,
377 VoLTE_Event_Call_Rel_Cause_Econf,
378 VoLTE_Event_Call_Rel_Cause_Release,
379 VoLTE_Event_Call_Rel_Cause_Unregistered,
380 VoLTE_Event_Call_Rel_Cause_Ect,
381 VoLTE_Event_Call_Rel_Cause_DeReg,
382 VoLTE_Event_Call_Rel_Cause_Altclost,
383 VoLTE_Event_Call_Rel_Cause_Twlan911,
384 VoLTE_Event_Call_Rel_Cause_psdataoff,
385 VoLTE_Event_Call_Rel_Cause_low_battery,
386 VoLTE_Event_Call_Rel_Cause_no_coverage,
387 VoLTE_Event_Call_Rel_Cause_607_unwanted,
388 VoLTE_Event_Call_Rel_Cause_rereg_403,
389 VoLTE_Event_Call_Rel_Cause_TAU_fail,
390 VoLTE_Event_Call_Rel_Cause_EPSFB_fail,
391 VoLTE_Event_Call_Rel_Cause_EPSFB_Redirection_fail,
392 /*add here*/
393 VoLTE_Event_Call_Rel_Cause_Max,
394};
395
396typedef enum VoLTE_Event_Call_Mode_e {
397 VoLTE_Event_Call_Mode_AUDIO = 0, ///< 0, normal voice call
398 VoLTE_Event_Call_Mode_VIDEO_AUDIO, ///< 1, normal video call
399 VoLTE_Event_Call_Mode_VIDEO_ONLY, ///< 2, only video call
400 /*add here*/
401 /* specifical call */
402 VoLTE_Event_Call_Mode_AUDIO_CONF = 11, ///< 11, audio conference call
403 VoLTE_Event_Call_Mode_VIDEO_CONF, ///< 12, video conference call
404
405 VoLTE_Event_Call_Mode_AUDIO_CONF_PARTS = 21, ///< 21, audio conference call participant
406 VoLTE_Event_Call_Mode_VIDEO_CONF_PARTS, ///< 22, video conference call participant
407 /*add here*/
408 /* emergency */
409 VoLTE_Event_Call_Mode_EMERGENCY = 81, ///< 81, generic emergency call
410 VoLTE_Event_Call_Mode_EMER_POLICE, ///< 82, police emergency call
411 VoLTE_Event_Call_Mode_EMER_FIRE, ///< 83, fire emergency call
412 VoLTE_Event_Call_Mode_EMER_GAS,
413 VoLTE_Event_Call_Mode_EMER_AMBULANCE,
414 VoLTE_Event_Call_Mode_EMER_ANIMAL,
415 VoLTE_Event_Call_Mode_EMER_MARINE,
416 VoLTE_Event_Call_Mode_EMER_MOUNTAIN,
417 VoLTE_Event_Call_Mode_EMER_PHYSICIAN,
418 VoLTE_Event_Call_Mode_EMER_POISON,
419 VoLTE_Event_Call_Mode_EMER_TRAFFIC, ///< 91, for CMCC 122, traffic emergency call
420 VoLTE_Event_Call_Mode_EMER_COUNTRY_SPECIFIC,
yu.donge372c322023-08-30 20:25:04 -0700421 VoLTE_Event_Call_Mode_EMER_EXTENDED_SUB_SERVICE, //for 24.301 9.9.3.37A Extended Emergency Number
rjw6c1fd8f2022-11-30 14:33:01 +0800422 VoLTE_Event_Call_Mode_EMER_MANUAL_ECALL,
423 VoLTE_Event_Call_Mode_EMER_AUTO_ECALL,
424 VoLTE_Event_Call_Mode_EMER_UNRECOGNIZED = 99, ///< for any unrecognized emergency call by upperlayer
425
426 /*Korea TTA special emergency service*/
427 VoLTE_Event_Call_Mode_EMER_KR_INTELLIGENCE = 201,
428 VoLTE_Event_Call_Mode_EMER_KR_SPIES,
429 VoLTE_Event_Call_Mode_EMER_KR_SCHOOL_VIOLENCE,
430 VoLTE_Event_Call_Mode_EMER_KR_CYBERTERRORISM,
431 VoLTE_Event_Call_Mode_EMER_KR_SMUGGLING,
432
433 /*add here*/
434 VoLTE_Event_Call_Mode_Max,
435} VoLTE_Event_Call_Mode_e;
436
437enum VoLTE_Event_EVTA_Mode_e {
438 VoLTE_Event_EVTA_MODE_UNKNOWN = 0,
439 VoLTE_Event_EVTA_MODE_ACCEPT_AS_VOICE = 1,
440 VoLTE_Event_EVTA_MODE_ACCEPT_AS_ONEWAY_VIDEO_RX = 2,
441 VoLTE_Event_EVTA_MODE_ACCEPT_AS_ONEWAY_VIDEO_TX = 3,
442 VoLTE_Event_EVTA_MODE_MAX,
443};
444
445enum VoLTE_Event_IMS_call_mode_e {
446 VoLTE_Event_IMS_call_mode_none = 0,
447 VoLTE_Event_IMS_call_mode_original = 1,
448 VoLTE_Event_IMS_call_mode_client_api = 2,
449 VoLTE_Event_IMS_call_mode_max,
450};
451
452/**************
453VoLTE_Event_BW_Act_e
454
455Feature: (1~8bit)
4561. Audio: (1st bit)
4572. Video: (2nd bit)
4583. Text: (3rd bit)
459
460Action: (9~16bit)
4611. 00: VoLTE UA requires (used in BW_IND/BW_MOD/BW_CNF)
4622. 01: IMCB notify that the bandwidth is modified (used in BW_NEGO)
4633. 10: IMCB notify that the Audio bandwidth is released (used in BW_NEGO)
464***************/
465
466enum VoLTE_Event_BW_Act_e {
467 VoLTE_Event_BW_Act_Required_Failed = 0, //0x00 0000 0000
468 VoLTE_Event_BW_Act_Audio_only = 1, //0x00 0000 0001
469 VoLTE_Event_BW_Act_Video_only = 2, //0x00 0000 0010
470 VoLTE_Event_BW_Act_Audio_Video = 3, //0x00 0000 0011
471 VoLTE_Event_BW_Act_Text_only = 4, //0x00 0000 0100
472 VoLTE_Event_BW_Act_Audio_Text = 5, //0x00 0000 0101
473 VoLTE_Event_BW_Act_Video_Text = 6, //0x00 0000 0110
474 VoLTE_Event_BW_Act_Audio_Video_Text = 7, //0x00 0000 0111
475
476 VoLTE_Event_BW_Modify = 256, //0x01 0000 0000
477
478 VoLTE_Event_BW_Rel_Audio_only = 513, //0x10 0000 0001
479 VoLTE_Event_BW_Rel_Video_only = 514, //0x10 0000 0010
480 VoLTE_Event_BW_Rel_Audio_Video = 515, //0x10 0000 0011
481 VoLTE_Event_BW_Rel_Text_only = 516, //0x10 0000 0100
482 VoLTE_Event_BW_Rel_Audio_Text = 517, //0x10 0000 0101
483 VoLTE_Event_BW_Rel_Video_Text = 518, //0x10 0000 0110
484 VoLTE_Event_BW_Rel_Audio_Video_Text = 519, //0x10 0000 0111
485
486 VoLTE_Event_BW_Act_Max,
487};
488
489typedef enum VoLTE_MO_Call_Uri_Scheme_Type_e {
490 VOLTE_MO_CALL_URI_SCHEME_TYPE_NONE = 0,
491 VOLTE_MO_CALL_URI_SCHEME_TYPE_SIP = 1,
492 VOLTE_MO_CALL_URI_SCHEME_TYPE_TEL = 2,
493 VOLTE_MO_CALL_URI_SCHEME_TYPE_URN = 3,
494 /*add here*/
495 VOLTE_MO_CALL_URI_SCHEME_TYPE_Max,
496} VoLTE_MO_Call_Uri_Scheme_Type_e;
497
498/*Emergency Call Category may be multiple. We use bitmap to specify it.
499 Currently, this is used for SRVCC call context transfer.
500*/
501typedef enum VoLTE_Event_ECC_Category_e {
502 VoLTE_Event_Ecc_Ctgy_Unspecified = 0,
503 VoLTE_Event_Ecc_Ctgy_POLICE = 0x1,
504 VoLTE_Event_Ecc_Ctgy_AMBULANCE = 0x2,
505 VoLTE_Event_Ecc_Ctgy_FIRE = 0x4,
506 VoLTE_Event_Ecc_Ctgy_MARINE = 0x8,
507 VoLTE_Event_Ecc_Ctgy_MOUNTAIN = 0x10,
508 VoLTE_Event_Ecc_Ctgy_eCall_Manual = 0x20,
509 VoLTE_Event_Ecc_Ctgy_eCall_Automatic = 0x40,
510 VoLTE_Event_Ecc_Ctgy_GAS = 0x100,
511 VoLTE_Event_Ecc_Ctgy_ANIMAL = 0x200,
512 VoLTE_Event_Ecc_Ctgy_PHYSICIAN = 0x400,
513 VoLTE_Event_Ecc_Ctgy_POISON = 0x800,
514 VoLTE_Event_Ecc_Ctgy_TRAFFIC = 0x1000, /// for CMCC requirement
515 VoLTE_Event_Ecc_Ctgy_COUNTRY_SPECIFIC = 0x2000,
516 VoLTE_Event_Ecc_Ctgy_Unrecognized = 0x8000, /// for any unrecognized sos type
517
518 /*Korea TTA special emergency Ctgy*/
519 VoLTE_Event_Ecc_Ctgy_KR_SPIES = 0x3,
520 VoLTE_Event_Ecc_Ctgy_KR_INTELLIGENCE = 0x6,
521 VoLTE_Event_Ecc_Ctgy_KR_SMUGGLING = 0x9,
522 VoLTE_Event_Ecc_Ctgy_KR_SCHOOL_VIOLENCE = 0x12,
523 VoLTE_Event_Ecc_Ctgy_KR_CYBERTERRORISM = 0x13,
524
525 VoLTE_Event_Ecc_Ctgy_Max = 0xFFFF,
526} VoLTE_Event_ECC_Category_e;
527
528
529/****************eCall part************************/
530#ifdef __NG_ECALL_SUPPORT__
531typedef struct _VoLTE_Event_eCall_In_Band_MSD_Transfer_Rsp {
532 LOCAL_PARA_HDR
533 kal_int32 acct_id; /*acct whom send the MSD*/
534 kal_uint32 call_id; /*assigned by CC*/
535} VoLTE_Event_eCall_In_Band_MSD_Transfer_Rsp_t;
536
537typedef struct _VoLTE_Event_eCall_Update_MSD_Rsp {
538 LOCAL_PARA_HDR
539 kal_int32 acct_id; /*acct whom send the MSD*/
540 kal_uint32 call_id; /*assigned by CC*/
541 kal_uint8 msd_data_len;
542 kal_uint8 msd_data[IMS_MAX_MSD_LENGTH];
543} VoLTE_Event_eCall_Update_MSD_Rsp_t;
544#endif
545/************end of eCall part*********************/
546
547typedef enum VoLTE_Event_Call_Service_e {
548 VoLTE_Event_Call_Service_Normal = 0,
549 VoLTE_Event_Call_Service_Call_Pull = 1,
550 VoLTE_Event_Call_Service_STK = 2,
551 VoLTE_Event_Call_Service_eCAll_test = 100,
552 VoLTE_Event_Call_Service_eCAll_reconfiguration = 101,
553
554 /*add here*/
555 VoLTE_Event_Call_Service_Max,
556} VoLTE_Event_Call_Service_e;
557
558enum VoLTE_Event_Call_Prog_ECPI_e {
559 VoLTE_Event_Call_Prog_ECPI_0 = 0,
560 VoLTE_Event_Call_Prog_ECPI_2 = 2,
561 VoLTE_Event_Call_Prog_ECPI_6 = 6,
562 VoLTE_Event_Call_Prog_ECPI_7 = 7,
563 VoLTE_Event_Call_Prog_ECPI_131 = 131,
564 VoLTE_Event_Call_Prog_ECPI_132 = 132,
565 VoLTE_Event_Call_Prog_ECPI_133 = 133,
566 /*IMS only*/
567 VoLTE_Event_Call_Prog_ECPI_135 = 135,
568 VoLTE_Event_Call_Prog_ECPI_136 = 136,
569 /*add here*/
570 VoLTE_Event_Call_Prog_ECPI_Max,
571};
572
573enum VoLTE_Event_Call_Hold_By_e {
574 VoLTE_Event_Call_Hold_By_Local = 0,
575 VoLTE_Event_Call_Hold_By_Remote = 1,
576 VoLTE_Event_Call_ECT_Hold_By_Remote = 2,
577 /*add here*/
578 VoLTE_Event_Call_Hold_By_Max,
579};
580
581enum VoLTE_Event_Call_Media_e {
582 VoLTE_Event_Call_Media_OFF = 0,
583 VoLTE_Event_Call_Media_ON,
584 /*add here*/
585 VoLTE_Event_Call_Media_Max,
586};
587
588enum VoLTE_SRVCC_dlg_state_e {
589 VoLTE_SRVCC_DlgState_EARLY = 0, // local generated ringback tone or MT ringing
590 VoLTE_SRVCC_DlgState_EARLY_WITH_MEDIA, // network generated ringback tone, for MO only
591 VoLTE_SRVCC_DlgState_ACTIVE,
592 VoLTE_SRVCC_DlgState_ON_HOLD,
593 VoLTE_SRVCC_DlgState_PRE_ALERTING,
594 VoLTE_SRVCC_DlgState_PRE_ALERTING_WITH_MEDIA, // network generated ringback tone, for MO only
595 VOLTE_SRVCC_DlgState_ACTIVE_RETRY_CC_CONNECT, // MT call not receive Invite 200 OK ACK in IMS,
596 // after SRVCC, CS retry CC_CONNECT
597 VoLTE_SRVCC_DlgState_Max,
598};
599
600enum VoLTE_SRVCC_direction_e {
601 VoLTE_SRVCC_Direction_MOBILE_ORIGINATED = 0,
602 VoLTE_SRVCC_Direction_MOBILE_TERMINATING,
603 VoLTE_SRVCC_Direction_Max,
604};
605
606enum VoLTE_Event_Mod_session_result_e {
607 VoLTE_Event_VT_Result_OK = 0,
608 VoLTE_Event_VT_Result_WrongVideoDir, /*wrong video direction cause up/downgrade failed*/
609 VoLTE_Event_VT_Result_InternalError, /*acct or session object broken*/
610 VoLTE_Event_VT_Result_BW_ModifyFailed, /*bandwidth modify require failed*/
611 VoLTE_Event_VT_Result_NotActiveState, /*call session not in active state*/
612 VoLTE_Event_VT_Result_LocalRel, /*local release:Ex.SRVCC,Hungup,call refresh timer timeout,no rpt packets*/
613 VoLTE_Event_VT_Result_IsHold, /*the call at hold state*/
614 VoLTE_Event_VT_Result_NoNeed, /*acorrding the video action state, not need up/downgrade */
615 VoLTE_Event_VT_Result_InvalidPara, /*input parameter invalid*/
616 VoLTE_Event_VT_Result_ReqTimeout, /*SIPTX error,transaction timeout*/
617 VoLTE_Event_VT_Result_RejectByRemote, /*reject by remote*/
618 VoLTE_Event_VT_Result_Canceled, /*canceled by user*/
619 VoLTE_Event_VT_Result_InVideoAction, /*video action is ongoing*/
620 VoLTE_Event_VT_Result_IsReinvite, /*is_reinvite*/
621};
622
623enum VoLTE_Event_Mod_session_cancel_cause_e {
624 VoLTE_Event_Mod_session_cancel_cause_cancel = 0,
625 VoLTE_Event_Mod_session_cancel_cause_timeout,
626};
627
628enum VoLTE_Event_Mod_session_cancel_result_e {
629 VoLTE_Event_Mod_session_cancel_success = 0,
630 VoLTE_Event_Mod_session_cancel_fail_downgrade,
631 VoLTE_Event_Mod_session_cancel_fail_normal,
632 VoLTE_Event_Mod_session_cancel_fail_disable,
633 VoLTE_Event_Mod_session_cancel_fail_remote_reject, /*remote reject the upgrade while local cancel*/
634 VoLTE_Event_Mod_session_cancel_fail_internal_error,
635 VoLTE_Event_Mod_session_cancel_fail_local_rel,
636 VoLTE_Event_Mod_session_cancel_fail_bw_modify_fail,
637 VoLTE_Event_Mod_session_cancel_fail_req_timeout,
638};
639
640enum VoLTE_Event_ims_timer_type_e {
641 VoLTE_Event_IMS_TIMER_THROTTLING = 0,
642 VoLTE_Event_IMS_TIMER_ESTABLISHMENT,
643 VoLTE_Event_IMS_TIMER_VZW,
644 VoLTE_Event_IMS_TIMER_EPSFBWATCHDOG,
645};
646
647enum VoLTE_Event_ims_timer_status_e {
648 VoLTE_Event_IMS_TIMER_STATUS_START = 0,
649 VoLTE_Event_IMS_TIMER_STATUS_STOP,
650 VoLTE_Event_IMS_TIMER_STATUS_EXPIRY
651};
652
653enum VoLTE_Event_ect_type_e {
654 VoLTE_Event_ect_type_none = 0,
655 VoLTE_Event_ect_type_blind = 1,
656 VoLTE_Event_ect_type_assured = 2, // default
657 VoLTE_Event_ect_type_assured_push = 3, // TMOUS Digit
658 VoLTE_Event_ect_type_cancel = 4,
659};
660
661enum VoLTE_Event_SS_Operation_e {
662 VoLTE_Event_Operation_Unknown = 0,
663 VoLTE_Event_Operation_Hold = 1,
664 VoLTE_Event_Operation_Unhold = 2,
665 VoLTE_Event_Operation_Hold_n_Unhold = 3,
666 VoLTE_Event_Operation_Hold_n_Accept = 4,
667 VoLTE_Event_Operation_Remote_Hold = 5,
668 VoLTE_Event_Operation_Remote_Unhold = 6,
669 VoLTE_Event_Operation_Rel_All = 11, // AT+CHLD=6, AT+CHLD=1 if no holding session, we shall release all active sessions
670 VoLTE_Event_Operation_ATH_Rel_All = 12, // ATH
671 VoLTE_Event_Operation_Rel_Bg = 13, //AT+CHLD=0
672 VoLTE_Event_Operation_Rel_Wait = 14, //AT+CHLD=0
673 VoLTE_Event_Operation_Rel_Active_n_Resume = 15, // AT+CHLD=1 for holding session
674 VoLTE_Event_Operation_Create_3way_Conf = 16, // AT+CHLD=3, create 3-way conference
675 VoLTE_Event_Operation_Add_Other_To_Conf = 17, // AT+ECONF, Add conference participant
676 VoLTE_Event_Operation_Create_Conf_Bridge = 18, // no specifc AT command. send INVITE to conference focus
677 VoLTE_Event_Operation_Remove_Other_From_Conf= 19, // AT+ECONF, Remove conference participant
678 VoLTE_Event_Operation_Join_Other_To_Conf = 20, // AT+ECONF, Join current active session to conference participant
679 VoLTE_Event_Operation_Rel_Active_n_Accept = 21, // AT+CHLD=1, for waiting session
680 VoLTE_Event_Operation_Accept = 22, // AT+CHLD=2, for waiting session
681 VoLTE_Event_Operation_Ecctrl = 23, // AT+ECCTRL
682 VoLTE_Event_Operation_Conf_W_Resource_List = 24, // no specifc AT command. send INVITE to conference focus with resource list
683 VoLTE_Event_Operation_Ect = 25, // AT+CHLD=4
684 /*add here*/
685 VoLTE_Event_Operation_Rel_Max,
686};
687
688enum VoLTE_Event_SS_Sub_event_e {
689 VoLTE_Event_Subscribe_Unknown = 0,
690 VoLTE_Event_Subscribe_Conference = 1,
691 /*add here*/
692 VoLTE_Event_Subscribe_Max,
693};
694
695enum VoLTE_Event_SS_Notify_Service_e {
696 VoLTE_Event_Notify_call_waiting = 0, //data length is VOLTE_MAX_DATA_TO_IMC_LENGTH
697 VoLTE_Event_Notify_call_barring = 1, //data length is VOLTE_MAX_DATA_TO_IMC_LENGTH
698 VoLTE_Event_Notify_call_forwarding = 2, //data length is VOLTE_MAX_DATA_TO_IMC_LENGTH
699 VoLTE_Event_Notify_MWI = 3, //data length is VOLTE_MAX_DATA_TO_UPPER_LENGTH
700 VoLTE_Event_Notify_Conference = 4, //data length is VOLTE_MAX_DATA_TO_UPPER_LENGTH
701 VoLTE_Event_Notify_mt_call_forwarding = 5, //data length is VOLTE_MAX_DATA_TO_IMC_LENGTH
702 VoLTE_Event_Notify_dialog = 6,
703 /*add here*/
704 VoLTE_Event_Notify_Max,
705};
706
707enum VoLTE_Event_SMS_Type_e {
708 VoLTE_Event_SMS_Type_Unknown = 0,
709 VoLTE_Event_SMS_Type_3GPP_SMS = 1, ///< the SMS message
710 VoLTE_Event_SMS_Type_3GPP_SMS_REPORT = 2, ///< the SMS report message
711 VoLTE_Event_SMS_Type_Text = 3, ///< the text message
712 VoLTE_Event_SMS_Type_3GPP2_SMS = 4, ///< the 3GPP2 SMS message
713 /*add here*/
714 VoLTE_Event_SMS_Max,
715};
716
717enum VoLTE_Event_SMS_Result_e {
718 //VoLTE_Event_SMS_Result_Success = 0,
719 VoLTE_Event_SMS_Result_Account_Error = 1, ///< the account id is invalid */
720 VoLTE_Event_SMS_Result_SendSIP_Error = 2, ///< send the SIP message error */
721 VoLTE_Event_SMS_Result_InReplyTo_NoMatch = 3, ///< the In-Reply-To not match */
722 VoLTE_Event_SMS_Result_InReplyTo_Timeout = 4, ///< the In-Reply-To timeout */
723 VoLTE_Event_SMS_Result_NoSlot = 5, ///< can't allocat the resource */
724 VoLTE_Event_SMS_Result_Parameter_Error = 6, ///< the event parameter is invalid */
725 VoLTE_Event_SMS_Result_Unregistered = 7, ///< receive the event or SIP message, in the Non-Registered state */
726 VoLTE_Event_SMS_Result_Timer_F_Expiry = 8,
727 /*add here*/
728 VoLTE_Event_SMS_Result_Max,
729};
730
731typedef enum VoLTE_Event_380_XML_type_e {
732 VoLTE_Event_380_XML_type_not_set = 0,
733 VoLTE_Event_380_XML_type_emergency,
734 VoLTE_Event_380_XML_type_restoration,
735 VoLTE_Event_380_XML_type_unknown,
736 /*add here*/
737 VoLTE_Event_380_XML_type_Max,
738} VoLTE_Event_380_XML_type_e;
739
740typedef enum VoLTE_Event_380_XML_action_e {
741 VoLTE_Event_380_XML_action_not_set = 0,
742 VoLTE_Event_380_XML_action_emergency_registration,
743 VoLTE_Event_380_XML_action_initial_registration,
744 VoLTE_Event_380_XML_action_anonymous_emergencycall,
745 VoLTE_Event_380_XML_action_unknown,
746 /*add here*/
747 VoLTE_Event_380_XML_action_Max,
748} VoLTE_Event_380_XML_action_e;
749
750typedef enum VoLTE_Event_Call_Cause_380_contact_e {
751 VoLTE_Event_Call_Cause_380_contact_not_set = 0,
752 VoLTE_Event_Call_Cause_380_contact_sos_and_category_known,
753 VoLTE_Event_Call_Cause_380_contact_sos_and_category_unknown,
754 VoLTE_Event_Call_Cause_380_contact_not_sos,
755 VoLTE_Event_Call_Cause_380_contact_no_contact,
756 /*add here*/
757 VoLTE_Event_Call_Cause_380_contact_Max,
758} VoLTE_Event_Call_Cause_380_contact_e;
759
760typedef enum VoLTE_Event_Call_Cause_380_xml_e {
761 VoLTE_Event_Call_Cause_380_xml_not_set = 0,
762 VoLTE_Event_Call_Cause_380_xml_action_emergency_reg,
763 VoLTE_Event_Call_Cause_380_xml_action_unknown_category_mapped,
764 VoLTE_Event_Call_Cause_380_xml_action_unknown_category_not_mapped,
765 VoLTE_Event_Call_Cause_380_xml_action_unknown_no_contact,
766 /*add here*/
767 VoLTE_Event_Call_Cause_380_xml_Max,
768} VoLTE_Event_Call_Cause_380_xml_e;
769
770enum VoLTE_Event_STK_Setup_Call_e {
771 VoLTE_Event_STK_Setup_Call_IF_NO_ANOTHER_CALL,
772 VoLTE_Event_STK_Setup_Call_WITH_REDIAL_IF_NO_ANOTHER_CALL,
773 VoLTE_Event_STK_Setup_Call_PUT_ANOTHER_HOLD,
774 VoLTE_Event_STK_Setup_Call_WITH_REDIAL_PUT_ANOTHER_HOLD,
775 VoLTE_Event_STK_Setup_Call_DISCON_ANOTHER,
776 VoLTE_Event_STK_Setup_Call_WITH_REDIAL_DISCON_ANOTHER,
777 VoLTE_Event_STK_Setup_Call_MAX
778};
779
780typedef struct _VoLTE_Event_Init {
781 LOCAL_PARA_HDR
782 kal_int32 max_acct; ///< max account number
783} VoLTE_Event_Init_t;
784
785typedef struct {
786 LOCAL_PARA_HDR
787 kal_uint32 acct_id;
788 kal_uint32 sip[IMS_DBG_SIP_EVT_TAG_NUM];
789 kal_uint32 em[IMS_DBG_EM_EVT_TAG_NUM];
790} ims_dbg_setting_req_struct;
791
792typedef struct _VoLTE_Event_Radio_Link_Monitor_ {
793 LOCAL_PARA_HDR
794 kal_uint8 id; ///< the acount id
795 kal_uint8 event_type; ///< 0: Signal is weak 1: LTE OOS search is on-going and may not recover
796 kal_uint16 lte_band; ///< the LTE band number, UA don't use it currently, just reserve(0: Invalid, 1-256: possible LTE band range)
797} VoLTE_Event_Radio_Link_Monitor_t ;
798
799typedef struct _VoLTE_Event_Handover_Start_Notify {
800 LOCAL_PARA_HDR
801 kal_int32 acct_id;
802} VoLTE_Event_Handover_Start_Notify_t;
803
804typedef struct _VoLTE_Event_Handover_Stop_Notify {
805 LOCAL_PARA_HDR
806 kal_int32 acct_id;
807} VoLTE_Event_Handover_Stop_Notify_t;
808
809typedef struct _VoLTE_Event_Handover_IP_Ready_Notify {
810 LOCAL_PARA_HDR
811 kal_int32 acct_id;
812 kal_uint64 ua_id; /* reg client information */
813} VoLTE_Event_Handover_IP_Ready_Notify_t;
814
815typedef struct _VoLTE_rtcp_fb_param_type {
816 kal_uint16 rtcp_fb_id; // such as "ack","nack","trr-int","ccm","app"
817 kal_uint16 rtcp_fb_param; // such as "pli"
818 kal_char rtcp_fb_sub_param[VOLTE_MAX_SUB_PARAM_LENGTH]; //such as smaxpr=120 of tmmbr
819} VoLTE_rtcp_fb_param_type_t;
820
821typedef struct _VoLTE_Event_rtp_ext_map {
822 kal_uint8 ext_id;
823 kal_uint8 direction;
824 kal_uint8 reserved[2];
825 kal_char ext_uri[VOLTE_MAX_EXTMAP_URI_SIZE];
826} VoLTE_Event_rtp_ext_map_t;
827
828typedef struct _VoLTE_Event_image {
829 unsigned int x; ///< RFC6236 image attributes
830 unsigned int y;
831 char sar[VOLTE_MAX_SDP_EGBYTE_LENGTH];
832 char par[VOLTE_MAX_SDP_EGBYTE_LENGTH];
833 char q[VOLTE_MAX_SDP_EGBYTE_LENGTH];
834} VoLTE_Event_image_t;
835
836typedef struct _VoLTE_Event_h264_cap_cfg {
837 kal_uint32 profile_level_id; ///< H.264 profile level id. construct by 3 parts
838
839 kal_uint16 max_recv_level; ///< require 2 bytes, reserved.
840 kal_uint8 redundant_pic_cap; ///< 0, 1. 0: we do not support yet.
841 kal_uint8 pading;
842
843 kal_char sprop_parameter_sets[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
844 kal_char sprop_level_parameter_sets[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
845 kal_uint32 max_mbps; ///< reserved. VT service provides default value
846 kal_uint32 max_smbps; ///< reserved. VT service provides default value
847 kal_uint32 max_fs; ///< reserved. VT service provides default value
848 kal_uint32 max_cpb; ///< reserved. VT service provides default value
849 kal_uint32 max_dpb; ///< reserved. VT service provides default value
850 kal_uint32 max_br; ///< reserved. VT service provides default value
851 kal_uint32 max_rcmd_nalu_size; ///< reserved. VT service provides default value
852
853 kal_uint8 sar_understood; ///< 0~255, reserved. VT service provides default value
854 kal_uint8 sar_supported; ///< 0~255, reserved. VT service provides default value
855 kal_uint8 in_band_parameter_sets; //0, 1
856 kal_uint8 level_asymmetry_allowed; //0, 1
857 kal_uint32 framerate;
858 kal_uint32 frame_width;
859 kal_uint32 frame_height;
860 VoLTE_Event_image_t image_send[VOLTE_MAX_IMAGE_NUM];
861 VoLTE_Event_image_t image_recv[VOLTE_MAX_IMAGE_NUM];
862} VoLTE_Event_h264_cap_cfg_t;
863
864typedef struct _VoLTE_Event_hevc_cap_cfg {
865 kal_uint8 profile_space; ///< Range: 0~3, 0 if not present.
866 kal_uint8 profile_id; ///< Range: 0~31, 1 if not present.
867 kal_uint8 tier_flag; ///< Range: 0 or 1, 0 if not present.
868 kal_uint8 level_id; ///< Range: 0~255, 93(level 3.1) if not present.
869 kal_uint8 interop_constraints[6]; ///< Range: 0~0xffffff
870 kal_uint8 pad[2];
871 kal_uint8 profile_comp_ind[4]; ///< Range: 0~0xffff
872 kal_uint8 sprop_sub_layer_id; ///< Range: 0~6, 6 if not present.
873 kal_uint8 recv_sub_layer_id; ///< Range: 0~6, sprop_sub_layer_id if not present.
874 kal_uint8 max_recv_level_id; ///< Range: 0~255, level_id if not present.
875 kal_uint8 tx_mode; ///< "SRST", "MRST" or "MRMT"
876 kal_char sprop_vps[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
877 kal_char sprop_sps[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
878 kal_char sprop_pps[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
879 kal_char sprop_sei[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
880 kal_uint32 max_lsr; ///< Range: MaxLumaSR~16*MaxLumaSR, MaxLumaSR if not present.
881 kal_uint32 max_lps; ///< Range: MaxLumaPS~16*MaxLumaPS, MaxLumaPS if not present.
882 kal_uint32 max_cpb; ///< Range: MaxCPB~16*MaxCPB, MaxCPB if not present.
883 kal_uint32 max_dpb; ///< Range: 1~16, 6 if not present.
884 kal_uint32 max_br; ///< Range: MaxBR~16*MaxBR, MaxBR if not present.
885 kal_uint32 max_tr; ///< Range: MaxTileRows~16*MaxTileRows, MaxTileRows if not present.
886 kal_uint32 max_tc; ///< Range: MaxTileCols~16*MaxTileCols, MaxTileCols if not present.
887 kal_uint32 max_fps;
888 kal_uint32 sprop_max_don_diff; ///< Range: 0~32767, 0 if not present.
889 kal_uint32 sprop_depack_buf_nalus; ///< Range: 0~32767, 0 if not present.
890 kal_uint32 sprop_depack_buf_bytes; ///< Range: 0~4294967295, 0 if not present.
891 kal_uint32 depack_buf_cap; ///< Range: 1~4294967295, 1 if not present.
892 kal_uint32 sprop_seg_id; ///< Range: 0~3, 0 if not present.
893 kal_uint32 sprop_spatial_seg_idc; ///< Range: 0~4095(BASE16), 0 if not present.
894 kal_char dec_parallel_cap[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
895 kal_char include_dph[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
896 kal_uint32 framerate;
897 kal_uint32 frame_width;
898 kal_uint32 frame_height;
899 VoLTE_Event_image_t image_send[VOLTE_MAX_IMAGE_NUM];
900 VoLTE_Event_image_t image_recv[VOLTE_MAX_IMAGE_NUM];
901} VoLTE_Event_hevc_cap_cfg_t;
902
903typedef union _VoLTE_Event_Video_Codec_cap_cfg {
904 VoLTE_Event_h264_cap_cfg_t h264_codec;
905 VoLTE_Event_hevc_cap_cfg_t hevc_codec;
906} VoLTE_Event_Video_Codec_cap_cfg_t;
907
908typedef struct _VoLTE_Event_video_media_bitrate {
909 kal_uint32 format; ///<H264 or H265
910 kal_uint32 profile;
911 kal_uint32 level;
912 kal_uint32 minbitrate;
913 kal_uint32 bitrate;
914} VoLTE_Event_video_media_bitrate_t;
915
916typedef struct _VoLTE_Event_H264_PS {
917 kal_uint32 profile_level_id;
918 kal_char sprop_parameter_sets[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
919} VoLTE_Event_video_H264_PS_t;
920
921typedef struct _VoLTE_Event_HEVC_PS {
922 kal_uint8 profile_id; ///< Range: 0~31, 1 if not present.
923 kal_uint8 level_id; ///< Range: 0~255, 93(level 3.1) if not present.
924 kal_uint8 pad[2];
925 kal_int8 sprop_vps[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
926 kal_int8 sprop_sps[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
927 kal_int8 sprop_pps[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
928 kal_int8 sprop_sei[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
929} VoLTE_Event_video_HEVC_PS_t;
930
931typedef struct _VoLTE_Event_video_capability {
932 kal_uint32 profile_level_id; ///< H.264 profile level id. construct by 3 parts
933
934 kal_uint16 max_recv_level; ///< require 2 bytes, reserved.
935 kal_uint8 packetization_mode; ///< VoLTE_Event_Packetize_Mode_e
936 kal_uint8 redundant_pic_cap; ///< 0, 1. 0: we do not support yet.
937
938 kal_int8 sprop_parameter_sets[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
939 kal_int8 sprop_level_parameter_sets[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
940 kal_uint32 max_mbps; ///< reserved. VT service provides default value
941 kal_uint32 max_smbps; ///< reserved. VT service provides default value
942 kal_uint32 max_fs ; ///< reserved. VT service provides default value
943 kal_uint32 max_cpb ; ///< reserved. VT service provides default value
944 kal_uint32 max_dpb ; ///< reserved. VT service provides default value
945 kal_uint32 max_br ; ///< reserved. VT service provides default value
946 kal_uint32 max_rcmd_nalu_size; ///< reserved. VT service provides default value
947
948 kal_uint8 sar_understood; ///< 0~255, reserved. VT service provides default value
949 kal_uint8 sar_supported; ///< 0~255, reserved. VT service provides default value
950 kal_uint8 in_band_parameter_sets; //0, 1
951 kal_uint8 level_asymmetry_allowed; //0, 1
952
953
954 /*ViLTE*/
955
956 VoLTE_Event_Video_Codec_cap_cfg_t codec_cap; // Use mime_Type to judge the codec cap.
957
958 /* rtp_rtcp part */
959 kal_uint8 media_type; //such as video/audio
960 kal_uint8 mime_Type; // such as H.264
961 kal_uint8 rtp_profile;//supported rtp_profile for special media such as RTP/AVP,RTP/AVPF
962 kal_uint8 reserved;
963 kal_uint32 sample_rate;//timescale, which use to calculte rtp timestamp
964
965 /*@ rtp packet transmission param
966 *@ contain b=AS,PT,packetization params related to the codec type
967 *@ ----------------------------------------------------------------------
968 *@consider the negotiated params also can set through rtp_rtcp_capability
969 *@ rtp_rtcp_capability must be can for one explicit item
970 *@ then should not contain alternatives in rtp_packetize_params,such as "packetization-moe=1;packetization-mode=0"
971 *@ ----------------------------------------------------------------------
972 */
973 kal_uint32 packetize_mode;
974
975 kal_uint32 extmap_num;
976 VoLTE_Event_rtp_ext_map_t extmap[VOLTE_MAX_EXTMAP_NUM];//now only CVO support
977
978 kal_uint32 rtcp_rsize; //a=rtcp_rsize
979
980
981 /*@ rtcp packet transmission param
982 *@ contain b=RS,b=RR,and feedback message type
983 *@ may be serveral feedback message supported like:
984 *@ ---------sdp--------------
985 *@ a=rtcp-fb:98 ccm tstr
986 *@ a=rtcp-fb:98 ccm fir
987 *@ a=rtcp-fb:* ccm tmmbr smaxpr=120
988 *@ ---------------------------
989 *@ so need a array of rtcp_fb_type_t to represent all thest feedback messages
990 *@ rtcp_fb_param_num represent the size of the array
991 */
992 kal_uint32 rtcp_fb_param_num;
993 VoLTE_rtcp_fb_param_type_t rtcp_fb_type[VOLTE_MAX_RTCP_FB_SIZE]; // SIZE 5
994} VoLTE_Event_video_capability_t;
995
996typedef struct _VoLTE_Event_VT_Cap_Setting {
997 /* This structure needs to be in sync with imsvt_imcb_get_cap_rsp_struct */
998 PEER_BUFF_HDR
999 unsigned int request_id;
1000 unsigned int data_len;
1001 kal_int32 id; ///< the account id
1002 kal_int32 video_cap_num; ///< number of cap.
1003 VoLTE_Event_video_capability_t video_cap[VOLTE_MAX_VIDEO_CAP_NUM]; ///< video capability from MA
1004 VoLTE_Event_video_H264_PS_t h264_ps[VOLTE_MAX_PS_NUM]; // SIZE 32
1005 VoLTE_Event_video_HEVC_PS_t hevc_ps[VOLTE_MAX_PS_NUM]; // SIZE 32
1006 VoLTE_Event_video_media_bitrate_t bitrate_info[VOLTE_MAX_PROFILELEVEL_SIZE]; // SIZE 32
1007 kal_uint8 sim_slot_id; /* start from 0 */
1008 kal_uint8 pad2;
1009 kal_uint16 operator_code;
1010} VoLTE_Event_VT_Cap_Setting_t;
1011
1012typedef struct _VoLTE_Event_Call_Start {
1013 LOCAL_PARA_HDR
1014 kal_char dial_number[VOLTE_MAX_URI_LENGTH];
1015 kal_int32 acct_id; /*acct whom to make the call */
1016 kal_uint32 call_id; /*assigned by CC*/
1017 kal_uint8 clir; /* for MO call */
1018 VoLTE_Event_Call_Mode_e call_mode;
1019 VoLTE_MO_Call_Uri_Scheme_Type_e uri_scheme;
1020 kal_uint8 cell_id[VOLTE_MAX_CELL_ID_LENGTH]; /*cell id from modem*/
1021 VoLTE_Event_LBS_Location_t loc_info;
1022 VoLTE_Event_Call_Service_e service;
1023 plmn_type_enum plmn;
1024 kal_uint8 rtt_setting;
1025 kal_uint8 redial_setting; /*VoLTE_Event_STK_Setup_Call_e*/
1026 kal_char digit_from_line_number[VOLTE_MAX_URI_LENGTH];
1027 kal_uint8 stk_type; /*ims_stk_type_enum*/
yu.donge372c322023-08-30 20:25:04 -07001028 kal_uint8 pad[3];
1029 kal_uint16 sub_service_field_length; /*for emergency extended sub_service*/
1030 kal_uint8 sub_service_field[IMC_SUB_SERVICE_LENGTH]; /*for emergency extended sub_service*/
rjw6c1fd8f2022-11-30 14:33:01 +08001031
1032/*ecall over IMS*/
1033#ifdef __NG_ECALL_SUPPORT__
yu.donge372c322023-08-30 20:25:04 -07001034 kal_bool ims_only_allowed_domain;
rjw6c1fd8f2022-11-30 14:33:01 +08001035 kal_uint8 msd_data_len;
1036 kal_uint8 msd_data[IMS_MAX_MSD_LENGTH];
1037#endif
1038
1039} VoLTE_Event_Call_Start_t;
1040
1041typedef struct _VoLTE_Event_MT_Call_Rsp {
1042 LOCAL_PARA_HDR
1043 kal_int32 acct_id; /*acct whom to make the call */
1044 kal_uint32 call_id; /*assigned by CC, so we give 254 as INVALID_CALL_ID*/
1045 kal_uint8 seq_no; /*sequence number assigned by Call UA*/
1046 kal_uint8 call_mode; /*VoLTE_Event_Call_Mode_e*/
1047 kal_uint16 result; /*VoLTE_Event_Call_Stop_result_e*/
1048 kal_int32 response_code; /*SIP response code, 0: means we use default value*/
1049 kal_uint8 cell_id[VOLTE_MAX_CELL_ID_LENGTH]; /*cell id from modem*/
1050 VoLTE_Event_LBS_Location_t loc_info;
1051 kal_uint8 rtt_setting;
1052 kal_uint8 pad[3];
1053} VoLTE_Event_MT_Call_Rsp_t;
1054
1055typedef struct _VoLTE_Event_Req {
1056 LOCAL_PARA_HDR
1057 kal_int32 acct_id;
1058 kal_uint32 call_id; /*assigned by CC*/
1059 kal_uint8 cell_id[VOLTE_MAX_CELL_ID_LENGTH]; /*cell id from modem*/
1060 VoLTE_Event_LBS_Location_t loc_info;
1061 kal_uint32 cause;
1062} VoLTE_Event_Req_t;
1063
1064typedef struct _VoLTE_Event_Call_Refresh {
1065 LOCAL_PARA_HDR
1066 kal_int32 acct_id;
1067 kal_uint32 call_id; /*assigned by CC*/
1068 kal_int8 p_assert_uri[VOLTE_MAX_ASSERTED_URI];
1069} VoLTE_Event_Call_Refresh_t;
1070
1071typedef struct _VoLTE_Event_SRVCC_Info {
1072 LOCAL_PARA_HDR
1073 kal_int32 acct_id;
1074 kal_int32 result; /*VoLTE_Event_srvcc_info_result_e*/
1075} VoLTE_Event_SRVCC_Info_t;
1076
1077typedef struct _VoLTE_Event_Conf_Call_Start {
1078 LOCAL_PARA_HDR
1079 kal_int32 acct_id;
1080 kal_uint32 call_id;
1081 VoLTE_Event_Call_Mode_e call_mode;
1082 kal_uint8 conf_call_participants;
1083 kal_uint8 pad[2];
1084 kal_uint8 conf_call_number_list[VOLTE_MAX_CALL_NUM_IN_CONF][VOLTE_MAX_CONF_CONTROL_URI_LENGTH];
1085 kal_uint8 cell_id[VOLTE_MAX_CELL_ID_LENGTH];
1086 VoLTE_Event_LBS_Location_t loc_info;
1087 plmn_type_enum plmn;
1088} VoLTE_Event_Conf_Call_Start_t;
1089
1090typedef struct _VoLTE_Event_Ims_Notify_Req {
1091 LOCAL_PARA_HDR
1092 kal_int32 acct_id;
1093 kal_uint32 call_id; /*assigned by CC*/
1094 kal_uint8 msg_id; // VoLTE_Event_Ims_Notify_e
1095 kal_uint8 ver; // structure version number start from 0
1096 kal_uint16 rsv; // reserve bit must fill 0 (for 4 byte alignment)
1097 kal_uint8 ext[IMC_MAX_IMS_NOTIFY_EXT_LEN]; // reserve for future other usage
1098 kal_uint8 cell_id[IMC_MAX_CELL_ID_LEN];
1099 VoLTE_Event_LBS_Location_t loc_info;
1100} VoLTE_Event_Ims_Notify_Req_t;
1101
1102typedef struct _VoLTE_Event_Altc_Address_Req {
1103 LOCAL_PARA_HDR
1104 kal_int32 acct_id;
1105 kal_int32 status; //0:V6_changed,1:V4_changed
1106 kal_uint8 v6_address[VOLTE_MAX_ADDRESS_LENGTH];
1107 kal_uint8 v4_address[VOLTE_MAX_ADDRESS_LENGTH];
1108 kal_int16 v6_on; //1:TURE,0:FALSE
1109 kal_int16 v4_on; //1:TURE,0:FALSE
1110} VoLTE_Event_Altc_Address_Req_t;
1111
1112typedef struct _VoLTE_Event_Call_Rel {
1113 LOCAL_PARA_HDR
1114 kal_int32 acct_id;
1115 kal_uint64 ua_id; /*reg client information*/
1116 kal_uint32 call_id; /*assigned by CC*/
1117 kal_int32 result; /*VoLTE_Event_Call_Stop_result_e*/
1118 kal_int32 cause; /*VoLTE_Event_Call_stop_cause_e*/
1119 kal_int32 rel_cause; /*VoLTE_Event_Call_Rel_cause_e*/
1120} VoLTE_Event_Call_Rel_t;
1121
1122typedef struct _VoLTE_Event_Queue_SIP {
1123 LOCAL_PARA_HDR
1124 kal_int32 acct_id;
1125 kal_uint32 call_id; /*assigned by CC*/
1126 kal_int32 cmd_type;
1127 void *sip_msg; // 97 TODO: change bac kto sip_message_struct*?
1128} VoLTE_Event_Queue_SIP_t;
1129
1130typedef struct _VoLTE_Event_MT_Call_Abort {
1131 LOCAL_PARA_HDR
1132 kal_int32 acct_id; /*acct whom to make the call */
1133 kal_uint32 seq_no; /*sequence number assigned by Call UA*/
1134 kal_int32 cause; /*VoLTE_Event_Call_stop_cause_e*/
1135} VoLTE_Event_MT_Call_Abort_t;
1136
1137typedef struct _VoLTE_Event_Media_Mod_Ind {
1138 LOCAL_PARA_HDR
1139 kal_int32 acct_id;
1140 kal_uint32 call_id; /*assigned by CC*/
1141 kal_uint8 call_mode; /*VoLTE_Event_Call_Mode_e*/
1142 kal_uint8 camera_direction; /*VoLTE_Event_RTP_DIRECTION_e*/
1143 kal_uint8 audio_direction; /*VoLTE_Event_RTP_DIRECTION_e*/
1144 kal_uint8 audio_codec; // voip_codec_enum(opaque)
1145 kal_int8 p_assert_uri[VOLTE_MAX_ASSERTED_URI];
1146} VoLTE_Event_Media_Mod_Ind_t;
1147
1148typedef struct _VoLTE_Event_Mod_Session_Req {
1149 LOCAL_PARA_HDR
1150 kal_int32 acct_id;
1151 kal_uint8 call_id; /* identify this call */
1152
1153 // 0 : inactive (VoLTE)
1154 // 1 : active (ViLTE)
1155 kal_uint8 mode;
1156 kal_uint8 camera_direction; /*VoLTE_Event_RTP_DIRECTION_e*/
1157 kal_uint8 result; /*VoLTE_Event_Mod_session_result_e*/
1158} VoLTE_Event_Mod_Session_Req_t;
1159
1160typedef struct _VoLTE_Event_Mod_Session_Rsp {
1161 LOCAL_PARA_HDR
1162 kal_int32 acct_id;
1163 kal_uint8 call_id; /* identify this call */
1164
1165 // 0 : inactive (VoLTE)
1166 // 1 : active (ViLTE)
1167 kal_uint8 mode;
1168 kal_uint8 camera_direction; /*VoLTE_Event_RTP_DIRECTION_e*/
1169 kal_uint8 result; /*VoLTE_Event_Call_Stop_result_e*/
1170} VoLTE_Event_Mod_Session_Rsp_t;
1171
1172typedef struct _VoLTE_Event_MT_VT_Special_Accept_Req {
1173 LOCAL_PARA_HDR
1174 kal_int32 acct_id;
1175 kal_uint32 call_id;
1176 kal_uint8 cell_id[VOLTE_MAX_CELL_ID_LENGTH];
1177 kal_uint32 mode; /* VoLTE_Event_EVTA_Mode_e */
1178 VoLTE_Event_LBS_Location_t loc_info;
1179} VoLTE_Event_MT_VT_Special_Accept_Req_t;
1180
1181typedef struct _VoLTE_Event_Mod_Session_Cancel_Req {
1182 LOCAL_PARA_HDR
1183 kal_int32 acct_id;
1184 kal_uint8 call_id; /* identify this call */
1185 kal_uint8 cause; /*VoLTE_Event_Mod_session_cancel_cause_e*/
1186} VoLTE_Event_Mod_Session_Cancel_Req_t;
1187
1188typedef struct _VoLTE_Event_Text_Req {
1189 LOCAL_PARA_HDR
1190 kal_int32 acct_id;
1191 kal_int32 mode; /*0:off 1:on*/
1192} VoLTE_Event_Text_Req_t;
1193
1194typedef struct _VoLTE_Event_Media_Anbr_Ind {
1195 LOCAL_PARA_HDR
1196 kal_int32 acct_id;
1197 kal_uint32 call_id;
1198 kal_uint32 anbr_value; /* Audio AS value comes from ANBR */
1199} VoLTE_Event_Media_Anbr_Ind_t;
1200
1201typedef struct _VoLTE_Event_Media_Anbr_Rsp {
1202 LOCAL_PARA_HDR
1203 kal_int32 acct_id;
1204 kal_uint32 call_id;
1205 kal_uint32 anbr_result; /* SIP negotiation response 0: fail, 1: success */
1206} VoLTE_Event_Media_Anbr_Rsp_t;
1207
1208typedef struct _VoLTE_Event_RTT_Req {
1209 LOCAL_PARA_HDR
1210 kal_int32 acct_id;
1211 kal_int32 call_id;
1212 kal_int32 op; /* 0: downgrade, 1: upgrade */
1213} VoLTE_Event_RTT_Req_t;
1214
1215typedef struct _VoLTE_Event_RTT_Rsp {
1216 LOCAL_PARA_HDR
1217 kal_int32 acct_id;
1218 kal_int32 call_id;
1219 kal_int32 result; /* 0: accept, 1: reject */
1220} VoLTE_Event_RTT_Rsp_t;
1221
1222typedef struct _VoLTE_Event_Video_config {
1223 // required by RTP and RTCP session
1224 kal_uint8 call_id; // identify this call
1225 kal_uint8 video_payload_type; // RTP payload type
1226 kal_uint8 remote_addr_type; ///< VoLTE_Event_IP_Version_e
1227 kal_uint8 rtp_direction; ///< VoLTE_Event_RTP_DIRECTION_e
1228
1229 kal_uint16 remote_rtp_port;
1230 kal_uint16 remote_rtcp_port;
1231 kal_uint16 local_rtcp_port; ///< rtcp port number. we may configure it not rtp_port+1
1232 kal_uint16 local_rtp_port; ///< rtp port number for media attribute in SDP message
1233 kal_uint8 remote_rtp_address[VOLTE_IPADDR_LENGTH];
1234 kal_uint8 remote_rtcp_address[VOLTE_IPADDR_LENGTH];
1235 kal_uint8 local_address[VOLTE_IPADDR_LENGTH];
1236
1237 kal_uint32 video_b_as; // RTP bandwidth
1238 kal_uint32 video_b_rs; // RTCP sender bandwidth
1239 kal_uint32 video_b_rr; // RTCP receiver bandwidth
1240
1241
1242 /* ViLTE */
1243 /* new structure here */
1244 kal_uint8 media_type; //such as video/audio
1245 kal_uint8 mime_Type; // such as H.264
1246 kal_uint16 rtcp_rsize;
1247 kal_uint32 packetize_mode;
1248 kal_uint32 sample_rate; //timescale, which use to calculte rtp timestamp
1249 kal_uint32 rtcp_fb_param_num;
1250 VoLTE_rtcp_fb_param_type_t rtcp_fb_type[VOLTE_MAX_RTCP_FB_SIZE];
1251 kal_uint8 rtp_profile; //supported rtp_profile for special media such as RTP/AVP,RTP/AVPF
1252 kal_uint8 camera_direction; ///<VoLTE_Event_RTP_DIRECTION_e
1253 kal_uint8 bHold; //local hold
1254 kal_uint8 bHeld; //remote hold
1255
1256 VoLTE_Event_rtp_ext_map_t extmap;//now only CVO support
1257
1258 /* WFC */
1259 kal_uint32 video_dscp;
1260 kal_uint32 video_soc_priority;
1261
1262 // require by H.264 or H265
1263 VoLTE_Event_Video_Codec_cap_cfg_t codec_cfg;
1264} VoLTE_Event_Video_config_t,
1265volte_event_video_config_struct;
1266
1267typedef struct _VoLTE_Event_BW_Require {
1268 LOCAL_PARA_HDR
1269 kal_int32 acct_id;
1270 kal_uint32 call_id; /*assigned by CC*/
1271 kal_uint32 action; /*VoLTE_Event_BW_Act_e*/
1272 kal_uint32 send_bw_nego; /*send bw_nego or not when one media is ok, 0: don't send, 1:send*/
1273 kal_uint32 precond_needed; /*0: Precondition not specified, 1: Precondition required, 2: Precondition NOT required*/
1274 kal_uint32 pqos; /* use this to override tqos (ms) */
1275 volte_event_video_config_struct vt_config;
1276 volte_event_media_config_struct media_config;
1277} VoLTE_Event_BW_Require_t;
1278
1279typedef struct _VoLTE_Event_Video_update {
1280 // required by RTP and RTCP session
1281 kal_uint8 call_id; // identify this call
1282 kal_uint8 video_payload_type; // RTP payload type
1283 // required by RTP and RTCP session
1284 kal_uint8 rtp_direction; //VoLTE_Event_RTP_DIRECTION_e
1285 kal_uint8 remote_addr_type; ///< VoLTE_Event_IP_Version_e
1286 kal_uint16 remote_rtp_port;
1287 kal_uint16 remote_rtcp_port;
1288 kal_uint16 local_rtcp_port; ///< rtcp port number. we may configure it not rtp_port+1
1289 kal_uint16 local_rtp_port; ///< rtp port number for media attribute in SDP message
1290 kal_uint8 remote_rtp_address[VOLTE_IPADDR_LENGTH];
1291 kal_uint8 remote_rtcp_address[VOLTE_IPADDR_LENGTH];
1292 kal_uint8 local_address[VOLTE_IPADDR_LENGTH];
1293
1294 kal_uint32 video_b_as; // RTP bandwidth
1295 kal_uint32 video_b_rs; // RTCP sender bandwidth
1296 kal_uint32 video_b_rr; // RTCP receiver bandwidth
1297
1298 /* ViLTE */
1299 kal_uint8 media_type; //such as video/audio
1300 kal_uint8 mime_Type; // such as H.264
1301 kal_uint16 rtcp_rsize;
1302 kal_uint32 packetize_mode;
1303 kal_uint32 sample_rate; //timescale, which use to calculte rtp timestamp
1304 kal_uint32 rtcp_fb_param_num;
1305 VoLTE_rtcp_fb_param_type_t rtcp_fb_type[VOLTE_MAX_RTCP_FB_SIZE];
1306 kal_uint8 rtp_profile; //supported rtp_profile for special media such as RTP/AVP,RTP/AVPF
1307 kal_uint8 camera_direction; ///<VoLTE_Event_RTP_DIRECTION_e
1308 kal_uint8 bHold; //local hold
1309 kal_uint8 bHeld; //remote hold
1310
1311 VoLTE_Event_rtp_ext_map_t extmap;//now only CVO support
1312
1313 /* WFC */
1314 kal_uint32 video_dscp;
1315 kal_uint32 video_soc_priority;
1316
1317 // require by H.264 or H265
1318 VoLTE_Event_Video_Codec_cap_cfg_t codec_cfg;
1319} VoLTE_Event_Video_update_t;
1320
1321typedef struct {
1322 kal_int8 mode_set[VOLTE_MAX_SDP_FMTP_SUB_VALUE_LENGTH];
1323
1324 kal_uint8 is_octet_align; //0:default, bandwidth-efficient, 1: octet_align, 2: VzW for general
1325 kal_uint8 mode_change_period; //the period should be N. but currently only 1(default) or 2.
1326 kal_uint8 mode_change_cap; //1(default) or 2(recommended to support)
1327 kal_uint8 mode_change_neighbor;//0(default) or 1
1328
1329 kal_uint8 crc; //0 or 1. Not support yet.
1330 kal_uint8 robust; //0 or 1. Not support yet.
1331 kal_uint8 interleaving; //the maximum number of frame-blocks. 0: not present. Not support yet.
1332 kal_uint8 channel; // the number of audio channel
1333
1334 kal_uint16 max_red; // the maximum duration in ms. Not support yet.
1335 kal_uint8 padding[2]; //< padding byte for 4bytes align
1336} VoLTE_Event_amr_info_t;
1337
1338typedef struct {
1339 kal_int8 mode_set[VOLTE_MAX_SDP_FMTP_SUB_VALUE_LENGTH];
1340
1341 kal_uint8 evs_support;
1342 kal_uint8 evs_mode_switch;
1343 kal_uint8 hf_only;
1344 kal_uint8 dtx;
1345
1346 kal_uint8 dtx_recv;
1347 kal_uint8 ch_send;
1348 kal_uint8 ch_recv;
1349 kal_uint8 channel; // the number of audio channel
1350
1351 kal_uint8 br[2]; ///< VoLTE_EVS_Codec_Bitrate_e
1352 kal_uint8 br_send[2]; ///< VoLTE_EVS_Codec_Bitrate_e
1353 kal_uint8 br_recv[2]; ///< VoLTE_EVS_Codec_Bitrate_e
1354 kal_uint8 bw[2]; ///< VoLTE_EVS_Bandwidth_e
1355 kal_uint8 bw_send[2]; ///< VoLTE_EVS_Bandwidth_e
1356 kal_uint8 bw_recv[2]; ///< VoLTE_EVS_Bandwidth_e
1357
1358 kal_uint8 mode_change_period; //the period should be N. but currently only 1(default) or 2.
1359 kal_uint8 mode_change_cap; //1(default) or 2(recommended to support)
1360 kal_uint8 mode_change_neighbor;//0(default) or 1
1361 kal_int8 ch_aw_recv;
1362
1363 kal_int8 cmr;
1364 kal_uint8 padding[1]; ///< padding byte for 4 bytes align
1365 kal_uint16 max_red; // the maximum duration in ms. Not support yet.
1366} VoLTE_Event_evs_info_t;
1367
1368typedef struct {
1369 kal_uint8 red_level;
1370 kal_uint8 red_codec_list[VOLTE_MAX_RED_LEVEL];
1371} VoLTE_Event_red_info_t;
1372
1373typedef struct {
1374 kal_uint8 payload_type; ///< payload type
1375 kal_uint8 codec; ///< voip_codec_enum in codec_def.h
1376 kal_uint8 clock_rate; ///< dynamic rate, clock rate, see VoLTE_Event_Clock_Rate_e
1377 kal_uint8 g723_bitrate; ///< VoLTE_Event_G7231_BitRate_e
1378 kal_uint8 is_g723_annexAYES; ///< G.723.1 annexA Yes:1, No:0
1379 kal_uint8 is_g729_annexBYES; ///< G.729 annexB Yes:1, No:0
1380 kal_uint8 ilbc_mode; ///< VoLTE_Event_iLBC_Rate_e
1381 kal_uint8 text_cps; ///<
1382
1383 kal_uint32 ptime; ///< play time
1384 kal_uint32 max_ptime; ///< maximum play time
1385
1386 VoLTE_Event_amr_info_t amr_fmtp;
1387 VoLTE_Event_evs_info_t evs_fmtp;
1388 VoLTE_Event_red_info_t red_fmtp;
1389} VoLTE_Event_media_codec_t;
1390
1391typedef struct VoLTE_Event_Media_update {
1392 // RTP and RTCP session for audio
1393 kal_uint32 audio_b_as; // RTP bandwidth
1394 kal_uint32 audio_b_rs; // RTCP sender bandwidth
1395 kal_uint32 audio_b_rr; // RTCP receiver bandwidth
1396 kal_uint16 audio_rtp_direction; ///< VoLTE_Event_RTP_DIRECTION_e
1397 kal_uint16 video_rtp_direction; ///< VoLTE_Event_RTP_DIRECTION_e
1398
1399 kal_uint16 audio_remote_rtp_port;
1400 kal_uint16 audio_remote_rtcp_port;
1401 kal_uint8 audio_remote_rtp_address[VOLTE_IPADDR_LENGTH];
1402 kal_uint8 audio_remote_rtcp_address[VOLTE_IPADDR_LENGTH];
1403
1404 kal_uint32 remote_addr_type; ///< VoLTE_Event_IP_Version_e, apply to RTP audio & video session, RTCP audio & video session
1405 // required by RTP and RTCP session for video
1406 kal_uint32 video_b_as; // RTP bandwidth
1407 kal_uint32 video_b_rs; // RTCP sender bandwidth
1408 kal_uint32 video_b_rr; // RTCP receiver bandwidth
1409 kal_uint16 video_remote_rtp_port;
1410 kal_uint16 video_remote_rtcp_port;
1411 kal_uint16 video_local_rtcp_port; ///< rtcp port number. we may configure it not rtp_port+1
1412 kal_uint16 video_local_rtp_port; ///< rtp port number for media attribute in SDP message
1413 kal_uint8 video_remote_rtp_address[VOLTE_IPADDR_LENGTH];
1414 kal_uint8 video_remote_rtcp_address[VOLTE_IPADDR_LENGTH];
1415
1416 kal_uint8 video_payload_type;
1417 kal_uint8 pading[3];
1418
1419 // required by audio codec
1420 kal_uint8 audio_codec;
1421 kal_uint8 audio_payload_type; // payload type
1422 kal_uint8 audio_clock_rate; ///< dynamic rate, clock rate, see sdp_clock_rate_enum
1423 kal_uint8 is_dtmf; ///< is dtmf tone useing telephony event
1424
1425 kal_uint8 tele_evt_payload_type; ///< telephony event payload type
1426 kal_uint8 tele_evt_clock_rate; ///< telephony event rate
1427 kal_uint8 g723_bitrate; ///< VoLTE_Event_G7231_BitRate_e
1428 kal_uint8 is_g723_annexAYES; ///< G.723.1 annexA Yes:1, No:0
1429
1430 kal_uint8 is_g729_annexBYES; ///< G.729 annexB Yes:1, No:0
1431 kal_uint8 ilbc_mode; ///< VoLTE_Event_iLBC_Rate_e
1432 // required by RFC 6679 ECN
1433 kal_uint8 ecn_capable_rtp_method; ///< VoLTE_Event_ECN_RTP_METHOD_e
1434 kal_uint8 ecn_capable_ect; //0, 1
1435
1436 kal_uint32 ptime; ///< ptime of the codec
1437 kal_uint32 max_ptime; ///< max ptime is the buffer size for data plane. may not the same to ptime
1438
1439 // required by AMR and AMR WB codec
1440 kal_int8 mode_set[VOLTE_MAX_SDP_FMTP_SUB_VALUE_LENGTH];
1441
1442 kal_uint8 is_octet_align; ///< 0:default, bandwidth-efficient, 1: octet_align
1443 kal_uint8 mode_change_period; ///< the period should be N. but currently only 1(default) or 2.
1444 kal_uint8 mode_change_cap; ///< 1(default) or 2(recommended to support)
1445 kal_uint8 mode_change_neighbor;///< 0(default) or 1
1446
1447 kal_uint8 crc; ///< 0 or 1
1448 kal_uint8 robust; ///< 0 or 1
1449 kal_uint8 interleaving; ///< the maximum number of frame-blocks. 0: not present
1450 kal_uint8 channel; ///< the number of audio channel. must be 1 currently
1451 kal_uint32 network_id; /* drop on 93MD */
1452
1453 kal_uint32 max_red; // the maximum duration in ms
1454
1455 /* EVS Support */
1456 kal_uint8 evs_support;
1457 kal_uint8 evs_mode_switch;
1458 kal_uint8 hf_only;
1459 kal_uint8 dtx;
1460 kal_uint8 dtx_recv;
1461 kal_uint8 reserved[3];
1462 kal_uint8 br[2]; ///< VoLTE_EVS_Codec_Bitrate_e
1463 kal_uint8 br_send[2]; ///< VoLTE_EVS_Codec_Bitrate_e
1464 kal_uint8 br_recv[2]; ///< VoLTE_EVS_Codec_Bitrate_e
1465 kal_uint8 bw[2]; ///< VoLTE_EVS_Bandwidth_e
1466 kal_uint8 bw_send[2]; ///< VoLTE_EVS_Bandwidth_e
1467 kal_uint8 bw_recv[2]; ///< VoLTE_EVS_Bandwidth_e
1468 kal_uint8 ch_send;
1469 kal_uint8 ch_recv;
1470 kal_int8 ch_aw_recv;
1471 kal_int8 cmr;
1472
1473 //required by RTCP XR
1474 kal_uint16 rtcp_xr_format; ///<bitmap, VoLTE_Event_RTCP_XR_Type_e
1475 kal_uint16 rtcp_xr_loss_maxsize;///
1476 kal_uint16 rtcp_xr_dup_maxsize; ///
1477 kal_uint16 rtcp_xr_rcpt_maxsize;///
1478 kal_uint16 rtcp_xr_rtt_maxsize; ///
1479 kal_int8 rtcp_xr_rtt_mode; ///<bitmap, VoLTE_Event_RTCP_XR_RTT_MODE_Type_e
1480 kal_int8 rtcp_xr_stat_flags; ///<bitmap, VoLTE_Event_RTCP_XR_STAT_FLAGS_Type_e
1481
1482
1483 /*GTT Support*/
1484 kal_uint32 text_b_as;
1485 kal_uint32 text_b_rs;
1486 kal_uint32 text_b_rr;
1487
1488 kal_uint16 text_remote_rtp_port;
1489 kal_uint16 text_remote_rtcp_port;
1490
1491 kal_uint16 text_local_rtcp_port;
1492 kal_uint16 text_local_rtp_port;
1493
1494 kal_uint8 text_remote_rtp_address[VOLTE_IPADDR_LENGTH];
1495 kal_uint8 text_remote_rtcp_address[VOLTE_IPADDR_LENGTH];
1496
1497 kal_int8 text_rtp_direction;
1498 kal_int8 text_t140_payload_type;
1499 kal_int8 text_red_payload_type;
1500 kal_int8 text_red_level;
1501
1502 kal_int8 text_cps;
1503 /*ALTC ==================================================================================*/
1504 kal_uint8 text_addr_type;
1505 kal_int8 text_pad[2];
1506
1507 kal_uint8 audio_local_address[VOLTE_IPADDR_LENGTH];
1508 kal_uint8 text_local_address[VOLTE_IPADDR_LENGTH];
1509 /* ======================================================================================*/
1510
1511 /* Asymmetric RTP payload type support */
1512 kal_uint32 recv_codec_num;
1513 VoLTE_Event_media_codec_t recv_codec_list[VOLTE_MAX_RECV_CODEC_LIST_LENGTH];
1514
1515 kal_uint32 dscp; ///< IMCB will get value from NVRAM. Used by data plane.
1516 kal_uint32 video_dscp; ///< IMCB will get value from NVRAM. Used by data plane.
1517 kal_uint32 voice_soc_priority; ///< IMCB will get value from NVRAM. Used by data plane.
1518 kal_uint32 video_soc_priority; ///< IMCB will get value from NVRAM. Used by data plane.
1519} VoLTE_Event_Media_update_t;
1520
1521typedef struct _VoLTE_Event_BW_Update {
1522 LOCAL_PARA_HDR
1523 kal_int32 acct_id;
1524 kal_uint32 call_id; /*assigned by CC*/
1525 kal_uint32 action; /*VoLTE_Event_BW_Act_e*/
1526 kal_uint32 skip_cnf; ///< 0 or 1, if skip_cnf is 1, IMCB don't need to send BW_CNF for BW_MOD
1527 kal_uint32 bw_mod_ctrl_flag; /*the flag used to control the bw_mod behalvor of IMCB */
1528 kal_uint32 pqos; ///< CMCC requirment: use this to override tqos (ms)
1529 VoLTE_Event_Video_update_t vt_update;
1530 VoLTE_Event_Media_update_t media_update;
1531} VoLTE_Event_BW_Update_t;
1532
1533typedef struct _VoLTE_Event_BW_Act {
1534 LOCAL_PARA_HDR
1535 kal_int32 acct_id;
1536 kal_uint32 call_id; /*assigned by CC*/
1537 kal_int32 action; /*VoLTE_Event_BW_Act_e.
1538 in VOLTE_BW_CNF, it is a bandwidth reservation result;
1539 in VOLTE_BW_REL, it is a bearer released indication
1540 in VOLTE_BW_NEGO, it is a bearer nogotiation notification.
1541 The action is not important because we will send re-INVITE
1542 for the call session.
1543 */
1544 kal_uint32 audio_res_alloc; /*only for rsp_bw_add, it means Bearer Qos for audio*/
1545 kal_uint32 video_res_alloc; /*only for rsp_bw_add, it means Bearer Qos for video*/
1546} VoLTE_Event_BW_Act_t;
1547
1548typedef struct _VoLTE_Event_MT_Call_Ind {
1549 LOCAL_PARA_HDR
1550 kal_int32 acct_id; /*acct whom to make the call */
1551 kal_uint8 seq_no; /*sequence number assigned by Call UA*/
1552 kal_uint8 is_national_num;/*0: local number, 1: national number. by finding "+"*/
1553 kal_uint8 call_mode; /*VoLTE_Event_Call_Mode_e*/
1554 kal_uint8 uri_scheme; /*VoLTE_MO_Call_Uri_Scheme_Type_e */
1555 kal_int8 dial_number[VOLTE_MAX_URI_LENGTH];
1556 kal_int8 digit_to_line_number[VOLTE_MAX_URI_LENGTH];
1557} VoLTE_Event_MT_Call_Ind_t;
1558
1559typedef struct _VoLTE_Event_Call_Stop {
1560 LOCAL_PARA_HDR
1561 kal_int32 acct_id;
1562 kal_uint32 call_id; /*assigned by CC*/
1563 kal_int32 result; /*VoLTE_Event_Call_Stop_result_e*/
1564 kal_int32 cause; /*VoLTE_Event_Call_stop_cause_e*/
1565} VoLTE_Event_Call_Stop_t;
1566
1567/*
1568 VOLTE_MO_CALL_CNF structure
1569
1570 1. For reject by 503 response, type is the type in Retry-After header and data is the value from Retry-After header.
1571 + a HTTP Date String. We will change it to time seconds
1572 example: Retry-After: Sat, 21 May 2000 08:00:00 GMT
1573 example: Retry-After: Sat, 21 May 2000 08:00:00 GMT;duration:1800
1574 + a period time in ms
1575 example: Retry-After: 3600
1576 2. For reject by...
1577 */
1578typedef struct _VoLTE_Event_MO_Call_Cnf_t {
1579 LOCAL_PARA_HDR
1580 kal_int32 acct_id;
1581 kal_uint32 call_id; /*assigned by CC*/
1582 VoLTE_Event_Call_stop_cause_e cause;
1583 VoLTE_Event_Call_Stop_result_e result;
1584 VoLTE_Event_Call_Mode_e call_mode;
1585 kal_uint8 is_international; /*0: no, 1: the phone number is a national number*/
1586 kal_uint8 isDateString; /*0: not a date string, 1: it is a date string in time variable*/
1587 kal_uint32 time;
1588 kal_int32 duration;
1589 kal_int8 reason[VOLTE_MAX_URI_LENGTH];/*reason when receiving 380 alternative service*/
1590 VoLTE_Event_ECC_Category_e ecc_category;
1591 VoLTE_Event_Call_Service_e service;
1592 kal_uint8 pad[3];
1593 kal_int32 q850_cause;
1594 kal_uint8 country_specific_urn[VOLTE_MAX_URI_LENGTH];/*contact string when receiving 380 alternative service*/
1595 VoLTE_Event_Call_Cause_380_contact_e cause_380_contact;
1596 VoLTE_Event_Call_Cause_380_xml_e cause_380_xml;
1597 VoLTE_Event_380_XML_type_e xml_type_380;
1598 VoLTE_Event_380_XML_action_e xml_action_380;
1599} VoLTE_Event_MO_Call_Cnf_t;
1600
1601typedef struct _VoLTE_Event_MO_Conf_Call_Cnf_t {
1602 LOCAL_PARA_HDR
1603 kal_int32 acct_id;
1604 kal_uint32 call_id;
1605 VoLTE_Event_Call_stop_cause_e cause;
1606 VoLTE_Event_Call_Stop_result_e result;
1607 VoLTE_Event_Call_Mode_e call_mode;
1608 kal_uint8 pad[2];
1609 kal_int32 q850_cause;
1610} VoLTE_Event_MO_Conf_Call_Cnf_t;
1611
1612typedef struct _VoLTE_Event_Call_Prog_t {
1613 LOCAL_PARA_HDR
1614 kal_int32 acct_id; /*acct whom to make the call */
1615 kal_uint32 call_id; /*assigned by CC*/
1616 kal_int32 is_ibt;
1617 kal_int8 p_assert_uri[VOLTE_MAX_ASSERTED_URI];
1618 kal_int32 cause; /*VoLTE_Event_Call_stop_cause_e*/
1619 kal_int32 call_mode; /*VoLTE_Event_Call_Mode_e*/
1620 kal_int32 ecpi; /*VoLTE_Event_Call_Prog_ECPI_e*/
1621 kal_int32 hold_by; /*VoLTE_Event_Call_Hold_By_e*/
1622 kal_int32 dir; /*VoLTE_Event_RTP_DIRECTION_e, reuse the interface*/
1623 kal_int32 q850_cause;
1624 kal_uint16 terminal_resp; // Terminal response for STK call
1625 kal_uint8 wait_rtp_pkt; /* if is_ibt==1, wait for RTP pkts from N/W. if no RTP pkts, notify UA */
1626 kal_uint8 pad[1];
1627} VoLTE_Event_Call_Prog_t;
1628
1629typedef struct _VoLTE_Event_MediaInfo {
1630 LOCAL_PARA_HDR
1631 kal_int32 acct_id;
1632 kal_uint32 call_id; /*assigned by CC*/
1633 kal_int32 is_on; /*VoLTE_Event_Call_Media_e*/
1634 kal_uint8 call_mode; /*VoLTE_Event_Call_Mode_e*/
1635} VoLTE_Event_MediaInfo_t;
1636
1637typedef struct _VoLTE_Event_List_Current_Call {
1638 LOCAL_PARA_HDR
1639 kal_uint32 total_call;
1640 VoLTE_Event_List_one_call_t call[VOLTE_MAX_CALL_SESSION];
1641} VoLTE_Event_List_Current_Call_t;
1642
1643typedef struct _VoLTE_Event_SRVCC_Call_Ctxt {
1644 kal_int32 call_id;
1645 kal_uint32 ecc_category; /*bit map, VoLTE_Event_ECC_Category_e*/
1646 kal_uint8 call_mode; /*VoLTE_Event_Call_Mode_e */
1647 kal_uint8 direction; /* VoLTE_SRVCC_direction_e */
1648 kal_uint8 dlg_state; /*VoLTE_SRVCC_dlg_state_e*/
1649 kal_uint8 num_of_conf_parts; /* 1(me) + 7 (participants) in maximum */
1650} VoLTE_Event_SRVCC_Call_Ctxt_t;
1651
1652
1653typedef struct _VoLTE_Event_List_SRVCC_Call_Ctxt {
1654 LOCAL_PARA_HDR
1655 kal_uint32 num_calls;
1656 VoLTE_Event_SRVCC_Call_Ctxt_t call[VOLTE_MAX_SRVCC_CALLS];
1657 kal_int32 acct_id;
1658 kal_uint8 conf_call_number_list[VOLTE_MAX_CALL_NUM_IN_CONF][VOLTE_MAX_URI_LENGTH];
1659} VoLTE_Event_List_SRVCC_Call_Ctxt_t;
1660
1661typedef struct _VoLTE_Event_SIP_Call_Prog_Ind {
1662 LOCAL_PARA_HDR
1663 kal_int32 acct_id; /*acct whom to make the call */
1664 kal_uint64 ua_id; /*reg client information*/
1665 kal_uint32 call_id; /*assigned by CC*/
1666 kal_uint8 call_mode; /*VoLTE_Event_Call_Mode_e*/
1667 kal_uint8 dir; /*0:send,1:receive*/
1668 kal_uint8 sip_msg_type; /*0: request, 1: response*/
1669 kal_uint8 method; /*1:SIP_INVITE_METHOD,2:SIP_REFER_METHOD ..etc , refer to inet_method_enum*/
1670 kal_uint16 response_code; /*0:only used when SIP type is request, else: response code(100~600)*/
1671 kal_uint8 pad[2];
1672 kal_char reason_text[VOLTE_MAX_REASON_TEXT_LENGTH];
1673} VoLTE_Event_SIP_Call_Prog_Ind_t;
1674
1675typedef struct _VoLTE_Event_Video_Cap_Ind {
1676 LOCAL_PARA_HDR
1677 kal_int32 acct_id;
1678 kal_uint32 call_id; /*assigned by CC*/
1679 kal_uint8 local_video_cap;
1680 kal_uint8 remote_video_cap;
1681 kal_uint8 pad[2]; // For alignment
1682} VoLTE_Event_Video_Cap_Ind_t;
1683
1684typedef struct _VoLTE_Event_Mod_Session_Cnf {
1685 LOCAL_PARA_HDR
1686 kal_int32 acct_id;
1687 kal_uint8 call_id; /* identify this call */
1688
1689 // 0 : inactive (VoLTE)
1690 // 1 : active (ViLTE)
1691 kal_uint8 mode;
1692 kal_uint8 camera_direction; /*VoLTE_Event_RTP_DIRECTION_e*/
1693 kal_uint8 result; /*VoLTE_Event_Mod_session_result_e*/
1694} VoLTE_Event_Mod_Session_Cnf_t;
1695
1696typedef struct _VoLTE_Event_Mod_Session_Ind {
1697 LOCAL_PARA_HDR
1698 kal_int32 acct_id;
1699 kal_uint8 call_id; /* identify this call */
1700
1701 // 0 : inactive (VoLTE)
1702 // 1 : active (ViLTE)
1703 kal_uint8 mode;
1704 kal_uint8 camera_direction; /*VoLTE_Event_RTP_DIRECTION_e*/
1705 kal_uint8 result; /*VoLTE_Event_Mod_session_result_e*/
1706} VoLTE_Event_Mod_Session_Ind_t;
1707
1708typedef struct _VoLTE_Event_MT_VT_Special_Accept_Cnf {
1709 LOCAL_PARA_HDR
1710 kal_int32 acct_id;
1711 kal_uint32 call_id;
1712 kal_int32 result; /*0: success, 1: fail*/
1713 kal_int32 cause; /*VoLTE_Event_Call_stop_cause_e*/
1714} VoLTE_Event_MT_VT_Special_Accept_Cnf_t;
1715
1716typedef struct _VoLTE_Event_Mod_Session_Cancel_Cnf {
1717 LOCAL_PARA_HDR
1718 kal_int32 acct_id;
1719 kal_uint8 call_id; /* identify this call */
1720 kal_uint8 result; /*VoLTE_Event_Mod_session_cancel_result_e*/
1721} VoLTE_Event_Mod_Session_Cancel_Cnf_t;
1722
1723typedef struct _VoLTE_Event_Mod_Session_Cancel_Ind {
1724 LOCAL_PARA_HDR
1725 kal_int32 acct_id;
1726 kal_uint8 call_id;
1727}VoLTE_Event_Mod_Session_Cancel_Ind_t;
1728
1729typedef struct _VoLTE_Event_Local_BW_Ready_Ind {
1730 LOCAL_PARA_HDR
1731 kal_int32 acct_id;
1732 kal_uint8 call_id;
1733}VoLTE_Event_Local_BW_Ready_Ind_t;
1734
1735typedef struct _VoLTE_Event_Text_Cnf {
1736 LOCAL_PARA_HDR
1737 kal_int32 acct_id;
1738 kal_int32 result;
1739} VoLTE_Event_Text_Cnf_t;
1740
1741typedef struct VoLTE_Event_Text_Cap_Ind {
1742 LOCAL_PARA_HDR
1743 kal_int32 acct_id;
1744 kal_uint32 call_id; /*assigned by CC*/
1745 kal_uint8 local_text_cap; /* GTT/RTT on/off */
1746 kal_uint8 remote_text_cap; /* remote sdp text status */
1747 kal_uint8 local_text_status; /* local sdp text status */
1748 kal_uint8 real_remote_text_capability; /* remote Contact header text cap */
1749} VoLTE_Event_Text_Cap_Ind_t;
1750
1751typedef struct _VoLTE_Event_IMS_Timer_Status_Ind {
1752 LOCAL_PARA_HDR
1753 kal_uint32 acct_id;
1754 kal_uint64 ua_id; // reg client information
1755 kal_uint32 timer_type; // VoLTE_Event_ims_timer_type_e
1756 kal_uint32 timer_status; // VoLTE_Event_ims_timer_status_e
1757 kal_uint16 timer_length;
1758 kal_uint8 pad[2];
1759} VoLTE_Event_IMS_Timer_Status_Ind_t;
1760
1761typedef struct _VoLTE_Event_RTT_Cnf {
1762 LOCAL_PARA_HDR
1763 kal_int32 acct_id;
1764 kal_int32 call_id;
1765 kal_int32 result;
1766} VoLTE_Event_RTT_Cnf_t;
1767
1768typedef struct _VoLTE_Event_SS_Req {
1769 LOCAL_PARA_HDR
1770 kal_int32 acct_id;
1771 kal_uint8 cell_id[VOLTE_MAX_CELL_ID_LENGTH]; ///< the current cell id from the modem PS
1772 VoLTE_Event_LBS_Location_t loc_info;
1773 kal_uint32 cause;
1774} VoLTE_Event_SS_Req_t;
1775
1776typedef struct _VoLTE_Event_SS_Conf_Req {
1777 LOCAL_PARA_HDR
1778 kal_int32 acct_id;
1779 kal_uint32 alloc_conf_call_id;
1780 kal_uint8 cell_id[VOLTE_MAX_CELL_ID_LENGTH]; ///< the current cell id from the modem PS
1781 VoLTE_Event_LBS_Location_t loc_info;
1782 plmn_type_enum plmn;
1783} VoLTE_Event_SS_Conf_Req_t;
1784
1785typedef struct _VoLTE_Event_SS_List_Calls_Req{
1786 LOCAL_PARA_HDR
1787 kal_uint32 reserved;
1788} VoLTE_Event_SS_List_Calls_Req_t;
1789
1790typedef struct _VoLTE_Event_SS_Conf_Control_Req {
1791 LOCAL_PARA_HDR
1792 kal_int32 acct_id;
1793 kal_uint32 conf_call_id;
1794 kal_int32 joined_call_id; ///< For Add a new one, joined_call_id is invalid call id--> -1
1795 ///< For Add a ongoing one, joined_call_id is its call id,
1796 ///< For remove anybody, joined_call_id is invalid call id.
1797 kal_uint32 op; ///< VoLTE_Event_Operation_Add_Other_To_Conf or
1798 // VoLTE_Event_Operation_Remove_Other_From_Conf
1799 kal_char number[VOLTE_MAX_CONF_CONTROL_URI_LENGTH];
1800 ///< The participant's number/URI to add or to remove
1801 kal_uint8 cell_id[VOLTE_MAX_CELL_ID_LENGTH];
1802 ///< the current cell id from the modem PS
1803 VoLTE_Event_LBS_Location_t loc_info;
1804} VoLTE_Event_SS_Conf_Control_Req_t;
1805
1806typedef struct _VoLTE_Event_SS_Call_Ctrl_Req {
1807 LOCAL_PARA_HDR
1808 kal_int32 acct_id;
1809 kal_uint32 call_id;
1810 kal_int32 expected_call_state; /*VoLTE_Event_Call_Prog_ECPI_e*/
1811 kal_uint8 cell_id[VOLTE_MAX_CELL_ID_LENGTH]; ///< the current cell id from the modem PS
1812 VoLTE_Event_LBS_Location_t loc_info;
1813} VoLTE_Event_SS_Call_Ctrl_t;
1814
1815typedef struct _VoLTE_Event_SS_ect_Req {
1816 LOCAL_PARA_HDR
1817 kal_int32 acct_id;
1818 kal_uint8 cell_id[VOLTE_MAX_CELL_ID_LENGTH]; //< the current cell id from the modem PS
1819 VoLTE_Event_LBS_Location_t loc_info;
1820 kal_uint8 ect_type; // VoLTE_Event_ect_type_e
1821 kal_uint8 pad[3];
1822 kal_char p_asserted_uri[VOLTE_MAX_URI_LENGTH]; //< The tranfer target number number
1823 kal_int8 device_id[VOLTE_MAX_UUID_LENGTH];
1824} VoLTE_Event_SS_ect_Req_t;
1825
1826typedef struct _VoLTE_Event_SS_ect_Resp {
1827 LOCAL_PARA_HDR
1828 kal_int32 acct_id;
1829 kal_int32 result; ///< refer to ::VoLTE_Event_Call_Stop_result_e
1830 kal_int32 cause; ///< refer to ::VoLTE_Event_Call_stop_cause_e
1831} VoLTE_Event_SS_ect_Resp_t;
1832
1833typedef struct _VoLTE_Event_SS_ect_notify {
1834 LOCAL_PARA_HDR
1835 kal_int32 acct_id;
1836 kal_uint32 call_id;
1837 kal_int32 result; ///< refer to ::VoLTE_Event_Call_Stop_result_e
1838 kal_int32 cause; ///< refer to ::VoLTE_Event_Call_stop_cause_e
1839} VoLTE_Event_SS_ect_notify_t;
1840
1841typedef struct _VoLTE_Event_SS_Resp {
1842 LOCAL_PARA_HDR
1843 kal_int32 acct_id;
1844 kal_int32 operation; ///< refer to ::VoLTE_Event_SS_Operation_e
1845 kal_int32 result; ///< refer to ::VoLTE_Event_Call_Stop_result_e
1846 kal_int32 cause; ///< refer to ::VoLTE_Event_Call_stop_cause_e
1847} VoLTE_Event_SS_Resp_t;
1848
1849typedef struct _VoLTE_Event_SS_Sub_ind {
1850 LOCAL_PARA_HDR
1851 kal_int32 acct_id;
1852 kal_uint32 call_id;
1853 kal_int32 event; ///< refer to ::VoLTE_Event_SS_Sub_event_e
1854 kal_int32 result; ///< refer to ::VoLTE_Event_Call_Stop_result_e
1855 kal_int32 cause; ///< refer to ::VoLTE_Event_Call_stop_cause_e
1856} VoLTE_Event_SS_Sub_ind_t;
1857
1858typedef struct _VoLTE_Event_SS_Conf_ind {
1859 LOCAL_PARA_HDR
1860 kal_int32 acct_id;
1861 kal_uint32 conf_call_id;
1862 kal_uint32 joined_call_id;
1863 kal_char dial_number[VOLTE_MAX_CONF_CONTROL_URI_LENGTH];
1864 kal_int32 operation; ///< refer to ::VoLTE_Event_SS_Operation_e
1865 kal_int32 result; ///< refer to ::VoLTE_Event_Call_Stop_result_e
1866 kal_int32 cause; ///< refer to ::VoLTE_Event_Call_stop_cause_e
1867} VoLTE_Event_SS_Conf_ind_t;
1868
1869/*
1870The data is a raw data from SIP body.
1871For MWI and Conference indication, it is a XML body, so it must use the maximum data length: 4096. And
1872IMCB will send to AP side directly.
1873For the others, it is a SIP body that must less then 512 (VOLTE_MAX_DATA_TO_IMC_LENGTH). And IMCB will
1874send to IMC through CCCI channel. We must not use the data legnth larger then VOLTE_MAX_DATA_TO_IMC_LENGTH,
1875or the CCCI channel will have error.
1876*/
1877typedef struct _VoLTE_Event_SS_Notify {
1878 LOCAL_PARA_HDR
1879 kal_int32 acct_id;
1880 kal_uint32 call_id;
1881 kal_uint32 service; ///< VoLTE_Event_SS_Notify_Service_e
1882 kal_char data[VOLTE_MAX_DATA_TO_UPPER_LENGTH];
1883} VoLTE_Event_SS_Notify_t;
1884
1885typedef struct _VoLTE_Event_SMS_Send_Message_t {
1886 LOCAL_PARA_HDR
1887 kal_int32 account_id; ///< the account id
1888 kal_uint32 request_id; ///< the request id (provide by app)
1889 kal_uint32 type; ///< refer to ::VoLTE_Event_SMS_Type_e
1890 kal_uint32 timeout; ///< keep the resouce timer (0: don't keep)
1891 kal_char psi[VOLTE_MAX_URI_LENGTH]; ///< PSI
1892 kal_uint8 cell_id[VOLTE_MAX_CELL_ID_LENGTH];
1893 VoLTE_Event_LBS_Location_t loc_info;
1894 kal_char tpda[VOLTE_MAX_SMS_TPDA_LENGTH];
1895 kal_int8 is_valid_tpda;
1896 kal_int8 is_international;
1897 kal_int8 pad[1];
1898 kal_int32 message_len; ///< the length of message data
1899 kal_int8 message[0]; ///< the message data
1900} VoLTE_Event_SMS_Send_Message_t;
1901
1902typedef struct _VoLTE_Event_SMS_Release_t {
1903 LOCAL_PARA_HDR
1904 kal_int32 account_id; ///< the account id
1905 kal_uint32 request_id; ///< the request id
1906} VoLTE_Event_SMS_Release_t;
1907
1908typedef struct _VoLTE_Event_SMS_Confirm_t {
1909 LOCAL_PARA_HDR
1910 kal_int32 account_id; ///< the account id
1911 kal_uint32 request_id; ///< the request id
1912 kal_int32 resp_code; ///< SIP response code
1913 kal_uint8 cell_id[VOLTE_MAX_CELL_ID_LENGTH];
1914 VoLTE_Event_LBS_Location_t loc_info;
1915} VoLTE_Event_SMS_Confirm_t;
1916
1917typedef struct _VoLTE_Event_SMS_Result_t {
1918 LOCAL_PARA_HDR
1919 kal_int32 account_id; ///< the account id
1920 kal_uint32 request_id; ///< the request id
1921 kal_int32 resp_code; ///< SIP response code or ::VoLTE_Event_SMS_Result_e
1922} VoLTE_Event_SMS_Result_t;
1923
1924typedef struct _VoLTE_Event_SMS_Recv_Message_t {
1925 LOCAL_PARA_HDR
1926 kal_int32 account_id; ///< the account id
1927 kal_uint32 request_id; ///< the request id (provide by SMS-UA)
1928 kal_uint32 type; ///< refer to ::VoLTE_Event_SMS_Type_e
1929 kal_int8 psi[VOLTE_MAX_URI_LENGTH]; ///< PSI
1930 kal_int32 message_len; ///< the length of message data
1931 kal_int8 message[0]; ///< the message data
1932} VoLTE_Event_SMS_Recv_Message_t;
1933
1934typedef struct _VoLTE_Event_Ussd_Urc_Status_REQ {
1935 LOCAL_PARA_HDR
1936 kal_uint32 acct_id;
1937 kal_uint32 status; //0: disabled, 1: enabled
1938}VoLTE_Event_Ussd_Urc_Status_REQ_t;
1939
1940typedef struct _VoLTE_Event_Ussd_IND {
1941 LOCAL_PARA_HDR
1942 kal_uint32 acct_id;
1943 kal_uint8 ind_class;
1944 kal_uint8 alert_pattern;
1945 kal_uint8 padding[2];
1946 kal_uint16 status;
1947 kal_uint16 sip_cause;
1948 kal_uint8 language[VOLTE_USSD_LANGUAGE_MAX_LENGTH];
1949 kal_uint16 error_code;
1950 kal_uint16 string_len;
1951 kal_uint8 string[0];
1952}VoLTE_Event_Ussd_IND_t;
1953
1954typedef struct _VoLTE_Event_Ussd_RSP {
1955 LOCAL_PARA_HDR
1956 kal_uint32 acct_id;
1957 kal_uint32 response;
1958} VoLTE_Event_Ussd_RSP_t;
1959
1960typedef struct _VoLTE_Event_New_Ussd_CMD {
1961 LOCAL_PARA_HDR
1962 kal_uint32 acct_id;
1963 kal_uint8 cmd_class;
1964 kal_uint8 operation;
1965 kal_uint16 action; ///< 1:ussd request, 2: ussd_response
1966 kal_uint8 language[VOLTE_USSD_LANGUAGE_MAX_LENGTH];
1967 kal_uint16 error_code;
1968 kal_uint16 string_len;
1969 kal_uint8 string[VOLTE_USSD_STRING_MAX_LENGTH];
1970 kal_int8 digit_from_line_number[VOLTE_MAX_URI_LENGTH];
1971} VoLTE_Event_New_Ussd_CMD_t;
1972
1973typedef struct _VoLTE_Event_New_Ussd_IND {
1974 LOCAL_PARA_HDR
1975 kal_uint32 acct_id;
1976 kal_uint8 ind_class;
1977 kal_uint8 alert_pattern;
1978 kal_uint8 padding[2];
1979 kal_uint16 status;
1980 kal_uint16 sip_cause;
1981 kal_uint8 language[VOLTE_USSD_LANGUAGE_MAX_LENGTH];
1982 kal_uint16 error_code;
1983 kal_uint16 string_len;
1984 kal_uint8 string[VOLTE_USSD_STRING_MAX_LENGTH];
1985} VoLTE_Event_New_Ussd_IND_t;
1986
1987typedef struct _VoLTE_Event_CC_CS_Availability_req {
1988 LOCAL_PARA_HDR
1989 kal_uint32 acct_id;
1990 kal_uint32 call_id;
1991} VoLTE_Event_CC_CS_Availability_req_t;
1992
1993typedef struct _VoLTE_Event_CC_CS_Availability_cnf {
1994 LOCAL_PARA_HDR
1995 kal_uint32 acct_id;
1996 kal_uint32 call_id;
1997 kal_uint32 cs_network_status; /*VoLTE_Event_cs_network_status_e*/
1998} VoLTE_Event_CC_CS_Availability_cnf_t;
1999
2000typedef struct _VoLTE_Event_SMS_CS_Availability_req {
2001 LOCAL_PARA_HDR
2002 kal_uint32 acct_id;
2003 kal_uint32 request_id;
2004} VoLTE_Event_SMS_CS_Availability_req_t;
2005
2006typedef struct _VoLTE_Event_SMS_CS_Availability_cnf {
2007 LOCAL_PARA_HDR
2008 kal_uint32 acct_id;
2009 kal_uint32 request_id;
2010 kal_uint32 cs_network_status; /*VoLTE_Event_cs_network_status_e*/
2011} VoLTE_Event_SMS_CS_Availability_cnf_t;
2012
2013typedef struct _VoLTE_Event_Mod_BW_Req {
2014 LOCAL_PARA_HDR
2015 kal_int32 acct_id;
2016 kal_uint32 call_id; /* identify this call */
2017
2018 kal_uint32 video_bandwidth;
2019} VoLTE_Event_Mod_BW_Req_t;
2020
2021typedef struct _VoLTE_Event_Header_Req {
2022 LOCAL_PARA_HDR
2023 kal_int32 acct_id;
2024 kal_uint32 call_id; /*assigned by CC*/
2025 kal_uint32 type; /*refer to inet_header_field_enum*/
2026} VoLTE_Event_Header_Req_t;
2027
2028typedef struct _VoLTE_Event_Call_Mode_Req {
2029 LOCAL_PARA_HDR
2030 kal_int32 acct_id;
2031 kal_uint32 mode; /*VoLTE_Event_IMS_call_mode_e */
2032} VoLTE_Event_Call_Mode_Req_t;
2033
2034typedef struct _VoLTE_Event_EC_Call_Extra_header_Req {
2035 LOCAL_PARA_HDR
2036 kal_int32 acct_id;
2037 kal_int8 extraHeader[VOLTE_MAX_EXTRA_HEADER_SIZE];
2038} VoLTE_Event_EC_Call_Extra_header_Req_t;
2039
2040typedef struct _VoLTE_Event_EC_Call_Location_Info {
2041 LOCAL_PARA_HDR
2042 kal_int32 acct_id;
2043 kal_int8 latitude[16];
2044 kal_int8 longitude[16];
2045 kal_int8 accuracy[8];
2046 kal_uint8 timestamp[VOLTE_MAX_TIME_STAMP_LENGTH]; // VOLTE_MAX_TIME_STAMP_LENGTH =32
2047} VoLTE_Event_EC_Call_Location_Info_t;
2048
2049//*****************************
2050//*** UA LEGACY TYPE DEFINE ***
2051//*****************************
2052
2053UA_IMCB_MAP_STRUCT(BW_Require, ind_bw_add) /* message: IND_BW_ADD MSG_ID_VOLTE_BW_IND */
2054typedef VoLTE_Event_BW_Require_t volte_bw_ind_struct;
2055UA_IMCB_MAP_STRUCT(BW_Act, rsp_bw_add) /* message: RSP_BW_ADD MSG_ID_VOLTE_BW_CNF */
2056typedef VoLTE_Event_BW_Act_t volte_bw_cnf_struct;
2057UA_IMCB_MAP_STRUCT(BW_Update, ind_bw_mod) /* message: IND_BW_MOD MSG_ID_VOLTE_BW_MOD */
2058typedef VoLTE_Event_BW_Update_t volte_bw_mod_struct;
2059UA_IMCB_MAP_STRUCT(BW_Act, rsp_bw_mod) /* message: RSP_BW_MOD MSG_ID_VOLTE_BW_CNF */
2060UA_IMCB_MAP_STRUCT(BW_Act, ind_bw_rel) /* message: IND_BW_REL MSG_ID_VOLTE_BW_REL */
2061typedef VoLTE_Event_BW_Act_t volte_bw_rel_struct;
2062UA_IMCB_MAP_STRUCT(BW_Act, rsp_bw_rel) /* message: RSP_BW_REL MSG_ID_VOLTE_BW_CNF */
2063UA_IMCB_MAP_STRUCT(BW_Act, req_bw_nego) /* message: REQ_BW_NEGO MSG_ID_VOLTE_BW_NEGO */
2064typedef VoLTE_Event_BW_Act_t volte_bw_nego_struct;
2065
2066UA_IMCB_MAP_STRUCT(Radio_Link_Monitor, req_radio_link_monitor) // message: MSG_ID_VOLTE_REQ_RADIO_LINK_MONITOR
2067UA_IMCB_MAP_STRUCT(Init, req_init) // message: MSG_ID_VOLTE_REQ_INIT
2068
2069/***** VT Capability *****/
2070UA_IMCB_MAP_STRUCT(VT_Cap_Setting, get_vt_cap_rsp) /* message: VOLTE_GET_VT_CAP_RSP */
2071
2072UA_IMCB_MAP_STRUCT(VT_Cap_Setting, req_vt_cap_setting) //MSG_ID_VOLTE_REQ_VT_CAP_SETTING
2073
2074//wait for phase II
2075UA_IMCB_MAP_STRUCT(Media_Mod_Ind, ind_media_mod) /* message: IND_MEDIA_MOD MSG_ID_VOLTE_MEDIA_MOD_IND */
2076UA_IMCB_MAP_STRUCT(Video_Cap_Ind, ind_video_cap) /* message: IND_VIDEO_CAP MSG_ID_VOLTE_VIDEO_CAP_IND */
2077UA_IMCB_MAP_STRUCT(Mod_Session_Req, req_mod_session) /* message: REQ_MOD_SESSION MSG_ID_VOLTE_MOD_SESSION_REQ */
2078UA_IMCB_MAP_STRUCT(Mod_Session_Cnf, cnf_mod_session) /* message: CNF_MOD_SESSION MSG_ID_VOLTE_MOD_SESSION_CNF */
2079UA_IMCB_MAP_STRUCT(Mod_Session_Ind, ind_mod_session) /* message: IND_MOD_SESSION MSG_ID_VOLTE_MOD_SESSION_IND */
2080UA_IMCB_MAP_STRUCT(Mod_Session_Rsp, rsp_mod_session) /* message: RSP_MOD_SESSION MSG_ID_VOLTE_MOD_SESSION_RSP */
2081
2082UA_IMCB_MAP_STRUCT(Media_Mod_Ind, media_mod_ind) /* message: IND_MEDIA_MOD MSG_ID_VOLTE_MEDIA_MOD_IND */
2083UA_IMCB_MAP_STRUCT(Video_Cap_Ind, video_cap_ind) /* message: IND_VIDEO_CAP MSG_ID_VOLTE_VIDEO_CAP_IND */
2084UA_IMCB_MAP_STRUCT(Mod_Session_Req, mod_session_req) /* message: REQ_MOD_SESSION MSG_ID_VOLTE_MOD_SESSION_REQ */
2085UA_IMCB_MAP_STRUCT(Mod_Session_Cnf, mod_session_cnf) /* message: CNF_MOD_SESSION MSG_ID_VOLTE_MOD_SESSION_CNF */
2086UA_IMCB_MAP_STRUCT(Mod_Session_Ind, mod_session_ind) /* message: IND_MOD_SESSION MSG_ID_VOLTE_MOD_SESSION_IND */
2087UA_IMCB_MAP_STRUCT(Mod_Session_Rsp, mod_session_rsp) /* message: RSP_MOD_SESSION MSG_ID_VOLTE_MOD_SESSION_RSP */
2088UA_IMCB_MAP_STRUCT(Mod_BW_Req, mod_bw_req) /* message: RSP_MOD_SESSION MSG_ID_VOLTE_MOD_BW_REQ */
2089UA_IMCB_MAP_STRUCT(Mod_Session_Cancel_Req,mod_session_cancel_req) /* message: RSP_MOD_SESSION_CANCEL VOLTE_MOD_CANCEL_REQ */
2090UA_IMCB_MAP_STRUCT(Mod_Session_Cancel_Cnf,mod_session_cancel_cnf) /* message: CNF_MOD_SESSION_CANCEL VOLTE_MOD_CANCEL_CNF */
2091UA_IMCB_MAP_STRUCT(Mod_Session_Cancel_Ind,mod_session_cancel_ind) /* message: IND_MOD_SESSION_CANCEL VOLTE_MOD_CANCEL_IND */
2092UA_IMCB_MAP_STRUCT(Local_BW_Ready_Ind,local_bw_ready_ind) /* message: LOCAL_BW_READY_IND MSG_ID_VOLTE_LOCAL_BW_READY_IND */
2093#ifdef __NG_ECALL_SUPPORT__
2094UA_IMCB_MAP_STRUCT(eCall_In_Band_MSD_Transfer_Rsp,ecall_in_band_msd_transfer_rsp) /* message: VOLTE_ECALL_IN_BAND_TRANSFER_RSP */
2095UA_IMCB_MAP_STRUCT(eCall_Update_MSD_Rsp,ecall_update_msd_rsp) /* message: VOLTE_ECALL_IN_BAND_TRANSFER_RSP */
2096#endif
2097/* VILTE */
2098UA_IMCB_MAP_STRUCT(MT_VT_Special_Accept_Req, mt_vt_special_accept_req) /* message: MSG_ID_VOLTE_MT_VT_SPECIAL_ACCEPT_REQ */
2099UA_IMCB_MAP_STRUCT(MT_VT_Special_Accept_Cnf, mt_vt_special_accept_cnf) /* message: MSG_ID_VOLTE_MT_VT_SPECIAL_ACCEPT_CNF */
2100
2101
2102/***** CC *****/
2103UA_IMCB_MAP_STRUCT(Call_Prog, call_progress_ind) /* message: MSG_ID_VOLTE_CALL_PROGRESS_IND */
2104UA_IMCB_MAP_STRUCT(MediaInfo, media_ind) /* message: MSG_ID_VOLTE_MEDIA_IND */
2105UA_IMCB_MAP_STRUCT(Call_Start, mo_call_req) /* message: MSG_ID_VOLTE_MO_CALL_REQ */
2106UA_IMCB_MAP_STRUCT(MO_Call_Cnf, mo_call_cnf) /* message: MSG_ID_VOLTE_MO_CALL_CNF */
2107UA_IMCB_MAP_STRUCT(MT_Call_Abort, mt_call_abort_ind) /* message: MSG_ID_VOLTE_MT_CALL_ABORT_IND */
2108UA_IMCB_MAP_STRUCT(MT_Call_Ind, mt_call_present_ind) /* message: MSG_ID_VOLTE_MT_CALL_PRESENT_IND */
2109UA_IMCB_MAP_STRUCT(MT_Call_Rsp, mt_call_present_rsp) /* message: MSG_ID_VOLTE_MT_CALL_PRESENT_RSP */
2110UA_IMCB_MAP_STRUCT(Call_Refresh, mt_call_ring_ind) /* message: MSG_ID_VOLTE_MT_CALL_RING_IND */
2111UA_IMCB_MAP_STRUCT(Req, mo_force_hangup_req) /* message: MSG_ID_VOLTE_MO_FORCE_HANGUP_REQ */
2112UA_IMCB_MAP_STRUCT(Req, mo_hangup_req) /* message: MSG_ID_VOLTE_MO_HANGUP_REQ */
2113UA_IMCB_MAP_STRUCT(Call_Stop, mo_hangup_cnf) /* message: MSG_ID_VOLTE_MO_HANGUP_CNF */
2114UA_IMCB_MAP_STRUCT(Req, no_rtppkt_req) /* message: MSG_ID_VOLTE_NO_RTPPKT_REQ */
2115UA_IMCB_MAP_STRUCT(Req, incoming_rtppkt_req) /* message: MSG_ID_VOLTE_INCOMING_RTPPKT_REQ */
2116UA_IMCB_MAP_STRUCT(Call_Stop, no_rtppkt_cnf) /* message: VOLTE_NO_RTPPKT_CNF */
2117UA_IMCB_MAP_STRUCT(Req, mt_accept_req) /* message: MSG_ID_VOLTE_MT_ACCEPT_REQ */
2118UA_IMCB_MAP_STRUCT(Call_Stop, mt_accept_cnf) /* message: MSG_ID_VOLTE_MT_ACCEPT_CNF */
2119UA_IMCB_MAP_STRUCT(SIP_Call_Prog_Ind, sip_call_progress_ind) /*message: MSG_ID_VOLTE_SIP_CALL_PROGRESS_IND*/
2120UA_IMCB_MAP_STRUCT(Conf_Call_Start, mo_conf_call_req) /* message: MSG_ID_VOLTE_MO_CONF_CALL_REQ*/
2121UA_IMCB_MAP_STRUCT(MO_Conf_Call_Cnf, mo_conf_call_cnf) /* message: MSG_ID_VOLTE_MO_CONF_CALL_CNF*/
2122UA_IMCB_MAP_STRUCT(Req, mo_call_domain_conflict_req) /* message: MSG_ID_VOLTE_MO_CALL_DOMAIN_CONFLICT_REQ*/
2123UA_IMCB_MAP_STRUCT(Call_Stop, mo_call_domain_conflict_cnf) /* message: MSG_ID_VOLTE_MO_CALL_DOMAIN_CONFLICT_CNF*/
2124UA_IMCB_MAP_STRUCT(Ims_Notify_Req, ims_notify_req) /* message: MSG_ID_VOLTE_IMS_NOTIFY_REQ */
2125/* CC CS Availability query*/
2126UA_IMCB_MAP_STRUCT(CC_CS_Availability_req, cc_cs_availability_req) /* message: MSG_ID_VOLTE_CC_CS_AVAILABILITY_REQ */
2127UA_IMCB_MAP_STRUCT(CC_CS_Availability_cnf, cc_cs_availability_cnf) /* message: MSG_ID_VOLTE_CC_CS_AVAILABILITY_CNF */
2128
2129
2130/***** SS *****/
2131UA_IMCB_MAP_STRUCT(SS_Req, ss_switch_waiting_or_holding_and_active_req) /* message: MSG_ID_VOLTE_SS_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE_REQ */
2132UA_IMCB_MAP_STRUCT(SS_Resp, ss_switch_waiting_or_holding_and_active_cnf) /* message: MSG_ID_VOLTE_SS_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE_CNF */
2133UA_IMCB_MAP_STRUCT(SS_Req, ss_rel_waiting_or_holding_call_req) /* message: MSG_ID_VOLTE_SS_REL_WAITING_OR_HOLDING_CALL_REQ */
2134UA_IMCB_MAP_STRUCT(SS_Resp, ss_rel_waiting_or_holding_call_cnf) /* message: MSG_ID_VOLTE_SS_REL_WAITING_OR_HOLDING_CALL_CNF */
2135UA_IMCB_MAP_STRUCT(SS_Req, ss_rel_all_active_calls_and_resume_call_req) /* message: MSG_ID_VOLTE_SS_REL_ALL_ACTIVE_CALLS_AND_RESUME_CALL_REQ */
2136UA_IMCB_MAP_STRUCT(SS_Resp, ss_rel_all_active_calls_and_resume_call_cnf) /* message: MSG_ID_VOLTE_SS_REL_ALL_ACTIVE_CALLS_AND_RESUME_CALL_CNF */
2137UA_IMCB_MAP_STRUCT(SS_Req, ss_rel_all_calls_req) /* message: MSG_ID_VOLTE_SS_REL_ALL_CALLS_REQ */
2138UA_IMCB_MAP_STRUCT(SS_Resp, ss_rel_all_calls_cnf) /* message: MSG_ID_VOLTE_SS_REL_ALL_CALLS_CNF */
2139UA_IMCB_MAP_STRUCT(SS_Req, ss_explicit_call_transfer_req) /* message: MSG_ID_VOLTE_SS_EXPLICIT_CALL_TRANSFER_REQ */
2140UA_IMCB_MAP_STRUCT(SS_Resp, ss_explicit_call_transfer_cnf) /* message: MSG_ID_VOLTE_SS_EXPLICIT_CALL_TRANSFER_CNF */
2141UA_IMCB_MAP_STRUCT(SS_Conf_Req, ss_create_conference_call_req) /* message: MSG_ID_VOLTE_SS_CREATE_CONFERENCE_CALL_REQ */
2142UA_IMCB_MAP_STRUCT(SS_Resp, ss_create_conference_call_cnf) /* message: MSG_ID_VOLTE_SS_CREATE_CONFERENCE_CALL_CNF */
2143UA_IMCB_MAP_STRUCT(SS_Conf_ind, ss_conference_control_ind) /* message: MSG_ID_VOLTE_SS_CONFERENCE_CONTROL_IND */
2144UA_IMCB_MAP_STRUCT(SS_Sub_ind, ss_subscribe_control_ind) /* message: MSG_ID_VOLTE_SS_SUBSCRIBE_CONTROL_IND */
2145UA_IMCB_MAP_STRUCT(SS_Conf_Control_Req, ss_conference_control_req) /* message: MSG_ID_VOLTE_SS_CONFERENCE_CONTROL_REQ */
2146UA_IMCB_MAP_STRUCT(SS_Resp, ss_conference_control_cnf) /* message: MSG_ID_VOLTE_SS_CONFERENCE_CONTROL_CNF */
2147UA_IMCB_MAP_STRUCT(SS_Req, ss_ath_rel_all_calls_req) /* message: MSG_ID_VOLTE_SS_ATH_REL_ALL_CALLS_REQ */
2148UA_IMCB_MAP_STRUCT(SS_Resp, ss_ath_rel_all_calls_cnf) /* message: MSG_ID_VOLTE_SS_ATH_REL_ALL_CALLS_CNF */
2149UA_IMCB_MAP_STRUCT(List_Current_Call, list_call_cnf) /* message: MSG_ID_VOLTE_LIST_CALL_CNF */
2150UA_IMCB_MAP_STRUCT(SS_Notify, ss_progress_notify_ind) /* message: MSG_ID_VOLTE_SS_PROGRESS_NOTIFY_IND */
2151UA_IMCB_MAP_STRUCT(SS_Call_Ctrl, call_control_req) /* message: MSG_ID_VOLTE_SS_CALL_CONTROL_REQ */
2152UA_IMCB_MAP_STRUCT(SS_Resp, call_control_cnf) /* message: MSG_ID_VOLTE_SS_CALL_CONTROL_CNF */
2153UA_IMCB_MAP_STRUCT(SS_ect_notify, ss_ect_notify_ind) /* message: MSG_ID_VOLTE_SS_ECT_NOTIFY_IND */
2154UA_IMCB_MAP_STRUCT(SS_ect_Req, ss_ect_req) /* message: MSG_ID_VOLTE_SS_ECT_REQ */
2155UA_IMCB_MAP_STRUCT(SS_ect_Resp, ss_ect_cnf) /* message: MSG_ID_VOLTE_SS_ECT_CNF */
2156UA_IMCB_MAP_STRUCT(SS_List_Calls_Req, ss_list_current_calls_req) /* message: MSG_ID_VOLTE_LIST_CALL_REQ */
2157
2158/***** SMS *****/
2159UA_IMCB_MAP_STRUCT(SMS_Send_Message, req_sms_send) /* message: MSG_ID_VOLTE_REQ_SMS_SEND */
2160UA_IMCB_MAP_STRUCT(SMS_Result, rsp_sms_sent) /* message: MSG_ID_VOLTE_RSP_SMS_SENT */
2161UA_IMCB_MAP_STRUCT(SMS_Recv_Message, ind_sms_received) /* message: MSG_ID_VOLTE_IND_SMS_RECEIVED */
2162UA_IMCB_MAP_STRUCT(SMS_Confirm, cnf_sms_received) /* message: MSG_ID_VOLTE_CNF_SMS_RECEIVED */
2163UA_IMCB_MAP_STRUCT(SMS_Release, req_sms_release) /* message: MSG_ID_VOLTE_REQ_SMS_RELEASE */
2164UA_IMCB_MAP_STRUCT(SMS_Result, ind_sms_error) /* message: MSG_ID_VOLTE_IND_SMS_ERROR */
2165/* SMS CS Availability query*/
2166UA_IMCB_MAP_STRUCT(SMS_CS_Availability_req, sms_cs_availability_req) /* message: MSG_ID_VOLTE_SMS_CS_AVAILABILITY_REQ */
2167UA_IMCB_MAP_STRUCT(SMS_CS_Availability_cnf, sms_cs_availability_cnf) /* message: MSG_ID_VOLTE_SMS_CS_AVAILABILITY_CNF */
2168
2169/**** RTT ****/
2170UA_IMCB_MAP_STRUCT(RTT_Req, rtt_req) /* message: MSG_ID_VOLTE_RTT_REQ */
2171UA_IMCB_MAP_STRUCT(RTT_Cnf, rtt_cnf) /* message: MSG_ID_VOLTE_RTT_CNF */
2172
2173/**** TTY ****/
2174UA_IMCB_MAP_STRUCT(Text_Req, text_req) /* message: MSG_ID_VOLTE_TEXT_REQ */
2175UA_IMCB_MAP_STRUCT(Text_Cap_Ind, text_cap_ind) /* message: MSG_ID_VOLTE_TEXT_CAP_IND */
2176UA_IMCB_MAP_STRUCT(Text_Cnf, text_cnf) /* message: MSG_ID_VOLTE_TEXT_CNF */
2177
2178/**** Handover Notify ****/
2179UA_IMCB_MAP_STRUCT(Handover_Start_Notify, handover_start_notify_req) /* message: MSG_ID_VOLTE_REQ_HANDOVER_START_NOTIFY */
2180typedef VoLTE_Event_Handover_Start_Notify_t volte_req_handover_start_notify_struct;
2181UA_IMCB_MAP_STRUCT(Handover_Stop_Notify, handover_stop_notify_req) /* message: MSG_ID_VOLTE_REQ_HANDOVER_STOP_NOTIFY */
2182typedef VoLTE_Event_Handover_Stop_Notify_t volte_req_handover_stop_notify_struct;
2183UA_IMCB_MAP_STRUCT(Handover_IP_Ready_Notify, handover_ip_ready_notify_req) /* message: MSG_ID_VOLTE_REQ_HANDOVER_IP_READY_NOTIFY */
2184typedef VoLTE_Event_Handover_IP_Ready_Notify_t volte_req_handover_ip_ready_notify_struct;
2185
2186/***** SRVCC *****/
2187UA_IMCB_MAP_STRUCT(SRVCC_Info, srvcc_info) /* message: MSG_ID_VOLTE_SRVCC_START, MSG_ID_VOLTE_SRVCC_END */
2188typedef VoLTE_Event_SRVCC_Info_t volte_srvcc_start_struct;
2189typedef VoLTE_Event_SRVCC_Info_t volte_srvcc_end_struct;
2190UA_IMCB_MAP_STRUCT(List_SRVCC_Call_Ctxt, list_srvcc_call_ctxt) /* message: MSG_ID_VOLTE_SRVCC_CALL_CTXT_TRANSFER */
2191typedef VoLTE_Event_List_SRVCC_Call_Ctxt_t volte_srvcc_call_ctxt_transfer_struct;
2192
2193/**** ANBR ****/
2194UA_IMCB_MAP_STRUCT(Media_Anbr_Ind, media_anbr_ind) /* message: MSG_ID_VOLTE_MEDIA_ANBR_IND */
2195UA_IMCB_MAP_STRUCT(Media_Anbr_Rsp, media_anbr_rsp) /* message: MSG_ID_VOLTE_MEDIA_ANBR_RSP */
2196
2197/**** CDMA-less ****/
2198UA_IMCB_MAP_STRUCT(IMS_Timer_Status_Ind, ims_timer_status_ind) /* message: MSG_ID_VOLTE_IMS_TIMER_STATUS_IND */
2199
2200/***** Altc_Address_Req to UA *****/
2201UA_IMCB_MAP_STRUCT(Altc_Address_Req, altc_address_req) /* message: MSG_ID_VOLTE_ALTC_ADDRESS_STATUS_REQ */
2202typedef VoLTE_Event_Altc_Address_Req_t volte_altc_address_status_req_struct;
2203
2204/**** USSD ****/
2205UA_IMCB_MAP_STRUCT(New_Ussd_CMD, req_send_ussd) // message: MSG_ID_VOLTE_USSD_CMD_REQ
2206typedef VoLTE_Event_New_Ussd_CMD_t volte_ussd_cmd_req_struct;
2207UA_IMCB_MAP_STRUCT(New_Ussd_IND, ind_recv_ussd) // message: VOLTE_USSD_IND
2208typedef VoLTE_Event_New_Ussd_IND_t volte_ussd_ind_struct;
2209UA_IMCB_MAP_STRUCT(Ussd_RSP, rsp_send_ussd) // message: MSG_ID_VOLTE_USSD_RSP
2210typedef VoLTE_Event_Ussd_RSP_t volte_ussd_rsp_struct;
2211UA_IMCB_MAP_STRUCT(Ussd_Urc_Status_REQ, req_ussd_urc_status) // message: MSG_ID_VOLTE_USSD_URC_STATUS_REQ
2212typedef VoLTE_Event_Ussd_Urc_Status_REQ_t volte_ussd_urc_status_req_struct;
2213
2214
2215UA_VOLTE_ILM_MAP_STRUCT(Notify, ind_reg_notify_conf_subsc) // message: MSG_ID_VOLTE_IND_REG_NOTIFY_CONF_SUBSC
2216UA_VOLTE_ILM_MAP_STRUCT(Call_Refresh, refresh_req) // message: MSG_ID_VOLTE_REFRESH_REQ
2217UA_VOLTE_ILM_MAP_STRUCT(Call_Refresh, oos_hangup_req) // message: MSG_ID_VOLTE_OOS_HANGUP_REQ
2218UA_VOLTE_ILM_MAP_STRUCT(Call_Rel, rel_session_req) // message: MSG_ID_VOLTE_REL_SESSION_REQ
2219UA_VOLTE_ILM_MAP_STRUCT(Queue_SIP, queue_sip_msg_req) // message: MSG_ID_VOLTE_QUEUE_SIP_MSG_REQ
2220UA_VOLTE_ILM_MAP_STRUCT(MT_Call_Abort, transfer_abort_req) // message: MSG_ID_VOLTE_TRANSFER_ABORT_REQ
2221UA_VOLTE_ILM_MAP_STRUCT(Media_Mod_Ind, transfer_finalize_req) // message: MSG_ID_VOLTE_TRANSFER_FINALIZE_REQ
2222UA_VOLTE_ILM_MAP_STRUCT(RTT_Rsp, rtt_rsp) // message: MSG_ID_VOLTE_RTT_RSP
2223
2224#endif /* _IMSUA_STRUCT_H_ */