| /***************************************************************************** |
| * 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)*/ |
| VoLTE_Event_Call_Cause_No_Retry_emergency, /* For KDDI requirement, MD don't retry IMS/CS when UA receive error code, AP may customize to choice another sim card to retry */ |
| /*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_EXTENDED_SUB_SERVICE, //for 24.301 9.9.3.37A Extended Emergency Number |
| 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*/ |
| kal_uint8 pad[3]; |
| kal_uint16 sub_service_field_length; /*for emergency extended sub_service*/ |
| kal_uint8 sub_service_field[IMC_SUB_SERVICE_LENGTH]; /*for emergency extended sub_service*/ |
| |
| /*ecall over IMS*/ |
| #ifdef __NG_ECALL_SUPPORT__ |
| kal_bool ims_only_allowed_domain; |
| 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_ */ |