[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/protocol/interface/ims/imcb_imsua_struct.h b/mcu/protocol/interface/ims/imcb_imsua_struct.h
new file mode 100644
index 0000000..63498c3
--- /dev/null
+++ b/mcu/protocol/interface/ims/imcb_imsua_struct.h
@@ -0,0 +1,2218 @@
+/*****************************************************************************
+*  Copyright Statement:
+*  --------------------
+*  This software is protected by Copyright and the information contained
+*  herein is confidential. The software may not be copied and the information
+*  contained herein may not be used or disclosed except with the written
+*  permission of MediaTek Inc. (C) 2012
+*
+*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+/*******************************************************************************
+ * Filename:
+ * ---------
+ *   imsua_struct.h
+ *
+ * Project:
+ * --------
+ *   VMOLY
+ *
+ * Description:
+ * ------------
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ * ==========================================================================
+ * $Log$
+ *
+ * 06 10 2022 yung-liang.tsou
+ * [MOLY00876156] [T750][AT]AT+CLCC????
+ * 	
+ * 	.AT+CLCC support in IMS
+ *
+ * 01 21 2022 ari.simonen
+ * [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
+ * 	
+ * 	Changed REG to wait for IP ready during HO to prevent it from trying to re-register with an old local IP address.
+ *
+ * 12 16 2021 xin.ni
+ * [MOLY00774161] [mt2735][CS eCall][NG eCall][patch back] ecall patch back from NR15.R3.MD700.MP.ECAll.DEV. IMS  interface part
+ * 	
+ * 	.
+ *
+ * 12 14 2021 ot_gang.zhang
+ * [MOLY00729679] [MT6873][Margaux][Q0][R3][JAPAN][SOFTBANK][SA][SIM][Lab][Voice-06-01-02] Please help to support OTR-Voice-032069
+ * 08 09 2021 rohit.sharma
+ * 	
+ * 	.
+ *
+ * 	
+ * 	.
+ *
+ * [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
+ * 	.
+ * 05 17 2021 zhongyong.wang
+ * [MOLY00606601] [MT6853][Mouton][R0][WW FT][Colombia][IMS][Regression][SQC Excluded][VoLTE][Claro] IPv4 CP and IPv6 UP requirement by AMX
+ * 	
+ * 	.
+ *
+ * 11 13 2020 peng.pan
+ * [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
+ * support handle invite 407 with "Proxy-Authenticate" header.
+ *
+ * 11 13 2020 peng.pan
+ * [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
+ * support handle invite 407 with "Proxy-Authenticate" header.
+ *
+ * 11 13 2020 peng.pan
+ * support handle invite 407 with "Proxy-Authenticate" header.
+ *
+ * 11 02 2020 ari.simonen
+ * [MOLY00589251] [Gen97][MP7][Memory reduction] Stage V - IMCB cleanup and dialog/account# reduce
+ * 	
+ * 	Memory optimizations: created common CC context and stream pools to be shared between SIMs/accounts.
+ * 	This helps to reduce SIM structure memory consumption, as all SIMs and accounts don't need to support the maximum dialog count simultaneously.
+ * 	Also cleaned up some unused video parameters from IMCB structures.
+ *
+ * 11 02 2020 ari.simonen
+ * [MOLY00578691] [Gen97][IMS] IMCB memory optimizations
+ * 	
+ * 	Memory optimizations: created common CC context and stream pools to be shared between SIMs/accounts.
+ * 	This helps to reduce SIM structure memory consumption, as all SIMs and accounts don't need to support the maximum dialog count simultaneously.
+ * 	Also cleaned up some unused video parameters from IMCB structures.
+ *
+ * 09 30 2020 vend_mti_wspsd_012
+ * [MOLY00551167] �?�?测必解】�?19420】�?NZ】�?OP_Spark】�?FT】�?DVT】与QC视频通�?,无hold call tone
+ * 	
+ * 	.
+ *
+ * 09 18 2020 shu-lin.yang
+ * [MOLY00569420] [US_DEV] VZW 2020JUN IMSUA
+ * 	
+ * 	R3 TC3 VLIST.
+ *
+ * 07 29 2020 jin.liang
+ * [MOLY00550525] [Oppo] Please provide CMCC, CT and CU來電影?feature
+ * .
+ *
+ * 07 15 2020 jin.liang
+ * [MOLY00517562] [self]503???问题?请优??
+ * .
+ *
+ * 06 30 2020 tsung-kun.shih
+ * [MOLY00508983] [Call UA][TCL][Tokyo Lite TMO][RCS][Android Q]Apply RCS enriched calling feature patch for platform part.
+ * 	
+ * 	.
+ *
+ * 06 17 2020 tsung-kun.shih
+ * [MOLY00508983] [Call UA][TCL][Tokyo Lite TMO][RCS][Android Q]Apply RCS enriched calling feature patch for platform part.
+ * 	
+ * 	.
+ *
+ * 05 07 2020 yun.bai
+ * [MOLY00514296] ??19131??PVT??海??测??19131CU+CT?(IMS+IMS),�?�1CU??MO???3G,???2/20
+ * 	
+ * 	.
+ *
+ * 03 17 2020 rahul.gupta
+ * [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
+ * 	
+ * 	.
+ *
+ * 12 04 2019 yuheng.li
+ * [MOLY00443618] [VMOLY]Gen97 Common Feature :    Call and Supplementary Service �� IMSProtoc9-support 607
+ * 	
+ * 	.
+ *
+ * 10 29 2019 yuheng.li
+ * [MOLY00443618] [VMOLY]Gen97 Common Feature :    Call and Supplementary Service �� IMSProtoc9-support 607
+ * 	
+ * 	.
+ * 11 08 2019 mika.leinonen
+ * [MOLY00457775] [MT6885][Petrus][MP1][India][Delhi][FT][VoLTE][JIO][IDEA][Auto][SWIFT][ASSERT] file:mcu/protocol/ims/stack/src/reg/reg.c line:9665
+ * Change Reg UA client field to 64-bit because there can be more than 32 UA contexts
+ *
+ * 11 08 2019 mika.leinonen
+ * [MOLY00457775] [MT6885][Petrus][MP1][India][Delhi][FT][VoLTE][JIO][IDEA][Auto][SWIFT][ASSERT] file:mcu/protocol/ims/stack/src/reg/reg.c line:9665
+ * Change Reg UA client field to 64-bit because there can be more than 32 UA contexts
+ *
+ * 10 07 2019 mika.leinonen
+ * [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
+ * Optimized routing of video capability settings from VTS to IMSUA.
+ *
+ * 10 07 2019 mika.leinonen
+ * [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
+ * Optimized routing of video capability settings from VTS to IMSUA.
+ *
+ * 09 23 2019 ssu-hsien.wu
+ * [MOLY00438070] [Gen97][IMS] STKCALL and STKUSSD over IMS
+ * 	
+ * 	.
+ *
+ * 09 04 2019 mika.leinonen
+ * [MOLY00437261] [MT6297][UESIM][VMOLY APOLLO][VoLTE][TC 15_17] PANI header wrong value
+ * Fixed IMSUA message definition to use enum type to be in sync with IMC interface
+ *
+ * 07 18 2019 sami.jutila
+ * [MOLY00423377] [Gen97][IMS] UT test case enabling.
+ *
+ *  .
+ *
+ * 07 12 2019 theresa.yang
+ * [MOLY00357356] [US_DEV][VzW][2018_JUN] CALL/SMS UA dev
+ *
+ *  Patch back VZW -MOLY00357356.
+ *
+ *  [MOLY00357356] 97 Submarine scope patches sync to Submarine DEVs
+ *  [MOLY00357356][US_DEV][VzW][2018_JUN] CALL/SMS UA dev
+ *  [MOLY00382398][VZW][ZTE][6761] Client API patch back
+ *  [MOLY00386977][US_DEV][VzW][2018_OCT] CALLUA dev
+ *  [MOLY00394340][US_DEV][MDMI] CALL UA part
+ *  [MOLY00395789][US_DEV][VZW][PST tool] phone context uri
+ *
+ *
+ * 04 29 2019 xw.wang
+ * [MOLY00399953] [Korea TTA][IMS][volte_stack][TTA] Registration fail retry for 403 error response
+ * 05 10 2019 shu-lin.yang
+ * [MOLY00357356] [US_DEV][VzW][2018_JUN] CALL/SMS UA dev
+ *
+ *  [MOLY00357356] 97 Submarine scope patches sync to Submarine DEVs
+ *  [MOLY00357356][US_DEV][VzW][2018_JUN] CALL/SMS UA dev
+ *  [MOLY00382398][VZW][ZTE][6761] Client API patch back
+ *  [MOLY00386977][US_DEV][VzW][2018_OCT] CALLUA dev
+ *  [MOLY00394340][US_DEV][MDMI] CALL UA part
+ *  [MOLY00395789][US_DEV][VZW][PST tool] phone context uri
+ *
+ *  .
+ *  tta submarine
+ * 07 04 2019 mika.leinonen
+ * [MOLY00367126] [Gen97][IMS] VoLTE porting
+ * IMS UT enhancements
+ *
+ * 07 03 2019 olli.kettunen
+ * [MOLY00401775] [Submarine] Improve UA to VDM mo call cnf/rsp SAP trace output
+ *
+ *  - Improve tracing of UA-IMCB SAP mo_call_cnf by using enum type
+ *  - Improve tracing of IMCB-IMC SAP mo_call_rsp by using enum instead of imcf_uint8 in SAP message struct definitions.
+ *  - Improve IMC-VDM SAP mo_call_cnf tracing by using enum definitions in message structure.
+ *  .
+ *
+ * 04 01 2019 olli.kettunen
+ * [MOLY00396145] IMS interface version 0x71 to submarine dev
+ *  .
+ *  Update to IMS IF version 0x71 content
+ *
+ * 03 21 2019 sami.jutila
+ * [MOLY00393545] [Submarine][M1] Plmn_type used wrongly
+ * .
+ *
+ * 02 25 2019 tsung-kun.shih
+ * [MOLY00386710] [Submarine][M1][TMOUS][CAT][18Q4][54658][L_IR94_174811_1]fail to established MO video call
+ * Caculate suggest resource_retain_timer to IMCB for TMO.
+ * UA should send pqos to IMCB for TMO normal call combine attach case where
+ * pqos = mo_invite_to_bw_cnf_timer_timeout - Dur_INVITE_to_SIP183.
+ *
+ * 01 29 2019 szu-chieh.chiu
+ * [MOLY00381194] [Submarine][M1][1stCall] decode fail on the ILM messages between IMSUA/IMCB/IMS_STACK
+ * ua naming refine.
+ *
+ * 01 25 2019 szu-chieh.chiu
+ * [MOLY00381194] [Submarine][M1][1stCall] decode fail on the ILM messages between IMSUA/IMCB/IMS_STACK
+ * call ua naming refine.
+ *
+ * 01 25 2019 szu-chieh.chiu
+ * [MOLY00381194] [Submarine][M1][1stCall] decode fail on the ILM messages between IMSUA/IMCB/IMS_STACK
+ * .
+ *
+ * 01 24 2019 szu-chieh.chiu
+ * [MOLY00381194] [Submarine][M1][1stCall] decode fail on the ILM messages between IMSUA/IMCB/IMS_STACK
+ * [gen97] UA msg/struct refine.
+ *
+ * 01 23 2019 mika.leinonen
+ * [MOLY00380857] [Submarine][M1][1stCall][CMCC]IMS register fail
+ * Update IMS Stack interface - flag field usage
+ *
+ * 01 21 2019 ari.simonen
+ * [MOLY00367126] [Gen97][IMS] VoLTE porting
+ * IMS structure reorganization to make BW message tracing work.
+ *
+ * 01 10 2019 ari.simonen
+ * [MOLY00367126] [Gen97][IMS] VoLTE porting
+ *
+ *  RTP port allocation and REG message handling fixes.
+ *
+ * 01 07 2019 kari.suvivaara
+ * [MOLY00373280] [Gen97][IMS][VoLTE Porting] Coding/UT Phase 1
+ *
+ *  IMS UA and Stack ramp up on MD side.
+ *
+ * 01 07 2019 kari.suvivaara
+ * [MOLY00373280] [Gen97][IMS][VoLTE Porting] Coding/UT Phase 1
+ *
+ *  IMS UA and Stack ramp up on MD side.
+ *
+ ****************************************************************************/
+
+#ifndef _IMSUA_STRUCT_H_
+#define _IMSUA_STRUCT_H_
+
+#include "kal_general_types.h"
+#include "kal_public_defs.h"
+#include "ims_common_def.h"
+#include "ims_dbg_enum.h"
+#if 0
+/* under construction !*/
+#endif
+
+#define VOLTE_MAX_SUB_PARAM_LENGTH                      (128)
+
+
+enum VoLTE_Event_Timer_ID_e {
+    VoLTE_Event_Timer_Reg                   = 1,
+    VoLTE_Event_Timer_UA                    = 2,
+    VoLTE_Event_Timer_IMCB                  = 3,
+    VoLTE_Event_Timer_Stack                 = 4,
+};
+
+enum VoLTE_Event_3gpp_OOS_State_e {
+    VoLTE_Event_3gpp_OOS_Start     = 1,
+    VoLTE_Event_3gpp_OOS_End       = 2,
+};
+
+enum VoLTE_SRVCC_info_result_e {
+    VOLTE_SRVCC_Result_STARTED = 0, // when VOLTE_SRVCC_START, this is the result
+    VoLTE_SRVCC_Result_SUCCESS,     // when VOLTE_SRVCC_END, this is the result if SRVCC is success
+    VoLTE_SRVCC_Result_FAILED,      // when VOLTE_SRVCC_END, this is the result if SRVCC is failed
+    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
+    VoLTE_SRVCC_Result_Unknown,
+    VoLTE_SRVCC_Result_Max,
+};
+
+typedef enum VoLTE_Event_Call_stop_cause_e {
+    VoLTE_Event_Call_Cause_Normal            = 0, /*receive BYE request, MO hangup, or User reject to receive the all. mapping to CS NORMAL_CLEARING = 16. */
+    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*/
+    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*/
+    VoLTE_Event_Call_Cause_Unregistered,          /*Account is not registered, VDM can require CS to make call, mapping to CS NORMAL_UNSPECIFIED = 31*/
+    VoLTE_Event_Call_Cause_Disconnect,  /* register state go to disconnect state, mapping to CS BEARER_NOT_AVAIL = 58, play congestion tone*/
+    VoLTE_Event_Call_Cause_BeCancel,    /* we cancel the call, which is receive MO_HANGUP_REQ from AP side. Mapping to CS_NORMAL_CLEANING = 16*/
+    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*/
+    VoLTE_Event_Call_Cause_BeReject_380,/* receive 380 alternative service, mapping to CS SERVICE_NOT_AVAILABLE = 63. VDM can require CS to make call */
+    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 */
+    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 */
+    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*/
+    VoLTE_Event_Call_Cause_BeReject_480,/*receive 480, mapping to CS TEMPORARY_FAILURE = 41, play congestion tone*/
+    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.*/
+    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.*/
+    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 */
+    VoLTE_Event_Call_Cause_PrecondFail, /* receive 580 precondition failure, mapping to CS BEARER_NOT_AVAIL = 58, play congestion tone*/
+    VoLTE_Event_Call_Cause_SecondCall,  /* receive second call request, VDM can have its policy, mapping to CS NORMAL_UNSPECIFIED = 31*/
+    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*/
+    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.*/
+    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.*/
+    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*/
+    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.*/
+    VoLTE_Event_Call_Cause_Facility_Rejected, /*receive 504 with XML body for Registrartion Restoration. Mapping to CS FACILITY_REJECTED =29*/
+    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*/
+    VoLTE_Event_Call_Cause_Retry_CS,                /*for TMO requirenment, some Error code need to retry CS */
+    VoLTE_Event_Call_Cause_No_Retry,                /*for TMO requirenment, some Error code need to do no action */
+    VoLTE_Event_Call_Cause_Retry_IMS_CS,            /*for TMO requirenment, some Error code need to retry IMS first then CSFB */
+    VoLTE_Event_Call_Cause_Aborted,                 /*pending operation was aborted*/
+    VoLTE_Event_Call_Cause_Timer_B_Expiry,  /*for DCM requirement, do PCSCF error handling */
+    VoLTE_Event_Call_Cause_ECT_Timeout,  /*for assured ECT timeout, mapping to 899 AT-interface cause value. */
+    VoLTE_Event_Call_Cause_Timer_VZW_Expiry,            /*for VZW HVOLTE*/
+    VoLTE_Event_Call_Cause_AC_Barred,                   /*for VZW HVOLTE*/
+    VoLTE_Event_Call_Cause_NW_Rej_Conn,                 /*for VZW HVOLTE*/
+    VoLTE_Event_Call_Cause_BeReject_503_Outage_text,    /*for VZW HVOLTE*/
+    VoLTE_Event_Call_Cause_Change_PCSCF,                /*for TMOUS EMC*/
+    VoLTE_Event_Call_Cause_RTT_EMC_Fail,                /*for TMOUS RTT EMC*/
+    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. */
+    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. */
+    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*/
+    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*/
+	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)*/
+    /*add here*/
+    VoLTE_Event_Call_Cause_Max,
+} VoLTE_Event_Call_stop_cause_e;
+
+
+typedef enum VoLTE_Event_Call_Stop_result_e {
+    VoLTE_Event_Call_Result_OK = 0,
+    VoLTE_Event_Call_Result_FAILED,
+    /*add here*/
+    VoLTE_Event_Call_Result_Max,
+} VoLTE_Event_Call_Stop_result_e;
+
+enum VoLTE_Event_Call_Rel_cause_e {
+    VoLTE_Event_Call_Rel_Cause_None            = 0,
+    VoLTE_Event_Call_Rel_Cause_eHRPD,
+    VoLTE_Event_Call_Rel_Cause_3Way,
+    VoLTE_Event_Call_Rel_Cause_Econf,
+    VoLTE_Event_Call_Rel_Cause_Release,
+    VoLTE_Event_Call_Rel_Cause_Unregistered,
+    VoLTE_Event_Call_Rel_Cause_Ect,
+    VoLTE_Event_Call_Rel_Cause_DeReg,
+    VoLTE_Event_Call_Rel_Cause_Altclost,
+    VoLTE_Event_Call_Rel_Cause_Twlan911,
+    VoLTE_Event_Call_Rel_Cause_psdataoff,
+    VoLTE_Event_Call_Rel_Cause_low_battery,
+    VoLTE_Event_Call_Rel_Cause_no_coverage,
+    VoLTE_Event_Call_Rel_Cause_607_unwanted,
+    VoLTE_Event_Call_Rel_Cause_rereg_403,
+    VoLTE_Event_Call_Rel_Cause_TAU_fail,
+    VoLTE_Event_Call_Rel_Cause_EPSFB_fail,
+    VoLTE_Event_Call_Rel_Cause_EPSFB_Redirection_fail,
+    /*add here*/
+    VoLTE_Event_Call_Rel_Cause_Max,
+};
+
+typedef enum VoLTE_Event_Call_Mode_e {
+    VoLTE_Event_Call_Mode_AUDIO = 0,    ///< 0, normal voice call
+    VoLTE_Event_Call_Mode_VIDEO_AUDIO,  ///< 1, normal video call
+    VoLTE_Event_Call_Mode_VIDEO_ONLY,   ///< 2, only video call
+    /*add here*/
+    /* specifical call */
+    VoLTE_Event_Call_Mode_AUDIO_CONF = 11,  ///< 11, audio conference call
+    VoLTE_Event_Call_Mode_VIDEO_CONF,       ///< 12, video conference call
+
+    VoLTE_Event_Call_Mode_AUDIO_CONF_PARTS = 21,  ///< 21, audio conference call participant
+    VoLTE_Event_Call_Mode_VIDEO_CONF_PARTS,       ///< 22, video conference call participant
+    /*add here*/
+    /* emergency */
+    VoLTE_Event_Call_Mode_EMERGENCY = 81,    ///< 81, generic emergency call
+    VoLTE_Event_Call_Mode_EMER_POLICE,       ///< 82, police emergency call
+    VoLTE_Event_Call_Mode_EMER_FIRE,         ///< 83, fire emergency call
+    VoLTE_Event_Call_Mode_EMER_GAS,
+    VoLTE_Event_Call_Mode_EMER_AMBULANCE,
+    VoLTE_Event_Call_Mode_EMER_ANIMAL,
+    VoLTE_Event_Call_Mode_EMER_MARINE,
+    VoLTE_Event_Call_Mode_EMER_MOUNTAIN,
+    VoLTE_Event_Call_Mode_EMER_PHYSICIAN,
+    VoLTE_Event_Call_Mode_EMER_POISON,
+    VoLTE_Event_Call_Mode_EMER_TRAFFIC,     ///< 91, for CMCC 122, traffic emergency call
+    VoLTE_Event_Call_Mode_EMER_COUNTRY_SPECIFIC,
+    VoLTE_Event_Call_Mode_EMER_MANUAL_ECALL,
+    VoLTE_Event_Call_Mode_EMER_AUTO_ECALL,
+    VoLTE_Event_Call_Mode_EMER_UNRECOGNIZED = 99,  ///< for any unrecognized emergency call by upperlayer
+
+    /*Korea TTA special emergency service*/
+    VoLTE_Event_Call_Mode_EMER_KR_INTELLIGENCE = 201,
+    VoLTE_Event_Call_Mode_EMER_KR_SPIES,
+    VoLTE_Event_Call_Mode_EMER_KR_SCHOOL_VIOLENCE,
+    VoLTE_Event_Call_Mode_EMER_KR_CYBERTERRORISM,
+    VoLTE_Event_Call_Mode_EMER_KR_SMUGGLING,
+
+    /*add here*/
+    VoLTE_Event_Call_Mode_Max,
+} VoLTE_Event_Call_Mode_e;
+
+enum VoLTE_Event_EVTA_Mode_e {
+    VoLTE_Event_EVTA_MODE_UNKNOWN                        = 0,
+    VoLTE_Event_EVTA_MODE_ACCEPT_AS_VOICE                = 1,
+    VoLTE_Event_EVTA_MODE_ACCEPT_AS_ONEWAY_VIDEO_RX      = 2,
+    VoLTE_Event_EVTA_MODE_ACCEPT_AS_ONEWAY_VIDEO_TX      = 3,
+    VoLTE_Event_EVTA_MODE_MAX,
+};
+
+enum VoLTE_Event_IMS_call_mode_e {
+    VoLTE_Event_IMS_call_mode_none       = 0,
+    VoLTE_Event_IMS_call_mode_original   = 1,
+    VoLTE_Event_IMS_call_mode_client_api = 2,
+    VoLTE_Event_IMS_call_mode_max,
+};
+
+/**************
+VoLTE_Event_BW_Act_e
+
+Feature: (1~8bit)
+1. Audio: (1st bit)
+2. Video: (2nd bit)
+3. Text: (3rd bit)
+
+Action: (9~16bit)
+1. 00: VoLTE UA requires (used in BW_IND/BW_MOD/BW_CNF)
+2. 01: IMCB notify that the bandwidth is modified (used in BW_NEGO)
+3. 10: IMCB notify that the Audio bandwidth is released (used in BW_NEGO)
+***************/
+
+enum VoLTE_Event_BW_Act_e {
+    VoLTE_Event_BW_Act_Required_Failed      = 0,   //0x00 0000 0000
+    VoLTE_Event_BW_Act_Audio_only           = 1,   //0x00 0000 0001
+    VoLTE_Event_BW_Act_Video_only           = 2,   //0x00 0000 0010
+    VoLTE_Event_BW_Act_Audio_Video          = 3,   //0x00 0000 0011
+    VoLTE_Event_BW_Act_Text_only            = 4,   //0x00 0000 0100
+    VoLTE_Event_BW_Act_Audio_Text           = 5,   //0x00 0000 0101
+    VoLTE_Event_BW_Act_Video_Text           = 6,   //0x00 0000 0110
+    VoLTE_Event_BW_Act_Audio_Video_Text     = 7,   //0x00 0000 0111
+
+    VoLTE_Event_BW_Modify                   = 256, //0x01 0000 0000
+
+    VoLTE_Event_BW_Rel_Audio_only           = 513, //0x10 0000 0001
+    VoLTE_Event_BW_Rel_Video_only           = 514, //0x10 0000 0010
+    VoLTE_Event_BW_Rel_Audio_Video          = 515, //0x10 0000 0011
+    VoLTE_Event_BW_Rel_Text_only            = 516, //0x10 0000 0100
+    VoLTE_Event_BW_Rel_Audio_Text           = 517, //0x10 0000 0101
+    VoLTE_Event_BW_Rel_Video_Text           = 518, //0x10 0000 0110
+    VoLTE_Event_BW_Rel_Audio_Video_Text     = 519, //0x10 0000 0111
+
+    VoLTE_Event_BW_Act_Max,
+};
+
+typedef enum VoLTE_MO_Call_Uri_Scheme_Type_e {
+    VOLTE_MO_CALL_URI_SCHEME_TYPE_NONE           = 0,
+    VOLTE_MO_CALL_URI_SCHEME_TYPE_SIP            = 1,
+    VOLTE_MO_CALL_URI_SCHEME_TYPE_TEL            = 2,
+    VOLTE_MO_CALL_URI_SCHEME_TYPE_URN            = 3,
+    /*add here*/
+    VOLTE_MO_CALL_URI_SCHEME_TYPE_Max,
+} VoLTE_MO_Call_Uri_Scheme_Type_e;
+
+/*Emergency Call Category may be multiple. We use bitmap to specify it.
+    Currently, this is used for SRVCC call context transfer.
+*/
+typedef enum VoLTE_Event_ECC_Category_e {
+    VoLTE_Event_Ecc_Ctgy_Unspecified = 0,
+    VoLTE_Event_Ecc_Ctgy_POLICE = 0x1,
+    VoLTE_Event_Ecc_Ctgy_AMBULANCE = 0x2,
+    VoLTE_Event_Ecc_Ctgy_FIRE = 0x4,
+    VoLTE_Event_Ecc_Ctgy_MARINE = 0x8,
+    VoLTE_Event_Ecc_Ctgy_MOUNTAIN = 0x10,
+    VoLTE_Event_Ecc_Ctgy_eCall_Manual = 0x20,
+    VoLTE_Event_Ecc_Ctgy_eCall_Automatic = 0x40,
+    VoLTE_Event_Ecc_Ctgy_GAS = 0x100,
+    VoLTE_Event_Ecc_Ctgy_ANIMAL = 0x200,
+    VoLTE_Event_Ecc_Ctgy_PHYSICIAN = 0x400,
+    VoLTE_Event_Ecc_Ctgy_POISON = 0x800,
+    VoLTE_Event_Ecc_Ctgy_TRAFFIC = 0x1000,  /// for CMCC requirement
+    VoLTE_Event_Ecc_Ctgy_COUNTRY_SPECIFIC = 0x2000,
+    VoLTE_Event_Ecc_Ctgy_Unrecognized = 0x8000, /// for any unrecognized sos type
+
+    /*Korea TTA special emergency Ctgy*/
+    VoLTE_Event_Ecc_Ctgy_KR_SPIES = 0x3,
+    VoLTE_Event_Ecc_Ctgy_KR_INTELLIGENCE = 0x6,
+    VoLTE_Event_Ecc_Ctgy_KR_SMUGGLING = 0x9,
+    VoLTE_Event_Ecc_Ctgy_KR_SCHOOL_VIOLENCE = 0x12,
+    VoLTE_Event_Ecc_Ctgy_KR_CYBERTERRORISM = 0x13,
+
+    VoLTE_Event_Ecc_Ctgy_Max = 0xFFFF,
+} VoLTE_Event_ECC_Category_e;
+
+
+/****************eCall part************************/
+#ifdef __NG_ECALL_SUPPORT__
+typedef struct _VoLTE_Event_eCall_In_Band_MSD_Transfer_Rsp {
+	LOCAL_PARA_HDR
+    kal_int32                                   acct_id;       /*acct whom send the MSD*/
+    kal_uint32                                  call_id;       /*assigned by CC*/    
+} VoLTE_Event_eCall_In_Band_MSD_Transfer_Rsp_t;
+
+typedef struct _VoLTE_Event_eCall_Update_MSD_Rsp {
+	LOCAL_PARA_HDR
+    kal_int32                                   acct_id;       /*acct whom send the MSD*/
+    kal_uint32                                  call_id;       /*assigned by CC*/ 
+    kal_uint8                                   msd_data_len;
+    kal_uint8                                   msd_data[IMS_MAX_MSD_LENGTH];
+} VoLTE_Event_eCall_Update_MSD_Rsp_t;
+#endif
+/************end of eCall part*********************/
+
+typedef enum VoLTE_Event_Call_Service_e {
+    VoLTE_Event_Call_Service_Normal  = 0,
+    VoLTE_Event_Call_Service_Call_Pull = 1,
+    VoLTE_Event_Call_Service_STK = 2,
+    VoLTE_Event_Call_Service_eCAll_test = 100,
+    VoLTE_Event_Call_Service_eCAll_reconfiguration = 101,
+
+    /*add here*/
+    VoLTE_Event_Call_Service_Max,
+} VoLTE_Event_Call_Service_e;
+
+enum VoLTE_Event_Call_Prog_ECPI_e {
+    VoLTE_Event_Call_Prog_ECPI_0 = 0,
+    VoLTE_Event_Call_Prog_ECPI_2 = 2,
+    VoLTE_Event_Call_Prog_ECPI_6 = 6,
+    VoLTE_Event_Call_Prog_ECPI_7 = 7,
+    VoLTE_Event_Call_Prog_ECPI_131 = 131,
+    VoLTE_Event_Call_Prog_ECPI_132 = 132,
+    VoLTE_Event_Call_Prog_ECPI_133 = 133,
+    /*IMS only*/
+    VoLTE_Event_Call_Prog_ECPI_135 = 135,
+    VoLTE_Event_Call_Prog_ECPI_136 = 136,
+    /*add here*/
+    VoLTE_Event_Call_Prog_ECPI_Max,
+};
+
+enum VoLTE_Event_Call_Hold_By_e {
+    VoLTE_Event_Call_Hold_By_Local  = 0,
+    VoLTE_Event_Call_Hold_By_Remote = 1,
+    VoLTE_Event_Call_ECT_Hold_By_Remote = 2,
+    /*add here*/
+    VoLTE_Event_Call_Hold_By_Max,
+};
+
+enum VoLTE_Event_Call_Media_e {
+    VoLTE_Event_Call_Media_OFF = 0,
+    VoLTE_Event_Call_Media_ON,
+    /*add here*/
+    VoLTE_Event_Call_Media_Max,
+};
+
+enum VoLTE_SRVCC_dlg_state_e {
+    VoLTE_SRVCC_DlgState_EARLY = 0,         // local generated ringback tone or MT ringing
+    VoLTE_SRVCC_DlgState_EARLY_WITH_MEDIA,  // network generated ringback tone, for MO only
+    VoLTE_SRVCC_DlgState_ACTIVE,
+    VoLTE_SRVCC_DlgState_ON_HOLD,
+    VoLTE_SRVCC_DlgState_PRE_ALERTING,
+    VoLTE_SRVCC_DlgState_PRE_ALERTING_WITH_MEDIA, // network generated ringback tone, for MO only
+    VOLTE_SRVCC_DlgState_ACTIVE_RETRY_CC_CONNECT,   // MT call not receive Invite 200 OK ACK in IMS,
+                                                    // after SRVCC, CS retry CC_CONNECT
+    VoLTE_SRVCC_DlgState_Max,
+};
+
+enum VoLTE_SRVCC_direction_e {
+    VoLTE_SRVCC_Direction_MOBILE_ORIGINATED = 0,
+    VoLTE_SRVCC_Direction_MOBILE_TERMINATING,
+    VoLTE_SRVCC_Direction_Max,
+};
+
+enum VoLTE_Event_Mod_session_result_e {
+    VoLTE_Event_VT_Result_OK = 0,
+    VoLTE_Event_VT_Result_WrongVideoDir,    /*wrong video direction cause up/downgrade failed*/
+    VoLTE_Event_VT_Result_InternalError,    /*acct or session object broken*/
+    VoLTE_Event_VT_Result_BW_ModifyFailed,  /*bandwidth modify require failed*/
+    VoLTE_Event_VT_Result_NotActiveState,   /*call session not in active state*/
+    VoLTE_Event_VT_Result_LocalRel,         /*local release:Ex.SRVCC,Hungup,call refresh timer timeout,no rpt packets*/
+    VoLTE_Event_VT_Result_IsHold,           /*the call at hold state*/
+    VoLTE_Event_VT_Result_NoNeed,           /*acorrding the video action state, not need up/downgrade */
+    VoLTE_Event_VT_Result_InvalidPara,      /*input parameter invalid*/
+    VoLTE_Event_VT_Result_ReqTimeout,       /*SIPTX error,transaction timeout*/
+    VoLTE_Event_VT_Result_RejectByRemote,   /*reject by remote*/
+    VoLTE_Event_VT_Result_Canceled,         /*canceled by user*/
+    VoLTE_Event_VT_Result_InVideoAction,    /*video action is ongoing*/
+    VoLTE_Event_VT_Result_IsReinvite,       /*is_reinvite*/
+};
+
+enum VoLTE_Event_Mod_session_cancel_cause_e {
+    VoLTE_Event_Mod_session_cancel_cause_cancel = 0,
+    VoLTE_Event_Mod_session_cancel_cause_timeout,
+};
+
+enum VoLTE_Event_Mod_session_cancel_result_e {
+    VoLTE_Event_Mod_session_cancel_success = 0,
+    VoLTE_Event_Mod_session_cancel_fail_downgrade,
+    VoLTE_Event_Mod_session_cancel_fail_normal,
+    VoLTE_Event_Mod_session_cancel_fail_disable,
+    VoLTE_Event_Mod_session_cancel_fail_remote_reject,         /*remote reject the upgrade while local cancel*/
+    VoLTE_Event_Mod_session_cancel_fail_internal_error,
+    VoLTE_Event_Mod_session_cancel_fail_local_rel,
+    VoLTE_Event_Mod_session_cancel_fail_bw_modify_fail,
+    VoLTE_Event_Mod_session_cancel_fail_req_timeout,
+};
+
+enum VoLTE_Event_ims_timer_type_e {
+    VoLTE_Event_IMS_TIMER_THROTTLING = 0,
+    VoLTE_Event_IMS_TIMER_ESTABLISHMENT,
+    VoLTE_Event_IMS_TIMER_VZW,
+    VoLTE_Event_IMS_TIMER_EPSFBWATCHDOG,
+};
+
+enum VoLTE_Event_ims_timer_status_e {
+    VoLTE_Event_IMS_TIMER_STATUS_START = 0,
+    VoLTE_Event_IMS_TIMER_STATUS_STOP,
+    VoLTE_Event_IMS_TIMER_STATUS_EXPIRY
+};
+
+enum VoLTE_Event_ect_type_e {
+    VoLTE_Event_ect_type_none = 0,
+    VoLTE_Event_ect_type_blind = 1,
+    VoLTE_Event_ect_type_assured = 2,  // default
+    VoLTE_Event_ect_type_assured_push = 3,  // TMOUS Digit
+    VoLTE_Event_ect_type_cancel = 4,
+};
+
+enum VoLTE_Event_SS_Operation_e {
+    VoLTE_Event_Operation_Unknown               = 0,
+    VoLTE_Event_Operation_Hold                  = 1,
+    VoLTE_Event_Operation_Unhold                = 2,
+    VoLTE_Event_Operation_Hold_n_Unhold         = 3,
+    VoLTE_Event_Operation_Hold_n_Accept         = 4,
+    VoLTE_Event_Operation_Remote_Hold           = 5,
+    VoLTE_Event_Operation_Remote_Unhold         = 6,
+    VoLTE_Event_Operation_Rel_All               = 11,   // AT+CHLD=6, AT+CHLD=1 if no holding session, we shall release all active sessions
+    VoLTE_Event_Operation_ATH_Rel_All           = 12,   // ATH
+    VoLTE_Event_Operation_Rel_Bg                = 13,   //AT+CHLD=0
+    VoLTE_Event_Operation_Rel_Wait              = 14,   //AT+CHLD=0
+    VoLTE_Event_Operation_Rel_Active_n_Resume   = 15,   // AT+CHLD=1 for holding session
+    VoLTE_Event_Operation_Create_3way_Conf      = 16,   // AT+CHLD=3, create 3-way conference
+    VoLTE_Event_Operation_Add_Other_To_Conf     = 17,   // AT+ECONF, Add conference participant
+    VoLTE_Event_Operation_Create_Conf_Bridge    = 18,   // no specifc AT command. send INVITE to conference focus
+    VoLTE_Event_Operation_Remove_Other_From_Conf= 19,   // AT+ECONF, Remove conference participant
+    VoLTE_Event_Operation_Join_Other_To_Conf    = 20,   // AT+ECONF, Join current active session to conference participant
+    VoLTE_Event_Operation_Rel_Active_n_Accept   = 21,   // AT+CHLD=1, for waiting session
+    VoLTE_Event_Operation_Accept                = 22,   // AT+CHLD=2, for waiting session
+    VoLTE_Event_Operation_Ecctrl                = 23,   // AT+ECCTRL
+    VoLTE_Event_Operation_Conf_W_Resource_List  = 24,   // no specifc AT command. send INVITE to conference focus with resource list
+    VoLTE_Event_Operation_Ect                   = 25,   // AT+CHLD=4
+    /*add here*/
+    VoLTE_Event_Operation_Rel_Max,
+};
+
+enum VoLTE_Event_SS_Sub_event_e {
+    VoLTE_Event_Subscribe_Unknown = 0,
+    VoLTE_Event_Subscribe_Conference = 1,
+    /*add here*/
+    VoLTE_Event_Subscribe_Max,
+};
+
+enum VoLTE_Event_SS_Notify_Service_e {
+    VoLTE_Event_Notify_call_waiting             = 0,    //data length is VOLTE_MAX_DATA_TO_IMC_LENGTH
+    VoLTE_Event_Notify_call_barring             = 1,    //data length is VOLTE_MAX_DATA_TO_IMC_LENGTH
+    VoLTE_Event_Notify_call_forwarding          = 2,    //data length is VOLTE_MAX_DATA_TO_IMC_LENGTH
+    VoLTE_Event_Notify_MWI                      = 3,    //data length is VOLTE_MAX_DATA_TO_UPPER_LENGTH
+    VoLTE_Event_Notify_Conference               = 4,    //data length is VOLTE_MAX_DATA_TO_UPPER_LENGTH
+    VoLTE_Event_Notify_mt_call_forwarding       = 5,    //data length is VOLTE_MAX_DATA_TO_IMC_LENGTH
+    VoLTE_Event_Notify_dialog                   = 6,
+    /*add here*/
+    VoLTE_Event_Notify_Max,
+};
+
+enum VoLTE_Event_SMS_Type_e {
+    VoLTE_Event_SMS_Type_Unknown                = 0,
+    VoLTE_Event_SMS_Type_3GPP_SMS               = 1,    ///< the SMS message
+    VoLTE_Event_SMS_Type_3GPP_SMS_REPORT        = 2,    ///< the SMS report message
+    VoLTE_Event_SMS_Type_Text                   = 3,    ///< the text message
+    VoLTE_Event_SMS_Type_3GPP2_SMS              = 4,    ///< the 3GPP2 SMS message
+    /*add here*/
+    VoLTE_Event_SMS_Max,
+};
+
+enum VoLTE_Event_SMS_Result_e {
+    //VoLTE_Event_SMS_Result_Success              = 0,
+    VoLTE_Event_SMS_Result_Account_Error        = 1,    ///< the account id is invalid */
+    VoLTE_Event_SMS_Result_SendSIP_Error        = 2,    ///< send the SIP message error */
+    VoLTE_Event_SMS_Result_InReplyTo_NoMatch    = 3,    ///< the In-Reply-To not match */
+    VoLTE_Event_SMS_Result_InReplyTo_Timeout    = 4,    ///< the In-Reply-To timeout */
+    VoLTE_Event_SMS_Result_NoSlot               = 5,    ///< can't allocat the resource */
+    VoLTE_Event_SMS_Result_Parameter_Error      = 6,    ///< the event parameter is invalid */
+    VoLTE_Event_SMS_Result_Unregistered         = 7,    ///< receive the event or SIP message, in the Non-Registered state */
+    VoLTE_Event_SMS_Result_Timer_F_Expiry       = 8,
+    /*add here*/
+    VoLTE_Event_SMS_Result_Max,
+};
+
+typedef enum VoLTE_Event_380_XML_type_e {
+    VoLTE_Event_380_XML_type_not_set = 0,
+    VoLTE_Event_380_XML_type_emergency,
+    VoLTE_Event_380_XML_type_restoration,
+    VoLTE_Event_380_XML_type_unknown,
+    /*add here*/
+    VoLTE_Event_380_XML_type_Max,
+} VoLTE_Event_380_XML_type_e;
+
+typedef enum VoLTE_Event_380_XML_action_e {
+    VoLTE_Event_380_XML_action_not_set = 0,
+    VoLTE_Event_380_XML_action_emergency_registration,
+    VoLTE_Event_380_XML_action_initial_registration,
+    VoLTE_Event_380_XML_action_anonymous_emergencycall,
+    VoLTE_Event_380_XML_action_unknown,
+    /*add here*/
+    VoLTE_Event_380_XML_action_Max,
+} VoLTE_Event_380_XML_action_e;
+
+typedef enum VoLTE_Event_Call_Cause_380_contact_e {
+    VoLTE_Event_Call_Cause_380_contact_not_set = 0,
+    VoLTE_Event_Call_Cause_380_contact_sos_and_category_known,
+    VoLTE_Event_Call_Cause_380_contact_sos_and_category_unknown,
+    VoLTE_Event_Call_Cause_380_contact_not_sos,
+    VoLTE_Event_Call_Cause_380_contact_no_contact,
+    /*add here*/
+    VoLTE_Event_Call_Cause_380_contact_Max,
+} VoLTE_Event_Call_Cause_380_contact_e;
+
+typedef enum VoLTE_Event_Call_Cause_380_xml_e {
+    VoLTE_Event_Call_Cause_380_xml_not_set = 0,
+    VoLTE_Event_Call_Cause_380_xml_action_emergency_reg,
+    VoLTE_Event_Call_Cause_380_xml_action_unknown_category_mapped,
+    VoLTE_Event_Call_Cause_380_xml_action_unknown_category_not_mapped,
+    VoLTE_Event_Call_Cause_380_xml_action_unknown_no_contact,
+    /*add here*/
+    VoLTE_Event_Call_Cause_380_xml_Max,
+} VoLTE_Event_Call_Cause_380_xml_e;
+
+enum VoLTE_Event_STK_Setup_Call_e {
+    VoLTE_Event_STK_Setup_Call_IF_NO_ANOTHER_CALL,
+    VoLTE_Event_STK_Setup_Call_WITH_REDIAL_IF_NO_ANOTHER_CALL,
+    VoLTE_Event_STK_Setup_Call_PUT_ANOTHER_HOLD,
+    VoLTE_Event_STK_Setup_Call_WITH_REDIAL_PUT_ANOTHER_HOLD,
+    VoLTE_Event_STK_Setup_Call_DISCON_ANOTHER,
+    VoLTE_Event_STK_Setup_Call_WITH_REDIAL_DISCON_ANOTHER,
+    VoLTE_Event_STK_Setup_Call_MAX
+};
+
+typedef struct _VoLTE_Event_Init {
+    LOCAL_PARA_HDR
+    kal_int32                                   max_acct;   ///< max account number
+} VoLTE_Event_Init_t;
+
+typedef struct {
+    LOCAL_PARA_HDR
+    kal_uint32          acct_id;
+    kal_uint32          sip[IMS_DBG_SIP_EVT_TAG_NUM];
+    kal_uint32          em[IMS_DBG_EM_EVT_TAG_NUM];
+} ims_dbg_setting_req_struct;
+
+typedef struct _VoLTE_Event_Radio_Link_Monitor_ {
+    LOCAL_PARA_HDR
+    kal_uint8                                   id;                                                 ///< the acount id
+    kal_uint8                                   event_type;                                         ///< 0: Signal is weak  1: LTE OOS search is on-going and may not recover
+    kal_uint16                                  lte_band;                                           ///< the LTE band number, UA don't use it currently, just reserve(0: Invalid, 1-256: possible LTE band range)
+} VoLTE_Event_Radio_Link_Monitor_t ;
+
+typedef struct _VoLTE_Event_Handover_Start_Notify {
+    LOCAL_PARA_HDR
+    kal_int32    acct_id;
+} VoLTE_Event_Handover_Start_Notify_t;
+
+typedef struct _VoLTE_Event_Handover_Stop_Notify {
+    LOCAL_PARA_HDR
+    kal_int32    acct_id;
+} VoLTE_Event_Handover_Stop_Notify_t;
+
+typedef struct _VoLTE_Event_Handover_IP_Ready_Notify {
+    LOCAL_PARA_HDR
+    kal_int32    acct_id;
+    kal_uint64   ua_id;          /* reg client information */
+} VoLTE_Event_Handover_IP_Ready_Notify_t;
+
+typedef struct _VoLTE_rtcp_fb_param_type {
+    kal_uint16 rtcp_fb_id;    // such as "ack","nack","trr-int","ccm","app"
+    kal_uint16 rtcp_fb_param; // such as "pli"
+    kal_char   rtcp_fb_sub_param[VOLTE_MAX_SUB_PARAM_LENGTH]; //such as smaxpr=120 of tmmbr
+} VoLTE_rtcp_fb_param_type_t;
+
+typedef struct _VoLTE_Event_rtp_ext_map {
+    kal_uint8 ext_id;
+    kal_uint8 direction;
+    kal_uint8 reserved[2];
+    kal_char  ext_uri[VOLTE_MAX_EXTMAP_URI_SIZE];
+} VoLTE_Event_rtp_ext_map_t;
+
+typedef struct _VoLTE_Event_image {
+    unsigned int    x;    ///< RFC6236 image attributes
+    unsigned int    y;
+    char            sar[VOLTE_MAX_SDP_EGBYTE_LENGTH];
+    char            par[VOLTE_MAX_SDP_EGBYTE_LENGTH];
+    char            q[VOLTE_MAX_SDP_EGBYTE_LENGTH];
+} VoLTE_Event_image_t;
+
+typedef struct _VoLTE_Event_h264_cap_cfg {
+    kal_uint32                                  profile_level_id;       ///< H.264 profile level id. construct by 3 parts
+
+    kal_uint16                                  max_recv_level;         ///< require 2 bytes, reserved.
+    kal_uint8                                   redundant_pic_cap;      ///< 0, 1. 0: we do not support yet.
+    kal_uint8                                   pading;
+
+    kal_char                                    sprop_parameter_sets[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
+    kal_char                                    sprop_level_parameter_sets[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
+    kal_uint32                                  max_mbps;               ///< reserved. VT service provides default value
+    kal_uint32                                  max_smbps;              ///< reserved. VT service provides default value
+    kal_uint32                                  max_fs;                 ///< reserved. VT service provides default value
+    kal_uint32                                  max_cpb;                ///< reserved. VT service provides default value
+    kal_uint32                                  max_dpb;                ///< reserved. VT service provides default value
+    kal_uint32                                  max_br;                 ///< reserved. VT service provides default value
+    kal_uint32                                  max_rcmd_nalu_size;     ///< reserved. VT service provides default value
+
+    kal_uint8                                   sar_understood;         ///< 0~255, reserved. VT service provides default value
+    kal_uint8                                   sar_supported;          ///< 0~255, reserved. VT service provides default value
+    kal_uint8                                   in_band_parameter_sets; //0, 1
+    kal_uint8                                   level_asymmetry_allowed; //0, 1
+    kal_uint32                                  framerate;
+    kal_uint32                                  frame_width;
+    kal_uint32                                  frame_height;
+    VoLTE_Event_image_t                         image_send[VOLTE_MAX_IMAGE_NUM];
+    VoLTE_Event_image_t                         image_recv[VOLTE_MAX_IMAGE_NUM];
+} VoLTE_Event_h264_cap_cfg_t;
+
+typedef struct _VoLTE_Event_hevc_cap_cfg {
+    kal_uint8                                   profile_space;          ///< Range: 0~3, 0 if not present.
+    kal_uint8                                   profile_id;             ///< Range: 0~31, 1 if not present.
+    kal_uint8                                   tier_flag;              ///< Range: 0 or 1, 0 if not present.
+    kal_uint8                                   level_id;               ///< Range: 0~255, 93(level 3.1) if not present.
+    kal_uint8                                   interop_constraints[6]; ///< Range: 0~0xffffff
+    kal_uint8                                   pad[2];
+    kal_uint8                                   profile_comp_ind[4];    ///< Range: 0~0xffff
+    kal_uint8                                   sprop_sub_layer_id;     ///< Range: 0~6, 6 if not present.
+    kal_uint8                                   recv_sub_layer_id;      ///< Range: 0~6, sprop_sub_layer_id if not present.
+    kal_uint8                                   max_recv_level_id;      ///< Range: 0~255, level_id if not present.
+    kal_uint8                                   tx_mode;                ///< "SRST", "MRST" or "MRMT"
+    kal_char                                    sprop_vps[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
+    kal_char                                    sprop_sps[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
+    kal_char                                    sprop_pps[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
+    kal_char                                    sprop_sei[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
+    kal_uint32                                  max_lsr;                ///< Range: MaxLumaSR~16*MaxLumaSR, MaxLumaSR if not present.
+    kal_uint32                                  max_lps;                ///< Range: MaxLumaPS~16*MaxLumaPS, MaxLumaPS if not present.
+    kal_uint32                                  max_cpb;                ///< Range: MaxCPB~16*MaxCPB, MaxCPB if not present.
+    kal_uint32                                  max_dpb;                ///< Range: 1~16, 6 if not present.
+    kal_uint32                                  max_br;                 ///< Range: MaxBR~16*MaxBR, MaxBR if not present.
+    kal_uint32                                  max_tr;                 ///< Range: MaxTileRows~16*MaxTileRows, MaxTileRows if not present.
+    kal_uint32                                  max_tc;                 ///< Range: MaxTileCols~16*MaxTileCols, MaxTileCols if not present.
+    kal_uint32                                  max_fps;
+    kal_uint32                                  sprop_max_don_diff;     ///< Range: 0~32767, 0 if not present.
+    kal_uint32                                  sprop_depack_buf_nalus; ///< Range: 0~32767, 0 if not present.
+    kal_uint32                                  sprop_depack_buf_bytes; ///< Range: 0~4294967295, 0 if not present.
+    kal_uint32                                  depack_buf_cap;         ///< Range: 1~4294967295, 1 if not present.
+    kal_uint32                                  sprop_seg_id;           ///< Range: 0~3, 0 if not present.
+    kal_uint32                                  sprop_spatial_seg_idc;  ///< Range: 0~4095(BASE16), 0 if not present.
+    kal_char                                    dec_parallel_cap[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
+    kal_char                                    include_dph[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
+    kal_uint32                                  framerate;
+    kal_uint32                                  frame_width;
+    kal_uint32                                  frame_height;
+    VoLTE_Event_image_t                         image_send[VOLTE_MAX_IMAGE_NUM];
+    VoLTE_Event_image_t                         image_recv[VOLTE_MAX_IMAGE_NUM];
+} VoLTE_Event_hevc_cap_cfg_t;
+
+typedef union _VoLTE_Event_Video_Codec_cap_cfg {
+    VoLTE_Event_h264_cap_cfg_t    h264_codec;
+    VoLTE_Event_hevc_cap_cfg_t    hevc_codec;
+} VoLTE_Event_Video_Codec_cap_cfg_t;
+
+typedef struct _VoLTE_Event_video_media_bitrate {
+    kal_uint32 format;        ///<H264 or H265
+    kal_uint32 profile;
+    kal_uint32 level;
+    kal_uint32 minbitrate;
+    kal_uint32 bitrate;
+} VoLTE_Event_video_media_bitrate_t;
+
+typedef struct _VoLTE_Event_H264_PS {
+    kal_uint32 profile_level_id;
+    kal_char   sprop_parameter_sets[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
+} VoLTE_Event_video_H264_PS_t;
+
+typedef struct _VoLTE_Event_HEVC_PS {
+    kal_uint8  profile_id;             ///< Range: 0~31, 1 if not present.
+    kal_uint8  level_id;               ///< Range: 0~255, 93(level 3.1) if not present.
+    kal_uint8  pad[2];
+    kal_int8   sprop_vps[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
+    kal_int8   sprop_sps[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
+    kal_int8   sprop_pps[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
+    kal_int8   sprop_sei[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
+} VoLTE_Event_video_HEVC_PS_t;
+
+typedef struct _VoLTE_Event_video_capability {
+    kal_uint32                                  profile_level_id;       ///< H.264 profile level id. construct by 3 parts
+
+    kal_uint16                                  max_recv_level;         ///< require 2 bytes, reserved.
+    kal_uint8                                   packetization_mode;     ///< VoLTE_Event_Packetize_Mode_e
+    kal_uint8                                   redundant_pic_cap;      ///< 0, 1. 0: we do not support yet.
+
+    kal_int8                                    sprop_parameter_sets[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
+    kal_int8                                    sprop_level_parameter_sets[VOLTE_MAX_SDP_PARAMETER_SET_LENGTH];
+    kal_uint32                                  max_mbps;               ///< reserved. VT service provides default value
+    kal_uint32                                  max_smbps;              ///< reserved. VT service provides default value
+    kal_uint32                                  max_fs ;                ///< reserved. VT service provides default value
+    kal_uint32                                  max_cpb ;               ///< reserved. VT service provides default value
+    kal_uint32                                  max_dpb ;               ///< reserved. VT service provides default value
+    kal_uint32                                  max_br ;                ///< reserved. VT service provides default value
+    kal_uint32                                  max_rcmd_nalu_size;     ///< reserved. VT service provides default value
+
+    kal_uint8                                   sar_understood;         ///< 0~255, reserved. VT service provides default value
+    kal_uint8                                   sar_supported;          ///< 0~255, reserved. VT service provides default value
+    kal_uint8                                   in_band_parameter_sets; //0, 1
+    kal_uint8                                   level_asymmetry_allowed; //0, 1
+
+
+    /*ViLTE*/
+
+    VoLTE_Event_Video_Codec_cap_cfg_t    codec_cap;  // Use mime_Type to judge the codec cap.
+
+    /* rtp_rtcp part */
+    kal_uint8  media_type; //such as video/audio
+    kal_uint8  mime_Type; // such as H.264
+    kal_uint8  rtp_profile;//supported rtp_profile for special media such as RTP/AVP,RTP/AVPF
+    kal_uint8  reserved;
+    kal_uint32 sample_rate;//timescale, which use to calculte rtp timestamp
+
+    /*@ rtp packet transmission param
+    *@ contain b=AS,PT,packetization params related to the codec type
+    *@ ----------------------------------------------------------------------
+    *@consider the negotiated params also can set through rtp_rtcp_capability
+    *@ rtp_rtcp_capability must be can for one explicit item
+    *@ then should not contain alternatives in rtp_packetize_params,such as "packetization-moe=1;packetization-mode=0"
+    *@ ----------------------------------------------------------------------
+    */
+    kal_uint32 packetize_mode;
+
+    kal_uint32 extmap_num;
+    VoLTE_Event_rtp_ext_map_t extmap[VOLTE_MAX_EXTMAP_NUM];//now only CVO support
+
+    kal_uint32 rtcp_rsize; //a=rtcp_rsize
+
+
+    /*@ rtcp packet transmission param
+     *@ contain b=RS,b=RR,and feedback message type
+     *@ may be serveral feedback message supported like:
+     *@ ---------sdp--------------
+     *@ a=rtcp-fb:98 ccm tstr
+     *@ a=rtcp-fb:98 ccm fir
+     *@ a=rtcp-fb:* ccm tmmbr smaxpr=120
+     *@ ---------------------------
+     *@ so need a array of rtcp_fb_type_t to represent all thest feedback messages
+     *@ rtcp_fb_param_num represent the size of the array
+     */
+    kal_uint32 rtcp_fb_param_num;
+    VoLTE_rtcp_fb_param_type_t  rtcp_fb_type[VOLTE_MAX_RTCP_FB_SIZE]; // SIZE  5
+} VoLTE_Event_video_capability_t;
+
+typedef struct _VoLTE_Event_VT_Cap_Setting {
+    /* This structure needs to be in sync with imsvt_imcb_get_cap_rsp_struct */
+    PEER_BUFF_HDR
+    unsigned int                            request_id;
+    unsigned int                            data_len;
+    kal_int32                               id;                                         ///< the account id
+    kal_int32                               video_cap_num;                              ///< number of cap.
+    VoLTE_Event_video_capability_t          video_cap[VOLTE_MAX_VIDEO_CAP_NUM];         ///< video capability from MA
+    VoLTE_Event_video_H264_PS_t             h264_ps[VOLTE_MAX_PS_NUM];                  // SIZE  32
+    VoLTE_Event_video_HEVC_PS_t             hevc_ps[VOLTE_MAX_PS_NUM];                  // SIZE  32
+    VoLTE_Event_video_media_bitrate_t       bitrate_info[VOLTE_MAX_PROFILELEVEL_SIZE];  // SIZE  32
+    kal_uint8                               sim_slot_id;                                /* start from 0 */
+    kal_uint8                               pad2;
+    kal_uint16                              operator_code;
+} VoLTE_Event_VT_Cap_Setting_t;
+
+typedef struct _VoLTE_Event_Call_Start {
+    LOCAL_PARA_HDR
+    kal_char                                    dial_number[VOLTE_MAX_URI_LENGTH];
+    kal_int32                                   acct_id;        /*acct whom to make the call */
+    kal_uint32                                  call_id;        /*assigned by CC*/
+    kal_uint8                                   clir;           /* for MO call */
+    VoLTE_Event_Call_Mode_e                     call_mode;
+    VoLTE_MO_Call_Uri_Scheme_Type_e             uri_scheme;
+    kal_uint8                                   cell_id[VOLTE_MAX_CELL_ID_LENGTH];        /*cell id from modem*/
+    VoLTE_Event_LBS_Location_t                  loc_info;
+    VoLTE_Event_Call_Service_e                  service;
+    plmn_type_enum                              plmn;
+    kal_uint8                                   rtt_setting;
+    kal_uint8                                   redial_setting; /*VoLTE_Event_STK_Setup_Call_e*/
+    kal_char                                    digit_from_line_number[VOLTE_MAX_URI_LENGTH];
+    kal_uint8                                   stk_type;       /*ims_stk_type_enum*/
+
+/*ecall over IMS*/
+#ifdef __NG_ECALL_SUPPORT__
+    kal_uint8                                   msd_data_len;
+    kal_uint8                                   msd_data[IMS_MAX_MSD_LENGTH];
+#endif
+   
+} VoLTE_Event_Call_Start_t;
+
+typedef struct _VoLTE_Event_MT_Call_Rsp {
+    LOCAL_PARA_HDR
+    kal_int32                                   acct_id;        /*acct whom to make the call */
+    kal_uint32                                  call_id;        /*assigned by CC, so we give 254 as INVALID_CALL_ID*/
+    kal_uint8                                   seq_no;         /*sequence number assigned by Call UA*/
+    kal_uint8                                   call_mode;      /*VoLTE_Event_Call_Mode_e*/
+    kal_uint16                                  result;         /*VoLTE_Event_Call_Stop_result_e*/
+    kal_int32                                   response_code;  /*SIP response code, 0: means we use default value*/
+    kal_uint8                                   cell_id[VOLTE_MAX_CELL_ID_LENGTH];        /*cell id from modem*/
+    VoLTE_Event_LBS_Location_t                  loc_info;
+    kal_uint8 rtt_setting;
+    kal_uint8 pad[3];
+} VoLTE_Event_MT_Call_Rsp_t;
+
+typedef struct _VoLTE_Event_Req {
+    LOCAL_PARA_HDR
+    kal_int32                                   acct_id;
+    kal_uint32                                  call_id;    /*assigned by CC*/
+    kal_uint8                                   cell_id[VOLTE_MAX_CELL_ID_LENGTH];        /*cell id from modem*/
+    VoLTE_Event_LBS_Location_t                  loc_info;
+    kal_uint32                                  cause;
+} VoLTE_Event_Req_t;
+
+typedef struct _VoLTE_Event_Call_Refresh {
+    LOCAL_PARA_HDR
+    kal_int32                                   acct_id;
+    kal_uint32                                  call_id;    /*assigned by CC*/
+    kal_int8                                    p_assert_uri[VOLTE_MAX_ASSERTED_URI];
+} VoLTE_Event_Call_Refresh_t;
+
+typedef struct _VoLTE_Event_SRVCC_Info {
+    LOCAL_PARA_HDR
+    kal_int32     acct_id;
+    kal_int32     result;         /*VoLTE_Event_srvcc_info_result_e*/
+} VoLTE_Event_SRVCC_Info_t;
+
+typedef struct _VoLTE_Event_Conf_Call_Start {
+    LOCAL_PARA_HDR
+    kal_int32               acct_id;
+    kal_uint32              call_id;
+    VoLTE_Event_Call_Mode_e call_mode;
+    kal_uint8               conf_call_participants;
+    kal_uint8               pad[2];
+    kal_uint8               conf_call_number_list[VOLTE_MAX_CALL_NUM_IN_CONF][VOLTE_MAX_CONF_CONTROL_URI_LENGTH];
+    kal_uint8               cell_id[VOLTE_MAX_CELL_ID_LENGTH];
+    VoLTE_Event_LBS_Location_t  loc_info;
+    plmn_type_enum          plmn;
+} VoLTE_Event_Conf_Call_Start_t;
+
+typedef struct _VoLTE_Event_Ims_Notify_Req {
+    LOCAL_PARA_HDR
+    kal_int32                                   acct_id;
+    kal_uint32                                  call_id;    /*assigned by CC*/
+    kal_uint8                                   msg_id;                          // VoLTE_Event_Ims_Notify_e
+    kal_uint8                                   ver;                             // structure version number start from 0
+    kal_uint16                                  rsv;                             // reserve bit must fill 0 (for 4 byte alignment)
+    kal_uint8                                   ext[IMC_MAX_IMS_NOTIFY_EXT_LEN]; // reserve for future other usage
+    kal_uint8                                   cell_id[IMC_MAX_CELL_ID_LEN];
+    VoLTE_Event_LBS_Location_t                  loc_info;
+} VoLTE_Event_Ims_Notify_Req_t;
+
+typedef struct _VoLTE_Event_Altc_Address_Req {
+    LOCAL_PARA_HDR
+    kal_int32   acct_id;
+    kal_int32   status; //0:V6_changed,1:V4_changed
+    kal_uint8   v6_address[VOLTE_MAX_ADDRESS_LENGTH];
+    kal_uint8   v4_address[VOLTE_MAX_ADDRESS_LENGTH];
+    kal_int16   v6_on;  //1:TURE,0:FALSE
+    kal_int16   v4_on;  //1:TURE,0:FALSE
+} VoLTE_Event_Altc_Address_Req_t;
+
+typedef struct _VoLTE_Event_Call_Rel {
+    LOCAL_PARA_HDR
+    kal_int32                                   acct_id;
+    kal_uint64                                  ua_id;          /*reg client information*/
+    kal_uint32                                  call_id;        /*assigned by CC*/
+    kal_int32                                   result;         /*VoLTE_Event_Call_Stop_result_e*/
+    kal_int32                                   cause;          /*VoLTE_Event_Call_stop_cause_e*/
+    kal_int32                                   rel_cause;      /*VoLTE_Event_Call_Rel_cause_e*/
+} VoLTE_Event_Call_Rel_t;
+
+typedef struct _VoLTE_Event_Queue_SIP {
+    LOCAL_PARA_HDR
+    kal_int32                                   acct_id;
+    kal_uint32                                  call_id;        /*assigned by CC*/
+    kal_int32                                   cmd_type;
+    void                                        *sip_msg; // 97 TODO: change bac kto sip_message_struct*?
+} VoLTE_Event_Queue_SIP_t;
+
+typedef struct _VoLTE_Event_MT_Call_Abort {
+    LOCAL_PARA_HDR
+    kal_int32                                   acct_id;        /*acct whom to make the call */
+    kal_uint32                                  seq_no;         /*sequence number assigned by Call UA*/
+    kal_int32                                   cause;          /*VoLTE_Event_Call_stop_cause_e*/
+} VoLTE_Event_MT_Call_Abort_t;
+
+typedef struct _VoLTE_Event_Media_Mod_Ind {
+    LOCAL_PARA_HDR
+    kal_int32                                   acct_id;
+    kal_uint32                                  call_id;        /*assigned by CC*/
+    kal_uint8                                   call_mode;      /*VoLTE_Event_Call_Mode_e*/
+    kal_uint8                                   camera_direction;    /*VoLTE_Event_RTP_DIRECTION_e*/
+    kal_uint8                                   audio_direction;    /*VoLTE_Event_RTP_DIRECTION_e*/
+    kal_uint8                                   audio_codec;         // voip_codec_enum(opaque)
+    kal_int8                                    p_assert_uri[VOLTE_MAX_ASSERTED_URI];
+} VoLTE_Event_Media_Mod_Ind_t;
+
+typedef struct _VoLTE_Event_Mod_Session_Req {
+    LOCAL_PARA_HDR
+    kal_int32      acct_id;
+    kal_uint8      call_id;    /* identify this call                */
+
+    // 0 : inactive (VoLTE)
+    // 1 : active (ViLTE)
+    kal_uint8      mode;
+    kal_uint8      camera_direction;    /*VoLTE_Event_RTP_DIRECTION_e*/
+    kal_uint8      result;           /*VoLTE_Event_Mod_session_result_e*/
+} VoLTE_Event_Mod_Session_Req_t;
+
+typedef struct _VoLTE_Event_Mod_Session_Rsp {
+    LOCAL_PARA_HDR
+    kal_int32      acct_id;
+    kal_uint8      call_id;    /* identify this call                */
+
+    // 0 : inactive (VoLTE)
+    // 1 : active (ViLTE)
+    kal_uint8      mode;
+    kal_uint8      camera_direction;    /*VoLTE_Event_RTP_DIRECTION_e*/
+    kal_uint8      result;           /*VoLTE_Event_Call_Stop_result_e*/
+} VoLTE_Event_Mod_Session_Rsp_t;
+
+typedef struct _VoLTE_Event_MT_VT_Special_Accept_Req {
+    LOCAL_PARA_HDR
+    kal_int32              acct_id;
+    kal_uint32             call_id;
+    kal_uint8              cell_id[VOLTE_MAX_CELL_ID_LENGTH];
+    kal_uint32             mode;   /* VoLTE_Event_EVTA_Mode_e */
+    VoLTE_Event_LBS_Location_t              loc_info;
+} VoLTE_Event_MT_VT_Special_Accept_Req_t;
+
+typedef struct _VoLTE_Event_Mod_Session_Cancel_Req {
+    LOCAL_PARA_HDR
+    kal_int32      acct_id;
+    kal_uint8      call_id;    /* identify this call                */
+    kal_uint8      cause;           /*VoLTE_Event_Mod_session_cancel_cause_e*/
+} VoLTE_Event_Mod_Session_Cancel_Req_t;
+
+typedef struct _VoLTE_Event_Text_Req {
+    LOCAL_PARA_HDR
+    kal_int32     acct_id;
+    kal_int32     mode;         /*0:off 1:on*/
+} VoLTE_Event_Text_Req_t;
+
+typedef struct _VoLTE_Event_Media_Anbr_Ind {
+    LOCAL_PARA_HDR
+    kal_int32   acct_id;
+    kal_uint32  call_id;
+    kal_uint32  anbr_value; /* Audio AS value comes from ANBR */
+} VoLTE_Event_Media_Anbr_Ind_t;
+
+typedef struct _VoLTE_Event_Media_Anbr_Rsp {
+    LOCAL_PARA_HDR
+    kal_int32   acct_id;
+    kal_uint32  call_id;
+    kal_uint32  anbr_result; /* SIP negotiation response 0: fail, 1: success */
+} VoLTE_Event_Media_Anbr_Rsp_t;
+
+typedef struct _VoLTE_Event_RTT_Req {
+    LOCAL_PARA_HDR
+    kal_int32     acct_id;
+    kal_int32     call_id;
+    kal_int32     op;  /* 0: downgrade, 1: upgrade */
+} VoLTE_Event_RTT_Req_t;
+
+typedef struct _VoLTE_Event_RTT_Rsp {
+    LOCAL_PARA_HDR
+    kal_int32     acct_id;
+    kal_int32     call_id;
+    kal_int32     result;  /* 0: accept, 1: reject */
+} VoLTE_Event_RTT_Rsp_t;
+
+typedef struct _VoLTE_Event_Video_config {
+        // required by RTP and RTCP session
+    kal_uint8                               call_id;        // identify this call
+    kal_uint8                               video_payload_type; // RTP payload type
+    kal_uint8                               remote_addr_type;    ///< VoLTE_Event_IP_Version_e
+    kal_uint8                               rtp_direction;       ///< VoLTE_Event_RTP_DIRECTION_e
+
+    kal_uint16                              remote_rtp_port;
+    kal_uint16                              remote_rtcp_port;
+    kal_uint16                              local_rtcp_port;     ///< rtcp port number. we may configure it not rtp_port+1
+    kal_uint16                              local_rtp_port;      ///< rtp port number for media attribute in SDP message
+    kal_uint8                               remote_rtp_address[VOLTE_IPADDR_LENGTH];
+    kal_uint8                               remote_rtcp_address[VOLTE_IPADDR_LENGTH];
+    kal_uint8                               local_address[VOLTE_IPADDR_LENGTH];
+
+    kal_uint32                              video_b_as;               // RTP bandwidth
+    kal_uint32                              video_b_rs;               // RTCP sender bandwidth
+    kal_uint32                              video_b_rr;               // RTCP receiver bandwidth
+
+
+    /* ViLTE */
+    /* new structure here */
+    kal_uint8                               media_type; //such as video/audio
+    kal_uint8                               mime_Type; // such as H.264
+    kal_uint16                              rtcp_rsize;
+    kal_uint32                              packetize_mode;
+    kal_uint32                              sample_rate; //timescale, which use to calculte rtp timestamp
+    kal_uint32                              rtcp_fb_param_num;
+    VoLTE_rtcp_fb_param_type_t              rtcp_fb_type[VOLTE_MAX_RTCP_FB_SIZE];
+    kal_uint8                               rtp_profile; //supported rtp_profile for special media such as RTP/AVP,RTP/AVPF
+    kal_uint8                               camera_direction; ///<VoLTE_Event_RTP_DIRECTION_e
+    kal_uint8                               bHold;  //local hold
+    kal_uint8                               bHeld;  //remote hold
+
+    VoLTE_Event_rtp_ext_map_t               extmap;//now only CVO support
+
+    /* WFC */
+    kal_uint32                              video_dscp;
+    kal_uint32                              video_soc_priority;
+
+    // require by H.264 or H265
+    VoLTE_Event_Video_Codec_cap_cfg_t       codec_cfg;
+} VoLTE_Event_Video_config_t,
+volte_event_video_config_struct;
+
+typedef struct _VoLTE_Event_BW_Require {
+    LOCAL_PARA_HDR
+    kal_int32                               acct_id;
+    kal_uint32                              call_id;    /*assigned by CC*/
+    kal_uint32                              action;     /*VoLTE_Event_BW_Act_e*/
+    kal_uint32                              send_bw_nego; /*send bw_nego or not when one media is ok, 0: don't send, 1:send*/
+    kal_uint32                              precond_needed; /*0: Precondition not specified, 1: Precondition required, 2: Precondition NOT required*/
+    kal_uint32                              pqos; /* use this to override tqos (ms) */
+    volte_event_video_config_struct         vt_config;
+    volte_event_media_config_struct         media_config;
+} VoLTE_Event_BW_Require_t;
+
+typedef struct _VoLTE_Event_Video_update {
+        // required by RTP and RTCP session
+    kal_uint8                               call_id;        // identify this call
+    kal_uint8                               video_payload_type; // RTP payload type
+    // required by RTP and RTCP session
+    kal_uint8                               rtp_direction;          //VoLTE_Event_RTP_DIRECTION_e
+    kal_uint8                               remote_addr_type;    ///< VoLTE_Event_IP_Version_e
+    kal_uint16                              remote_rtp_port;
+    kal_uint16                              remote_rtcp_port;
+    kal_uint16                              local_rtcp_port;     ///< rtcp port number. we may configure it not rtp_port+1
+    kal_uint16                              local_rtp_port;      ///< rtp port number for media attribute in SDP message
+    kal_uint8                               remote_rtp_address[VOLTE_IPADDR_LENGTH];
+    kal_uint8                               remote_rtcp_address[VOLTE_IPADDR_LENGTH];
+    kal_uint8                               local_address[VOLTE_IPADDR_LENGTH];
+
+    kal_uint32                              video_b_as;               // RTP bandwidth
+    kal_uint32                              video_b_rs;               // RTCP sender bandwidth
+    kal_uint32                              video_b_rr;               // RTCP receiver bandwidth
+
+    /* ViLTE */
+    kal_uint8                               media_type; //such as video/audio
+    kal_uint8                               mime_Type; // such as H.264
+    kal_uint16                              rtcp_rsize;
+    kal_uint32                              packetize_mode;
+    kal_uint32                              sample_rate; //timescale, which use to calculte rtp timestamp
+    kal_uint32                              rtcp_fb_param_num;
+    VoLTE_rtcp_fb_param_type_t              rtcp_fb_type[VOLTE_MAX_RTCP_FB_SIZE];
+    kal_uint8                               rtp_profile; //supported rtp_profile for special media such as RTP/AVP,RTP/AVPF
+    kal_uint8                               camera_direction;  ///<VoLTE_Event_RTP_DIRECTION_e
+    kal_uint8                               bHold;  //local hold
+    kal_uint8                               bHeld;  //remote hold
+
+    VoLTE_Event_rtp_ext_map_t               extmap;//now only CVO support
+
+    /* WFC */
+    kal_uint32                              video_dscp;
+    kal_uint32                              video_soc_priority;
+
+    // require by H.264 or H265
+    VoLTE_Event_Video_Codec_cap_cfg_t       codec_cfg;
+} VoLTE_Event_Video_update_t;
+
+typedef struct {
+    kal_int8        mode_set[VOLTE_MAX_SDP_FMTP_SUB_VALUE_LENGTH];
+
+    kal_uint8       is_octet_align; //0:default, bandwidth-efficient, 1: octet_align, 2: VzW for general
+    kal_uint8       mode_change_period; //the period should be N. but currently only 1(default) or 2.
+    kal_uint8       mode_change_cap;    //1(default) or 2(recommended to support)
+    kal_uint8       mode_change_neighbor;//0(default) or 1
+
+    kal_uint8       crc;                //0 or 1. Not support yet.
+    kal_uint8       robust;             //0 or 1. Not support yet.
+    kal_uint8       interleaving;       //the maximum number of frame-blocks. 0: not present. Not support yet.
+    kal_uint8       channel;            // the number of audio channel
+
+    kal_uint16      max_red;            // the maximum duration in ms. Not support yet.
+    kal_uint8       padding[2];         //< padding byte for 4bytes align
+} VoLTE_Event_amr_info_t;
+
+typedef struct {
+    kal_int8        mode_set[VOLTE_MAX_SDP_FMTP_SUB_VALUE_LENGTH];
+
+    kal_uint8       evs_support;
+    kal_uint8       evs_mode_switch;
+    kal_uint8       hf_only;
+    kal_uint8       dtx;
+
+    kal_uint8       dtx_recv;
+    kal_uint8       ch_send;
+    kal_uint8       ch_recv;
+    kal_uint8       channel;            // the number of audio channel
+
+    kal_uint8       br[2];              ///< VoLTE_EVS_Codec_Bitrate_e
+    kal_uint8       br_send[2];         ///< VoLTE_EVS_Codec_Bitrate_e
+    kal_uint8       br_recv[2];         ///< VoLTE_EVS_Codec_Bitrate_e
+    kal_uint8       bw[2];              ///< VoLTE_EVS_Bandwidth_e
+    kal_uint8       bw_send[2];         ///< VoLTE_EVS_Bandwidth_e
+    kal_uint8       bw_recv[2];         ///< VoLTE_EVS_Bandwidth_e
+
+    kal_uint8       mode_change_period; //the period should be N. but currently only 1(default) or 2.
+    kal_uint8       mode_change_cap;    //1(default) or 2(recommended to support)
+    kal_uint8       mode_change_neighbor;//0(default) or 1
+    kal_int8        ch_aw_recv;
+
+    kal_int8        cmr;
+    kal_uint8       padding[1];         ///< padding byte for 4 bytes align
+    kal_uint16      max_red;            // the maximum duration in ms. Not support yet.
+} VoLTE_Event_evs_info_t;
+
+typedef struct {
+    kal_uint8                               red_level;
+    kal_uint8                               red_codec_list[VOLTE_MAX_RED_LEVEL];
+} VoLTE_Event_red_info_t;
+
+typedef struct {
+    kal_uint8                               payload_type;         ///< payload type
+    kal_uint8                               codec;                ///< voip_codec_enum in codec_def.h
+    kal_uint8                               clock_rate;           ///< dynamic rate, clock rate, see VoLTE_Event_Clock_Rate_e
+    kal_uint8                               g723_bitrate;           ///< VoLTE_Event_G7231_BitRate_e
+    kal_uint8                               is_g723_annexAYES;      ///< G.723.1 annexA Yes:1, No:0
+    kal_uint8                               is_g729_annexBYES;      ///< G.729 annexB Yes:1, No:0
+    kal_uint8                               ilbc_mode;              ///< VoLTE_Event_iLBC_Rate_e
+    kal_uint8                               text_cps;               ///<
+
+    kal_uint32                              ptime;                  ///< play time
+    kal_uint32                              max_ptime;              ///< maximum play time
+
+    VoLTE_Event_amr_info_t                  amr_fmtp;
+    VoLTE_Event_evs_info_t                  evs_fmtp;
+    VoLTE_Event_red_info_t                  red_fmtp;
+} VoLTE_Event_media_codec_t;
+
+typedef struct VoLTE_Event_Media_update {
+    //  RTP and RTCP session for audio
+    kal_uint32                              audio_b_as;               // RTP bandwidth
+    kal_uint32                              audio_b_rs;               // RTCP sender bandwidth
+    kal_uint32                              audio_b_rr;               // RTCP receiver bandwidth
+    kal_uint16                              audio_rtp_direction;        ///< VoLTE_Event_RTP_DIRECTION_e
+    kal_uint16                              video_rtp_direction;        ///< VoLTE_Event_RTP_DIRECTION_e
+
+    kal_uint16                              audio_remote_rtp_port;
+    kal_uint16                              audio_remote_rtcp_port;
+    kal_uint8                               audio_remote_rtp_address[VOLTE_IPADDR_LENGTH];
+    kal_uint8                               audio_remote_rtcp_address[VOLTE_IPADDR_LENGTH];
+
+    kal_uint32                              remote_addr_type;           ///< VoLTE_Event_IP_Version_e, apply to RTP audio & video session, RTCP audio & video session
+    // required by RTP and RTCP session for video
+    kal_uint32                              video_b_as;               // RTP bandwidth
+    kal_uint32                              video_b_rs;               // RTCP sender bandwidth
+    kal_uint32                              video_b_rr;               // RTCP receiver bandwidth
+    kal_uint16                              video_remote_rtp_port;
+    kal_uint16                              video_remote_rtcp_port;
+    kal_uint16                              video_local_rtcp_port;     ///< rtcp port number. we may configure it not rtp_port+1
+    kal_uint16                              video_local_rtp_port;      ///< rtp port number for media attribute in SDP message
+    kal_uint8                               video_remote_rtp_address[VOLTE_IPADDR_LENGTH];
+    kal_uint8                               video_remote_rtcp_address[VOLTE_IPADDR_LENGTH];
+
+    kal_uint8                               video_payload_type;
+    kal_uint8                               pading[3];
+
+    // required by audio codec
+    kal_uint8                               audio_codec;
+    kal_uint8                               audio_payload_type;      // payload type
+    kal_uint8                               audio_clock_rate;       ///< dynamic rate, clock rate, see sdp_clock_rate_enum
+    kal_uint8                               is_dtmf;                ///< is dtmf tone useing telephony event
+
+    kal_uint8                               tele_evt_payload_type;  ///< telephony event payload type
+    kal_uint8                               tele_evt_clock_rate;    ///< telephony event rate
+    kal_uint8                               g723_bitrate;           ///< VoLTE_Event_G7231_BitRate_e
+    kal_uint8                               is_g723_annexAYES;      ///< G.723.1 annexA Yes:1, No:0
+
+    kal_uint8                               is_g729_annexBYES;      ///< G.729 annexB Yes:1, No:0
+    kal_uint8                               ilbc_mode;              ///< VoLTE_Event_iLBC_Rate_e
+    // required by RFC 6679 ECN
+    kal_uint8                               ecn_capable_rtp_method; ///< VoLTE_Event_ECN_RTP_METHOD_e
+    kal_uint8                               ecn_capable_ect;        //0, 1
+
+    kal_uint32                              ptime;         ///< ptime of the codec
+    kal_uint32                              max_ptime;    ///< max ptime is the buffer size for data plane. may not the same to ptime
+
+    // required by AMR and AMR WB codec
+    kal_int8                                mode_set[VOLTE_MAX_SDP_FMTP_SUB_VALUE_LENGTH];
+
+    kal_uint8                               is_octet_align;     ///< 0:default, bandwidth-efficient, 1: octet_align
+    kal_uint8                               mode_change_period; ///< the period should be N. but currently only 1(default) or 2.
+    kal_uint8                               mode_change_cap;    ///< 1(default) or 2(recommended to support)
+    kal_uint8                               mode_change_neighbor;///< 0(default) or 1
+
+    kal_uint8                               crc;                ///< 0 or 1
+    kal_uint8                               robust;             ///< 0 or 1
+    kal_uint8                               interleaving;       ///< the maximum number of frame-blocks. 0: not present
+    kal_uint8                               channel;            ///< the number of audio channel. must be 1 currently
+    kal_uint32                              network_id;         /* drop on 93MD */
+
+    kal_uint32                              max_red;            // the maximum duration in ms
+
+    /* EVS Support */
+    kal_uint8                               evs_support;
+    kal_uint8                               evs_mode_switch;
+    kal_uint8                               hf_only;
+    kal_uint8                               dtx;
+    kal_uint8                               dtx_recv;
+    kal_uint8                               reserved[3];
+    kal_uint8                               br[2];              ///< VoLTE_EVS_Codec_Bitrate_e
+    kal_uint8                               br_send[2];         ///< VoLTE_EVS_Codec_Bitrate_e
+    kal_uint8                               br_recv[2];         ///< VoLTE_EVS_Codec_Bitrate_e
+    kal_uint8                               bw[2];              ///< VoLTE_EVS_Bandwidth_e
+    kal_uint8                               bw_send[2];         ///< VoLTE_EVS_Bandwidth_e
+    kal_uint8                               bw_recv[2];         ///< VoLTE_EVS_Bandwidth_e
+    kal_uint8                               ch_send;
+    kal_uint8                               ch_recv;
+    kal_int8                                ch_aw_recv;
+    kal_int8                                cmr;
+
+    //required by RTCP XR
+    kal_uint16                              rtcp_xr_format;      ///<bitmap, VoLTE_Event_RTCP_XR_Type_e
+    kal_uint16                              rtcp_xr_loss_maxsize;///
+    kal_uint16                              rtcp_xr_dup_maxsize; ///
+    kal_uint16                              rtcp_xr_rcpt_maxsize;///
+    kal_uint16                              rtcp_xr_rtt_maxsize; ///
+    kal_int8                                rtcp_xr_rtt_mode;    ///<bitmap, VoLTE_Event_RTCP_XR_RTT_MODE_Type_e
+    kal_int8                                rtcp_xr_stat_flags;  ///<bitmap, VoLTE_Event_RTCP_XR_STAT_FLAGS_Type_e
+
+
+    /*GTT Support*/
+    kal_uint32                              text_b_as;
+    kal_uint32                              text_b_rs;
+    kal_uint32                              text_b_rr;
+
+    kal_uint16                              text_remote_rtp_port;
+    kal_uint16                              text_remote_rtcp_port;
+
+    kal_uint16                              text_local_rtcp_port;
+    kal_uint16                              text_local_rtp_port;
+
+    kal_uint8                               text_remote_rtp_address[VOLTE_IPADDR_LENGTH];
+    kal_uint8                               text_remote_rtcp_address[VOLTE_IPADDR_LENGTH];
+
+    kal_int8                                text_rtp_direction;
+    kal_int8                                text_t140_payload_type;
+    kal_int8                                text_red_payload_type;
+    kal_int8                                text_red_level;
+
+    kal_int8                                text_cps;
+    /*ALTC ==================================================================================*/
+    kal_uint8                               text_addr_type;
+    kal_int8                                text_pad[2];
+
+    kal_uint8                               audio_local_address[VOLTE_IPADDR_LENGTH];
+    kal_uint8                               text_local_address[VOLTE_IPADDR_LENGTH];
+    /* ======================================================================================*/
+
+    /* Asymmetric RTP payload type support */
+    kal_uint32                              recv_codec_num;
+    VoLTE_Event_media_codec_t               recv_codec_list[VOLTE_MAX_RECV_CODEC_LIST_LENGTH];
+
+    kal_uint32                              dscp;                  ///< IMCB will get value from NVRAM. Used by data plane.
+    kal_uint32                              video_dscp;            ///< IMCB will get value from NVRAM. Used by data plane.
+    kal_uint32                              voice_soc_priority;    ///< IMCB will get value from NVRAM. Used by data plane.
+    kal_uint32                              video_soc_priority;    ///< IMCB will get value from NVRAM. Used by data plane.
+} VoLTE_Event_Media_update_t;
+
+typedef struct _VoLTE_Event_BW_Update {
+    LOCAL_PARA_HDR
+    kal_int32                               acct_id;
+    kal_uint32                              call_id;    /*assigned by CC*/
+    kal_uint32                              action;     /*VoLTE_Event_BW_Act_e*/
+    kal_uint32                              skip_cnf;   ///< 0 or 1, if skip_cnf is 1, IMCB don't need to send BW_CNF for BW_MOD
+    kal_uint32                              bw_mod_ctrl_flag; /*the flag used to control the bw_mod behalvor of IMCB */
+    kal_uint32                              pqos;       ///< CMCC requirment: use this to override tqos (ms)
+    VoLTE_Event_Video_update_t              vt_update;
+    VoLTE_Event_Media_update_t              media_update;
+} VoLTE_Event_BW_Update_t;
+
+typedef struct _VoLTE_Event_BW_Act {
+    LOCAL_PARA_HDR
+    kal_int32                                   acct_id;
+    kal_uint32                                  call_id;     /*assigned by CC*/
+    kal_int32                                   action;      /*VoLTE_Event_BW_Act_e.
+                                                            in VOLTE_BW_CNF, it is a bandwidth reservation result;
+                                                            in VOLTE_BW_REL, it is a bearer released indication
+                                                            in VOLTE_BW_NEGO, it is a bearer nogotiation notification.
+                                                            The action is not important because we will send re-INVITE
+                                                            for the call session.
+                                                            */
+    kal_uint32                                  audio_res_alloc;    /*only for rsp_bw_add, it means Bearer Qos for audio*/
+    kal_uint32                                  video_res_alloc;    /*only for rsp_bw_add, it means Bearer Qos for video*/
+} VoLTE_Event_BW_Act_t;
+
+typedef struct _VoLTE_Event_MT_Call_Ind {
+    LOCAL_PARA_HDR
+    kal_int32                                   acct_id;        /*acct whom to make the call */
+    kal_uint8                                   seq_no;         /*sequence number assigned by Call UA*/
+    kal_uint8                                   is_national_num;/*0: local number, 1: national number. by finding "+"*/
+    kal_uint8                                   call_mode;      /*VoLTE_Event_Call_Mode_e*/
+    kal_uint8                                   uri_scheme;     /*VoLTE_MO_Call_Uri_Scheme_Type_e */
+    kal_int8                                    dial_number[VOLTE_MAX_URI_LENGTH];
+    kal_int8                                    digit_to_line_number[VOLTE_MAX_URI_LENGTH];
+} VoLTE_Event_MT_Call_Ind_t;
+
+typedef struct _VoLTE_Event_Call_Stop {
+    LOCAL_PARA_HDR
+    kal_int32                                   acct_id;
+    kal_uint32                                  call_id;        /*assigned by CC*/
+    kal_int32                                   result;         /*VoLTE_Event_Call_Stop_result_e*/
+    kal_int32                                   cause;          /*VoLTE_Event_Call_stop_cause_e*/
+} VoLTE_Event_Call_Stop_t;
+
+/*
+    VOLTE_MO_CALL_CNF structure
+
+    1. For reject by 503 response, type is the type in Retry-After header and data is the value from Retry-After header.
+        +   a HTTP Date String. We will change it to time seconds
+            example: Retry-After: Sat, 21 May 2000 08:00:00 GMT
+            example: Retry-After: Sat, 21 May 2000 08:00:00 GMT;duration:1800
+        +   a period time in ms
+            example: Retry-After: 3600
+    2. For reject by...
+ */
+typedef struct _VoLTE_Event_MO_Call_Cnf_t {
+    LOCAL_PARA_HDR
+    kal_int32                                   acct_id;
+    kal_uint32                                  call_id;        /*assigned by CC*/
+    VoLTE_Event_Call_stop_cause_e               cause;
+    VoLTE_Event_Call_Stop_result_e              result;
+    VoLTE_Event_Call_Mode_e                     call_mode;
+    kal_uint8                                   is_international;  /*0: no, 1: the phone number is a national number*/
+    kal_uint8                                   isDateString;      /*0: not a date string, 1: it is a date string in time variable*/
+    kal_uint32                                  time;
+    kal_int32                                   duration;
+    kal_int8                                    reason[VOLTE_MAX_URI_LENGTH];/*reason when receiving 380 alternative service*/
+    VoLTE_Event_ECC_Category_e                  ecc_category;
+    VoLTE_Event_Call_Service_e                  service;
+    kal_uint8                                   pad[3];
+    kal_int32                                   q850_cause;
+    kal_uint8                                   country_specific_urn[VOLTE_MAX_URI_LENGTH];/*contact string when receiving 380 alternative service*/
+    VoLTE_Event_Call_Cause_380_contact_e        cause_380_contact;
+    VoLTE_Event_Call_Cause_380_xml_e            cause_380_xml;
+    VoLTE_Event_380_XML_type_e                  xml_type_380;
+    VoLTE_Event_380_XML_action_e                xml_action_380;
+} VoLTE_Event_MO_Call_Cnf_t;
+
+typedef struct _VoLTE_Event_MO_Conf_Call_Cnf_t {
+    LOCAL_PARA_HDR
+    kal_int32                                   acct_id;
+    kal_uint32                                  call_id;
+    VoLTE_Event_Call_stop_cause_e               cause;
+    VoLTE_Event_Call_Stop_result_e              result;
+    VoLTE_Event_Call_Mode_e                     call_mode;
+    kal_uint8                                   pad[2];
+    kal_int32                                   q850_cause;
+} VoLTE_Event_MO_Conf_Call_Cnf_t;
+
+typedef struct _VoLTE_Event_Call_Prog_t {
+    LOCAL_PARA_HDR
+    kal_int32                                   acct_id;        /*acct whom to make the call */
+    kal_uint32                                  call_id;        /*assigned by CC*/
+    kal_int32                                   is_ibt;
+    kal_int8                                    p_assert_uri[VOLTE_MAX_ASSERTED_URI];
+    kal_int32                                   cause;          /*VoLTE_Event_Call_stop_cause_e*/
+    kal_int32                                   call_mode;      /*VoLTE_Event_Call_Mode_e*/
+    kal_int32                                   ecpi;           /*VoLTE_Event_Call_Prog_ECPI_e*/
+    kal_int32                                   hold_by;        /*VoLTE_Event_Call_Hold_By_e*/
+    kal_int32                                   dir;            /*VoLTE_Event_RTP_DIRECTION_e, reuse the interface*/
+    kal_int32                                   q850_cause;
+    kal_uint16                                  terminal_resp;  // Terminal response for STK call
+    kal_uint8                                   wait_rtp_pkt;   /* if is_ibt==1, wait for RTP pkts from N/W. if no RTP pkts, notify UA */
+    kal_uint8                                   pad[1];
+} VoLTE_Event_Call_Prog_t;
+
+typedef struct _VoLTE_Event_MediaInfo {
+    LOCAL_PARA_HDR
+    kal_int32                                   acct_id;
+    kal_uint32                                  call_id;        /*assigned by CC*/
+    kal_int32                                   is_on;          /*VoLTE_Event_Call_Media_e*/
+    kal_uint8                                   call_mode;      /*VoLTE_Event_Call_Mode_e*/
+} VoLTE_Event_MediaInfo_t;
+
+typedef struct _VoLTE_Event_List_Current_Call {
+    LOCAL_PARA_HDR
+    kal_uint32                              total_call;
+    VoLTE_Event_List_one_call_t             call[VOLTE_MAX_CALL_SESSION];
+} VoLTE_Event_List_Current_Call_t;
+
+typedef struct _VoLTE_Event_SRVCC_Call_Ctxt {
+    kal_int32       call_id;
+    kal_uint32      ecc_category;   /*bit map, VoLTE_Event_ECC_Category_e*/
+    kal_uint8       call_mode;      /*VoLTE_Event_Call_Mode_e */
+    kal_uint8       direction;      /* VoLTE_SRVCC_direction_e */
+    kal_uint8       dlg_state;      /*VoLTE_SRVCC_dlg_state_e*/
+    kal_uint8       num_of_conf_parts; /* 1(me) + 7 (participants) in maximum */
+} VoLTE_Event_SRVCC_Call_Ctxt_t;
+
+
+typedef struct _VoLTE_Event_List_SRVCC_Call_Ctxt {
+    LOCAL_PARA_HDR
+    kal_uint32                              num_calls;
+    VoLTE_Event_SRVCC_Call_Ctxt_t           call[VOLTE_MAX_SRVCC_CALLS];
+    kal_int32                               acct_id;
+    kal_uint8                               conf_call_number_list[VOLTE_MAX_CALL_NUM_IN_CONF][VOLTE_MAX_URI_LENGTH];
+} VoLTE_Event_List_SRVCC_Call_Ctxt_t;
+
+typedef struct _VoLTE_Event_SIP_Call_Prog_Ind {
+    LOCAL_PARA_HDR
+    kal_int32                                   acct_id;        /*acct whom to make the call */
+    kal_uint64                                  ua_id;          /*reg client information*/
+    kal_uint32                                  call_id;        /*assigned by CC*/
+    kal_uint8                                   call_mode;      /*VoLTE_Event_Call_Mode_e*/
+    kal_uint8                                   dir;            /*0:send,1:receive*/
+    kal_uint8                                   sip_msg_type;   /*0: request, 1: response*/
+    kal_uint8                                   method;         /*1:SIP_INVITE_METHOD,2:SIP_REFER_METHOD ..etc , refer to inet_method_enum*/
+    kal_uint16                                  response_code;  /*0:only used when SIP type is request, else: response code(100~600)*/
+    kal_uint8                                   pad[2];
+    kal_char                                    reason_text[VOLTE_MAX_REASON_TEXT_LENGTH];
+} VoLTE_Event_SIP_Call_Prog_Ind_t;
+
+typedef struct _VoLTE_Event_Video_Cap_Ind {
+    LOCAL_PARA_HDR
+    kal_int32                                   acct_id;
+    kal_uint32                                  call_id;        /*assigned by CC*/
+    kal_uint8                                   local_video_cap;
+    kal_uint8                                   remote_video_cap;
+    kal_uint8                                   pad[2];         // For alignment
+} VoLTE_Event_Video_Cap_Ind_t;
+
+typedef struct _VoLTE_Event_Mod_Session_Cnf {
+    LOCAL_PARA_HDR
+    kal_int32      acct_id;
+    kal_uint8      call_id;    /* identify this call                */
+
+    // 0 : inactive (VoLTE)
+    // 1 : active (ViLTE)
+    kal_uint8      mode;
+    kal_uint8      camera_direction;    /*VoLTE_Event_RTP_DIRECTION_e*/
+    kal_uint8      result;           /*VoLTE_Event_Mod_session_result_e*/
+} VoLTE_Event_Mod_Session_Cnf_t;
+
+typedef struct _VoLTE_Event_Mod_Session_Ind {
+    LOCAL_PARA_HDR
+    kal_int32      acct_id;
+    kal_uint8      call_id;    /* identify this call                */
+
+    // 0 : inactive (VoLTE)
+    // 1 : active (ViLTE)
+    kal_uint8      mode;
+    kal_uint8      camera_direction;    /*VoLTE_Event_RTP_DIRECTION_e*/
+    kal_uint8      result;           /*VoLTE_Event_Mod_session_result_e*/
+} VoLTE_Event_Mod_Session_Ind_t;
+
+typedef struct _VoLTE_Event_MT_VT_Special_Accept_Cnf {
+    LOCAL_PARA_HDR
+    kal_int32                  acct_id;
+    kal_uint32                 call_id;
+    kal_int32                  result; /*0: success, 1: fail*/
+    kal_int32                  cause;  /*VoLTE_Event_Call_stop_cause_e*/
+} VoLTE_Event_MT_VT_Special_Accept_Cnf_t;
+
+typedef struct _VoLTE_Event_Mod_Session_Cancel_Cnf {
+    LOCAL_PARA_HDR
+    kal_int32      acct_id;
+    kal_uint8      call_id;    /* identify this call                */
+    kal_uint8      result;           /*VoLTE_Event_Mod_session_cancel_result_e*/
+} VoLTE_Event_Mod_Session_Cancel_Cnf_t;
+
+typedef struct _VoLTE_Event_Mod_Session_Cancel_Ind {
+    LOCAL_PARA_HDR
+    kal_int32      acct_id;
+    kal_uint8      call_id;
+}VoLTE_Event_Mod_Session_Cancel_Ind_t;
+
+typedef struct _VoLTE_Event_Local_BW_Ready_Ind {
+    LOCAL_PARA_HDR
+    kal_int32      acct_id;
+    kal_uint8      call_id;
+}VoLTE_Event_Local_BW_Ready_Ind_t;
+
+typedef struct _VoLTE_Event_Text_Cnf {
+    LOCAL_PARA_HDR
+    kal_int32     acct_id;
+    kal_int32     result;
+} VoLTE_Event_Text_Cnf_t;
+
+typedef struct VoLTE_Event_Text_Cap_Ind {
+    LOCAL_PARA_HDR
+    kal_int32                                   acct_id;
+    kal_uint32                                  call_id;                        /*assigned by CC*/
+    kal_uint8                                   local_text_cap;                 /* GTT/RTT on/off */
+    kal_uint8                                   remote_text_cap;                /* remote sdp text status */
+    kal_uint8                                   local_text_status;              /* local sdp text status */
+    kal_uint8                                   real_remote_text_capability;    /* remote Contact header text cap */
+} VoLTE_Event_Text_Cap_Ind_t;
+
+typedef struct _VoLTE_Event_IMS_Timer_Status_Ind {
+    LOCAL_PARA_HDR
+    kal_uint32  acct_id;
+    kal_uint64  ua_id;        // reg client information
+    kal_uint32  timer_type;   // VoLTE_Event_ims_timer_type_e
+    kal_uint32  timer_status; // VoLTE_Event_ims_timer_status_e
+    kal_uint16  timer_length;
+    kal_uint8   pad[2];
+} VoLTE_Event_IMS_Timer_Status_Ind_t;
+
+typedef struct _VoLTE_Event_RTT_Cnf {
+    LOCAL_PARA_HDR
+    kal_int32     acct_id;
+    kal_int32     call_id;
+    kal_int32     result;
+} VoLTE_Event_RTT_Cnf_t;
+
+typedef struct _VoLTE_Event_SS_Req {
+    LOCAL_PARA_HDR
+    kal_int32                       acct_id;
+    kal_uint8                       cell_id[VOLTE_MAX_CELL_ID_LENGTH];  ///< the current cell id from the modem PS
+    VoLTE_Event_LBS_Location_t      loc_info;
+    kal_uint32                      cause;
+} VoLTE_Event_SS_Req_t;
+
+typedef struct _VoLTE_Event_SS_Conf_Req {
+    LOCAL_PARA_HDR
+    kal_int32                       acct_id;
+    kal_uint32                      alloc_conf_call_id;
+    kal_uint8                       cell_id[VOLTE_MAX_CELL_ID_LENGTH];  ///< the current cell id from the modem PS
+    VoLTE_Event_LBS_Location_t      loc_info;
+    plmn_type_enum                  plmn;
+} VoLTE_Event_SS_Conf_Req_t;
+
+typedef struct _VoLTE_Event_SS_List_Calls_Req{
+    LOCAL_PARA_HDR
+    kal_uint32 reserved;
+} VoLTE_Event_SS_List_Calls_Req_t;
+
+typedef struct _VoLTE_Event_SS_Conf_Control_Req {
+    LOCAL_PARA_HDR
+    kal_int32                       acct_id;
+    kal_uint32                      conf_call_id;
+    kal_int32                       joined_call_id;      ///< For Add a new one, joined_call_id is invalid call id--> -1
+                                                       ///< For Add a ongoing one, joined_call_id is its call id,
+                                                       ///< For remove anybody, joined_call_id is invalid call id.
+    kal_uint32                      op;     ///< VoLTE_Event_Operation_Add_Other_To_Conf or
+                                          //  VoLTE_Event_Operation_Remove_Other_From_Conf
+    kal_char                        number[VOLTE_MAX_CONF_CONTROL_URI_LENGTH];
+                                                       ///< The participant's number/URI to add or to remove
+    kal_uint8                       cell_id[VOLTE_MAX_CELL_ID_LENGTH];
+                                                       ///< the current cell id from the modem PS
+    VoLTE_Event_LBS_Location_t      loc_info;
+} VoLTE_Event_SS_Conf_Control_Req_t;
+
+typedef struct _VoLTE_Event_SS_Call_Ctrl_Req {
+    LOCAL_PARA_HDR
+    kal_int32                               acct_id;
+    kal_uint32                              call_id;
+    kal_int32                               expected_call_state;                /*VoLTE_Event_Call_Prog_ECPI_e*/
+    kal_uint8                               cell_id[VOLTE_MAX_CELL_ID_LENGTH];  ///< the current cell id from the modem PS
+    VoLTE_Event_LBS_Location_t              loc_info;
+} VoLTE_Event_SS_Call_Ctrl_t;
+
+typedef struct _VoLTE_Event_SS_ect_Req {
+    LOCAL_PARA_HDR
+    kal_int32                               acct_id;
+    kal_uint8                               cell_id[VOLTE_MAX_CELL_ID_LENGTH];  //< the current cell id from the modem PS
+    VoLTE_Event_LBS_Location_t              loc_info;
+    kal_uint8                               ect_type;                           // VoLTE_Event_ect_type_e
+    kal_uint8                               pad[3];
+    kal_char                                p_asserted_uri[VOLTE_MAX_URI_LENGTH];  //< The tranfer target number number
+    kal_int8                                device_id[VOLTE_MAX_UUID_LENGTH];
+} VoLTE_Event_SS_ect_Req_t;
+
+typedef struct _VoLTE_Event_SS_ect_Resp {
+    LOCAL_PARA_HDR
+    kal_int32                               acct_id;
+    kal_int32                               result;                         ///< refer to ::VoLTE_Event_Call_Stop_result_e
+    kal_int32                               cause;                          ///< refer to ::VoLTE_Event_Call_stop_cause_e
+} VoLTE_Event_SS_ect_Resp_t;
+
+typedef struct _VoLTE_Event_SS_ect_notify {
+    LOCAL_PARA_HDR
+    kal_int32                               acct_id;
+    kal_uint32                              call_id;
+    kal_int32                               result;                         ///< refer to ::VoLTE_Event_Call_Stop_result_e
+    kal_int32                               cause;                          ///< refer to ::VoLTE_Event_Call_stop_cause_e
+} VoLTE_Event_SS_ect_notify_t;
+
+typedef struct _VoLTE_Event_SS_Resp {
+    LOCAL_PARA_HDR
+    kal_int32                               acct_id;
+    kal_int32                               operation;                      ///< refer to ::VoLTE_Event_SS_Operation_e
+    kal_int32                               result;                         ///< refer to ::VoLTE_Event_Call_Stop_result_e
+    kal_int32                               cause;                          ///< refer to ::VoLTE_Event_Call_stop_cause_e
+} VoLTE_Event_SS_Resp_t;
+
+typedef struct _VoLTE_Event_SS_Sub_ind {
+    LOCAL_PARA_HDR
+    kal_int32                               acct_id;
+    kal_uint32                              call_id;
+    kal_int32                               event;                          ///< refer to ::VoLTE_Event_SS_Sub_event_e
+    kal_int32                               result;                         ///< refer to ::VoLTE_Event_Call_Stop_result_e
+    kal_int32                               cause;                          ///< refer to ::VoLTE_Event_Call_stop_cause_e
+} VoLTE_Event_SS_Sub_ind_t;
+
+typedef struct _VoLTE_Event_SS_Conf_ind {
+    LOCAL_PARA_HDR
+    kal_int32                               acct_id;
+    kal_uint32                              conf_call_id;
+    kal_uint32                              joined_call_id;
+    kal_char                                dial_number[VOLTE_MAX_CONF_CONTROL_URI_LENGTH];
+    kal_int32                               operation;                      ///< refer to ::VoLTE_Event_SS_Operation_e
+    kal_int32                               result;                         ///< refer to ::VoLTE_Event_Call_Stop_result_e
+    kal_int32                               cause;                          ///< refer to ::VoLTE_Event_Call_stop_cause_e
+} VoLTE_Event_SS_Conf_ind_t;
+
+/*
+The data is a raw data from SIP body.
+For MWI and Conference indication, it is a XML body, so it must use the maximum data length: 4096. And
+IMCB will send to AP side directly.
+For the others, it is a SIP body that must less then 512 (VOLTE_MAX_DATA_TO_IMC_LENGTH). And IMCB will
+send to IMC through CCCI channel. We must not use the data legnth larger then VOLTE_MAX_DATA_TO_IMC_LENGTH,
+or the CCCI channel will have error.
+*/
+typedef struct _VoLTE_Event_SS_Notify {
+    LOCAL_PARA_HDR
+    kal_int32                               acct_id;
+    kal_uint32                              call_id;
+    kal_uint32                              service;                        ///< VoLTE_Event_SS_Notify_Service_e
+    kal_char                                data[VOLTE_MAX_DATA_TO_UPPER_LENGTH];
+} VoLTE_Event_SS_Notify_t;
+
+typedef struct _VoLTE_Event_SMS_Send_Message_t {
+    LOCAL_PARA_HDR
+    kal_int32                               account_id;                         ///< the account id
+    kal_uint32                              request_id;                         ///< the request id (provide by app)
+    kal_uint32                              type;                               ///< refer to ::VoLTE_Event_SMS_Type_e
+    kal_uint32                              timeout;                            ///< keep the resouce timer (0: don't keep)
+    kal_char                                psi[VOLTE_MAX_URI_LENGTH];          ///< PSI
+    kal_uint8                               cell_id[VOLTE_MAX_CELL_ID_LENGTH];
+    VoLTE_Event_LBS_Location_t              loc_info;
+    kal_char                                tpda[VOLTE_MAX_SMS_TPDA_LENGTH];
+    kal_int8                                is_valid_tpda;
+    kal_int8                                is_international;
+    kal_int8                                pad[1];
+    kal_int32                               message_len;                        ///< the length of message data
+    kal_int8                                message[0];                         ///< the message data
+} VoLTE_Event_SMS_Send_Message_t;
+
+typedef struct _VoLTE_Event_SMS_Release_t {
+    LOCAL_PARA_HDR
+    kal_int32                               account_id;                         ///< the account id
+    kal_uint32                              request_id;                         ///< the request id
+} VoLTE_Event_SMS_Release_t;
+
+typedef struct _VoLTE_Event_SMS_Confirm_t {
+    LOCAL_PARA_HDR
+    kal_int32                               account_id;                         ///< the account id
+    kal_uint32                              request_id;                         ///< the request id
+    kal_int32                               resp_code;                          ///< SIP response code
+    kal_uint8                               cell_id[VOLTE_MAX_CELL_ID_LENGTH];
+    VoLTE_Event_LBS_Location_t              loc_info;
+} VoLTE_Event_SMS_Confirm_t;
+
+typedef struct _VoLTE_Event_SMS_Result_t {
+    LOCAL_PARA_HDR
+    kal_int32                               account_id;                         ///< the account id
+    kal_uint32                              request_id;                         ///< the request id
+    kal_int32                               resp_code;                          ///< SIP response code or ::VoLTE_Event_SMS_Result_e
+} VoLTE_Event_SMS_Result_t;
+
+typedef struct _VoLTE_Event_SMS_Recv_Message_t {
+    LOCAL_PARA_HDR
+    kal_int32                               account_id;                         ///< the account id
+    kal_uint32                              request_id;                         ///< the request id (provide by SMS-UA)
+    kal_uint32                              type;                               ///< refer to ::VoLTE_Event_SMS_Type_e
+    kal_int8                                psi[VOLTE_MAX_URI_LENGTH];          ///< PSI
+    kal_int32                               message_len;                        ///< the length of message data
+    kal_int8                                message[0];                         ///< the message data
+} VoLTE_Event_SMS_Recv_Message_t;
+
+typedef struct _VoLTE_Event_Ussd_Urc_Status_REQ {
+    LOCAL_PARA_HDR
+    kal_uint32  acct_id;
+    kal_uint32  status; //0: disabled, 1: enabled
+}VoLTE_Event_Ussd_Urc_Status_REQ_t;
+
+typedef struct _VoLTE_Event_Ussd_IND {
+    LOCAL_PARA_HDR
+    kal_uint32  acct_id;
+    kal_uint8   ind_class;
+    kal_uint8   alert_pattern;
+    kal_uint8   padding[2];
+    kal_uint16  status;
+    kal_uint16  sip_cause;
+    kal_uint8   language[VOLTE_USSD_LANGUAGE_MAX_LENGTH];
+    kal_uint16  error_code;
+    kal_uint16  string_len;
+    kal_uint8   string[0];
+}VoLTE_Event_Ussd_IND_t;
+
+typedef struct _VoLTE_Event_Ussd_RSP {
+    LOCAL_PARA_HDR
+    kal_uint32  acct_id;
+    kal_uint32  response;
+} VoLTE_Event_Ussd_RSP_t;
+
+typedef struct _VoLTE_Event_New_Ussd_CMD {
+    LOCAL_PARA_HDR
+    kal_uint32      acct_id;
+    kal_uint8       cmd_class;
+    kal_uint8       operation;
+    kal_uint16      action; ///< 1:ussd request, 2: ussd_response
+    kal_uint8       language[VOLTE_USSD_LANGUAGE_MAX_LENGTH];
+    kal_uint16      error_code;
+    kal_uint16      string_len;
+    kal_uint8       string[VOLTE_USSD_STRING_MAX_LENGTH];
+    kal_int8        digit_from_line_number[VOLTE_MAX_URI_LENGTH];
+} VoLTE_Event_New_Ussd_CMD_t;
+
+typedef struct _VoLTE_Event_New_Ussd_IND {
+    LOCAL_PARA_HDR
+    kal_uint32      acct_id;
+    kal_uint8       ind_class;
+    kal_uint8       alert_pattern;
+    kal_uint8       padding[2];
+    kal_uint16      status;
+    kal_uint16      sip_cause;
+    kal_uint8       language[VOLTE_USSD_LANGUAGE_MAX_LENGTH];
+    kal_uint16      error_code;
+    kal_uint16      string_len;
+    kal_uint8       string[VOLTE_USSD_STRING_MAX_LENGTH];
+} VoLTE_Event_New_Ussd_IND_t;
+
+typedef struct _VoLTE_Event_CC_CS_Availability_req {
+    LOCAL_PARA_HDR
+    kal_uint32  acct_id;
+    kal_uint32  call_id;
+} VoLTE_Event_CC_CS_Availability_req_t;
+
+typedef struct _VoLTE_Event_CC_CS_Availability_cnf {
+    LOCAL_PARA_HDR
+    kal_uint32  acct_id;
+    kal_uint32  call_id;
+    kal_uint32  cs_network_status;         /*VoLTE_Event_cs_network_status_e*/
+} VoLTE_Event_CC_CS_Availability_cnf_t;
+
+typedef struct _VoLTE_Event_SMS_CS_Availability_req {
+    LOCAL_PARA_HDR
+    kal_uint32  acct_id;
+    kal_uint32  request_id;
+} VoLTE_Event_SMS_CS_Availability_req_t;
+
+typedef struct _VoLTE_Event_SMS_CS_Availability_cnf {
+    LOCAL_PARA_HDR
+    kal_uint32  acct_id;
+    kal_uint32  request_id;
+    kal_uint32  cs_network_status;         /*VoLTE_Event_cs_network_status_e*/
+} VoLTE_Event_SMS_CS_Availability_cnf_t;
+
+typedef struct _VoLTE_Event_Mod_BW_Req {
+    LOCAL_PARA_HDR
+    kal_int32      acct_id;
+    kal_uint32     call_id;    /* identify this call */
+
+    kal_uint32     video_bandwidth;
+} VoLTE_Event_Mod_BW_Req_t;
+
+typedef struct _VoLTE_Event_Header_Req {
+    LOCAL_PARA_HDR
+    kal_int32                                   acct_id;
+    kal_uint32                                  call_id;    /*assigned by CC*/
+    kal_uint32                                  type;  /*refer to inet_header_field_enum*/
+} VoLTE_Event_Header_Req_t;
+
+typedef struct _VoLTE_Event_Call_Mode_Req {
+    LOCAL_PARA_HDR
+    kal_int32                                   acct_id;
+    kal_uint32                                  mode;  /*VoLTE_Event_IMS_call_mode_e */
+} VoLTE_Event_Call_Mode_Req_t;
+
+typedef struct _VoLTE_Event_EC_Call_Extra_header_Req {
+    LOCAL_PARA_HDR
+    kal_int32                                   acct_id;
+    kal_int8                                    extraHeader[VOLTE_MAX_EXTRA_HEADER_SIZE];
+} VoLTE_Event_EC_Call_Extra_header_Req_t;
+
+typedef struct _VoLTE_Event_EC_Call_Location_Info {
+    LOCAL_PARA_HDR
+    kal_int32                        acct_id;
+    kal_int8                         latitude[16];
+    kal_int8                         longitude[16];
+    kal_int8                         accuracy[8];
+    kal_uint8                        timestamp[VOLTE_MAX_TIME_STAMP_LENGTH];   // VOLTE_MAX_TIME_STAMP_LENGTH =32
+} VoLTE_Event_EC_Call_Location_Info_t;
+
+//*****************************
+//*** UA LEGACY TYPE DEFINE ***
+//*****************************
+
+UA_IMCB_MAP_STRUCT(BW_Require,       ind_bw_add)                /* message: IND_BW_ADD   MSG_ID_VOLTE_BW_IND */
+typedef VoLTE_Event_BW_Require_t volte_bw_ind_struct;
+UA_IMCB_MAP_STRUCT(BW_Act,           rsp_bw_add)                /* message: RSP_BW_ADD   MSG_ID_VOLTE_BW_CNF     */
+typedef VoLTE_Event_BW_Act_t volte_bw_cnf_struct;
+UA_IMCB_MAP_STRUCT(BW_Update,        ind_bw_mod)                /* message: IND_BW_MOD   MSG_ID_VOLTE_BW_MOD */
+typedef VoLTE_Event_BW_Update_t volte_bw_mod_struct;
+UA_IMCB_MAP_STRUCT(BW_Act,           rsp_bw_mod)                /* message: RSP_BW_MOD   MSG_ID_VOLTE_BW_CNF     */
+UA_IMCB_MAP_STRUCT(BW_Act,           ind_bw_rel)                /* message: IND_BW_REL   MSG_ID_VOLTE_BW_REL */
+typedef VoLTE_Event_BW_Act_t volte_bw_rel_struct;
+UA_IMCB_MAP_STRUCT(BW_Act,           rsp_bw_rel)                /* message: RSP_BW_REL   MSG_ID_VOLTE_BW_CNF     */
+UA_IMCB_MAP_STRUCT(BW_Act,           req_bw_nego)               /* message: REQ_BW_NEGO  MSG_ID_VOLTE_BW_NEGO    */
+typedef VoLTE_Event_BW_Act_t volte_bw_nego_struct;
+
+UA_IMCB_MAP_STRUCT(Radio_Link_Monitor,    req_radio_link_monitor)    // message: MSG_ID_VOLTE_REQ_RADIO_LINK_MONITOR
+UA_IMCB_MAP_STRUCT(Init,                  req_init)                  // message: MSG_ID_VOLTE_REQ_INIT
+
+/***** VT Capability *****/
+UA_IMCB_MAP_STRUCT(VT_Cap_Setting, get_vt_cap_rsp)           /* message: VOLTE_GET_VT_CAP_RSP */
+
+UA_IMCB_MAP_STRUCT(VT_Cap_Setting, req_vt_cap_setting) //MSG_ID_VOLTE_REQ_VT_CAP_SETTING
+
+//wait for phase II
+UA_IMCB_MAP_STRUCT(Media_Mod_Ind, ind_media_mod)                   /* message: IND_MEDIA_MOD MSG_ID_VOLTE_MEDIA_MOD_IND */
+UA_IMCB_MAP_STRUCT(Video_Cap_Ind, ind_video_cap)                   /* message: IND_VIDEO_CAP MSG_ID_VOLTE_VIDEO_CAP_IND */
+UA_IMCB_MAP_STRUCT(Mod_Session_Req, req_mod_session)               /* message: REQ_MOD_SESSION MSG_ID_VOLTE_MOD_SESSION_REQ */
+UA_IMCB_MAP_STRUCT(Mod_Session_Cnf, cnf_mod_session)               /* message: CNF_MOD_SESSION MSG_ID_VOLTE_MOD_SESSION_CNF */
+UA_IMCB_MAP_STRUCT(Mod_Session_Ind, ind_mod_session)               /* message: IND_MOD_SESSION MSG_ID_VOLTE_MOD_SESSION_IND */
+UA_IMCB_MAP_STRUCT(Mod_Session_Rsp, rsp_mod_session)               /* message: RSP_MOD_SESSION MSG_ID_VOLTE_MOD_SESSION_RSP */
+
+UA_IMCB_MAP_STRUCT(Media_Mod_Ind, media_mod_ind)                   /* message: IND_MEDIA_MOD MSG_ID_VOLTE_MEDIA_MOD_IND */
+UA_IMCB_MAP_STRUCT(Video_Cap_Ind, video_cap_ind)                   /* message: IND_VIDEO_CAP MSG_ID_VOLTE_VIDEO_CAP_IND */
+UA_IMCB_MAP_STRUCT(Mod_Session_Req, mod_session_req)               /* message: REQ_MOD_SESSION MSG_ID_VOLTE_MOD_SESSION_REQ */
+UA_IMCB_MAP_STRUCT(Mod_Session_Cnf, mod_session_cnf)               /* message: CNF_MOD_SESSION MSG_ID_VOLTE_MOD_SESSION_CNF */
+UA_IMCB_MAP_STRUCT(Mod_Session_Ind, mod_session_ind)               /* message: IND_MOD_SESSION MSG_ID_VOLTE_MOD_SESSION_IND */
+UA_IMCB_MAP_STRUCT(Mod_Session_Rsp, mod_session_rsp)               /* message: RSP_MOD_SESSION MSG_ID_VOLTE_MOD_SESSION_RSP */
+UA_IMCB_MAP_STRUCT(Mod_BW_Req,      mod_bw_req)                    /* message: RSP_MOD_SESSION MSG_ID_VOLTE_MOD_BW_REQ */
+UA_IMCB_MAP_STRUCT(Mod_Session_Cancel_Req,mod_session_cancel_req)   /* message: RSP_MOD_SESSION_CANCEL VOLTE_MOD_CANCEL_REQ */
+UA_IMCB_MAP_STRUCT(Mod_Session_Cancel_Cnf,mod_session_cancel_cnf)   /* message: CNF_MOD_SESSION_CANCEL VOLTE_MOD_CANCEL_CNF */
+UA_IMCB_MAP_STRUCT(Mod_Session_Cancel_Ind,mod_session_cancel_ind)   /* message: IND_MOD_SESSION_CANCEL VOLTE_MOD_CANCEL_IND */
+UA_IMCB_MAP_STRUCT(Local_BW_Ready_Ind,local_bw_ready_ind)           /* message: LOCAL_BW_READY_IND MSG_ID_VOLTE_LOCAL_BW_READY_IND */
+#ifdef __NG_ECALL_SUPPORT__
+UA_IMCB_MAP_STRUCT(eCall_In_Band_MSD_Transfer_Rsp,ecall_in_band_msd_transfer_rsp)       /* message:  VOLTE_ECALL_IN_BAND_TRANSFER_RSP */
+UA_IMCB_MAP_STRUCT(eCall_Update_MSD_Rsp,ecall_update_msd_rsp)       /* message: VOLTE_ECALL_IN_BAND_TRANSFER_RSP */
+#endif
+/* VILTE */
+UA_IMCB_MAP_STRUCT(MT_VT_Special_Accept_Req, mt_vt_special_accept_req)               /* message: MSG_ID_VOLTE_MT_VT_SPECIAL_ACCEPT_REQ */
+UA_IMCB_MAP_STRUCT(MT_VT_Special_Accept_Cnf, mt_vt_special_accept_cnf)               /* message: MSG_ID_VOLTE_MT_VT_SPECIAL_ACCEPT_CNF */
+
+
+/***** CC *****/
+UA_IMCB_MAP_STRUCT(Call_Prog,       call_progress_ind)           /* message: MSG_ID_VOLTE_CALL_PROGRESS_IND */
+UA_IMCB_MAP_STRUCT(MediaInfo,       media_ind)                   /* message: MSG_ID_VOLTE_MEDIA_IND */
+UA_IMCB_MAP_STRUCT(Call_Start,      mo_call_req)                 /* message: MSG_ID_VOLTE_MO_CALL_REQ */
+UA_IMCB_MAP_STRUCT(MO_Call_Cnf,     mo_call_cnf)                 /* message: MSG_ID_VOLTE_MO_CALL_CNF */
+UA_IMCB_MAP_STRUCT(MT_Call_Abort,   mt_call_abort_ind)           /* message: MSG_ID_VOLTE_MT_CALL_ABORT_IND */
+UA_IMCB_MAP_STRUCT(MT_Call_Ind,     mt_call_present_ind)         /* message: MSG_ID_VOLTE_MT_CALL_PRESENT_IND */
+UA_IMCB_MAP_STRUCT(MT_Call_Rsp,     mt_call_present_rsp)         /* message: MSG_ID_VOLTE_MT_CALL_PRESENT_RSP */
+UA_IMCB_MAP_STRUCT(Call_Refresh,    mt_call_ring_ind)            /* message: MSG_ID_VOLTE_MT_CALL_RING_IND */
+UA_IMCB_MAP_STRUCT(Req,             mo_force_hangup_req)         /* message: MSG_ID_VOLTE_MO_FORCE_HANGUP_REQ */
+UA_IMCB_MAP_STRUCT(Req,             mo_hangup_req)               /* message: MSG_ID_VOLTE_MO_HANGUP_REQ */
+UA_IMCB_MAP_STRUCT(Call_Stop,       mo_hangup_cnf)               /* message: MSG_ID_VOLTE_MO_HANGUP_CNF */
+UA_IMCB_MAP_STRUCT(Req,             no_rtppkt_req)               /* message: MSG_ID_VOLTE_NO_RTPPKT_REQ */
+UA_IMCB_MAP_STRUCT(Req,             incoming_rtppkt_req)         /* message: MSG_ID_VOLTE_INCOMING_RTPPKT_REQ */
+UA_IMCB_MAP_STRUCT(Call_Stop,       no_rtppkt_cnf)               /* message: VOLTE_NO_RTPPKT_CNF */
+UA_IMCB_MAP_STRUCT(Req,             mt_accept_req)               /* message: MSG_ID_VOLTE_MT_ACCEPT_REQ */
+UA_IMCB_MAP_STRUCT(Call_Stop,       mt_accept_cnf)               /* message: MSG_ID_VOLTE_MT_ACCEPT_CNF */
+UA_IMCB_MAP_STRUCT(SIP_Call_Prog_Ind,   sip_call_progress_ind)   /*message: MSG_ID_VOLTE_SIP_CALL_PROGRESS_IND*/
+UA_IMCB_MAP_STRUCT(Conf_Call_Start,   mo_conf_call_req)          /* message: MSG_ID_VOLTE_MO_CONF_CALL_REQ*/
+UA_IMCB_MAP_STRUCT(MO_Conf_Call_Cnf,   mo_conf_call_cnf)         /* message: MSG_ID_VOLTE_MO_CONF_CALL_CNF*/
+UA_IMCB_MAP_STRUCT(Req,   mo_call_domain_conflict_req)           /* message: MSG_ID_VOLTE_MO_CALL_DOMAIN_CONFLICT_REQ*/
+UA_IMCB_MAP_STRUCT(Call_Stop,   mo_call_domain_conflict_cnf)     /* message: MSG_ID_VOLTE_MO_CALL_DOMAIN_CONFLICT_CNF*/
+UA_IMCB_MAP_STRUCT(Ims_Notify_Req,  ims_notify_req)              /* message: MSG_ID_VOLTE_IMS_NOTIFY_REQ */
+/* CC CS Availability query*/
+UA_IMCB_MAP_STRUCT(CC_CS_Availability_req, cc_cs_availability_req)          /* message: MSG_ID_VOLTE_CC_CS_AVAILABILITY_REQ */
+UA_IMCB_MAP_STRUCT(CC_CS_Availability_cnf, cc_cs_availability_cnf)          /* message: MSG_ID_VOLTE_CC_CS_AVAILABILITY_CNF */
+
+
+/***** SS *****/
+UA_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 */
+UA_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 */
+UA_IMCB_MAP_STRUCT(SS_Req,            ss_rel_waiting_or_holding_call_req) /* message: MSG_ID_VOLTE_SS_REL_WAITING_OR_HOLDING_CALL_REQ */
+UA_IMCB_MAP_STRUCT(SS_Resp,           ss_rel_waiting_or_holding_call_cnf) /* message: MSG_ID_VOLTE_SS_REL_WAITING_OR_HOLDING_CALL_CNF */
+UA_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 */
+UA_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 */
+UA_IMCB_MAP_STRUCT(SS_Req,            ss_rel_all_calls_req) /* message: MSG_ID_VOLTE_SS_REL_ALL_CALLS_REQ */
+UA_IMCB_MAP_STRUCT(SS_Resp,           ss_rel_all_calls_cnf) /* message: MSG_ID_VOLTE_SS_REL_ALL_CALLS_CNF */
+UA_IMCB_MAP_STRUCT(SS_Req,            ss_explicit_call_transfer_req) /* message: MSG_ID_VOLTE_SS_EXPLICIT_CALL_TRANSFER_REQ */
+UA_IMCB_MAP_STRUCT(SS_Resp,           ss_explicit_call_transfer_cnf) /* message: MSG_ID_VOLTE_SS_EXPLICIT_CALL_TRANSFER_CNF */
+UA_IMCB_MAP_STRUCT(SS_Conf_Req,       ss_create_conference_call_req) /* message: MSG_ID_VOLTE_SS_CREATE_CONFERENCE_CALL_REQ */
+UA_IMCB_MAP_STRUCT(SS_Resp,           ss_create_conference_call_cnf) /* message: MSG_ID_VOLTE_SS_CREATE_CONFERENCE_CALL_CNF */
+UA_IMCB_MAP_STRUCT(SS_Conf_ind,       ss_conference_control_ind)     /* message: MSG_ID_VOLTE_SS_CONFERENCE_CONTROL_IND */
+UA_IMCB_MAP_STRUCT(SS_Sub_ind,        ss_subscribe_control_ind)      /* message: MSG_ID_VOLTE_SS_SUBSCRIBE_CONTROL_IND */
+UA_IMCB_MAP_STRUCT(SS_Conf_Control_Req, ss_conference_control_req)   /* message: MSG_ID_VOLTE_SS_CONFERENCE_CONTROL_REQ */
+UA_IMCB_MAP_STRUCT(SS_Resp,           ss_conference_control_cnf)     /* message: MSG_ID_VOLTE_SS_CONFERENCE_CONTROL_CNF */
+UA_IMCB_MAP_STRUCT(SS_Req,            ss_ath_rel_all_calls_req)      /* message: MSG_ID_VOLTE_SS_ATH_REL_ALL_CALLS_REQ */
+UA_IMCB_MAP_STRUCT(SS_Resp,           ss_ath_rel_all_calls_cnf)      /* message: MSG_ID_VOLTE_SS_ATH_REL_ALL_CALLS_CNF */
+UA_IMCB_MAP_STRUCT(List_Current_Call, list_call_cnf)                 /* message: MSG_ID_VOLTE_LIST_CALL_CNF */
+UA_IMCB_MAP_STRUCT(SS_Notify,         ss_progress_notify_ind)        /* message: MSG_ID_VOLTE_SS_PROGRESS_NOTIFY_IND */
+UA_IMCB_MAP_STRUCT(SS_Call_Ctrl,      call_control_req)              /* message: MSG_ID_VOLTE_SS_CALL_CONTROL_REQ */
+UA_IMCB_MAP_STRUCT(SS_Resp,           call_control_cnf)              /* message: MSG_ID_VOLTE_SS_CALL_CONTROL_CNF */
+UA_IMCB_MAP_STRUCT(SS_ect_notify,     ss_ect_notify_ind)             /* message: MSG_ID_VOLTE_SS_ECT_NOTIFY_IND */
+UA_IMCB_MAP_STRUCT(SS_ect_Req,        ss_ect_req)                    /* message: MSG_ID_VOLTE_SS_ECT_REQ */
+UA_IMCB_MAP_STRUCT(SS_ect_Resp,       ss_ect_cnf)                    /* message: MSG_ID_VOLTE_SS_ECT_CNF */
+UA_IMCB_MAP_STRUCT(SS_List_Calls_Req, ss_list_current_calls_req)     /* message: MSG_ID_VOLTE_LIST_CALL_REQ */
+
+/***** SMS *****/
+UA_IMCB_MAP_STRUCT(SMS_Send_Message, req_sms_send)               /* message: MSG_ID_VOLTE_REQ_SMS_SEND */
+UA_IMCB_MAP_STRUCT(SMS_Result,       rsp_sms_sent)               /* message: MSG_ID_VOLTE_RSP_SMS_SENT */
+UA_IMCB_MAP_STRUCT(SMS_Recv_Message, ind_sms_received)           /* message: MSG_ID_VOLTE_IND_SMS_RECEIVED */
+UA_IMCB_MAP_STRUCT(SMS_Confirm,      cnf_sms_received)           /* message: MSG_ID_VOLTE_CNF_SMS_RECEIVED */
+UA_IMCB_MAP_STRUCT(SMS_Release,      req_sms_release)            /* message: MSG_ID_VOLTE_REQ_SMS_RELEASE */
+UA_IMCB_MAP_STRUCT(SMS_Result,       ind_sms_error)              /* message: MSG_ID_VOLTE_IND_SMS_ERROR */
+/* SMS CS Availability query*/
+UA_IMCB_MAP_STRUCT(SMS_CS_Availability_req, sms_cs_availability_req)        /* message: MSG_ID_VOLTE_SMS_CS_AVAILABILITY_REQ */
+UA_IMCB_MAP_STRUCT(SMS_CS_Availability_cnf, sms_cs_availability_cnf)        /* message: MSG_ID_VOLTE_SMS_CS_AVAILABILITY_CNF */
+
+/**** RTT ****/
+UA_IMCB_MAP_STRUCT(RTT_Req, rtt_req)  /* message: MSG_ID_VOLTE_RTT_REQ */
+UA_IMCB_MAP_STRUCT(RTT_Cnf, rtt_cnf)  /* message: MSG_ID_VOLTE_RTT_CNF */
+
+/**** TTY ****/
+UA_IMCB_MAP_STRUCT(Text_Req, text_req)  /* message: MSG_ID_VOLTE_TEXT_REQ */
+UA_IMCB_MAP_STRUCT(Text_Cap_Ind, text_cap_ind)  /* message: MSG_ID_VOLTE_TEXT_CAP_IND */
+UA_IMCB_MAP_STRUCT(Text_Cnf, text_cnf)  /* message: MSG_ID_VOLTE_TEXT_CNF */
+
+/**** Handover Notify ****/
+UA_IMCB_MAP_STRUCT(Handover_Start_Notify, handover_start_notify_req)  /* message: MSG_ID_VOLTE_REQ_HANDOVER_START_NOTIFY */
+typedef VoLTE_Event_Handover_Start_Notify_t volte_req_handover_start_notify_struct;
+UA_IMCB_MAP_STRUCT(Handover_Stop_Notify, handover_stop_notify_req)  /* message: MSG_ID_VOLTE_REQ_HANDOVER_STOP_NOTIFY */
+typedef VoLTE_Event_Handover_Stop_Notify_t volte_req_handover_stop_notify_struct;
+UA_IMCB_MAP_STRUCT(Handover_IP_Ready_Notify, handover_ip_ready_notify_req)  /* message: MSG_ID_VOLTE_REQ_HANDOVER_IP_READY_NOTIFY */
+typedef VoLTE_Event_Handover_IP_Ready_Notify_t volte_req_handover_ip_ready_notify_struct;
+
+/***** SRVCC *****/
+UA_IMCB_MAP_STRUCT(SRVCC_Info, srvcc_info)  /* message: MSG_ID_VOLTE_SRVCC_START, MSG_ID_VOLTE_SRVCC_END */
+typedef VoLTE_Event_SRVCC_Info_t volte_srvcc_start_struct;
+typedef VoLTE_Event_SRVCC_Info_t volte_srvcc_end_struct;
+UA_IMCB_MAP_STRUCT(List_SRVCC_Call_Ctxt, list_srvcc_call_ctxt) /* message: MSG_ID_VOLTE_SRVCC_CALL_CTXT_TRANSFER */
+typedef VoLTE_Event_List_SRVCC_Call_Ctxt_t volte_srvcc_call_ctxt_transfer_struct;
+
+/**** ANBR ****/
+UA_IMCB_MAP_STRUCT(Media_Anbr_Ind, media_anbr_ind)  /* message: MSG_ID_VOLTE_MEDIA_ANBR_IND */
+UA_IMCB_MAP_STRUCT(Media_Anbr_Rsp, media_anbr_rsp)  /* message: MSG_ID_VOLTE_MEDIA_ANBR_RSP */
+
+/**** CDMA-less ****/
+UA_IMCB_MAP_STRUCT(IMS_Timer_Status_Ind, ims_timer_status_ind)  /* message: MSG_ID_VOLTE_IMS_TIMER_STATUS_IND */
+
+/***** Altc_Address_Req to UA *****/
+UA_IMCB_MAP_STRUCT(Altc_Address_Req, altc_address_req)   /* message: MSG_ID_VOLTE_ALTC_ADDRESS_STATUS_REQ */
+typedef VoLTE_Event_Altc_Address_Req_t volte_altc_address_status_req_struct;
+
+/**** USSD ****/
+UA_IMCB_MAP_STRUCT(New_Ussd_CMD,          req_send_ussd)            // message: MSG_ID_VOLTE_USSD_CMD_REQ
+typedef VoLTE_Event_New_Ussd_CMD_t volte_ussd_cmd_req_struct;
+UA_IMCB_MAP_STRUCT(New_Ussd_IND,          ind_recv_ussd)            // message: VOLTE_USSD_IND
+typedef VoLTE_Event_New_Ussd_IND_t volte_ussd_ind_struct;
+UA_IMCB_MAP_STRUCT(Ussd_RSP,              rsp_send_ussd)            // message: MSG_ID_VOLTE_USSD_RSP
+typedef VoLTE_Event_Ussd_RSP_t volte_ussd_rsp_struct;
+UA_IMCB_MAP_STRUCT(Ussd_Urc_Status_REQ,   req_ussd_urc_status)      // message: MSG_ID_VOLTE_USSD_URC_STATUS_REQ
+typedef VoLTE_Event_Ussd_Urc_Status_REQ_t volte_ussd_urc_status_req_struct;
+
+
+UA_VOLTE_ILM_MAP_STRUCT(Notify, ind_reg_notify_conf_subsc)          // message: MSG_ID_VOLTE_IND_REG_NOTIFY_CONF_SUBSC
+UA_VOLTE_ILM_MAP_STRUCT(Call_Refresh, refresh_req)                  // message: MSG_ID_VOLTE_REFRESH_REQ
+UA_VOLTE_ILM_MAP_STRUCT(Call_Refresh, oos_hangup_req)               // message: MSG_ID_VOLTE_OOS_HANGUP_REQ
+UA_VOLTE_ILM_MAP_STRUCT(Call_Rel, rel_session_req)                  // message: MSG_ID_VOLTE_REL_SESSION_REQ
+UA_VOLTE_ILM_MAP_STRUCT(Queue_SIP, queue_sip_msg_req)               // message: MSG_ID_VOLTE_QUEUE_SIP_MSG_REQ
+UA_VOLTE_ILM_MAP_STRUCT(MT_Call_Abort, transfer_abort_req)          // message: MSG_ID_VOLTE_TRANSFER_ABORT_REQ
+UA_VOLTE_ILM_MAP_STRUCT(Media_Mod_Ind, transfer_finalize_req)       // message: MSG_ID_VOLTE_TRANSFER_FINALIZE_REQ
+UA_VOLTE_ILM_MAP_STRUCT(RTT_Rsp, rtt_rsp)                           // message: MSG_ID_VOLTE_RTT_RSP
+
+#endif /* _IMSUA_STRUCT_H_ */