| /***************************************************************************** |
| * 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) 2013 |
| * |
| * 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: |
| * ------------ |
| * ims_common_def.h |
| * |
| * Project: |
| * ------------ |
| * MOLY |
| * |
| * Description: |
| * ------------ |
| * This file defines structures and enums commonly used by IMC, ATP, and xDM. |
| * |
| * Author: |
| * ----------- |
| * ------- |
| * |
| *=========================================================== |
| * $Log$ |
| * |
| * 09 16 2022 xin.ni |
| * [MOLY00827342] [FOCUS][MT6879][Figeac][S0][R2][JAPAN][SOFTBANK][SIM][Lab][OTR-Voice-032031] VoLTE 4sec cancel timer to apply to EPS-FB case |
| * |
| * . |
| * |
| * 07 28 2022 ot_gang.zhang |
| * [MOLY00823817] [MT6879][Figeac][S0][R2][JAPAN][SOFTBANK][TB][TrialNW][SIP PANI Info][CR Review Excluded] Supporting OTR-Voice-032066 |
| * |
| * . |
| * |
| * 07 07 2022 jasleen.k |
| * [MOLY00846008] [MT6873][Margaux][Q0][R3][JAPAN][SOFTBANK][SA][SIM][Lab][Degrade, CORE_GEN-10n-22-1001] On W22.14.P1, UE kept sending PDU_REQ(for IMS) after received DEREGISTRATION_REQ(re-registration required). Note that W21.51.P3 didn't have this issue. |
| * |
| * . |
| * |
| * 07 05 2022 ot_fei.teng |
| * [MOLY00860159] [FeatureDevelopment][ALPSAR07137638] VzW Visible-SIM requirement gap |
| * |
| * . |
| * |
| * 06 10 2022 yung-liang.tsou |
| * [MOLY00876156] [T750][AT]AT+CLCC???? |
| * |
| * .AT+CLCC support in IMS |
| * |
| * 04 28 2022 ot_fei.teng |
| * [MOLY00775781] [FeatureDevelopment][ALPSAR06336232] TMOUS 2022Q1 Requirement Gaps Development - CallUA |
| * |
| * . |
| * |
| * 03 30 2022 uri.chang |
| * [MOLY00795972] [FeatureDevelopment][ALPSAR06495798] VzW 2021OCT IMS part |
| * [patch back][97R3.MP to 97R3.MD700.MP] [VzW][21OCT] requirement gap development |
| * VZ_REQ_5GNRSA_4105999311948016 |
| * - start Teps_fb_watchdog when 183 |
| * - stop Teps_fb_watchdog when 5QI=1 |
| * |
| * VZ_REQ_5GNRSA_4105999311948012 |
| * - poweroff_ims_dereg_timer = 4. |
| * |
| * 03 21 2022 ot_gang.zhang |
| * [MOLY00668814] [moto][Ellis][IMS][8/13] support EXTRA_ADDITIONAL_SIP_INVITE_FIELDS for Call Filter VZ_REQ_RCSVOLTE_34736 |
| * |
| * . |
| * |
| * 02 24 2022 kai-cheng.chiu |
| * [MOLY00677249] [FIH][FLC][ATT][IQI][IODT]15.13 VoLTE Metric Verification Test (Package Validator)- missing MM02 and MM03 |
| * |
| * . |
| * |
| * 02 18 2022 ot_hui.tu |
| * [MOLY00648435] [MT6761][Merlot][R0][MP2][TMO][21Q1][simulator][in-house][R&S][Protocol_IMS & VoLTE][63884][L_IMS_VoLTE_423129]PIDF-LO header Included in INVITE message and has Coordinate , Civic Address and GML shape - Ellipsoid |
| * |
| * . |
| * |
| * 02 10 2022 ying-cen.lai |
| * [MOLY00808473] [Cogin patch back] NR15.R3.MP_Sync_To_NR15.R3.MD700.MP |
| * |
| * CL 17659181 / MOLY00684273 |
| * |
| * 01 27 2022 kai-cheng.chiu |
| * [MOLY00803278] [Gen97][MD700] CR patch-back from R3.MP |
| * |
| * . |
| * |
| * 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 |
| * |
| * . |
| * |
| * 10 22 2021 tong.li |
| * [MOLY00687896] [Gen97][4N SQC-Lite][W2128][SA_Focus][Internal][FT][China][Yinchuan][5GMM][SA][SA_EPSFB Call][SA+NSA_TC_21][static][CMCC+CMCC][IS:CMCC]CMCC card cannot camp on NR when hang up the call 1/100 |
| * . |
| * |
| * 08 06 2021 olli.kettunen |
| * [MOLY00632727] [IMS][B210302-3193][B200214-074][IOT Historical][PLAY][IMS] DUT is not able to make a voice call when is under WiFi with no Internet access. |
| * |
| * . |
| * |
| * 07 21 2021 parmod.garg |
| * [MOLY00670633] [MT6891][Petrus-P][Customer FT][Xiaomi][India][SQC Excluded][Hyderabad][Airtel]DUT fails to Receive USSD code reply message after disconnecting the ongoing VOLTE call for Airtel operator. |
| * Handle CS service notification during ongoing IMS call for airtel operator |
| * . |
| * |
| * 05 17 2021 uri.chang |
| * [MOLY00624439] [TMO][Echolocate] TMOUS 21Q2 Echolocate feature |
| * [patch back][97R3 to 97MD700.MP][TMOUS][21Q2] Echolocate - interface. |
| * |
| * 05 14 2021 ot_jiaxin.zhou |
| * [MOLY00550463] [M505][C3M][????][Claro]SDN Requirements_?????7.31???????ALPS05060303????????patch |
| * |
| * . |
| * |
| * 03 24 2021 mika.leinonen |
| * [MOLY00607912] [5G-B] [Elsa] DT???IMS preferred????? ? Follow ALPS05435102 |
| * Add WFC profile IMS_PREFERRED |
| * |
| * 03 22 2021 tsung-kun.shih |
| * [MOLY00578311] [US_DEV][TMO][2021Q1] Call UA |
| * |
| * . |
| * |
| * 03 16 2021 ds_nikesh.kumar |
| * [MOLY00605923] [IMS-RTD Test][NewChip-FT][MT6298][Mercury][MP0.5][SQC][FR1][4GMM][TCID:_009_PCSCF_Restoration][Beyond Conformance][India][Airtel]REGISTER sent after call end when PCSCF is changed two times during call |
| * |
| * . |
| * |
| * 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 05 2020 larry.liu |
| * [MOLY00582425] [CM_TMUS][PROTOCOL] Question about +EIRAT |
| * [IRAT] enum change |
| * |
| * 11 05 2020 kino.wang |
| * [MOLY00584131] [MT6893][Petrus-P][MP6][Post MP][SQC][Internal][FT][China][Shaoxing][5GMM][SA][SA Self-Cer][TCID:SA_Self-Cer_FT_02_005][CMCC+CMCC][IS:SIM1 CMCC][Shengli Road][LAT2]dial EPSFB Call ,but setup at GSM |
| * |
| * . |
| * |
| * 09 29 2020 uri.chang |
| * [MOLY00574194] [copy CR]�iH+�j�icall�j 6889 R2��?�O�_�i�H����IMS?�u??�M�W?��ICD�ƥ� |
| * |
| * [patch back][97R2.TC3.SP to 97R3.MP][Huawei][ICD] add info. in SIP_Message/ new SDP_Nego_Info_Event/ add end call cause in Call_Status_Event. |
| * |
| * 09 18 2020 szu-chieh.chiu |
| * [MOLY00569477] [IMS][Telus] v11.0 requirement and gap |
| * IMC. |
| * |
| * 09 18 2020 savvas.chou |
| * [MOLY00570287] [Gen97] VzW T_VzW and T_eps_fallback timer Implementation |
| * VzW EPSFB and confidence level for geolocation |
| * |
| * 09 18 2020 shu-lin.yang |
| * [MOLY00569420] [US_DEV] VZW 2020JUN IMSUA |
| * |
| * R3 TC3 VLIST. |
| * |
| * 09 18 2020 uri.chang |
| * [MOLY00569695] [US_DEV][VZW][MP7] P-CSCF handling for handover |
| * P-CSCF handling for IP/PCO change - interface part (MPD) |
| * merge IP_CHANGE_NOTIFY, PCSCF_RESTORE, and REQ_REREG to CONDITION_CHANGE_NOTIFY. |
| * |
| * 08 28 2020 jin.liang |
| * [MOLY00562709] [5GHP][feature][Data&Call]game space mode |
| * . |
| * |
| * 08 17 2020 frank-th.chen |
| * [MOLY00556671] [MT6873][Margaux][N3GPPOVERDATA.DEV][VoData(Enable)][RDIT] [INDIA][JIO+AIRTEL] VoData(Enable) RDIT test call_is_still_active_after_aeroplane_mode_ON |
| * |
| * . |
| * |
| * 08 14 2020 frank-th.chen |
| * [MOLY00556671] [MT6873][Margaux][N3GPPOVERDATA.DEV][VoData(Enable)][RDIT] [INDIA][JIO+AIRTEL] VoData(Enable) RDIT test call_is_still_active_after_aeroplane_mode_ON |
| * |
| * . |
| * |
| * 08 14 2020 frank-th.chen |
| * [MOLY00556671] [MT6873][Margaux][N3GPPOVERDATA.DEV][VoData(Enable)][RDIT] [INDIA][JIO+AIRTEL] VoData(Enable) RDIT test call_is_still_active_after_aeroplane_mode_ON |
| * . |
| * |
| * 07 29 2020 jin.liang |
| * [MOLY00550525] [Oppo] Please provide CMCC, CT and CU來電�feature |
| * . |
| * |
| * 07 27 2020 frank-th.chen |
| * [MOLY00549478] [Gen97][HE3.0]N3GPP offload over data feature |
| * |
| * VoData - IMS - IMCB |
| * |
| * 07 27 2020 zhongyong.wang |
| * [MOLY00546974] [MT6873][Margaux][Q0][R3][IOT][Japan][KDDI][CATv2.10.0.A][In-House CAT][L20_3-6_VoLTE_Error_INV_Retry-After]The DUT failed to send INVITE request after 404 response. |
| * |
| * ALPS05245377. |
| * |
| * 07 27 2020 yulong.chang |
| * [MOLY00549478] [Gen97][HE3.0]N3GPP offload over data feature |
| * VoData VDM part |
| * |
| * 07 20 2020 yingfui.hung |
| * [MOLY00546514] [Gen97][CT][hVolte] add SBP to config default hVolte mode as VoPS |
| * |
| * . |
| * |
| * 07 15 2020 jin.liang |
| * [MOLY00517562] [self]503���请�� |
| * . |
| * |
| * 07 14 2020 yingfui.hung |
| * [MOLY00545028] [Gen97][L4] revise AT+EIREG |
| * |
| * . |
| * |
| * 07 10 2020 jin.liang |
| * [MOLY00523315] ?�DM?��?��?��?�语?��??��?��?��?��?��??200OK,�?��?�失? |
| * |
| * . |
| * |
| * 07 06 2020 huifeng.jing |
| * [MOLY00529481] [B200526-2172]??????????????5G NV-IOT-SA??SA+NSA??????NSA?????SA????? |
| * NR_recover. |
| * |
| * 07 04 2020 frank-th.chen |
| * [MOLY00538261] [Blocking][CCP2-P0][MT6885][Petrus][TMO-US][MP5][SQC][20Q2][q0][HQ][Keysight][Protocol_Wi-Fi Calling][60474][L-ePDG -97602-7]The msg doesn't contain header field P-Location-Object - Error |
| * +EIMSGEO after AT+ELOCAEN |
| * |
| * 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 30 2020 frank-th.chen |
| * [MOLY00526066] ALPS05120134 [TCL][Tokyo Lite TMO]WFC] The "P-LANI TIMESTAMP here" in invite is not correct, it is display the invite timestamp. The time reported is not in UTC or local time for LTE/ 3G/ 2G |
| * |
| * . |
| * |
| * 06 15 2020 frank-th.chen |
| * [MOLY00526066] ALPS05120134 [TCL][Tokyo Lite TMO]WFC] The "P-LANI TIMESTAMP here" in invite is not correct, it is display the invite timestamp. The time reported is not in UTC or local time for LTE/ 3G/ 2G |
| * |
| * . |
| * |
| * 05 27 2020 ari.simonen |
| * [MOLY00527994] [Gen97] SPI Allocation Patchback, IMS Stack part |
| * |
| * MOD_IPSEC assisted SPI allocation support for IMS Stack |
| * |
| * 05 13 2020 tong.li |
| * [MOLY00515430] ??U??IMS`?M????D?\Mf |
| * . |
| * |
| * 05 07 2020 johnson.liu |
| * [MOLY00514296] i19131jiPVTjif??j19131CU+CTD(IMS+IMS)Ad1CUƥdMO3GAv2/20 |
| * . |
| * |
| * 04 03 2020 delphine.wang |
| * [MOLY00508252] [MT6889][Petrus][5G FT][5GMM][China][CMCC][SA][IODT][端到端][OPPO Load][Hangzhou][2.1]1314_CMCC+CMCC??1�??????????��???HD???????��? |
| * [MOLY00508252] [MT6889][Petrus][5G FT][5GMM][China][CMCC][SA][IODT][端到端][OPPO Load][Hangzhou][2.1]1314_CMCC+CMCC??1�??????????��???HD???????��? |
| * [MOLY00508252] [MT6889][Petrus][5G FT][5GMM][China][CMCC][SA][IODT][端到端][OPPO Load][Hangzhou][2.1]1314_CMCC+CMCC??1�?????��???HD???????��? |
| * |
| * . |
| * |
| * 03 24 2020 xw.wang |
| * [MOLY00507077] [MT6739][Zion][Q0][WW FT][Turkey][Istanbul][4GMM][IMS][Regression][SQC Excluded][TurkTelekom][VoWiFi] To check the PCNI requirements, Cell Time is showing 0 |
| * |
| * . |
| * |
| * 03 03 2020 jianing.zu |
| * [MOLY00502624] [MT6873][Margaux][Q0][MP2][SQC][5G FT][NSA][5GMM][China][CMCC][FT][CMCC FT][RT][Shanghai][5G-FT-NSA-1.3]Call drop happened after upgrade failed |
| * . |
| * |
| * 02 24 2020 shu-lin.yang |
| * [MOLY00501087] [US_DEV][Altice] call ua dev |
| * |
| * . |
| * |
| * 02 03 2020 sami.jutila |
| * [MOLY00481544] [MT6873][Margaux][Q0][MP3][SQC][EE][FT][UK][Cambridge][IMS][TCID:WFC_MIMS_026] SIM2 WFC to VoLTE HO. No audios, call drop. |
| * . |
| * |
| * 01 06 2020 yingfui.hung |
| * [MOLY00469528] [Gen97][VMOLY][SA][hVolte] hVolte revise for SA |
| * |
| * . |
| * |
| * 12 08 2019 chengwen.liu |
| * [MOLY00464287] [VMOLY][Gen97] UA ASSERT Removal & IMCB/UA state unsync handling |
| * |
| * . |
| * |
| * 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 |
| * 12 02 2019 szu-chieh.chiu |
| * [MOLY00462969] [VMOLY][Gen97] IMCB ASSERT Removal |
| * IMCB ASSERT Removal -- IMCB/UA state unsync handling. |
| * |
| * 11 26 2019 jianing.zu |
| * [MOLY00461552] [Petrus][Q0] CONF_CALL_MODIFY_WAIT_NOTIFY_TIMER |
| * . |
| * |
| * 11 26 2019 jianing.zu |
| * [MOLY00461552] [Petrus][Q0] CONF_CALL_MODIFY_WAIT_NOTIFY_TIMER |
| * . |
| * |
| * 11 26 2019 jianing.zu |
| * [MOLY00461552] [Petrus][Q0] CONF_CALL_MODIFY_WAIT_NOTIFY_TIMER |
| * . |
| * |
| * 11 21 2019 parmod.garg |
| * [MOLY00460714] [MT6885][Petrus][MP1][SQC][India][Delhi][FT][VoLTE][Airtel][Vodafone][Free Test] DUT fails to give USSD result for SIM2 Vodafone operator when initiating alternately. |
| * wait for BYE 200 OK response for USSD on vodafone India N/W |
| * . |
| * |
| * 11 20 2019 ari.simonen |
| * [MOLY00460381] [MT6885][Petrus][MP1][SQC][IMS][FDD][4GMM][UK][EE][TCID:V-ECC-014]: IMS service aborted permanently if initial registration collides with emergency registration |
| * |
| * Fixed a nal_monitor()/SOCKET_EVENT_IND loop when SIPTX fails to map any connection to the received SOCKET_EVENT_IND. |
| * Also improved SIPTX, Call UA and USSD UA tracing. |
| * |
| * 11 20 2019 tong.li |
| * [MOLY00460516] [Rose][Petrus]BSP+][Q0]SIMB camp on 4G slowly (about 1'30") after set default data in SIMA. |
| * . |
| * |
| * 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 |
| * |
| * 11 06 2019 ari.simonen |
| * [MOLY00457408] [MT6885][Petrus][MP1][SQC][MDST][SWIFT][TW][CHT+CHT][4G MM][ASSERT] file:mcu/protocol/ims/core/src/os/api_mem.c line:122 |
| * |
| * Enabled ADM logging option for IMS memory pool |
| * |
| * 11 04 2019 xin.ni |
| * [MOLY00431597] [IMS Interface][version#0x74][MD] add new retry on-going in reg_state |
| * |
| * . |
| * |
| * 11 04 2019 xin.ni |
| * [MOLY00431597] [IMS Interface][version#0x74][MD] add new retry on-going in reg_state |
| * |
| * . |
| * |
| * 09 25 2019 savvas.chou |
| * [MOLY00443561] [Gen97] SCBM |
| * SCBM and VISIBLE SIM |
| * |
| * 09 25 2019 savvas.chou |
| * [MOLY00443561] [Gen97] SCBM |
| * SCBM and VISIBLE SIM |
| * |
| * 09 25 2019 savvas.chou |
| * [MOLY00443561] [Gen97] SCBM |
| * SCBM and VISIBLE SIM |
| * |
| * 09 25 2019 savvas.chou |
| * [MOLY00443561] [Gen97] SCBM |
| * SCBM and VISIBLE SIM |
| * |
| * 09 25 2019 savvas.chou |
| * [MOLY00443561] [Gen97] SCBM |
| * SCBM and VISIBLE SIM |
| * |
| * 09 25 2019 savvas.chou |
| * [MOLY00443561] [Gen97] SCBM |
| * SCBM and VISIBLE SIM |
| * |
| * 09 25 2019 savvas.chou |
| * [MOLY00443561] [Gen97] SCBM |
| * SCBM and VISIBLE SIM |
| * |
| * 09 25 2019 savvas.chou |
| * [MOLY00443561] [Gen97] SCBM |
| * SCBM and VISIBLE SIM |
| * |
| * 09 25 2019 savvas.chou |
| * [MOLY00443561] [Gen97] SCBM |
| * SCBM and VISIBLE SIM |
| * |
| * 09 23 2019 ssu-hsien.wu |
| * [MOLY00438070] [Gen97][IMS] STKCALL and STKUSSD over IMS |
| * |
| * . |
| * |
| * 09 11 2019 joni.huttula |
| * [MOLY00399073] [Submarine]EM debug message not sent as correct ILM messages |
| * |
| * . |
| * |
| * 08 26 2019 jani.manninen |
| * [MOLY00433041] [Gen97][EPSFB] IT related issues |
| * |
| * VMOLY.APOLLO.SQC - IMS 5G Voice Support Changes |
| * |
| * 08 21 2019 jani.manninen |
| * [MOLY00432937] [VONR] LTECSR Changes for 5G Voice Support - LTECSR |
| * |
| * Interface clean up for 5G Voice Support |
| * |
| * 08 14 2019 jani.manninen |
| * [MOLY00431762] [VONR] IWLAN Changes for 5G Voice Support - IWLAN |
| * |
| * VMOLY.V.5GVOICE.DEV - IWLAN (Interface / ATP / IWLAN / UT) |
| * |
| * 07 25 2019 sami.jutila |
| * [MOLY00424277] [Submarine][UT]UT reliability improvement |
| * |
| * [NR] P-Access-Network-Info, Cellular-Network-Info headers |
| * |
| * 07 24 2019 lipak.sen |
| * [MOLY00423057] [IMS][Gen97] [VMOLY] Gen93 R3 to VMOLY Trunk Patch Back |
| * |
| * . |
| * VzW ClientAPI patch back [MOLY00385190] : Gen93 R3 to VMOLY |
| * 1) [MOLY00351936] [VzW][clientAPI : VZ_REQ_RCS_3948 ]RegistrationListener implementation for clientAPI |
| * - EIMSREGURI |
| * |
| * ++ |
| * |
| * Fix side effect of Sami's CL 8766583 and 8768193 (UT reliability change) |
| * Should not enforce any AT cmd relay to particular event like EIMSXUI |
| * |
| * 07 23 2019 ari.simonen |
| * [MOLY00402881] [Gen97][Submarine] Submarine M1 VMOLY patch back - IMS |
| * |
| * Fixed IMC_SIM_NUM definition for single-SIM targets |
| * |
| * 07 19 2019 ari.simonen |
| * [MOLY00402881] [Gen97][Submarine] Submarine M1 VMOLY patch back - IMS |
| * |
| * Added __SUPPORT_CLIB_TIME__ for time() calls for Petrus as the function is temporarily unavailable. |
| * Also fixed GEMINI flagging. |
| * |
| * 07 18 2019 chengwen.liu |
| * [MOLY00392539] IMS注�?��?�常??�点?????? |
| * |
| * . |
| * MPD |
| * |
| * 07 18 2019 frank-th.chen |
| * [MOLY00422529] VMOLY patch back |
| * |
| * . |
| * |
| * 07 18 2019 frank-th.chen |
| * [MOLY00422529] VMOLY patch back |
| * |
| * . |
| * |
| * 07 17 2019 lipak.sen |
| * [MOLY00422252] [IMS][Gen97] [Submarine] Submarine VMOLY Patch Back |
| * |
| * . |
| * SUBMARINE DEV patch back to VMOLY (MOLY00416875 + MOLY00411449) |
| * |
| * 07 17 2019 rahul.gupta |
| * [MOLY00422520] [VMOLY] patchback for IMS(IMC/IMCB) |
| * |
| * 07 17 2019 tong.li |
| * [MOLY00422101] �i�s¦??��?�j18073 CMCC+CMCC�A�d1��?4G CSFB MT��? 16/50 |
| * . |
| * |
| * 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 |
| * |
| * 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 |
| * |
| * . |
| * 05 07 2019 savvas.chou |
| * [MOLY00403400] [Submarine] M1 to VMOLY |
| * . |
| * |
| * 04 15 2019 savvas.chou |
| * [MOLY00398799] [MT6297][IMC/IWLAN] changes for 97 |
| * IWLAN/IMC re-org |
| * |
| * 11 01 2018 kuan-wei.chen |
| * [MOLY00346647] [MT6297][VDM/L4] changes for 97 |
| * [VMOLY][VDM][MPD] |
| * |
| * |
| * |
| * |
| * 07 31 2018 savvas.chou |
| * [MOLY00342215] [Pre-sanity][caseFail][alps-mp-o1.mp1][k63v1us_64_bsp_na_cxp][2018.07.23.11.00][TC_201][userdebug] |
| * RCS feature handler refine |
| * |
| * 07 17 2018 savvas.chou |
| * [MOLY00334020] [IMC][RCS] Support AT+ERCSIMS=3 & 4 for ROI reg. & dereg. events |
| * Support AT+ERCSIMS=3 & 4 for ROI reg. & dereg. events |
| * |
| * 05 21 2018 hsin-jun.tang |
| * [MOLY00325423] [IWLAN] Debug enhancement - A. IWLAN log enhancement, B. KAL legacy API DHL new API |
| * [IWLAN] log enhancemnet - |
| * A. apply DHL new log API |
| * B. log enhancement - primitives number to enum |
| * change: |
| * D2RM, L4C, SDM, ATP |
| * no change: |
| * WO, L4BNW, SIM, L4BPWR, IMC |
| * |
| * ATP: |
| * 1. ESRVSTATE |
| * 2. ECNCFG |
| * 3. EWIFIEN |
| * 4. EWFCPREF |
| * 5. EWIFIASC |
| * 6. Remove EPLWTH, EGREG |
| * 7. EIWLPING |
| * 8. EIRAT |
| * |
| * 05 15 2018 ben.chiu |
| * [MOLY00326014] [Gen95][MSPM] SW changes check in UMOLYE |
| * |
| * SRU2.0 and MPSM (include REG UA/IMCB/IMC part) |
| * |
| * 02 12 2018 ben.chiu |
| * [MOLY00307329] [UMOLYE][Volunteer Patch][IMS]Dual IMS registration enhacement |
| * |
| * UMOLYE, IMS part - Dual IMS registration latency improvement |
| * |
| * 02 12 2018 ben.chiu |
| * [MOLY00307329] [UMOLYE][Volunteer Patch][IMS]Dual IMS registration enhacement |
| * UMOLYE, IMS part - Dual IMS registration latency improvement |
| * |
| * 01 09 2018 ben.chiu |
| * [MOLY00299550] [MP2][MT6763][Bianco][N1][India FT][Chennai][WW FT][IMS][FDD][RJIO][V-ECC_011]Emergency call is getting disconnected when we remove sim card during ECC call - IMS part |
| * |
| * IMS part - ECC call and plug-out SIM |
| * |
| * 11 22 2017 yulong.chang |
| * [MOLY00291144] [VDM][Verizon][WiFi] UE will not select CS domain when T_ePDG_CS is ongoing (VDM part) |
| * VzW_2017June_VZ_REQ_WIFI_2990111 T_ePDG_CS (VDM part) |
| * |
| * 11 22 2017 yulong.chang |
| * [MOLY00290314] [VDM][Hugeland Tool] Enhanced the delay release CS semaphore mechanism (VDM part) |
| * |
| * Enhanced delay release CS semaphore (VDM part) |
| * |
| * 11 22 2017 yulong.chang |
| * [MOLY00290314] [VDM][Hugeland Tool] Enhanced the delay release CS semaphore mechanism (VDM part) |
| * Enhanced delay release CS semaphore (VDM part) |
| * |
| * 11 16 2017 ben.chiu |
| * [MOLY00290015] [LR12A.R2.MP] L+L New Feature: Occupy HPS for IMS RE-REG (IMS common header) |
| * |
| * IMS request HPS for re-reg/re-sub - IMS common interface |
| * |
| * 08 04 2017 ssu-hsien.wu |
| * [MOLY00268620] [VzW][CDMA-less][UMOLYA][Volunteer Patch] IMC patch back. |
| * |
| * 04 07 2017 yingfui.hung |
| * [MOLY00240312] [93] CT VoLTE modem re-architecture |
| * |
| * . |
| * |
| * 01 11 2017 ben.chiu |
| * [MOLY00220510] [93 PREIT_DEV][UMOLYA] Rename IMSP interface/context/API to ATP and reorg folder layout |
| * |
| * [IMC]ATP rename patch back |
| * |
| * 06 24 2016 benjamin.kuo |
| * [MOLY00185907] [MT6293] [ENAS] UMOLY merge to UMOLYA |
| * sync. UMOLY to UMOLYA: common part |
| * |
| * 06 01 2016 kuan-wei.chen |
| * [MOLY00146327] [VzW] hVoLTE implementation |
| * vzw patchback - L4, VDM |
| * |
| * 03 28 2016 shih-che.chou |
| * [MOLY00171298] [RAC] Sync from LR11 to UMOLY |
| * . |
| * |
| * 12 31 2015 ariel.lin |
| * [MOLY00155610] [91VzW] IMS over eHRPD patch back |
| * . |
| * |
| * 12 23 2015 allen.hsu |
| * [MOLY00154513] [MT6755][VzW][chipset][RDIT][Intertek][Sprient][Multi][LTEC2K][iRAT][4.5] IMS abnormal trigger register on MD3 1xRTT or eHRPD |
| * |
| * add RAT_NONE for +EIMSINFO. |
| * |
| * 09 17 2015 ben.chiu |
| * [MOLY00141935] [IMS interface][version#0x39]IMS interface v1.2 check-in |
| * (v1.2)ims interface re-org |
| * |
| * 08 26 2015 ben.chiu |
| * [MOLY00138217] [ViLTE] M0 migration ViLTE feature Interface |
| * ViLTE interface patch back |
| * |
| * 07 31 2015 lexel.yu |
| * [MOLY00085703] [VDM][MT6291] Sync MOLY to UMOLY |
| * [MOLY00090762] [LTE][E911]Device is unable to initiate VoLTE E-911 calls with No SIM card |
| * |
| * 07 30 2015 ariel.lin |
| * [MOLY00125491] [Interface][MPGATE][MT6795][L1][VoLTE][HongKong][FT][Cross-Operators] swap the hold call then hang up one call , UE-A can not unhold the another call |
| * add new call stop cause. |
| * |
| * 07 09 2015 nick.wang |
| * [MOLY00127009] WFC Patch back to UMOLY- interface part |
| * .moly wfc interface patch |
| * |
| * 07 09 2015 nick.wang |
| * [MOLY00127009] WFC Patch back to UMOLY- interface part |
| * .jade interface sync |
| * |
| * 07 03 2015 ariel.lin |
| * [MOLY00125491] [Interface][MPGATE][MT6795][L1][VoLTE][HongKong][FT][Cross-Operators] swap the hold call then hang up one call , UE-A can not unhold the another call |
| * add new call stop cause. |
| * |
| * 06 17 2015 nick.wang |
| * [MOLY00118763] [WFC] feature patch back IMS interface for MD (MP7) |
| * .IMS interface |
| * |
| * 06 09 2015 benjamin.kuo |
| * [MOLY00119265] [WFC] feature patch back for VDM/SDM/ATP - interface/SAP parts |
| * interface - common part. |
| * 04 17 2015 nick.wang |
| * [MOLY00098970] [ALPS01981207] [L][WFC] firt patch feature in |
| * .merge 1224875 |
| * |
| * 04 17 2015 ben.chiu |
| * [MOLY00108033] [VoLTE][TMOUS][Volunteer Patch] CALL ERROR CODE HANDLING(CALL PERFORMANCE) |
| * TMOUS MOS patch back |
| * 04 09 2015 nick.wang |
| * [MOLY00098970] [ALPS01981207] [L][WFC] firt patch feature in |
| * . |
| * confirm patched |
| * |
| * 04 02 2015 benjamin.kuo |
| * [MOLY00105813] [WFC] migrate VDM from WFC.FPB to CMCCVOLTE.WFC.FPB |
| * . |
| * |
| * 04 02 2015 benjamin.kuo |
| * [MOLY00105813] [WFC] migrate VDM from WFC.FPB to CMCCVOLTE.WFC.FPB |
| * .interface part |
| * |
| * 04 01 2015 danny.kuo |
| * [MOLY00097520] [WFC] SDM wifi calling support |
| * . |
| * |
| * 04 01 2015 danny.kuo |
| * [MOLY00097520] [WFC] SDM wifi calling support |
| * . |
| * |
| * 04 01 2015 danny.kuo |
| * [MOLY00097520] [WFC] SDM wifi calling support |
| * . |
| * |
| * 03 03 2015 allan.ke |
| * [MOLY00097577] [K2][CMCC][DSDS][VoLTE][HZ][NV-IOT][Conference] 6.4.5.9 VoLTE MT hangup after it happens SRVCC. |
| * . |
| * |
| * 02 13 2015 allan.ke |
| * [MOLY00096007] [L MR1] Transfer call number to CS domain when performing SRVCC |
| * . |
| * |
| * 02 05 2015 allan.ke |
| * [MOLY00095053] [CMCC VoLTE][VDM] Report AP correct call disconnect reason to trigger normal to emergency redial |
| * . |
| * |
| * 02 04 2015 ariel.lin |
| * [MOLY00093808] [VoLTE][Volunteer Patch] Migration from Lrefac/CMCC to MP7 (MR0 --> MR1 activity) |
| * Merge from MP6.CMCC3 to MP7.FPB. |
| * |
| * 02 04 2015 allan.ke |
| * [MOLY00092209] [CMCC VoLTE] @o_Conference call |
| * |
| * 02 04 2015 allan.ke |
| * [MOLY00092209] [CMCC VoLTE] @o_Conference call |
| * . |
| * 04 27 2015 ben.chiu |
| * [MOLY00109234] [VoLTE][Volunteer Patch] MP7.CMCCVOLTE.FPB merge back to MP7/MP7.CMCC |
| * MP7.CMCCVOLTE.FPB merge back to MP7 |
| * |
| * |
| * 04 27 2015 ben.chiu |
| * [MOLY00109234] [VoLTE][Volunteer Patch] MP7.CMCCVOLTE.FPB merge back to MP7/MP7.CMCC |
| * MP7.CMCCVOLTE.FPB merge back to MP7 |
| * |
| * 12 12 2014 ben.chiu |
| * [MOLY00059341] [6290E1][VoLTE][IT][Volunteer Patch] |
| * CMCC requirement 6.7, 380 handling |
| * |
| * 08 14 2014 jinghan.wang |
| * [MOLY00075286] [VDM] IMS MO call timeout (dedicated bearer setup failure) trigger call retry on CS domain |
| * IMS MO call timeout trigger call retry on CS domain - VDM TRK part |
| * |
| * 08 13 2014 ariel.lin |
| * [MOLY00064412] [VoLTE][Volunteer Patch] |
| * MP6 merge back to TRUNK |
| * |
| * 07 09 2014 ariel.lin |
| * [MOLY00071716] [VoLTE][volunteer patch] Add timer for protect the period of sending INVITE request to bandwidth reservation |
| * link to ALPS01634796 |
| * |
| * 07 07 2014 benjamin.kuo |
| * [MOLY00071459] Add Mobility Management for IMS Voice Termination |
| * MMIVT2MP6 |
| * |
| * 07 07 2014 benjamin.kuo |
| * [MOLY00071459] Add Mobility Management for IMS Voice Termination |
| * MMIVT2MOLY |
| * |
| * 06 04 2014 ben.chiu |
| * [MOLY00059341] [6290E1][VoLTE][IT][Volunteer Patch] |
| * Integration change for 504 cause |
| * |
| * 06 04 2014 ben.chiu |
| * [MOLY00059341] [6290E1][VoLTE][IT][Volunteer Patch] |
| * 504 cause |
| * |
| * 03 17 2014 ben.chiu |
| * [MOLY00059341] [6290E1][VoLTE][IT][Volunteer Patch] |
| * SRVCC cause mapping to error report |
| * |
| * 03 17 2014 ben.chiu |
| * [MOLY00059341] [6290E1][VoLTE][IT][Volunteer Patch] |
| * Add SRVCC cause |
| * |
| * 02 17 2014 ben.chiu |
| * [MOLY00056189] [6290E2][VoLTE][SRVCC] New feature for SRVCC R10 - IMC part |
| * check-in SRVCC R10 feature for IMC and /modem_interface/ims |
| * |
| * 02 05 2014 benjamin.kuo |
| * [MOLY00055409] [MT6582LTE][VoLTE][AdvIT][MO] NO AT Command Response for AT+CMMIVT? command |
| * Fix build error. |
| * |
| * 01 22 2014 ben.chiu |
| * [MOLY00054726] [6290E2][VoLTE][AdvIT][Emerg] change IMS reg state enum and disable emergency IMS reg state indication to AP |
| * change IMS reg state enum |
| * |
| * 01 14 2014 ben.chiu |
| * [MOLY00053410] [VoLTE][IMC] merge IMC to MOLY TRUNK |
| * AT+CDU=0 feature in |
| * |
| * 01 14 2014 ben.chiu |
| * [MOLY00053410] [VoLTE][IMC] merge IMC to MOLY TRUNK |
| * Add IMC handle for ads ctrl to VDM |
| * |
| * 01 13 2014 ben.chiu |
| * [MOLY00053410] [VoLTE][IMC] merge IMC to MOLY TRUNK |
| * Add ads_ctrl message to VDM for Test Mode |
| * |
| * 12 09 2013 ben.chiu |
| * [MOLY00049586] [6290E1][VoLTE][IT][Volunteer Patch] submit advanced call feature |
| * SS phase2 conferce call check-in |
| * for IMCB pre-checkin (if failed the Basic IT, it will be rollback) |
| * |
| * 12 10 2013 vend_edwin.liu |
| * ATP. |
| * |
| * 11 27 2013 ben.chiu |
| * [MOLY00048108] [MT6582LTE][IMS][VoLTE][Basic IT][Volunteer Patch] IMS enable/disable feature-in |
| * IMS enable/disable feature-in for IMC related part |
| * |
| * 11 27 2013 chinte.chen |
| * [MOLY00048106] [MT6582LTE][IMS][VoLTE][Basic IT][IT3-144] add result to RecvSMSRsp to handle multiple MT SMS simulatously |
| * . |
| * |
| * 11 25 2013 ben.chiu |
| * [MOLY00047708] [6290E1][VoLTE][IT][Volunteer Patch] Add IMS enable/disable feature |
| * pre-checkin ims_dereg_cause_enum |
| * |
| * 09 12 2013 ben.chiu |
| * [MOLY00037010] [6290E1][VoLTE][IT]IMS DEV IMC code check-in |
| * IMC merge code v1, sync to Ben's CBR CL: 258323 |
| *****************************************************************************/ |
| |
| #ifndef _IMS_COMMON_DEF_H_ |
| #define _IMS_COMMON_DEF_H_ |
| |
| #include "kal_general_types.h" |
| #include "kal_public_defs.h" |
| |
| // To use some enums such as ue_mode_enum, voice_domain_preference_enum, ... |
| #include "l3_inc_enums.h" |
| #include "ps_public_enum.h" |
| |
| /****************************************************************************** |
| * Constant |
| *****************************************************************************/ |
| #define IMC_SMS_SUCCESS 1 |
| #define IMC_SMS_FAIL 0 |
| |
| #define IMC_ATCMD_MAX_CMDLINE_LEN (MD_ATCMD_LEN - MD_ATCMD_PREFIX_LEN) |
| #define IMC_MAX_ILM_BUFFER_LEN IMC_IPC_BODY_LNE - 4 |
| #define IMC_IPC_BODY_LNE 3392 |
| |
| #define IMCB_IMC_MAX_SDP_FMTP_SUB_VALUE_LENGTH 16 |
| #define IMCB_IMC_MAX_RED_LEVEL 3 |
| #define IMCB_IMC_MAX_RECV_CODEC_LIST_LENGTH 8 |
| |
| #define IMCB_IMC_IPADDR_LENGTH 16 |
| |
| #define IMS_P_ASSERT_URI_LEN 512 |
| |
| #define MAX_CC_ATD_NUM_LEN 81 |
| #define MAX_C2K_SMS_DA (20+1) |
| |
| #define MD_ATCMD_LEN 2048 |
| #define MD_ATCMD_PREFIX_LEN 20 |
| |
| #define VOLTE_MAX_ACCOUNT_NUM 4 |
| #define VOLTE_MAX_CALL_SESSION (3*VOLTE_MAX_ACCOUNT_NUM) |
| #define VOLTE_MAX_ADDRESS_LENGTH 64 |
| #define VOLTE_MAX_IF_NAME_LENGTH 16 |
| #define VOLTE_MAX_AUTH_NC 12 |
| #define VOLTE_MAX_AUTH_NONCE 64 |
| #define VOLTE_MAX_AUTH_REALM 32 |
| #define VOLTE_MAX_AUTH_RESPONSE 256 |
| #define VOLTE_MAX_AUTH_AUTS 256 |
| #define VOLTE_MAX_AUTH_CK 256 |
| #define VOLTE_MAX_AUTH_IK 256 |
| #define VOLTE_MAX_TIME_STAMP_LENGTH 32 |
| #define VOLTE_MAX_CELL_ID_LENGTH 64 |
| #define VOLTE_MAX_CALL_ID_LENGTH 128 |
| #define VOLTE_MAX_REG_CAPABILITY_LENGTH 256 |
| #define VOLTE_MAX_SSID_LENGTH 32 |
| #define MD_ATCMD_LEN 2048 |
| #define MD_ATCMD_PREFIX_LEN 20 |
| #define VOLTE_MAX_REG_UID_LENGTH 256 |
| #define VOLTE_MAX_DOMAIN_NAME_LENGTH 256 |
| #define VOLTE_MAX_ADDRESS_LIST_LENGTH 256 |
| #define VOLTE_MAX_IMEI_LENGTH 20 |
| #define VOLTE_MAX_IMEI_SVN_LENGTH 4 |
| #define VOLTE_MAX_URI_LENGTH 128 |
| #define VOLTE_MAX_ASSOCIATED_URI (VOLTE_MAX_URI_LENGTH << 2) |
| #define VOLTE_MAX_GRUU_LENGTH 128 |
| #define VOLTE_MAX_SERVICE_ROUTE_LENGTH 512 |
| #define VOLTE_MAX_TIMESTAMP_LENGTH 256 |
| #define VOLTE_MAX_SECURIT_VERIFY_LENGTH 768 //6 algo combo |
| #define VOLTE_MAX_USER_AGENT_LENGTH 256 |
| #define VOLTE_MAX_P_ACCESS_NETWORK_INFO_LENGTH 256 |
| #define VOLTE_MAX_DIGIT_PIDENTIFIER_LENGTH 256 |
| #define VOLTE_MAX_DIGIT_PPA_LENGTH 4096 |
| #define VOLTE_REG_MAX_UUID_LENGTH 32 |
| #define VOLTE_MAX_SDP_PARAMETER_SET_LENGTH 256 // H.264, Spros parameter sets, must align with LTE_VT_SRV_UA_PARAMETER_SIZE_MAX. |
| #define VOLTE_MAX_SDP_FMTP_TOT_VALUE_LENGTH 32 // The maximum length of total fmtp specific parameter key and value, must align with LTE_VT_SRV_UA_FMTP_SIZE_MAX. |
| #define VOLTE_IPADDR_LENGTH 16 |
| #define VOLTE_MAX_SDP_FMTP_SUB_VALUE_LENGTH 16 |
| #define VOLTE_MAX_SDP_EGBYTE_LENGTH 8 |
| #define VOLTE_MAX_CNAME_LENGTH 52 |
| #define VOLTE_MAX_ERROR_RESPONSE_LIST 21 |
| #define VOLTE_MAX_REQUEST_LINE_LENGTH 512 |
| #define VOLTE_SUB_SERVICE_LENGTH 128 //for emergency extended sub_service |
| |
| |
| /*****imc_general_def.h START*****/ |
| #define IMC_MAX_CELL_ID_LEN 64 |
| #define IMC_MAX_PLMN_LEN 8 /* WFC four bytes in hex, 6 + '\0' */ |
| #define IMC_MAX_LAC_LEN 8 /* WFC four bytes in hex, 4 + '\0' */ |
| #define IMC_MAX_CI_LEN 12 /* WFC four bytes in hex, 8 + '\0' */ |
| #define IMC_MAX_IMEI_LEN 20 |
| #define IMC_MAX_IMEI_SVN_LEN 4 |
| #define IMC_MAX_MNC_MCC_LEN 4 |
| #define IMC_MAX_IMPU_NUM 5 |
| #define IMC_MAX_IMPU_LEN 256 |
| #define IMC_MAX_IMPU_TLV_LEN 2048 |
| #define IMC_MAX_IMPI_LEN 256 |
| #define IMC_MAX_DOMAIN_NAME_LEN 256 |
| #define IMC_MAX_IMSI_LEN 16 |
| #define IMC_MAX_RESPONSE_LEN 256 |
| #define IMC_MAX_AUTS_LEN 256 |
| #define IMC_MAX_CK_LEN 256 |
| #define IMC_MAX_IK_LEN 256 |
| #define IMC_MAX_NONCE_LEN 64 |
| #define IMC_MAX_NC_LEN 12 |
| #define IMC_MAX_AUTN_LEN 32 |
| #define IMC_MAX_RAND_LEN 32 |
| #define IMS_PCSCF_MAX_NUM 16 |
| #define IMC_MAX_SIM_SMSP_LEN 256 |
| #define IMC_MAX_USIM_MSISDN_LEN 12 |
| #define IMC_MAX_USIM_PSISMSC_LEN 256 |
| #define IMC_MAX_ISIM_PSISMSC_LEN 256 |
| #define IMC_MAX_XUI_LEN 512 |
| #define IMC_MAX_CALL_NUM_IN_CONFERENCE 5 |
| #define IMC_MAX_URI_LENGTH 128 |
| #define IMC_MAX_ASSERTED_URI (IMC_MAX_URI_LENGTH << 2) |
| #define IMC_MAX_CONF_CONTROL_URI_LENGTH 512 |
| #define IMC_CALL_INVAL_ID 255 |
| #define IMC_CALL_MAX_NUM 16 |
| #define IMC_P_ASSERT_URI_LEN 128 |
| #define IMC_PHONE_NUM_LEN 64 |
| #define IMC_MAX_SMS_TPDA_LEN (21) |
| #define IMC_MAX_REASON_TEXT_LENGTH 128 |
| #define IMC_MAX_EMERGENCY_AID_LEN 32 |
| #define IMC_MAX_IMS_NOTIFY_EXT_LEN 64 |
| #define IMC_MAX_IF_NAME_LENGTH 16 |
| #define IMC_MAX_UUID_LEN 40 |
| #define IMC_MAX_SSID_LEN 32 // SSID length is in at maximum 32 octets |
| |
| #define IMC_IPV4_ADDR_LEN 0x04 |
| #define IMC_IPV6_ADDR_LEN 0x10 |
| #define IMC_PCSCF_MAX_NUM 10 // PCSCF discovery |
| |
| #define IMC_SUB_SERVICE_LENGTH 128 //for emergency extended sub_service |
| |
| /* C2K */ |
| #define IMC_MAX_SID_LEN 8 |
| #define IMC_MAX_NID_LEN 8 |
| #define IMC_MAX_PZID_LEN 4 |
| #define IMC_MAX_BASE_ID_LEN 8 |
| #define IMC_MAX_SECTOR_ID_LEN 36 |
| #define IMC_MAX_SUBNET_LENGTH_LEN 4 |
| #define IMC_MAX_CARRIER_ID_LEN 8 |
| |
| #ifdef __NG_ECALL_SUPPORT__ |
| /*ECALL*/ |
| #define IMS_MAX_MSD_LENGTH 140 |
| #endif |
| |
| #define UNIQUE_NAME MAKE_NAME(__LINE__) |
| #define MAKE_NAME(line) MAKE_NAME2(line) |
| #define MAKE_NAME2(line) constraint_ ## line |
| |
| #define MAKE_VALUE_TO_STRING(x) #x |
| #define MAKE_VALUE(x) MAKE_VALUE_TO_STRING(x) |
| #define MAKE_VAR_NAME_VALUE(var) #var "=" MAKE_VALUE(var) |
| /*#pragma message(MAKE_VAR_NAME_VALUE(MSG_ID_WRAP_IMSA_IMCB_BEGIN))*/ |
| |
| #define IMC_CHK(expr) enum { UNIQUE_NAME = (1/(expr))}; |
| |
| #define IMC_CHK_STRUCT_SIZE(x,y) IMC_CHK(sizeof(x) == sizeof(y)) |
| #define IMC_CHK_ENUM(x,y) IMC_CHK((x) == (y)) |
| |
| /* IMS Bearer ID macros */ |
| #define IMS_PSI_QFI_TO_BID(_psi_, _qfi_) (imcf_bid_t)(((_psi_&0xFF)<<8) | (_qfi_&0xFF)) |
| #define IMS_EBI_TO_BID(_ebi_) (imcf_bid_t)(_ebi_&0xFF) |
| #define IMS_BID_GET_PSI(_bid_) (kal_uint8)((_bid_>>8)&0xFF) |
| #define IMS_BID_GET_QFI(_bid_) (kal_uint8)(_bid_&0xFF) |
| #define IMS_BID_GET_EBI(_bid_) IMS_BID_GET_QFI(_bid_) |
| |
| #define IMS_DEFAULT_BID_GET_PDN_ID(_default_bid_) \ |
| (kal_uint8)((IMS_BID_GET_PSI(_default_bid_) != 0) ? \ |
| IMS_BID_GET_PSI(_default_bid_) : IMS_BID_GET_EBI(_default_bid_)) |
| |
| /* for multiple VoLTE or VoLTE work on SIM2, we should think about another solution */ |
| #if defined(__MULTIPLE_IMS_SUPPORT__) && defined(__IMC_MULTIPLE_CONTEXT__) |
| #define IMC_SIM_NUM (MAX_SIM_NUM) |
| #else |
| #define IMC_SIM_NUM 1 |
| #endif |
| /*****imc_general_def.h END*****/ |
| |
| #if defined(__MULTIPLE_IMS_SUPPORT__) && defined(__IMC_MULTIPLE_CONTEXT__) |
| #define VOLTE_MAX_SIM_NUM (IMC_SIM_NUM) |
| #else |
| #define VOLTE_MAX_SIM_NUM (1) |
| #endif |
| |
| /* Old definition, don't use */ |
| #define VOlTE_MAX_SIM_NUM VOLTE_MAX_SIM_NUM |
| |
| /* we use it overwrighte VOLTE_MAX_ACCOUNT_NUM */ |
| #define VOLTE_MAX_UA_ACCOUNT_NUM ((VOLTE_MAX_SIM_NUM) * (IMC_ACCT_TY_MAX)) |
| #define VOLTE_MAX_PROFILELEVEL_SIZE (32) |
| #define VOLTE_MAX_EXTMAP_URI_SIZE (256) |
| #define VOLTE_MAX_BYTESTRING_SIZE (256) |
| #define VOLTE_MAX_SUB_PARAM_LENGTH (128) |
| #define VOLTE_MAX_EXTMAP_NUM (4) // RFC 5285 |
| #define VOLTE_MAX_RTCP_FB_SIZE (8) |
| #define VOLTE_MAX_IMAGE_NUM (4) |
| #define VOLTE_MAX_PS_NUM (32) |
| #define VOLTE_MAX_VIDEO_CAP_NUM (4) |
| #define VOLTE_MAX_PARAM_SET_SIZE_IN (64) |
| #define VOLTE_INVALID_CALL_ID (255) |
| #define VOLTE_IS_FAKE_CALL_ID(X) ((X>VOLTE_MAX_CALL_SESSION && X<VOLTE_INVALID_CALL_ID)?1:0) |
| #define VOLTE_MAX_REG_RETRY_COUNT (5) |
| #define VOLTE_MAX_SUB_RETRY_COUNT VOLTE_MAX_REG_RETRY_COUNT |
| #define VOLTE_MAX_REG_RETRY_INTERVAL (10) |
| #define VOLTE_MAX_SUB_RETRY_INTERVAL VOLTE_MAX_REG_RETRY_INTERVAL |
| #define VOLTE_KEEP_ALIVE_DFLT_CMCC (3) |
| #define VOLTE_MAX_HIS_INFO_NUM (16) |
| #define VOLTE_MAX_TAG_LENGTH (64) |
| #define VOLTE_MAX_CELL_INFO_AGE_LENGTH (9) |
| #define VOLTE_MAX_SIP_FLOW_LENGTH (512) |
| #define VOLTE_MAX_CODEC_LIST_LENGTH (256) |
| #define VOLTE_MAX_UUID_LENGTH IMC_MAX_UUID_LEN |
| #define VOLTE_MAX_SAME_PCSCF_RETRY_COUNT (3) |
| #define VOLTE_MAX_VT_RTP_PORT_LIST_NUM (32) |
| |
| #define VOLTE_MAX_CALL_SESSION (3*VOLTE_MAX_ACCOUNT_NUM) |
| #define VOLTE_MAX_SRVCC_CALLS (7) |
| #define VOLTE_MAX_CONF_CONTROL_URI_LENGTH (IMC_MAX_CONF_CONTROL_URI_LENGTH) |
| #define VOLTE_MAX_MNC_MCC_LENGTH (4) |
| #define VOLTE_MAX_ASSOCIATED_URI (VOLTE_MAX_URI_LENGTH << 2) |
| #define VOLTE_MAX_ASSERTED_URI (VOLTE_MAX_URI_LENGTH << 2) |
| #define VOLTE_MAX_IP_LENGTH (16) |
| #define VOLTE_MAX_REG_UIDS_LENGTH IMC_MAX_IMPU_TLV_LEN |
| #define VOLTE_MAX_IMSI_LENGTH (16) |
| #define VOLTE_MAX_CALL_CAPABILITY_LENGTH (128) |
| #define VOLTE_MAX_RTP_ADDRESS_LENGTH (64)// shall be align to SDP c attribute |
| //#define VOLTE_MAX_SDP_FMTP_SUB_VALUE_LENGTH (16)// The maximum length of a fmtp specific parameter value |
| #define VOLTE_MAX_SDP_FMTP_SUB_VALUE_LENGTH_IN (32)// The maximum length of a fmtp specific parameter value internal |
| #define VOLTE_MAX_SDP_TWOBYTE_LENGTH (2) |
| //#define VOLTE_MAX_SDP_EGBYTE_LENGTH (8) |
| //#define VOLTE_IPADDR_LENGTH (16) // IP address in binary |
| #define VOLTE_MAX_DATA_TO_UPPER_LENGTH (4000) |
| #define VOLTE_MAX_DATA_TO_IMC_LENGTH (512) |
| #define VOLTE_MAX_SDP_RED_VALUE_LENGTH (16) |
| #define VOLTE_MAX_CALL_NUM_IN_CONF (5) |
| #define VOLTE_MAX_PLANI_LENGTH (256) |
| #define VOLTE_MAX_LEVEL_SIZE (20) |
| //#define VOLTE_MAX_CNAME_LENGTH (52) |
| #define VOLTE_USSD_STRING_MAX_LENGTH (1500) |
| #define VOLTE_USSD_LANGUAGE_MAX_LENGTH (32) |
| #define VOLTE_MAX_MSISDN_LENGTH (20) // dialing number |
| #define VOLTE_MAX_SMS_TPDA_LENGTH (21) |
| #define VOLTE_MAX_REASON_TEXT_LENGTH (128) |
| #define VOLTE_MAX_WARNING_TEXT_LENGTH (128) |
| |
| #define VOLTE_MAX_RECV_CODEC_LIST_LENGTH (IMCB_IMC_MAX_RECV_CODEC_LIST_LENGTH) // max codec list for downlink rtp |
| #define VOLTE_MAX_RED_LEVEL (IMCB_IMC_MAX_RED_LEVEL) // max red level |
| #define VOLTE_MAX_EXTRA_HEADER_SIZE (2048) // The maximum length of a AT command |
| |
| /****************************************************************************** |
| * Enum |
| *****************************************************************************/ |
| #ifdef __MULTIPLE_IMS_SUPPORT__ |
| typedef enum |
| { |
| IMS_MSPM_PROCEDURE_STATUS_STOP = 0, |
| IMS_MSPM_PROCEDURE_STATUS_START, |
| IMS_MSPM_PROCEDURE_STATUS_ENUM_NUM |
| } ims_mspm_procedure_status_enum; |
| |
| typedef enum |
| { |
| IMS_MSPM_PROCEDURE_INIT_REG = 0, |
| IMS_MSPM_PROCEDURE_INIT_REG_1, |
| IMS_MSPM_PROCEDURE_INIT_REG_2, |
| IMS_MSPM_PROCEDURE_INIT_REG_3, |
| IMS_MSPM_PROCEDURE_RE_REG, |
| IMS_MSPM_PROCEDURE_RE_REG_1, |
| IMS_MSPM_PROCEDURE_RE_REG_2, |
| IMS_MSPM_PROCEDURE_RE_REG_3, |
| IMS_MSPM_PROCEDURE_SUBSCRIBE, |
| IMS_MSPM_PROCEDURE_SUBSCRIBE_1, |
| IMS_MSPM_PROCEDURE_SUBSCRIBE_2, |
| IMS_MSPM_PROCEDURE_SUBSCRIBE_3, |
| IMS_MSPM_PROCEDURE_USSD, |
| IMS_MSPM_PROCEDURE_USSD_1, |
| IMS_MSPM_PROCEDURE_USSD_2, |
| IMS_MSPM_PROCEDURE_USSD_3, |
| IMS_MSPM_PROCEDURE_CONF_SUBSCRIBE, |
| IMS_MSPM_PROCEDURE_CONF_SUBSCRIBE_1, |
| IMS_MSPM_PROCEDURE_CONF_SUBSCRIBE_2, |
| IMS_MSPM_PROCEDURE_CONF_SUBSCRIBE_3, |
| IMS_MSPM_PROCEDURE_MWI_SUBSCRIBE, |
| IMS_MSPM_PROCEDURE_MWI_SUBSCRIBE_1, |
| IMS_MSPM_PROCEDURE_MWI_SUBSCRIBE_2, |
| IMS_MSPM_PROCEDURE_MWI_SUBSCRIBE_3, |
| IMS_MSPM_PROCEDURE_CALLPULL_SUBSCRIBE, |
| IMS_MSPM_PROCEDURE_CALLPULL_SUBSCRIBE_1, |
| IMS_MSPM_PROCEDURE_CALLPULL_SUBSCRIBE_2, |
| IMS_MSPM_PROCEDURE_CALLPULL_SUBSCRIBE_3, |
| IMS_MSPM_PROCEDURE_INIT_REG_LOW, |
| IMS_MSPM_PROCEDURE_INIT_REG_LOW_1, |
| IMS_MSPM_PROCEDURE_INIT_REG_LOW_2, |
| IMS_MSPM_PROCEDURE_INIT_REG_LOW_3, |
| IMS_MSPM_PROCEDURE_ENUM_NUM |
| } ims_mspm_procedure_enum; |
| #endif |
| |
| typedef enum { |
| IMS_IRAT_STATUS_IDLE = 0, |
| IMS_IRAT_STATUS_FROM_4_TO_2, |
| IMS_IRAT_STATUS_FROM_4_TO_3, |
| IMS_IRAT_STATUS_FROM_2_TO_4, |
| IMS_IRAT_STATUS_FROM_3_TO_4, |
| IMS_IRAT_STATUS_FROM_4_TO_23, |
| IMS_IRAT_STATUS_FROM_23_TO_4, |
| IMS_IRAT_STATUS_FROM_5_TO_2 = 7, |
| IMS_IRAT_STATUS_FROM_5_TO_3, |
| IMS_IRAT_STATUS_FROM_5_TO_23, |
| IMS_IRAT_STATUS_FROM_5_TO_4, |
| IMS_IRAT_STATUS_FROM_2_TO_5, |
| IMS_IRAT_STATUS_FROM_3_TO_5, |
| IMS_IRAT_STATUS_FROM_23_TO_5, |
| IMS_IRAT_STATUS_FROM_4_TO_5 = 14, |
| IMS_IRAT_STATUS_FROM_2_TO_3, |
| IMS_IRAT_STATUS_FROM_3_TO_2, |
| IMS_IRAT_STATUS_FROM_23_TO_2, |
| IMS_IRAT_STATUS_FROM_2_TO_23, |
| IMS_IRAT_STATUS_FROM_23_TO_3, |
| IMS_IRAT_STATUS_FROM_3_TO_23 = 20 |
| } ims_irat_status_enum; |
| |
| typedef enum |
| { |
| IMS_RAT_TYPE_2G = 0, |
| IMS_RAT_TYPE_3G_FDD, |
| IMS_RAT_TYPE_3G_TDD, |
| IMS_RAT_TYPE_4G_FDD, |
| IMS_RAT_TYPE_4G_TDD, |
| IMS_RAT_TYPE_5G_FDD, |
| IMS_RAT_TYPE_5G_TDD, |
| IMS_RAT_TYPE_NONE = 0xFF |
| } ims_rat_type_enum; |
| |
| typedef enum |
| { |
| C2K_RAT_TYPE_NONE = 0, |
| C2K_RAT_TYPE_1XRTT, |
| C2K_RAT_TYPE_HRPD, |
| C2K_RAT_TYPE_EHRPD, |
| } c2k_rat_type_enum; |
| |
| typedef enum |
| { |
| EPSFB_STAT_STARTED = 0, |
| EPSFB_STAT_SUCCESSFUL = 1, |
| EPSFB_STAT_FAILURE = 2 |
| }epsfb_stat_enum; |
| |
| typedef enum |
| { |
| EPSFB_TYPE_HANDOVER = 0, |
| EPSFB_TYPE_REDIRECTION =1 |
| }epsfb_type_enum; |
| |
| typedef enum |
| { |
| IMS_RCODE_OK, |
| IMS_RCODE_CONNECT, |
| IMS_RCODE_RING, |
| IMS_RCODE_NO_CARRIER, //3 |
| IMS_RCODE_ERROR, //4 |
| IMS_RCODE_BUSY = 7, |
| |
| /* Below are MTK proprietary result codes */ |
| IMS_RCODE_CONNECT_PS = 100, |
| |
| /* Below are result codes added for IMS */ |
| |
| } ims_result_code_enum; |
| |
| typedef enum |
| { |
| IMS_ERR_PHONE_FAILURE = 0, |
| IMS_ERR_OPERATION_NOT_ALLOWED_ERR = 3, |
| IMS_ERR_OPERATION_NOT_SUPPORTED = 4, |
| IMS_ERR_PH_SIM_PIN_REQUIRED = 5, |
| IMS_ERR_PH_FSIM_PIN_REQUIRED = 6, |
| IMS_ERR_PH_FSIM_PUK_REQUIRED = 7, |
| IMS_ERR_SIM_NOT_INSERTED = 10, |
| IMS_ERR_SIM_PIN_REQUIRED = 11, |
| IMS_ERR_SIM_PUK_REQUIRED = 12, |
| IMS_ERR_SIM_FAILURE = 13, |
| IMS_ERR_SIM_BUSY = 14, |
| IMS_ERR_SIM_WRONG = 15, |
| IMS_ERR_INCORRECT_PASSWD = 16, |
| IMS_ERR_SIM_PIN2_REQUIRED = 17, |
| IMS_ERR_SIM_PUK2_REQUIRED = 18, |
| IMS_ERR_MEM_FULL = 20, |
| IMS_ERR_INVALID_INDEX = 21, |
| IMS_ERR_NO_FOUND = 22, |
| IMS_ERR_TEXT_ERRSTRING_TOO_LONG_ERR = 24, |
| IMS_ERR_INVALID_CHARACTERS_IN_TEXT_ERRSTRING_ERR = 25, |
| IMS_ERR_DIAL_ERRSTRING_TOO_LONG_ERR = 26, |
| IMS_ERR_INVALID_CHARACTERS_IN_DIAL_ERRSTRING_ERR = 27, |
| IMS_ERR_NO_NW_SERVICE = 30, |
| IMS_ERR_NETWORK_TIMEOUT = 31, |
| IMS_ERR_NETWORK_NOT_ALLOWED = 32, |
| IMS_ERR_NW_PERSON_PIN_REQUIRED = 40, |
| IMS_ERR_NW_PERSON_PUK_REQUIRED = 41, |
| IMS_ERR_NW_SUB_PERSON_PIN_REQUIRED = 42, |
| IMS_ERR_NW_SUB_PERSON_PUK_REQUIRED = 43, |
| IMS_ERR_SP_PERSON_PIN_REQUIRED = 44, |
| IMS_ERR_SP_PERSON_PUK_REQUIRED = 45, |
| IMS_ERR_CORP_PERSON_PIN_REQUIRED = 46, |
| IMS_ERR_CORP_PERSON_PUK_REQUIRED = 47, |
| IMS_ERR_UNKNOWN = 100, |
| IMS_ERR_ILLEGAL_MS = 103, |
| IMS_ERR_ILLEGAL_ME = 106, |
| IMS_ERR_GPRS_NOT_ALLOWED = 107, |
| IMS_ERR_PLMN_NOT_ALLOWED = 111, |
| IMS_ERR_LA_NOT_ALLOWED = 112, |
| IMS_ERR_ROAMING_AREA_NOT_ALLOWED = 113, |
| IMS_ERR_SERV_OPTION_NOT_SUPPORTED = 132, |
| IMS_ERR_REQ_SERV_OPTION_NOT_SUBSCRIBED = 133, |
| IMS_ERR_SERV_OPTION_TEMP_OUT_OF_ORDER = 134, |
| IMS_ERR_GPRS_UNSPECIFIED_ERROR = 148, |
| IMS_ERR_PDP_AUTH_FAIL = 149, |
| IMS_ERR_INVALID_MOBILE_CLASS = 150, |
| IMS_ERR_LINK_NS_SP_PERSON_PIN_REQUIRED = 151, |
| IMS_ERR_LINK_NS_SP_PERSON_PUK_REQUIRED = 152, |
| IMS_ERR_LINK_SIM_C_PERSON_PIN_REQUIRED = 153, |
| IMS_ERR_LINK_SIM_C_PERSON_PUK_REQUIRED = 154, |
| |
| /* Below are MTK proprietary error codes */ |
| IMS_ERR_COMMAND_CONFLICT = 302, |
| IMS_NO_ERR = 600, |
| IMS_ERR_UNRECOGNIZED_CMD = 601, |
| IMS_ERR_RETURN_ERROR = 602, |
| IMS_ERR_SYNTEX_ERROR = 603, |
| IMS_ERR_UNSPECIFIED = 604, |
| IMS_ERR_DATA_TRANSFER_ALREADY = 605, |
| IMS_ERR_ACTION_ALREADY = 606, |
| IMS_ERR_NOT_AT_CMD = 607, |
| IMS_ERR_MULTI_CMD_TOO_LONG = 608, |
| IMS_ERR_ABORT_COPS = 609, |
| IMS_ERR_NO_CALL_DISC = 610, |
| IMS_ERR_BT_SAP_UNDEFINED = 611, |
| IMS_ERR_BT_SAP_NOT_ACCESSIBLE = 612, |
| IMS_ERR_BT_SAP_CARD_REMOVED = 613, |
| IMS_ERR_AT_NOT_ALLOWED_BY_CUSTOMER = 614 |
| } ims_err_id_enum; |
| |
| typedef enum |
| { |
| IMS_ECPI_DISC_CAUSE_XXX = 0 |
| } ims_ecpi_disc_cause_enum; |
| |
| typedef enum |
| { |
| WFC_PROFILE_CELLULAR_ONLY = 0, |
| WFC_PROFILE_WIFI_PREFERRED, |
| WFC_PROFILE_CELLULAR_PREFERRED, |
| WFC_PROFILE_WIFI_ONLY, |
| /* In IMS preferred mode voice service preference is: * |
| * 4G (VoLTE) - WiFi (VoWiFi) - 3G - 2G */ |
| WFC_PROFILE_IMS_PREFERRED, |
| WFC_PROFILE_NUM |
| } wfc_profile_enum; |
| |
| typedef enum |
| { |
| IMS_HANDOVER_STATUS_NONE = 0, |
| IMS_HANDOVER_STATUS_LTE_TO_WIFI, |
| IMS_HANDOVER_STATUS_WIFI_TO_LTE, |
| IMS_HANDOVER_STATUS_NR_TO_WIFI, |
| IMS_HANDOVER_STATUS_WIFI_TO_NR, |
| IMS_HANDOVER_STATUS_LTE_TO_VODATA, |
| IMS_HANDOVER_STATUS_VODATA_TO_LTE, |
| IMS_HANDOVER_STATUS_NR_TO_VODATA, |
| IMS_HANDOVER_STATUS_VODATA_TO_NR, |
| IMS_HANDOVER_STATUS_WIFI_TO_VODATA, |
| IMS_HANDOVER_STATUS_VODATA_TO_WIFI, |
| IMS_HANDOVER_STATUS_MAX, |
| } ims_handover_status_enum; |
| |
| // For extended DTMF operation commands from ATP to VDM |
| typedef enum |
| { |
| IMS_DTMF_ACTION_START = 0, |
| IMS_DTMF_ACTION_STOP |
| } ims_dtmf_action_enum; |
| |
| typedef enum |
| { |
| IMS_SERVICE_NORMAL_SERVICE = 0, /* NAS registration success */ |
| IMS_SERVICE_LIMITED_SERVICE, |
| IMS_SERVICE_NO_SERVICE /* plmn loss/idle oos happen */ |
| } ims_service_enum; |
| |
| typedef enum |
| { |
| CELL_NORMAL_SERVICE = 0, |
| CELL_LIMITED_SERVICE |
| } cell_service_enum; |
| |
| typedef enum |
| { |
| C2K_CELL_NO_SERVICE = 0, |
| C2K_CELL_NORMAL_SERVICE |
| } c2k_cell_service_enum; |
| |
| typedef enum |
| { |
| IMS_URI_TYPE_SIP = 0x01, |
| IMS_URI_TYPE_TEL = 0x02, |
| IMS_URI_TYPE_URN = 0x04 |
| }ims_uri_type_enum; |
| |
| /** |
| * MM means generic mobility management |
| * not for 2G MM module |
| */ |
| typedef enum |
| { |
| MM_IMS_VOICE_TERMINATION_DISABLED = 1, |
| MM_IMS_VOICE_TERMINATION_ENABLED |
| } mm_ims_voice_termination; |
| |
| typedef enum |
| { |
| IMS_SRVCC_CALL_NUM_FORMAT_UNSPECIFIED = 0, |
| IMS_SRVCC_CALL_NUM_FORMAT_URI = 1, |
| IMS_SRVCC_CALL_NUM_FORMAT_BCD = 2, |
| IMS_SRVCC_CALL_NUM_FORMAT_MAX, |
| } ims_srvcc_call_number_format_enum; |
| |
| typedef enum |
| { |
| HVOLTE_SRLTE_MODE = 0, // call domain in C2K |
| HVOLTE_VOPS_MODE = 1, // Suspend 1xRTT tune-away, call domain in IMS |
| HVOLTE_LWG_MODE = 2, // call domain in GW |
| HVOLTE_UNKNOWN_MODE = 0xFF |
| } hvolte_mode_enum; |
| |
| typedef enum |
| { |
| HVOLTE_CALL_DOMAIN_C2K = 0, |
| HVOLTE_CALL_DOMAIN_IMS = 1, |
| } hvolte_call_domain_enum; |
| |
| typedef enum |
| { |
| HVOLTE_DIAL_NONE = 0, |
| HVOLTE_DIAL_SILENT_REDIAL, |
| HVOLTE_DIAL_C2K_DIRECTLY, |
| HVOLTE_DIAL_MAX |
| } hvolte_dial_type_enum; |
| |
| typedef enum |
| { |
| HVOLTE_DISABLE = 0, |
| HVOLTE_AUTO_MODE,//=1 |
| HVOLTE_MANUAL_MODE,//=2 |
| HVOLTE_STATUS_MAX = HVOLTE_MANUAL_MODE |
| } hvolte_enable_status_enum; |
| |
| typedef enum |
| { |
| IMS_MEDIA_BEARER_DEACTIVATE = 0, |
| IMS_MEDIA_BEARER_ACTIVATE |
| } ims_media_bearer_status_enum; |
| |
| typedef enum { |
| IMS_CALL_STATUS_BEGIN = 0, |
| IMS_CALL_STATUS_CONNECTED, |
| IMS_CALL_STATUS_END, |
| } ims_call_status_enum; |
| |
| typedef enum _ims_reg_event_enum { |
| IMS_REG_EVENT_NORMAL = 0, /* default */ |
| IMS_REG_EVENT_PCO_FFOOH_5 = 1, |
| IMS_REG_EVENT_PCO_FF00H_5 = 1, |
| IMS_REG_EVENT_MAX |
| } ims_reg_event_enum; |
| |
| typedef enum { |
| IMS_SPECIAL_EVENT_NORMAL = IMS_REG_EVENT_NORMAL, /* default */ |
| IMS_SPECIAL_EVENT_PCO_FF00H_5 = IMS_REG_EVENT_PCO_FF00H_5, |
| IMS_SPECIAL_EVENT_CALL_OUTAGE_TEXT, |
| IMS_SPECIAL_EVENT_MAX |
| } ims_special_event_enum; |
| |
| typedef enum |
| { |
| TIMER_EPDG_CS_STOP = 0, |
| TIMER_EPDG_CS_START |
| } timer_epdg_cs_status_enum; |
| |
| typedef enum { |
| IMS_INET_METHOD_SIP_REGISTER, |
| IMS_INET_METHOD_SIP_INVITE, |
| IMS_INET_METHOD_SIP_REFER, |
| IMS_INET_METHOD_SIP_UPDATE, |
| IMS_INET_METHOD_SIP_CANCEL, |
| IMS_INET_METHOD_SIP_MESSAGE, |
| IMS_INET_METHOD_SIP_ACK, |
| IMS_INET_METHOD_SIP_BYE, |
| IMS_INET_METHOD_SIP_OPTIONS, |
| IMS_INET_METHOD_SIP_SUBSCRIBE, |
| IMS_INET_METHOD_SIP_NOTIFY, |
| IMS_INET_METHOD_SIP_PUBLISH, |
| IMS_INET_METHOD_SIP_INFO, |
| IMS_INET_METHOD_SIP_PRACK, |
| IMS_INET_METHOD_HTTP_GET, |
| IMS_INET_METHOD_HTTP_POST, |
| IMS_INET_METHOD_HTTP_TRACE, |
| IMS_INET_METHOD_HTTP_HEAD, |
| IMS_INET_METHOD_HTTP_PUT, |
| IMS_INET_METHOD_HTTP_DELETE, |
| IMS_INET_METHOD_HTTP_CONNECT, |
| IMS_INET_METHOD_RTSP_OPTIONS, |
| IMS_INET_METHOD_RTSP_REDIRECT, |
| IMS_INET_METHOD_RTSP_DESCRIBE, |
| IMS_INET_METHOD_RTSP_SETUP, |
| IMS_INET_METHOD_RTSP_PLAY, |
| IMS_INET_METHOD_RTSP_PAUSE, |
| IMS_INET_METHOD_RTSP_TEARDOWN, |
| IMS_INET_METHOD_RTSP_SET_PARAMETER, |
| IMS_INET_METHOD_PXY_DEBUG, |
| IMS_INET_METHOD_UNRECOGNIZED, |
| IMS_INET_METHOD_NUM, |
| }ims_inet_method_enum; |
| |
| /* enum */ |
| typedef enum |
| { |
| EXIT_ECBM_TIMER_EXPIRE, //leave ecbm on timer expiry |
| EXIT_ECBM_SECOND_CALL, //leave ecbm due to second call |
| EXIT_ECBM_T911 |
| } exit_ecbm_reason_enum; |
| |
| typedef enum { |
| RCS_REG_FEATURE_OFF = 0, |
| RCS_REG_FEATURE_ON, |
| RCS_REG_FEATURE_RE_TRANSMIT, |
| RCS_REG_STATE_REGISTERED, |
| RCS_REG_STATE_UNREGISTERED |
| } rcs_reg_state_enum; |
| |
| typedef enum { |
| IMS_SPECIAL_PROFILE_NONE = 0, |
| IMS_SPECIAL_PROFILE_VISIBLE_SIM = 1<<1, /*Visible SIM: Legacy*/ |
| IMS_SPECIAL_PROFILE_VISIBLE_SIM_VZ_CORE = 1<<2 /*Visible SIM: VZ Core*/ |
| }ims_special_profile_enum; |
| |
| typedef enum { |
| IMS_EM_REG_ABNORMAL_NONE = 0, |
| IMS_EM_REG_ABNORMAL_REG_FAIL = 1, |
| IMS_EM_REG_ABNORMAL_REG_SLOW = 2, |
| IMS_EM_REG_ABNORMAL_DEREG = 3 |
| } ims_em_reg_abnormal_type_enum; |
| |
| typedef enum{ |
| IMS_EM_REG_ABNORMAL_PDN_SLOW = 0, |
| IMS_EM_REG_ABNORMAL_SIP_SLOW = 1, |
| } ims_em_reg_abnormal_slow_type_enum; |
| |
| |
| typedef enum { |
| IMS_EM_REG_ABNORMAL_PDN_NOT_TRIGGERED = 0, |
| IMS_EM_REG_ABNORMAL_PDN_NOT_ESTABLISHED = 1, |
| IMS_EM_REG_ABNORMAL_SIP_NOT_SENT = 2, |
| IMS_EM_REG_ABNORMAL_SIP_GOT_ERROR = 3, |
| IMS_EM_REG_ABNORMAL_HO_REREG_FAIL = 4 |
| } ims_em_reg_abnormal_fail_state_enum; |
| |
| typedef enum { |
| IMS_EM_REG_ABNORMAL_DEREG_CS_NONE = 0, |
| IMS_EM_REG_ABNORMAL_DEREG_CS_CAP_NOT_SUPPORT = 1, |
| IMS_EM_REG_ABNORMAL_DEREG_CS_SIM_ERROR = 2, |
| IMS_EM_REG_ABNORMAL_DEREG_CS_INTERNAL_ERROR = 3, |
| IMS_EM_REG_ABNORMAL_DEREG_CS_CELL_RAT_NOT_FOUND = 4, |
| } ims_em_reg_abnormal_dereg_cause_enum; |
| |
| typedef enum { |
| IMS_EM_REG_ABNORMAL_REG_FAIL_REPORT_NONE = 0, |
| IMS_EM_REG_ABNORMAL_REG_FAIL_REPORT_FIRST_EVENT = 1, |
| IMS_EM_REG_ABNORMAL_REG_FAIL_REPORT_TIMER_EXPIRE = 2, |
| IMS_EM_REG_ABNORMAL_REG_FAIL_REPORT_EVENT_CHANGE = 3, |
| } ims_em_reg_abnormal_reg_fail_report_type_enum; |
| |
| typedef enum { |
| IMC_EMERGENCY_IND_BEARER_UNKNOWN_SERVICE = 0, |
| IMC_EMERGENCY_IND_BEARER_NOT_FOR_EMERGENCY_SERVICE, |
| IMC_EMERGENCY_IND_BEARER_FOR_EMERGENCY_SERVICE |
| } imc_emergency_ind_enum; |
| |
| typedef enum { |
| IMS_UE_SUPPORT = 1 << 0, |
| IMS_MOBILE_DATA_DISABLE = 1 << 1, |
| IMS_PDNGW_SUPPORT_IND = 1 << 2, |
| IMS_PDNGW_SUPPORT = 1 << 3, |
| IMS_PS_DATA_OFF_ENABLE = 1 << 4, |
| } ims_ps_data_off_status_enum; |
| |
| typedef enum { |
| IMS_EXEMPT_USSI = 1 << 0, |
| IMS_EXEMPT_MMTEL_VOICE = 1 << 1, |
| IMS_EXEMPT_MMTEL_VIDEO = 1 << 2, |
| IMS_EXEMPT_SMSOIP = 1 << 3, |
| } ims_ps_data_off_exempt_service_enum; |
| |
| typedef enum { |
| IMC_ACCT_TY_NORMAL = 0, |
| IMC_ACCT_TY_EMERGENCY = 1, |
| IMC_ACCT_TY_MAX |
| } imc_acct_type_enum; |
| |
| typedef enum |
| { |
| IMS_EPSFB_TIMER_START_WHEN_1XX = 1 << 0, //start epsfb_timer when send/recv 1xx response (include 100) |
| IMS_EPSFB_TIMER_START_WHEN_SDP_ANSWER = 1 << 1, //start epsfb_timer when send/recv initial SDP answer |
| } ims_epsfb_timer_start_enum; |
| |
| typedef enum |
| { |
| IMS_EPSFB_TIMER_STOP_WHEN_ECPI_6 = 1 << 0, //stop epsfb_timer when call setup complete |
| IMS_EPSFB_TIMER_STOP_WHEN_RING = 1 << 1, //stop epsfb_timer when ringing/ringback |
| IMS_EPSFB_TIMER_STOP_WHEN_BW_CNF = 1 << 2, //stop epsfb_timer when BW_CNF |
| IMS_EPSFB_TIMER_STOP_WHEN_DEDICATED = 1 << 3, //stop epsfb_timer when dedicated baerer setup, e.g. 5QI=1 (not include fallback to default) |
| } ims_epsfb_timer_stop_enum; |
| |
| typedef enum |
| { |
| IMS_TIMER_THROTTLING = 0, |
| IMS_TIMER_ESTABLISHMENT, |
| IMS_TIMER_VZW, |
| IMS_TIMER_EPSFB |
| } ims_timer_type_enum; |
| |
| typedef enum |
| { |
| IMS_TIMER_STATUS_START = 0, |
| IMS_TIMER_STATUS_STOP, |
| IMS_TIMER_STATUS_EXPIRY |
| } ims_timer_status_enum; |
| |
| typedef enum |
| { |
| IMS_EM_TIMER_TYPE_UNKNOWN = 0, |
| IMS_EM_TIMER_TYPE_E1 = 1, |
| IMS_EM_TIMER_TYPE_E2 = 2, |
| IMS_EM_TIMER_TYPE_E3 = 3, |
| |
| IMS_EM_TIMER_TYPE_MAX |
| } ims_em_timer_type_enum; |
| |
| typedef enum imcb_imc_func_class_enum { |
| IMCB_IMC_FC_RTP = (1<<0), |
| IMCB_IMC_FC_XMIT = (1<<1), |
| IMCB_IMC_FC_VOICE = (1<<2), |
| IMCB_IMC_FC_VIDEO = (1<<3), |
| IMCB_IMC_FC_DTMF = (1<<4), |
| IMCB_IMC_FC_CODEC = (1<<5), |
| /* WFC */ |
| IMCB_IMC_FC_HANDOVER = (1<<6), |
| /* TTY */ |
| IMCB_IMC_FC_TTY = (1<<7), |
| IMCB_IMC_FC_ALL = ((IMCB_IMC_FC_TTY<< 1)-1) |
| } imcb_imc_func_class_enum; |
| |
| /* WFC */ |
| typedef enum { |
| IMC_ACCESS_RAT_UNSPEC = 0, |
| IMC_ACCESS_RAT_LTE, |
| IMC_ACCESS_RAT_WIFI, |
| IMC_ACCESS_RAT_EHRPD, |
| IMC_ACCESS_RAT_GSM, |
| IMC_ACCESS_RAT_UMTS, |
| IMC_ACCESS_RAT_NR, |
| IMC_ACCESS_RAT_DATA_1, |
| IMC_ACCESS_RAT_DATA_2, |
| IMC_ACCESS_RAT_DATA_3, |
| IMC_ACCESS_RAT_DATA_4, |
| IMC_ACCESS_RAT_NUM, /*MAX */ |
| } imc_access_rat_type_enum; |
| |
| typedef enum |
| { |
| /* Ref: TS27.007 +CIREPH. |
| * NOTE 1: vSRVCC is a Rel-11 feature |
| * NOTE 2: Value 3, general non specific failure, might be used |
| * e.g. in the case of handover cancellation as specified in 3GPP |
| * TS 24.301 [83] subclause 6.6.2. |
| */ |
| SRVCC_STATUS_HO_STARTED = 0, // 0: SRVCC handover has started in the CS domain |
| SRVCC_STATUS_HO_SUCCESSFUL, // 1: SRVCC handover successful |
| SRVCC_STATUS_HO_FAILED, // 2: SRVCC or vSRVCC handover cancelled ("Handover Failure" sent) |
| SRVCC_STATUS_HO_CANCELLED, // 3: SRVCC or vSRVCC handover, general non specific failure |
| SRVCC_STATUS_HO_VSRVCC_STARTED, // 4: vSRVCC handover has started in the CS domain |
| SRVCC_STATUS_HO_VSRVCC_SUCCESSFUL, // 5: vSRVCC handover successful |
| SRVCC_STATUS_HO_MAX |
| } srvcc_status_enum; |
| |
| typedef enum |
| { |
| IMS_ACCESS_RAT_LTE = 0, |
| IMS_ACCESS_RAT_WIFI, |
| IMS_ACCESS_RAT_EHRPD, |
| IMS_ACCESS_RAT_GSM, |
| IMS_ACCESS_RAT_UMTS, |
| IMS_ACCESS_RAT_NR, |
| IMS_ACCESS_RAT_DATA_1, |
| IMS_ACCESS_RAT_DATA_2, |
| IMS_ACCESS_RAT_DATA_3, |
| IMS_ACCESS_RAT_DATA_4, |
| IMS_ACCESS_RAT_NUM |
| } ims_access_rat_enum; |
| |
| typedef enum |
| { |
| IMS_REG_STATE_UNREGISTERED = 0, |
| IMS_REG_STATE_REGISTERED, |
| IMS_REG_STATE_UNREGISTERED_START, |
| IMS_REG_STATE_REGISTERED_START |
| } ims_reg_state_enum; |
| |
| typedef enum |
| { |
| IMS_REG_SUB_STATE_UNSPEC = 0, |
| IMS_REG_SUB_STATE_UNREGISTERED, |
| IMS_REG_SUB_STATE_REGISTERED, |
| IMS_REG_SUB_STATE_UNREGISTERING, |
| IMS_REG_SUB_STATE_REGISTERING, |
| IMS_REG_SUB_STATE_REREGISTERING, |
| } ims_reg_sub_state_enum; |
| |
| |
| typedef enum |
| { |
| IMS_REG_TYPE_NORMAL = 0, |
| IMS_REG_TYPE_EMERGENCY |
| } ims_reg_type_enum; |
| |
| // Emergency Call Mode Preference |
| typedef enum |
| { |
| IMS_ECMP_UNSPEC, |
| IMS_ECMP_3GPP, |
| IMS_ECMP_WLAN, |
| IMS_ECMP_MAX |
| } ims_ecmp_enum; |
| |
| typedef enum |
| { |
| /* |
| <ext_info>: numeric value in hexadecimal format. The value range is from 1 to FFFFFFFF. It is a sum of hexadecimal values, each representing a particular IMS capability of the MT. The MT can have IMS capabilites not covered by the below list. This parameter is not present if the IMS registration status is "not registered". |
| 1 RTP-based transfer of voice according to MMTEL, see 3GPP TS 24.173 [87]. This functionality can not be indicated if the UE is not available for voice over PS, see 3GPP TS 24.229 [89]. |
| 2 RTP-based transfer of text according to MMTEL, see 3GPP TS 24.173 [87]. |
| 4 SMS using IMS functionality, see 3GPP TS 24.341 [101]. |
| 8 RTP-based transfer of video according to MMTEL, see 3GPP TS 24.173 [87]. |
| The hexadecimal values 10, 20, 40 ?80000 are reserved by the present document. |
| Example: The parameter <ext_info>=5 means that both RTP-based transfer of voice according to MMTEL and SMS using IMS functionality can be used. |
| */ |
| |
| IMS_REG_SRV_NONE = 0x00, |
| IMS_REG_SRV_VOICE = 0x01, |
| IMS_REG_SRV_TXT = 0x02, |
| IMS_REG_SRV_SMS = 0x04, |
| IMS_REG_SRV_VIDEO = 0x08, |
| |
| IMS_REG_SRV_ALL = (IMS_REG_SRV_VOICE | |
| IMS_REG_SRV_SMS | |
| IMS_REG_SRV_VIDEO), |
| |
| IMS_REG_SRV_BOTH = IMS_REG_SRV_VOICE | IMS_REG_SRV_SMS |
| }ims_reg_service_enum; |
| |
| typedef enum { |
| IMS_REG_SIP_URI_TYPE_MSISDN = 0, |
| IMS_REG_SIP_URI_TYPE_IMSI = 1, |
| IMS_REG_SIP_URI_TYPE_MAX |
| } ims_reg_sip_uri_type_enum; |
| |
| typedef enum { |
| IMC_RAT_TYPE_NONE , |
| IMC_RAT_TYPE_2G = IMC_RAT_TYPE_NONE, |
| IMC_RAT_TYPE_3G_FDD, |
| IMC_RAT_TYPE_3G_TDD, |
| IMC_RAT_TYPE_4G_FDD, |
| IMC_RAT_TYPE_4G_TDD, |
| |
| /* WFC */ |
| IMC_RAT_TYPE_802_11, |
| IMC_RAT_TYPE_802_11a, |
| IMC_RAT_TYPE_802_11b, |
| IMC_RAT_TYPE_802_11g, |
| IMC_RAT_TYPE_802_11n, |
| IMC_RAT_TYPE_802_11ac, |
| |
| /* C2K */ |
| IMC_RAT_TYPE_1xRTT, |
| IMC_RAT_TYPE_HRPD, |
| IMC_RAT_TYPE_eHRPD, |
| |
| IMC_RAT_TYPE_5G_FDD, |
| IMC_RAT_TYPE_5G_TDD, |
| |
| IMC_RAT_TYPE_DATA_1, |
| IMC_RAT_TYPE_DATA_2, |
| IMC_RAT_TYPE_DATA_3, |
| IMC_RAT_TYPE_DATA_4, |
| |
| IMC_RAT_TYPE_MAX = IMC_RAT_TYPE_DATA_4, |
| IMC_RAT_TYPE_UNSPEC = 0x80, |
| } imc_rat_type_enum; |
| |
| typedef enum { |
| IMS_SMS_CAP_NONE = 0x0000, |
| IMS_SMS_CAP_3GPP = 0x0001, |
| IMS_SMS_CAP_N3GPP = 0x0002 |
| } ims_sms_cap_enum; |
| |
| typedef enum |
| { |
| IMS_SMS_CATEGORY_NORMAL = 0, |
| IMS_SMS_CATEGORY_EMERGENCY |
| } ims_sms_category_enum; |
| |
| #define VOLTE_NETWORK_TYPE_IS_WIFI(net_type) \ |
| ((net_type >= VoLTE_Event_Network_Type_802_11) && \ |
| (net_type <= VoLTE_Event_Network_Type_802_11ac)) |
| |
| #define VOLTE_NETWORK_TYPE_IS_23G(net_type) \ |
| ((net_type >= VoLTE_Event_Network_Type_GERAN) && \ |
| (net_type <= VoLTE_Event_Network_Type_UTRAN_TDD)) |
| |
| #define VOLTE_NETWORK_TYPE_IS_LTE(net_type) \ |
| ((net_type >= VoLTE_Event_Network_Type_E_UTRAN_FDD) && \ |
| (net_type <= VoLTE_Event_Network_Type_E_UTRAN_TDD)) |
| |
| #define VOLTE_NETWORK_TYPE_IS_NR(net_type) \ |
| ((net_type == VoLTE_Event_Network_Type_NR_FDD) || \ |
| (net_type == VoLTE_Event_Network_Type_NR_TDD)) |
| |
| #define VOLTE_NETWORK_TYPE_IS_DATA(net_type) \ |
| ((net_type >= VoLTE_Event_Network_Type_Data_1) && \ |
| (net_type <= VoLTE_Event_Network_Type_Data_4)) |
| |
| enum VoLTE_Event_Network_Type_e { |
| VoLTE_Event_Network_Type_Unspec = 0, |
| VoLTE_Event_Network_Type_Unknown = 1, |
| VoLTE_Event_Network_Type_802_11 = 2, |
| VoLTE_Event_Network_Type_802_11a = 3, |
| VoLTE_Event_Network_Type_802_11b = 4, |
| VoLTE_Event_Network_Type_802_11g = 5, |
| VoLTE_Event_Network_Type_802_11n = 6, |
| VoLTE_Event_Network_Type_802_11ac = 7, |
| VoLTE_Event_Network_Type_GERAN = 8, |
| VoLTE_Event_Network_Type_UTRAN_FDD = 9, |
| VoLTE_Event_Network_Type_UTRAN_TDD =10, |
| VoLTE_Event_Network_Type_CDMA2000 =11, |
| VoLTE_Event_Network_Type_E_UTRAN_FDD =12, |
| VoLTE_Event_Network_Type_E_UTRAN_TDD =13, |
| VoLTE_Event_Network_Type_NR_FDD =14, |
| VoLTE_Event_Network_Type_NR_TDD =15, |
| /*C2K*/ |
| VoLTE_Event_Network_Type_C2K_1xRTT =16, |
| VoLTE_Event_Network_Type_C2K_HRPD =17, |
| VoLTE_Event_Network_Type_C2K_eHRPD =18, |
| /*VoData*/ |
| VoLTE_Event_Network_Type_Data_1 =19, |
| VoLTE_Event_Network_Type_Data_2 =20, |
| VoLTE_Event_Network_Type_Data_3 =21, |
| VoLTE_Event_Network_Type_Data_4 =22, |
| /*add here*/ |
| VoLTE_Event_Network_Type_Max, |
| }; |
| |
| enum VoLTE_Event_Network_State_e { |
| VoLTE_Event_Network_State_Connected = 1, |
| VoLTE_Event_Network_State_Disconnected = 2, |
| VoLTE_Event_Network_State_Refresh = 3, |
| VoLTE_Event_Network_State_Lost = 4, |
| VoLTE_Event_Network_State_OOS_Start = 5, |
| VoLTE_Event_Network_State_OOS_End = 6, |
| /*add here*/ |
| VoLTE_Event_Network_State_OOS_Max, |
| }; |
| |
| typedef enum { |
| IMS_STK_SETUP_CALL_IF_NO_ANOTHER_CALL, |
| IMS_STK_SETUP_CALL_WITH_REDIAL_IF_NO_ANOTHER_CALL, |
| IMS_STK_SETUP_CALL_PUT_ANOTHER_HOLD, |
| IMS_STK_SETUP_CALL_WITH_REDIAL_PUT_ANOTHER_HOLD, |
| IMS_STK_SETUP_CALL_DISCON_ANOTHER, |
| IMS_STK_SETUP_CALL_WITH_REDIAL_DISCON_ANOTHER, |
| IMS_STK_SETUP_CALL_MAX |
| } ims_stk_setup_call_enum; |
| |
| typedef enum { |
| IMS_STK_CALL_SETUP = 0, |
| IMS_STK_CALL_SETUP_BUT_ICON_COULD_NOT_DSPL = 4 |
| } ims_stk_type_enum; |
| |
| enum VoLTE_Setting_Type_e { |
| /* ------------------------------------------------ */ |
| /* System */ |
| /* ------------------------------------------------ */ |
| VoLTE_Setting_System_Start_Code = 0, |
| VoLTE_Setting_System_Operator_ID = VoLTE_Setting_System_Start_Code + 1, // data type int |
| VoLTE_Setting_System_GENERAL_SETTING = VoLTE_Setting_System_Start_Code + 2, |
| |
| /* ------------------------------------------------ */ |
| /* Network Information */ |
| /* ------------------------------------------------ */ |
| VoLTE_Setting_Network_Information_Start_Code = 1000, |
| VoLTE_Setting_Net_Local_Address = VoLTE_Setting_Network_Information_Start_Code + 1, // data type is string |
| VoLTE_Setting_Net_Local_Port = VoLTE_Setting_Network_Information_Start_Code + 2, // data type int |
| VoLTE_Setting_Net_Local_Protocol_Type = VoLTE_Setting_Network_Information_Start_Code + 3, // UDP: 0, TCP: 1 |
| VoLTE_Setting_Net_Local_Protocol_Version = VoLTE_Setting_Network_Information_Start_Code + 4, // IPv4: 1, IPv6: 2 |
| VoLTE_Setting_Net_Local_IPSec_Port_Start = VoLTE_Setting_Network_Information_Start_Code + 5, |
| VoLTE_Setting_Net_Local_IPSec_Port_Range = VoLTE_Setting_Network_Information_Start_Code + 6, |
| VoLTE_Setting_Net_Local_RTP_RTCP_Port_Start = VoLTE_Setting_Network_Information_Start_Code + 7, |
| VoLTE_Setting_Net_Local_RTP_RTCP_Port_Range = VoLTE_Setting_Network_Information_Start_Code + 8, |
| VoLTE_Setting_Net_IPSec = VoLTE_Setting_Network_Information_Start_Code + 9, // Disable: 0, Enable: 1 |
| VoLTE_Setting_Net_Cell_ID = VoLTE_Setting_Network_Information_Start_Code + 10, // data type is string |
| VoLTE_Setting_Net_RTP_DSCP = VoLTE_Setting_Network_Information_Start_Code + 11, // For build pass, need to remove |
| VoLTE_Setting_Net_IF_Name = VoLTE_Setting_Network_Information_Start_Code + 12, // data type is string |
| VoLTE_Setting_Net_Network_Id = VoLTE_Setting_Network_Information_Start_Code + 13, // data type is integer |
| VoLTE_Setting_Net_SIP_Dscp = VoLTE_Setting_Network_Information_Start_Code + 14, // data type is integer |
| VoLTE_Setting_Net_RTP_Voice_Dscp = VoLTE_Setting_Network_Information_Start_Code + 15, // data type is integer |
| VoLTE_Setting_Net_RTP_Video_Dscp = VoLTE_Setting_Network_Information_Start_Code + 16, // data type is integer |
| VoLTE_Setting_Net_SIP_Soc_Priority = VoLTE_Setting_Network_Information_Start_Code + 17, // data type is integer |
| VoLTE_Setting_Net_SIP_Soc_Tcp_Mss = VoLTE_Setting_Network_Information_Start_Code + 18, // data type is integer |
| VoLTE_Setting_Net_RTP_Voice_Soc_Priority = VoLTE_Setting_Network_Information_Start_Code + 19, // data type is integer |
| VoLTE_Setting_Net_RTP_Video_Soc_Priority = VoLTE_Setting_Network_Information_Start_Code + 20, // data type is integer |
| VoLTE_Setting_Net_LBS_Location_Info = VoLTE_Setting_Network_Information_Start_Code + 21, // data type is integer |
| VoLTE_Setting_Net_Security = VoLTE_Setting_Network_Information_Start_Code + 22, |
| VoLTE_Setting_Net_Authentication = VoLTE_Setting_Network_Information_Start_Code + 23, |
| VoLTE_Setting_Net_PCSCF_Port = VoLTE_Setting_Network_Information_Start_Code + 24, |
| VoLTE_Setting_Net_Emergency_AID = VoLTE_Setting_Network_Information_Start_Code + 25, |
| |
| /* ------------------------------------------------ */ |
| /* Account Settings */ |
| /* ------------------------------------------------ */ |
| VoLTE_Setting_Account_Settings_Start_Code = 2000, |
| VoLTE_Setting_Account_Public_UID = VoLTE_Setting_Account_Settings_Start_Code + 1, // data type is string |
| VoLTE_Setting_Account_Private_UID = VoLTE_Setting_Account_Settings_Start_Code + 2, // data type is string |
| VoLTE_Setting_Account_Home_URI = VoLTE_Setting_Account_Settings_Start_Code + 3, // data type is string |
| VoLTE_Setting_Account_IMEI = VoLTE_Setting_Account_Settings_Start_Code + 4, // data type is string |
| VoLTE_Setting_Account_ConfFactoryURI = VoLTE_Setting_Account_Settings_Start_Code + 5, |
| VoLTE_Setting_Account_IMSI_MNC = VoLTE_Setting_Account_Settings_Start_Code + 6, |
| VoLTE_Setting_Account_IMSI_MCC = VoLTE_Setting_Account_Settings_Start_Code + 7, |
| VoLTE_Setting_Account_MSISDN = VoLTE_Setting_Account_Settings_Start_Code + 8, |
| |
| /* ------------------------------------------------ */ |
| /* Server Settings */ |
| /* ------------------------------------------------ */ |
| VoLTE_Setting_Server_Settings_Start_Code = 3000, |
| VoLTE_Setting_Server_PCSCF_List = VoLTE_Setting_Server_Settings_Start_Code + 1, // data type is string |
| |
| /* ------------------------------------------------ */ |
| /* VoLTE Service Settings */ |
| /* ------------------------------------------------ */ |
| VoLTE_Setting_VoLTE_Service_Start_Code = 10000, |
| |
| /* ------------------------------------------------ */ |
| /* VoLTE Call Settings */ |
| /* ------------------------------------------------ */ |
| VoLTE_Setting_VoLTE_Call_Start_Code = 11000, |
| VoLTE_Setting_VoLTE_Call_Session_Flag = VoLTE_Setting_VoLTE_Call_Start_Code + 1, |
| VoLTE_Setting_VoLTE_Call_Session_Timer = VoLTE_Setting_VoLTE_Call_Start_Code + 2, // in seconds |
| VoLTE_Setting_VoLTE_Call_Session_MinSE = VoLTE_Setting_VoLTE_Call_Start_Code + 3, // in seconds |
| VoLTE_Setting_VoLTE_Call_Privacy = VoLTE_Setting_VoLTE_Call_Start_Code + 4, |
| VoLTE_Setting_VoLTE_Call_Capability = VoLTE_Setting_VoLTE_Call_Start_Code + 5, // data type is ::VoLTE_Call_Capability_Type_e |
| VoLTE_Setting_VoLTE_Call_RTCP_Interval = VoLTE_Setting_VoLTE_Call_Start_Code + 6, // in ms |
| VoLTE_Setting_VoLTE_Early_Media = VoLTE_Setting_VoLTE_Call_Start_Code + 7, // If the incoming call support Early Media, shall we require it to play? |
| VoLTE_Setting_VoLTE_Call_CodecOrder1 = VoLTE_Setting_VoLTE_Call_Start_Code + 8, // voip_codec_enum |
| VoLTE_Setting_VoLTE_Call_CodecOrder2 = VoLTE_Setting_VoLTE_Call_Start_Code + 9, // voip_codec_enum |
| VoLTE_Setting_VoLTE_Call_CodecOrder3 = VoLTE_Setting_VoLTE_Call_Start_Code + 10, // voip_codec_enum |
| VoLTE_Setting_VoLTE_Call_def_max_ptime = VoLTE_Setting_VoLTE_Call_Start_Code + 11, |
| VoLTE_Setting_VoLTE_Call_def_ptime = VoLTE_Setting_VoLTE_Call_Start_Code + 12, |
| VoLTE_Setting_VoLTE_Call_G711_ptime = VoLTE_Setting_VoLTE_Call_Start_Code + 13, |
| VoLTE_Setting_VoLTE_Call_G726_ptime = VoLTE_Setting_VoLTE_Call_Start_Code + 14, |
| VoLTE_Setting_VoLTE_Call_G729_ptime = VoLTE_Setting_VoLTE_Call_Start_Code + 15, |
| VoLTE_Setting_VoLTE_Call_amr_pt = VoLTE_Setting_VoLTE_Call_Start_Code + 16, |
| VoLTE_Setting_VoLTE_Call_amr_wb_pt = VoLTE_Setting_VoLTE_Call_Start_Code + 17, |
| VoLTE_Setting_VoLTE_Call_h264_pt = VoLTE_Setting_VoLTE_Call_Start_Code + 18, |
| VoLTE_Setting_VoLTE_Call_G729_annexB = VoLTE_Setting_VoLTE_Call_Start_Code + 19, |
| VoLTE_Setting_VoLTE_Call_TelEvt = VoLTE_Setting_VoLTE_Call_Start_Code + 20, |
| VoLTE_Setting_VoLTE_Call_TelEvt_pt = VoLTE_Setting_VoLTE_Call_Start_Code + 21, |
| VoLTE_Setting_VoLTE_Call_Priority = VoLTE_Setting_VoLTE_Call_Start_Code + 22, |
| VoLTE_Setting_VoLTE_Call_UserAgent = VoLTE_Setting_VoLTE_Call_Start_Code + 23, // VOLTE_MAX_ADDRESS_LENGTH |
| VoLTE_Setting_VoLTE_Call_RejCode = VoLTE_Setting_VoLTE_Call_Start_Code + 24, |
| VoLTE_Setting_VoLTE_Call_noResourceCode = VoLTE_Setting_VoLTE_Call_Start_Code + 25, |
| VoLTE_Setting_VoLTE_Call_RejMediaCode = VoLTE_Setting_VoLTE_Call_Start_Code + 26, |
| VoLTE_Setting_VoLTE_Call_RejbyUserCode = VoLTE_Setting_VoLTE_Call_Start_Code + 27, |
| VoLTE_Setting_VoLTE_Call_Conf_SubTimer = VoLTE_Setting_VoLTE_Call_Start_Code + 28, |
| VoLTE_Setting_VoLTE_Call_amr_mode_set = VoLTE_Setting_VoLTE_Call_Start_Code + 29, |
| VoLTE_Setting_VoLTE_Call_amr_wb_mode_set = VoLTE_Setting_VoLTE_Call_Start_Code + 30, |
| VoLTE_Setting_VoLTE_Call_amr_fmt_variant = VoLTE_Setting_VoLTE_Call_Start_Code + 31, |
| VoLTE_Setting_VoLTE_Call_precondition = VoLTE_Setting_VoLTE_Call_Start_Code + 32, |
| VoLTE_Setting_VoLTE_Call_MO_Invite_To_BWCNF_Time = VoLTE_Setting_VoLTE_Call_Start_Code + 33, |
| VoLTE_Setting_VoLTE_Call_h264_pt2 = VoLTE_Setting_VoLTE_Call_Start_Code + 34, |
| VoLTE_Setting_VoLTE_Call_h265_pt = VoLTE_Setting_VoLTE_Call_Start_Code + 35, |
| VoLTE_Setting_VoLTE_Call_h265_pt2 = VoLTE_Setting_VoLTE_Call_Start_Code + 36, |
| VoLTE_Setting_VoLTE_Call_amr_oct_pt = VoLTE_Setting_VoLTE_Call_Start_Code + 37, |
| VoLTE_Setting_VoLTE_Call_amr_open_pt = VoLTE_Setting_VoLTE_Call_Start_Code + 38, |
| VoLTE_Setting_VoLTE_Call_amr_wb_oct_pt = VoLTE_Setting_VoLTE_Call_Start_Code + 39, |
| VoLTE_Setting_VoLTE_Call_TelEvt_wb_pt = VoLTE_Setting_VoLTE_Call_Start_Code + 40, |
| VoLTE_Setting_VoLTE_Call_CONTACT_WITH_USERNAME_INCALL = VoLTE_Setting_VoLTE_Call_Start_Code + 41, |
| VoLTE_Setting_VoLTE_Call_SENDRECV_BEFORE_PRCD = VoLTE_Setting_VoLTE_Call_Start_Code + 42, |
| VoLTE_Setting_VoLTE_Call_ALWAYS_USE_UPDATE_FOR_PRCD = VoLTE_Setting_VoLTE_Call_Start_Code + 43, |
| VoLTE_Setting_VoLTE_Call_MERGE_NEED_SWAP = VoLTE_Setting_VoLTE_Call_Start_Code + 44, |
| VoLTE_Setting_VoLTE_Call_ALWAYS_USE_SIP_URI_FOR_MO_CALL = VoLTE_Setting_VoLTE_Call_Start_Code + 45, |
| VoLTE_Setting_VoLTE_Call_SET_STRENGTH_MANDATORY = VoLTE_Setting_VoLTE_Call_Start_Code + 46, |
| VoLTE_Setting_VoLTE_Call_SEND_REFER_TO_PEER = VoLTE_Setting_VoLTE_Call_Start_Code + 47, |
| VoLTE_Setting_VoLTE_Call_ADD_3GPP_IMS_IN_ACCEPT = VoLTE_Setting_VoLTE_Call_Start_Code + 48, |
| VoLTE_Setting_VoLTE_Call_TERMINAL_BASED_CW = VoLTE_Setting_VoLTE_Call_Start_Code + 49, |
| VoLTE_Setting_VoLTE_Call_REFER_DIALOG_TO_SERVER = VoLTE_Setting_VoLTE_Call_Start_Code + 50, |
| VoLTE_Setting_VoLTE_Call_CHECK_REASON_PHRASE = VoLTE_Setting_VoLTE_Call_Start_Code + 51, |
| VoLTE_Setting_VoLTE_Call_MERGE_SEND_BYE = VoLTE_Setting_VoLTE_Call_Start_Code + 52, |
| VoLTE_Setting_VoLTE_Call_WHEN_STOP_TCALL = VoLTE_Setting_VoLTE_Call_Start_Code + 53, |
| VoLTE_Setting_VoLTE_Call_SET_RTCP_0 = VoLTE_Setting_VoLTE_Call_Start_Code + 54, |
| VoLTE_Setting_VoLTE_Call_CHECK_CONTACT_380 = VoLTE_Setting_VoLTE_Call_Start_Code + 55, |
| VoLTE_Setting_VoLTE_Call_CONF_PARTICIPANT_NOT_SUBSCRIBE = VoLTE_Setting_VoLTE_Call_Start_Code + 56, |
| VoLTE_Setting_VoLTE_Call_ADD_SDP_IN_180_FOR_NON_PRECOND = VoLTE_Setting_VoLTE_Call_Start_Code + 57, |
| VoLTE_Setting_VoLTE_Call_ADD_PRECONDITION_IN_HOLD_UNHOLD_SDP = VoLTE_Setting_VoLTE_Call_Start_Code + 58, |
| VoLTE_Setting_VoLTE_Call_USE_ORG_SDP_FOR_INVITE_WITHOUT_SDP = VoLTE_Setting_VoLTE_Call_Start_Code + 59, |
| VoLTE_Setting_VoLTE_Call_OIR_PRIVACY_TO_HEADER = VoLTE_Setting_VoLTE_Call_Start_Code + 60, |
| VoLTE_Setting_VoLTE_Call_REGISTER_CAP_WHENEVER = VoLTE_Setting_VoLTE_Call_Start_Code + 61, |
| VoLTE_Setting_VoLTE_Call_NO_AUTO_RETRY_FOR_MO_CALL = VoLTE_Setting_VoLTE_Call_Start_Code + 62, |
| VoLTE_Setting_VoLTE_Call_USE_EPS_PREFIX_IN_PHONE_CONTEXT = VoLTE_Setting_VoLTE_Call_Start_Code + 63, |
| VoLTE_Setting_VoLTE_Call_FOLLOW_NW_IMS_VOPS_SUPPORT = VoLTE_Setting_VoLTE_Call_Start_Code + 64, |
| VoLTE_Setting_VoLTE_Call_ATTEMPT_REG_WHEN_RECEIVE403 = VoLTE_Setting_VoLTE_Call_Start_Code + 65, |
| VoLTE_Setting_VoLTE_Call_WAITING_487_FOR_CANCEL_TIMER_TIMEOUT = VoLTE_Setting_VoLTE_Call_Start_Code + 66, |
| VoLTE_Setting_VoLTE_Call_BCSFB_FEATURE_ENABLE = VoLTE_Setting_VoLTE_Call_Start_Code + 67, |
| VoLTE_Setting_VoLTE_Call_SEND_183_WHEN_PRCD_NONE = VoLTE_Setting_VoLTE_Call_Start_Code + 68, |
| VoLTE_Setting_VoLTE_Call_CALL_ID_WITH_HOST_INCALL = VoLTE_Setting_VoLTE_Call_Start_Code + 69, |
| VoLTE_Setting_VoLTE_Call_ADD_RTCP_PORT_INTO_SDP = VoLTE_Setting_VoLTE_Call_Start_Code + 70, |
| VoLTE_Setting_VoLTE_Call_ECC_SESSION_TIMER_ENABLE = VoLTE_Setting_VoLTE_Call_Start_Code + 71, |
| VoLTE_Setting_VoLTE_Call_SUBSCRIBE_DIALOG_TO_SERVER = VoLTE_Setting_VoLTE_Call_Start_Code + 72, |
| VoLTE_Setting_VoLTE_Call_CHECK_CONFERENCE_SUBSCRIBE = VoLTE_Setting_VoLTE_Call_Start_Code + 73, |
| VoLTE_Setting_VoLTE_Call_CONFERENCE_SUBSCRIBE_TIMING = VoLTE_Setting_VoLTE_Call_Start_Code + 74, |
| VoLTE_Setting_VoLTE_Call_GENERAL_AMR_NB_WB = VoLTE_Setting_VoLTE_Call_Start_Code + 75, |
| VoLTE_Setting_VoLTE_Call_DISABLE_CONF_CALL_PRCD = VoLTE_Setting_VoLTE_Call_Start_Code + 76, |
| VoLTE_Setting_VoLTE_Call_WAIT_CANCEL_IN_SRVCC_END = VoLTE_Setting_VoLTE_Call_Start_Code + 77, |
| VoLTE_Setting_VoLTE_Call_REJECT_1W_IF_1A1H = VoLTE_Setting_VoLTE_Call_Start_Code + 78, |
| VoLTE_Setting_VoLTE_Call_NO_AUTO_RETRY_FOR_DCM_MO_CALL = VoLTE_Setting_VoLTE_Call_Start_Code + 79, |
| VoLTE_Setting_VoLTE_Call_JOIN_SEND_BYE = VoLTE_Setting_VoLTE_Call_Start_Code + 80, |
| VoLTE_Setting_VoLTE_Call_SET_ZERO_CELL_ID_IN_WIFI = VoLTE_Setting_VoLTE_Call_Start_Code + 81, |
| VoLTE_Setting_VoLTE_Call_REJECT_MTCALL_BY_VOPS = VoLTE_Setting_VoLTE_Call_Start_Code + 82, |
| VoLTE_Setting_VoLTE_Call_REJECT_MTCALL_WHEN_VILTE = VoLTE_Setting_VoLTE_Call_Start_Code + 83, |
| VoLTE_Setting_VoLTE_Call_NOT_ADD_SDP_IN_OPTIONS = VoLTE_Setting_VoLTE_Call_Start_Code + 84, |
| VoLTE_Setting_VoLTE_Call_PCSCF_ERROR_WHEN663 = VoLTE_Setting_VoLTE_Call_Start_Code + 85, |
| VoLTE_Setting_VoLTE_Call_REL_CONF_IF_NO_PARTICIPANT = VoLTE_Setting_VoLTE_Call_Start_Code + 86, |
| VoLTE_Setting_VoLTE_Call_ADD_NO_FORK = VoLTE_Setting_VoLTE_Call_Start_Code + 87, |
| VoLTE_Setting_VoLTE_Call_TMO_SPECIFIC_SDP = VoLTE_Setting_VoLTE_Call_Start_Code + 88, |
| VoLTE_Setting_VoLTE_Call_CALL_RINGING_TIMER_TIMEOUT = VoLTE_Setting_VoLTE_Call_Start_Code + 89, |
| VoLTE_Setting_VoLTE_Call_CALL_RINGBACK_TIMER_TIMEOUT = VoLTE_Setting_VoLTE_Call_Start_Code + 90, |
| VoLTE_Setting_VoLTE_Call_CALL_TCALL_TIMER_TIMEOUT = VoLTE_Setting_VoLTE_Call_Start_Code + 91, |
| VoLTE_Setting_VoLTE_Call_REJECT_CODE_IN23G = VoLTE_Setting_VoLTE_Call_Start_Code + 92, |
| VoLTE_Setting_VoLTE_Call_CALL_REFRESHCALL_TIMER_EXPIRE = VoLTE_Setting_VoLTE_Call_Start_Code + 93, |
| VoLTE_Setting_VoLTE_Call_CALL_CALLEND_TIMER_TIMEOUT = VoLTE_Setting_VoLTE_Call_Start_Code + 94, |
| VoLTE_Setting_VoLTE_Call_WAITING_MT_CNF_TIMER_TIMEOUT = VoLTE_Setting_VoLTE_Call_Start_Code + 95, |
| VoLTE_Setting_VoLTE_Call_CONF_SUB_TIMER_TIMEOUT = VoLTE_Setting_VoLTE_Call_Start_Code + 96, |
| VoLTE_Setting_VoLTE_Call_MO_INVITE_TO_BW_CNF_TIMER_TIMEOUT = VoLTE_Setting_VoLTE_Call_Start_Code + 97, |
| VoLTE_Setting_VoLTE_Call_SRVCC_CAPABILITY = VoLTE_Setting_VoLTE_Call_Start_Code + 98, |
| VoLTE_Setting_VoLTE_Call_EVS_SUPPORT = VoLTE_Setting_VoLTE_Call_Start_Code + 99, |
| VoLTE_Setting_VoLTE_Call_EVS_MODE_SWITCH = VoLTE_Setting_VoLTE_Call_Start_Code + 100, |
| VoLTE_Setting_VoLTE_Call_HF_ONLY = VoLTE_Setting_VoLTE_Call_Start_Code + 101, |
| VoLTE_Setting_VoLTE_Call_DTX = VoLTE_Setting_VoLTE_Call_Start_Code + 102, |
| VoLTE_Setting_VoLTE_Call_DTX_RECV = VoLTE_Setting_VoLTE_Call_Start_Code + 103, |
| VoLTE_Setting_VoLTE_Call_BR_BEGIN = VoLTE_Setting_VoLTE_Call_Start_Code + 104, |
| VoLTE_Setting_VoLTE_Call_BR_END = VoLTE_Setting_VoLTE_Call_Start_Code + 105, |
| VoLTE_Setting_VoLTE_Call_BR_SEND_BEGIN = VoLTE_Setting_VoLTE_Call_Start_Code + 106, |
| VoLTE_Setting_VoLTE_Call_BR_SEND_END = VoLTE_Setting_VoLTE_Call_Start_Code + 107, |
| VoLTE_Setting_VoLTE_Call_BR_RECV_BEGIN = VoLTE_Setting_VoLTE_Call_Start_Code + 108, |
| VoLTE_Setting_VoLTE_Call_BR_RECV_END = VoLTE_Setting_VoLTE_Call_Start_Code + 109, |
| VoLTE_Setting_VoLTE_Call_BW_BEGIN = VoLTE_Setting_VoLTE_Call_Start_Code + 110, |
| VoLTE_Setting_VoLTE_Call_BW_END = VoLTE_Setting_VoLTE_Call_Start_Code + 111, |
| VoLTE_Setting_VoLTE_Call_BW_SEND_BEGIN = VoLTE_Setting_VoLTE_Call_Start_Code + 112, |
| VoLTE_Setting_VoLTE_Call_BW_SEND_END = VoLTE_Setting_VoLTE_Call_Start_Code + 113, |
| VoLTE_Setting_VoLTE_Call_BW_RECV_BEGIN = VoLTE_Setting_VoLTE_Call_Start_Code + 114, |
| VoLTE_Setting_VoLTE_Call_BW_RECV_END = VoLTE_Setting_VoLTE_Call_Start_Code + 115, |
| VoLTE_Setting_VoLTE_Call_CH_SEND = VoLTE_Setting_VoLTE_Call_Start_Code + 116, |
| VoLTE_Setting_VoLTE_Call_CH_RECV = VoLTE_Setting_VoLTE_Call_Start_Code + 117, |
| VoLTE_Setting_VoLTE_Call_CH_AW_RECV = VoLTE_Setting_VoLTE_Call_Start_Code + 118, |
| VoLTE_Setting_VoLTE_Call_CMR = VoLTE_Setting_VoLTE_Call_Start_Code + 119, |
| |
| /* ------------------------------------------------ */ |
| /* VoLTE MWI Settings */ |
| /* ------------------------------------------------ */ |
| VoLTE_Setting_VoLTE_MWI_Start_Code = VoLTE_Setting_VoLTE_Call_Start_Code + 900, |
| VoLTE_Setting_VoLTE_MWI_License = VoLTE_Setting_VoLTE_MWI_Start_Code + 1, // Disable: 0, Enable: 1 |
| |
| /* ------------------------------------------------ */ |
| /* VoLTE SMS Settings */ |
| /* ------------------------------------------------ */ |
| VoLTE_Setting_VoLTE_SMS_Start_Code = 12000, |
| VoLTE_Setting_VoLTE_SMS_Capability = VoLTE_Setting_VoLTE_SMS_Start_Code + 1, // data type is boolean (1 or 0) |
| VoLTE_Setting_VoLTE_SMS_3GPP_SMS_PSI = VoLTE_Setting_VoLTE_SMS_Start_Code + 2, // data type is string |
| VoLTE_Setting_VoLTE_SMS_PSISMSC_FROM_USER = VoLTE_Setting_VoLTE_SMS_Start_Code + 3, |
| VoLTE_Setting_VoLTE_SMS_FORCE_PSI_SCHEME_TO_TEL = VoLTE_Setting_VoLTE_SMS_Start_Code + 4, |
| VoLTE_Setting_VoLTE_SMS_ADD_USER_PHONE = VoLTE_Setting_VoLTE_SMS_Start_Code + 5, |
| VoLTE_Setting_VoLTE_SMS_UPDATE_CALL_ID_WITH_HOST = VoLTE_Setting_VoLTE_SMS_Start_Code + 6, |
| VoLTE_Setting_VoLTE_SMS_ADD_NO_FORK_IN_SMS = VoLTE_Setting_VoLTE_SMS_Start_Code + 7, |
| VoLTE_Setting_VoLTE_SMS_NSN_SPECIFIC = VoLTE_Setting_VoLTE_SMS_Start_Code + 8, |
| VoLTE_Setting_VoLTE_SMS_MO_RETRY_AFTER_504 = VoLTE_Setting_VoLTE_SMS_Start_Code + 9, |
| VoLTE_Setting_VoLTE_SMS_SEND_TIMERF_EXPIRY = VoLTE_Setting_VoLTE_SMS_Start_Code + 10, |
| VoLTE_Setting_VoLTE_SMS_IMSI_REGED_DISABLE_SMS = VoLTE_Setting_VoLTE_SMS_Start_Code + 11, |
| |
| /* ------------------------------------------------ */ |
| /* VoLTE XDM Settings */ |
| /* ------------------------------------------------ */ |
| VoLTE_Setting_VoLTE_XDM_Start_Code = 13000, |
| |
| /* ------------------------------------------------ */ |
| /* VoLTE REG Settings */ |
| /* ------------------------------------------------ */ |
| VoLTE_Setting_VoLTE_REG_Start_Code = 14000, |
| VoLTE_Setting_Reg_Register_Expiry = VoLTE_Setting_VoLTE_REG_Start_Code + 1, // data type is int |
| VoLTE_Setting_Reg_Event_Subscribe = VoLTE_Setting_VoLTE_REG_Start_Code + 2, // Disable: 0, Enable: 1 |
| VoLTE_Setting_Reg_Emergency = VoLTE_Setting_VoLTE_REG_Start_Code + 3, // Disable: 0, Enable: 1 |
| VoLTE_Setting_Reg_Retry_First_Time = VoLTE_Setting_VoLTE_REG_Start_Code + 4, // data type is int |
| VoLTE_Setting_Reg_Retry_Base_Time = VoLTE_Setting_VoLTE_REG_Start_Code + 5, // data type is int |
| VoLTE_Setting_Reg_Retry_Max_Time = VoLTE_Setting_VoLTE_REG_Start_Code + 6, // data type is int |
| VoLTE_Setting_Reg_Contact_With_UserName = VoLTE_Setting_VoLTE_REG_Start_Code + 7, // Disable: 0, Enable: 1 |
| VoLTE_Setting_Reg_URI_With_Port = VoLTE_Setting_VoLTE_REG_Start_Code + 8, // Disable: 0, Enable: 1 |
| VoLTE_Setting_Reg_IPSec_Algo_Set = VoLTE_Setting_VoLTE_REG_Start_Code + 9, // data type is int |
| VoLTE_Setting_Reg_Enable_HTTP_Digest = VoLTE_Setting_VoLTE_REG_Start_Code + 10, // Disable: 0, Enable: 1 |
| VoLTE_Setting_Reg_Auth_Name = VoLTE_Setting_VoLTE_REG_Start_Code + 11, // data type is string |
| VoLTE_Setting_Reg_Auth_Password = VoLTE_Setting_VoLTE_REG_Start_Code + 12, // data type is string |
| VoLTE_Setting_Reg_Specific_IPSec_Algo = VoLTE_Setting_VoLTE_REG_Start_Code + 13, // data type is int |
| VoLTE_Setting_Reg_CONTACT_WITH_TRANSPORT = VoLTE_Setting_VoLTE_REG_Start_Code + 14, |
| VoLTE_Setting_Reg_CONTACT_WITH_REGID = VoLTE_Setting_VoLTE_REG_Start_Code + 15, |
| VoLTE_Setting_Reg_CONTACT_WITH_MOBILITY = VoLTE_Setting_VoLTE_REG_Start_Code + 16, |
| VoLTE_Setting_Reg_CONTACT_WITH_EXPIRES = VoLTE_Setting_VoLTE_REG_Start_Code + 17, |
| VoLTE_Setting_Reg_AUTHORIZATION_WITH_ALGO = VoLTE_Setting_VoLTE_REG_Start_Code + 18, |
| VoLTE_Setting_Reg_REREG_IN_RAT_CHANGE = VoLTE_Setting_VoLTE_REG_Start_Code + 19, |
| VoLTE_Setting_Reg_REREG_IN_OOS_END = VoLTE_Setting_VoLTE_REG_Start_Code + 20, |
| VoLTE_Setting_Reg_DE_SUBSCRIBE = VoLTE_Setting_VoLTE_REG_Start_Code + 21, |
| VoLTE_Setting_Reg_USE_SPECIFIC_IPSEC_ALGO = VoLTE_Setting_VoLTE_REG_Start_Code + 22, |
| VoLTE_Setting_Reg_TRY_NEXT_PCSCF = VoLTE_Setting_VoLTE_REG_Start_Code + 23, |
| VoLTE_Setting_Reg_DEREG_CLEAR_IPSEC = VoLTE_Setting_VoLTE_REG_Start_Code + 24, |
| VoLTE_Setting_Reg_INITIAL_REG_WITHOUT_PANI = VoLTE_Setting_VoLTE_REG_Start_Code + 25, |
| VoLTE_Setting_Reg_DEREG_RESET_TCP_CLIENT = VoLTE_Setting_VoLTE_REG_Start_Code + 26, |
| VoLTE_Setting_Reg_TREG = VoLTE_Setting_VoLTE_REG_Start_Code + 27, |
| VoLTE_Setting_Reg_REREG_23G4 = VoLTE_Setting_VoLTE_REG_Start_Code + 28, |
| VoLTE_Setting_Reg_RESUB_23G4 = VoLTE_Setting_VoLTE_REG_Start_Code + 29, |
| VoLTE_Setting_Reg_NOT_AUTO_REG_403 = VoLTE_Setting_VoLTE_REG_Start_Code + 30, |
| VoLTE_Setting_Reg_CALL_ID_WITH_HOST_INREG = VoLTE_Setting_VoLTE_REG_Start_Code + 31, |
| VoLTE_Setting_Reg_KEEP_ALIVE_MODE = VoLTE_Setting_VoLTE_REG_Start_Code + 32, |
| VoLTE_Setting_Reg_TCP_CONNECT_MAX_TIME_INVITE = VoLTE_Setting_VoLTE_REG_Start_Code + 33, |
| VoLTE_Setting_Reg_EMS_MODE_IND = VoLTE_Setting_VoLTE_REG_Start_Code + 34, |
| VoLTE_Setting_Reg_CONTACT_WITH_ACCESSTYPE = VoLTE_Setting_VoLTE_REG_Start_Code + 35, |
| VoLTE_Setting_Reg_WFC_WITH_PLANI = VoLTE_Setting_VoLTE_REG_Start_Code + 36, |
| VoLTE_Setting_Reg_USE_UDP_ON_TCP_FAIL = VoLTE_Setting_VoLTE_REG_Start_Code + 37, |
| VoLTE_Setting_Reg_IPSEC_FAIL_ALLOWED = VoLTE_Setting_VoLTE_REG_Start_Code + 38, |
| VoLTE_Setting_Reg_CONTACT_WITH_VIDEO_FEATURE_TAG_IN_SUBSCRIBE = VoLTE_Setting_VoLTE_REG_Start_Code + 39, |
| VoLTE_Setting_Reg_VIA_WITHOUT_RPORT = VoLTE_Setting_VoLTE_REG_Start_Code + 40, |
| VoLTE_Setting_Reg_REG_ROUTE_HDR = VoLTE_Setting_VoLTE_REG_Start_Code + 41, |
| VoLTE_Setting_Reg_VIA_URI_WITH_DEFAULT_PORT = VoLTE_Setting_VoLTE_REG_Start_Code + 42, |
| VoLTE_Setting_Reg_NOTIFY_SMS_NOTIFY_DONE = VoLTE_Setting_VoLTE_REG_Start_Code + 43, |
| VoLTE_Setting_Reg_EMERGENCY_USE_IMSI = VoLTE_Setting_VoLTE_REG_Start_Code + 44, |
| VoLTE_Setting_Reg_CHECK_MSISDN = VoLTE_Setting_VoLTE_REG_Start_Code + 45, |
| VoLTE_Setting_Reg_RETRY_INTERVAL_AFTER_403 = VoLTE_Setting_VoLTE_REG_Start_Code + 46, |
| VoLTE_Setting_Reg_SUPPORT_THROTTLING_ALGO = VoLTE_Setting_VoLTE_REG_Start_Code + 47, |
| VoLTE_Setting_Reg_REG_AFTER_NW_DEREG_60S = VoLTE_Setting_VoLTE_REG_Start_Code + 48, |
| VoLTE_Setting_Reg_SUB_CONTACT_WITH_SIP_INSTANCE = VoLTE_Setting_VoLTE_REG_Start_Code + 49, |
| VoLTE_Setting_Reg_STOP_REG_MD_LOWER_LAYER_ERR = VoLTE_Setting_VoLTE_REG_Start_Code + 50, |
| VoLTE_Setting_Reg_REG_GRUU_SUPPORT = VoLTE_Setting_VoLTE_REG_Start_Code + 51, |
| |
| /* ------------------------------------------------ */ |
| /* VoLTE SIP Settings */ |
| /* ------------------------------------------------ */ |
| VoLTE_Setting_VoLTE_SIP_Start_Code = 15000, |
| VoLTE_Setting_SIP_T1_Timer = VoLTE_Setting_VoLTE_SIP_Start_Code + 1, // data type is int |
| VoLTE_Setting_SIP_T2_Timer = VoLTE_Setting_VoLTE_SIP_Start_Code + 2, // data type is int |
| VoLTE_Setting_SIP_T4_Timer = VoLTE_Setting_VoLTE_SIP_Start_Code + 3, // data type is int |
| VoLTE_Setting_SIP_Keep_Alive = VoLTE_Setting_VoLTE_SIP_Start_Code + 4, // data type is int |
| VoLTE_Setting_SIP_Force_Use_UDP = VoLTE_Setting_VoLTE_SIP_Start_Code + 5, // Disable: 0, Enable: 1 |
| VoLTE_Setting_SIP_TCP_On_Demand = VoLTE_Setting_VoLTE_SIP_Start_Code + 6, // Disable: 0, Enable: 1 |
| VoLTE_Setting_SIP_TCP_MTU_Size = VoLTE_Setting_VoLTE_SIP_Start_Code + 7, // data type is int |
| VoLTE_Setting_SIP_Reg_Timestamp = VoLTE_Setting_VoLTE_SIP_Start_Code + 8, // data type is string, for WFC PLANI header |
| VoLTE_Setting_SIP_Transaction_Timer = VoLTE_Setting_VoLTE_SIP_Start_Code + 9, // data type is int |
| VoLTE_Setting_SIP_Registered_Timestamp = VoLTE_Setting_VoLTE_SIP_Start_Code + 10, // data type is string, for WFC PCNI header |
| VoLTE_Setting_SIP_Cell_Camped_Timestamp = VoLTE_Setting_VoLTE_SIP_Start_Code + 11, // data type is string, for WFC PCNI header |
| |
| /* ------------------------------------------------ */ |
| /* VoLTE USSD Settings */ |
| /* ------------------------------------------------ */ |
| VoLTE_Setting_VoLTE_USSD_Start_Code = 16000, |
| VoLTE_Setting_USSD_NW_Timeout_Timer = VoLTE_Setting_VoLTE_USSD_Start_Code + 1, // data type is uint8 */ |
| VoLTE_Setting_USSD_Setup_Timeout_Timer = VoLTE_Setting_VoLTE_USSD_Start_Code + 2, // data type is uint8 */ |
| VoLTE_Setting_USSD_Capability = VoLTE_Setting_VoLTE_USSD_Start_Code + 3, // data type is uint8 */ |
| }; |
| |
| enum VoLTE_Event_MD_Lower_Layer_Err_e { |
| VoLTE_Event_MD_Lower_Layer_Err_AC_Barred = 0, |
| VoLTE_Event_MD_Lower_Layer_Err_NW_REJ_CONN = 1, |
| VoLTE_Event_MD_Lower_Layer_Err_T3346_START = 2, |
| VoLTE_Event_MD_Lower_Layer_Err_T3346_STOP = 3, |
| VoLTE_Event_MD_Lower_Layer_Err_T3346_EXPIRY = 4, |
| VoLTE_Event_MD_Lower_Layer_Err_CONN_FAI = 5, |
| VoLTE_Event_MD_Lower_Layer_Err_T3525_START = 6, |
| VoLTE_Event_MD_Lower_Layer_Err_T3540_START = 7, |
| |
| VoLTE_Event_MD_Lower_Layer_Non_ESRFAIL_Err = 100, |
| VoLTE_Event_MD_Lower_Layer_Non_ESRFAIL_Err_TAU_FAIL = 101, |
| VoLTE_Event_MD_Lower_Layer_Non_ESRFAIL_Err_EPSFB_FAIL = 102, |
| |
| /*add here*/ |
| VoLTE_Event_MD_Lower_Layer_Err_Max, |
| }; |
| |
| enum VoLTE_Event_MD_Lower_Layer_TYPE_e { |
| VoLTE_Event_MD_Lower_Layer_TYPE_HANDOVER = 0, |
| VoLTE_Event_MD_Lower_Layer_TYPE_REDIRECTION =1 |
| }; |
| |
| enum VoLTE_Query_Type_e { |
| VoLTE_Query_Cell_ID = 1, // current cell id |
| VoLTE_Query_Call_State = 2, // current call state |
| }; |
| |
| typedef enum |
| { |
| IMS_CC_MO_DISCONNECT_CAUSE_NONE = 0, |
| IMS_CC_MO_DISCONNECT_CAUSE_NO_COVERAGE, |
| IMS_CC_MO_DISCONNECT_CAUSE_LOW_BATTERY, |
| IMS_CC_MO_DISCONNECT_CAUSE_FORWARD, |
| IMS_CC_MO_DISCONNECT_CAUSE_SPECIAL_HANGUP, |
| IMS_CC_MO_DISCONNECT_CAUSE_607_UNWANTED, |
| IMS_CC_MO_DISCONNECT_CAUSE_END |
| } ims_cc_mo_disconnect_cause_enum; |
| |
| typedef enum { |
| IMCB_TRANSACTION_STATE_INIT = 0, |
| IMCB_TRANSACTION_STATE_ALLOC, |
| } imcb_transaction_state_enum; |
| |
| /* IMCB FSM state */ |
| typedef enum { |
| IMCB_FSM_STATE_BEARER_DEACTIVE = 0, |
| IMCB_FSM_STATE_BEARER_ACTIVATING, |
| IMCB_FSM_STATE_PCSCF_ACTIVATING, |
| IMCB_FSM_STATE_PCSCF_ACTIVE, |
| IMCB_FSM_STATE_CONNECTED, |
| IMCB_FSM_STATE_REGISTERED, |
| IMCB_FSM_STATE_BEARER_DEACTIVATING |
| } imcb_fsm_state_enum; |
| |
| typedef enum { |
| IMCB_PCSCF_TYPE_NONE, |
| IMCB_PCSCF_TYPE_DHCP, |
| IMCB_PCSCF_TYPE_PCO, |
| IMCB_PCSCF_TYPE_SIM, |
| IMCB_PCSCF_TYPE_MO, |
| IMCB_PCSCF_TYPE_MANUAL, |
| |
| IMCB_PCSCF_TYPE_END |
| } imcb_pcscf_type_enum; |
| |
| typedef enum imc_pcscf_acquire_method_enum { |
| IMC_PCSCF_ACQUIRE_BY_NONE = 0, |
| /** acquire *P-CSCF* address by query type III **SIM**. */ |
| IMC_PCSCF_ACQUIRE_BY_SIM = 1, |
| /** acquire *P-CSCF* address by type IV **Management Object**. */ |
| IMC_PCSCF_ACQUIRE_BY_MO = 2, |
| /** acquire *P-CSCF* address by type II **ESM/SM PCO**. */ |
| IMC_PCSCF_ACQUIRE_BY_PCO = 3, |
| /** acquire *P-CSCF* address by type I using **DHCPv4(?)**. */ |
| IMC_PCSCF_ACQUIRE_BY_DHCPv4 = 4, |
| /** acquire *P-CSCF* address by type I using **DHCPv6**. */ |
| IMC_PCSCF_ACQUIRE_BY_DHCPv6 = 5, |
| /** acquire *P-CSCF* address by using **User Configure **. */ |
| IMC_PCSCF_ACQUIRE_BY_MANUAL = 6, |
| /** **end** of enum. */ |
| IMC_PCSCF_ACQUIRE_METHOD_END |
| } imc_pcscf_acquire_method_enum; |
| |
| |
| typedef enum{ |
| IMC_PS_CAUSE_NONE = 0, |
| /* SM/ESM/5GSM cause - TS24.301/24.501 Annex B */ |
| IMC_PS_CAUSE_OPERATOR_DETERMINED_BARRING = 8, |
| IMC_PS_CAUSE_INSUFFICIENT_RESOURCES = 26, |
| IMC_PS_CAUSE_UNKNOWN_OR_MISSING_ACCESS_POINT_OR_DATA_NETWORK_NAME = 27, |
| IMC_PS_CAUSE_UNKNOWN_PDN_OR_PDU_SESSION_TYPE = 28, |
| IMC_PS_CAUSE_USER_AUTHENTICATION_FAILED = 29, |
| IMC_PS_CAUSE_REQUEST_REJECTED_BY_SERVING_GW_OR_PDN_GW = 30, |
| IMC_PS_CAUSE_REQUEST_REJECTED_UNSPECIFIED = 31, |
| IMC_PS_CAUSE_SERVICE_OPTION_NOT_SUPPORTED = 32, |
| IMC_PS_CAUSE_REQUESTED_SERVICE_OPTION_NOT_SUBSCRIBED = 33, |
| IMC_PS_CAUSE_SERVICE_OPTION_TEMPORARILY_OUT_OF_ORDER = 34, |
| IMC_PS_CAUSE_PTI_ALREADY_IN_USE = 35, |
| IMC_PS_CAUSE_REGULAR_DEACTIVATION = 36, |
| IMC_PS_CAUSE_EPS_QOS_NOT_ACCEPTED = 37, |
| IMC_PS_CAUSE_NETWORK_FAILURE = 38, |
| IMC_PS_CAUSE_REACTIVATION_REQUESTED = 39, |
| IMC_PS_CAUSE_SEMANTIC_ERROR_IN_THE_TFT_OPERATION = 41, |
| IMC_PS_CAUSE_SYNTACTICAL_ERROR_IN_THE_TFT_OPERATION = 42, |
| IMC_PS_CAUSE_INVALID_EPS_BEARER_OR_PDU_SESSION_IDENTITY = 43, |
| IMC_PS_CAUSE_SEMANTIC_ERRORS_IN_PACKET_FILTER = 44, |
| IMC_PS_CAUSE_SYNTACTICAL_ERROR_IN_PACKET_FILTER = 45, |
| IMC_PS_CAUSE_OUT_OF_LAND_SERVICE_AREA = 46, |
| IMC_PS_CAUSE_PTI_MISMATCH = 47, |
| IMC_PS_CAUSE_LAST_PDN_DISCONNECTION_NOT_ALLOWED = 49, |
| IMC_PS_CAUSE_PDN_TYPE_IPV4_ONLY_ALLOWED = 50, |
| IMC_PS_CAUSE_PDN_TYPE_IPV6_ONLY_ALLOWED = 51, |
| IMC_PS_CAUSE_SINGLE_ADDRESS_BEARERS_ONLY_ALLOWED = 52, |
| IMC_PS_CAUSE_ESM_INFORMATION_NOT_RECEIVED = 53, |
| IMC_PS_CAUSE_PDN_CONNECTION_OR_PDU_SESSION_DOES_NOT_EXIST = 54, |
| IMC_PS_CAUSE_MULTIPLE_PDN_CONNECTIONS_FOR_A_GIVEN_APN_NOT_ALLOWED = 55, |
| IMC_PS_CAUSE_COLLISION_WITH_NETWORK_INITIATED_REQUEST = 56, |
| IMC_PS_CAUSE_UNSUPPORTED_QCI_VALUE = 59, |
| IMC_PS_CAUSE_BEARER_HANDLING_NOT_SUPPORTED = 60, |
| IMC_PS_CAUSE_INSUFFICIENT_RESOURCES_FOR_SPECIFIC_SLICE_AND_DNN = 67, |
| IMC_PS_CAUSE_NOT_SUPPORTED_SSC_MODE = 68, |
| IMC_PS_CAUSE_INSUFFICIENT_RESOURCES_FOR_SPECIFIC_SLICE = 69, |
| IMC_PS_CAUSE_MISSING_OR_UNKNOWN_DNN_IN_A_SLICE = 70, |
| IMC_PS_CAUSE_INVALID_PTI_VALUE = 81, |
| IMC_PS_CAUSE_MAX_DATA_RATE_PER_UE_FOR_USER_PLANE_INTGRITY_PROTECTION_IS_TO_LOW = 82, |
| IMC_PS_CAUSE_SEMANTIC_ERROR_IN_THE_QOS_OPERATION = 83, |
| IMC_PS_CAUSE_SYNTACTICAL_ERROR_IN_THE_QOS_OPERATION = 84, |
| IMC_PS_CAUSE_SEMANTICALLY_INCORRECT_MESSAGE = 95, |
| IMC_PS_CAUSE_INVALID_MANDATORY_INFORMATION = 96, |
| IMC_PS_CAUSE_MESSAGE_TYPE_NON_EXISTENT_OR_NOT_IMPLEMENTED = 97, |
| IMC_PS_CAUSE_MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 98, |
| IMC_PS_CAUSE_INFORMATION_ELEMENT_NON_EXISTENT_OR_NOT_IMPLEMENTED = 99, |
| IMC_PS_CAUSE_CONDITIONAL_IE_ERROR = 100, |
| IMC_PS_CAUSE_MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 101, |
| IMC_PS_CAUSE_PROTOCO_ERROR_UNSPECIFIED = 111, |
| IMC_PS_CAUSE_APN_RESTRICTION_VALUE_INCOMPATIBLE_WITH_ACTIVE_EPS_BEARER_CONTEXT = 112, |
| IMC_PS_CAUSE_REQUEST_REJECTED_CORE_TX_FAILURE = 113, |
| IMC_PS_CAUSE_TCM_L4C_MODIFY_DUE_TO_INTERRAT = 114, |
| |
| /* WFC */ |
| IMC_PS_CAUSE_REMAP = 200, |
| |
| /* C2K */ |
| IMC_PS_CAUSE_VSNCP_CONFIGURATION_FAILURE = 210, |
| IMC_PS_CAUSE_IPV6_OBTAIN_FAILURE = 211, |
| IMC_PS_CAUSE_VSNCP_TERMINATED = 212, |
| |
| /* Internal reject cause */ |
| IMC_PS_CAUSE_INTERNAL_REJ_START = 220, |
| IMC_PS_CAUSE_SINGLE_PDN_ACT_FAILED = IMC_PS_CAUSE_INTERNAL_REJ_START, //220 |
| IMC_PS_CAUSE_IMS_SERVICE_NOT_READY = IMC_PS_CAUSE_INTERNAL_REJ_START + 1, //221 |
| IMC_PS_CAUSE_TCM_ESM_DEATCH_REATTACH = IMC_PS_CAUSE_INTERNAL_REJ_START + 2, //222 |
| IMC_PS_CAUSE_IMS_SERVICE_NR_RECOVER = IMC_PS_CAUSE_INTERNAL_REJ_START + 3, //223 |
| IMC_PS_CAUSE_INTERNAL_REJ_END = IMC_PS_CAUSE_INTERNAL_REJ_START + 15, //235 |
| |
| /* IRAT */ |
| IMC_PS_CAUSE_IMS_BEARER_INTERRAT_HANDOVER = 250, |
| |
| IMC_PS_CAUSE_END |
| }imc_ps_cause_enum; |
| |
| |
| typedef enum imcb_bearer_msg_cause_enum { |
| IMCB_BR_MSG_CS_NONE, |
| |
| IMCB_BR_MSG_CS_OK, |
| IMCB_BR_MSG_CS_NEED_WAIT, |
| |
| /* internal reject start */ |
| IMCB_BR_MSG_CS_REJ_START, |
| IMCB_BR_MSG_CS_REJ_NO_FREE_TID, |
| IMCB_BR_MSG_CS_REJ_NO_RESOURCE, |
| IMCB_BR_MSG_CS_REJ_ERROR_PARM, |
| IMCB_BR_MSG_CS_REJ_BY_NW_RETAIN_TMO, |
| IMCB_BR_MSG_CS_REJ_BY_STATE_CONFLICT, |
| IMCB_BR_MSG_CS_REJ_BY_BEARER_DEL, |
| IMCB_BR_MSG_CS_REJ_BY_PS, |
| IMCB_BR_MSG_CS_REJ_BY_SGN_MATCH_FAIL, |
| IMCB_BR_MSG_CS_REJECT, /* need to be remove if reject is defined */ |
| IMCB_BR_MSG_CS_REJ_END, |
| /* internal reject end */ |
| |
| IMCB_BR_MSG_CS_MOD_START, |
| IMCB_BR_MSG_CS_MOD_BEARER_REMAP, |
| IMCB_BR_MSG_CS_MOD_BEARER_HANDOVER, |
| IMCB_BR_MSG_CS_MOD_BEARER_QOS, |
| IMCB_BR_MSG_CS_MOD_END, |
| |
| |
| IMCB_BR_MSG_CS_OTHER_FAIL, |
| |
| IMCB_BR_MSG_CS_PS_CAUSE_START = (IMCB_BR_MSG_CS_OTHER_FAIL + IMC_PS_CAUSE_NONE), |
| IMCB_BR_MSG_CS_PS_CAUSE_END = (IMCB_BR_MSG_CS_OTHER_FAIL + IMC_PS_CAUSE_END), |
| |
| IMCB_BR_MSG_CS_LAST |
| } imcb_bearer_msg_cause_enum ; |
| |
| /** Bearer FSM states. */ |
| typedef enum { |
| IMCB_BR_FSM_STATE_INACTIVE = 0, |
| /*IMCB_BR_FSM_STATE_ACTIVATING,*/ |
| IMCB_BR_FSM_STATE_ACTIVE, |
| /*IMCB_BR_FSM_STATE_DEACTIVATING, */ |
| IMCB_BR_FSM_STATE_ALL |
| } imcb_bearer_fsm_state_enum; |
| |
| typedef enum imcb_bearer_msg_id_enum { |
| IMCB_BR_MSG_ID_NONE, |
| |
| IMCB_BR_MSG_ID_SGN_ACT_REQ, |
| IMCB_BR_MSG_ID_SGN_ACT_CNF, |
| IMCB_BR_MSG_ID_SGN_MOD_IND, |
| |
| /* IMCB_BR_MSG_ID_SGN_MOD_IND, currently not used */ |
| |
| IMCB_BR_MSG_ID_SGN_DEACT_REQ, |
| IMCB_BR_MSG_ID_SGN_DEACT_CNF, |
| IMCB_BR_MSG_ID_SGN_DEACT_IND, |
| IMCB_BR_MSG_ID_SGN_RAT_CHANGE_IND, |
| IMCB_BR_MSG_ID_SGN_BID_CHANGE_IND, |
| |
| IMCB_BR_MSG_ID_MEDIA_ADD_REQ, |
| IMCB_BR_MSG_ID_MEDIA_ADD_CNF, |
| /* IMCB_BR_MSG_ID_MEDIA_ADD_IND, currently not used */ |
| |
| IMCB_BR_MSG_ID_MEDIA_MOD_REQ, |
| IMCB_BR_MSG_ID_MEDIA_MOD_CNF, |
| IMCB_BR_MSG_ID_MEDIA_MOD_IND, |
| |
| IMCB_BR_MSG_ID_MEDIA_DEL_REQ, |
| IMCB_BR_MSG_ID_MEDIA_DEL_CNF, |
| IMCB_BR_MSG_ID_MEDIA_DEL_IND, |
| |
| /* internal triggerred |
| IMCB_BR_MSG_ID_STREAM_MODIFY_REQ, |
| IMCB_BR_MSG_ID_STREAM_DEACT_REQ, |
| */ |
| |
| /* for Bearer filter */ |
| IMCB_BR_MSG_ID_SET_BEARER_FILTER_IND, |
| /* for ip change */ |
| IMCB_BR_MSG_ID_IP_CHANGE_IND, |
| /* irat event from imsm */ |
| IMCB_BR_MSG_ID_IRAT_WITHOUT_IP_CHANGE_IND, |
| |
| IMCB_BR_MSG_ID_PCSCF_DIS_REQ, |
| IMCB_BR_MSG_ID_PCSCF_DIS_CNF, |
| IMCB_BR_MSG_ID_PCSCF_MOD_IND, |
| |
| /* for UT used */ |
| IMCB_BR_CBK_ID_SGN_ACT_CNF, |
| IMCB_BR_CBK_ID_SGN_DEACT_CNF, |
| IMCB_BR_CBK_ID_MEDIA_ADD_CNF, |
| IMCB_BR_CBK_ID_MEDIA_MOD_CNF, |
| IMCB_BR_CBK_ID_MEDIA_DEL_CNF, |
| |
| IMCB_BR_MSG_ID_END |
| } imcb_bearer_msg_id_enum; |
| |
| typedef enum { |
| IMS_CAP_RAT_NONE = 0, |
| IMS_CAP_RAT_LTE = 1, |
| IMS_CAP_RAT_NR = 2, |
| IMS_CAP_RAT_LTE_NR = 3, |
| IMS_CAP_RAT_UTRAN = 4, |
| IMS_CAP_RAT_UTRAN_LTE = 5, |
| IMS_CAP_RAT_UTRAN_NR = 6, |
| IMS_CAP_RAT_UTRAN_LTE_NR = 7, |
| } ims_cap_rat_enum; |
| |
| typedef enum |
| { |
| LTECSR_RAT_LTE = 0, |
| LTECSR_RAT_WIFI = 1, |
| LTECSR_RAT_NR = 2, |
| LTECSR_RAT_DATA = 3 |
| }ltecsr_rat_enum; |
| |
| typedef enum { |
| IMS_ENH_VOLTE_SI_OFF = 0, |
| IMS_ENH_VOLTE_SI_LEVEL1, |
| IMS_ENH_VOLTE_SI_LEVEL2, |
| IMS_ENH_VOLTE_SI_LEVEL3, |
| IMS_ENH_VOLTE_SI_LEVEL4, |
| IMS_ENH_VOLTE_SI_NUM |
| }enh_volte_si_enum; |
| |
| typedef enum { |
| IMS_CALL_STATUS_NONE =0, |
| IMS_CALL_STATUS_CHANGE_TO_NORMAL_CALL =1, |
| }ims_enh_volte_si_call_status_enum; |
| |
| typedef enum imcb_pdn_req_type_enum{ |
| IMCB_PDN_REQ_TYPE_NONE = 0, |
| IMCB_PDN_REQ_TYPE_EMERGENCY, |
| IMCB_PDN_REQ_TYPE_INITIAL, |
| IMCB_PDN_REQ_TYPE_HANDOVER, |
| IMCB_PDN_REQ_TYPE_HANDOVER_OF_EMERGENCY, |
| IMCB_PDN_REQ_TYPE_MAX |
| } imcb_pdn_req_type_enum; |
| |
| typedef enum imcb_ip_change_type_enum{ |
| IMCB_IP_CHANGE_TYPE_NONE = 0, |
| IMCB_IP_CHANGE_TYPE_IPV4 = 1 << 0, |
| IMCB_IP_CHANGE_TYPE_IPV6 = 1 << 1, |
| IMCB_IP_CHANGE_TYPE_IPV4_IPV6 = IMCB_IP_CHANGE_TYPE_IPV4 | IMCB_IP_CHANGE_TYPE_IPV6, |
| IMCB_IP_CHANGE_TYPE_MAX |
| } imcb_ip_change_type_enum; |
| |
| typedef enum { |
| IMCB_PCSCF_LIST_NO_CHANGE, |
| IMCB_PCSCF_LIST_CURRENT_ACTIVE_PCSCF_PRESENT, |
| IMCB_PCSCF_LIST_CURRENT_ACTIVE_PCSCF_NOT_PRESENT, |
| IMCB_PCSCF_LIST_NO_CHANGE_AT_FIRST_PLACE |
| } imcb_pcscf_list_change_enum; |
| |
| /****************************************************************************** |
| * Basic type definitions |
| *****************************************************************************/ |
| |
| #define IMCF_FALSE KAL_FALSE |
| #define IMCF_TRUE KAL_TRUE |
| |
| typedef kal_char imcf_char; |
| typedef kal_wchar imcf_wchar; |
| |
| typedef kal_bool imcf_bool; |
| typedef kal_int8 imcf_int8; |
| typedef kal_int16 imcf_int16; |
| typedef kal_int32 imcf_int32; |
| typedef kal_int64 imcf_int64; |
| |
| typedef kal_uint8 imcf_uint8; |
| typedef kal_uint16 imcf_uint16; |
| typedef kal_uint32 imcf_uint32; |
| typedef kal_uint64 imcf_uint64; |
| |
| typedef module_type imcf_user_spec_t; |
| |
| typedef imcf_uint8 imc_sim_id_t; |
| typedef imcf_uint8 imc_acct_id_t; |
| |
| typedef kal_uint16 imcf_bid_t; |
| |
| typedef enum { |
| IMS_TYPE_H_PLMN = 0, |
| IMS_TYPE_V_PLMN, |
| IMS_TYPE_UNKNOWN, |
| } plmn_type_enum; |
| |
| /****************************************************************************** |
| * Struct |
| *****************************************************************************/ |
| // <pau> field of +ECPI |
| typedef struct |
| { |
| kal_uint8 p_asserted_uri[IMS_P_ASSERT_URI_LEN]; |
| } pau_info_struct; |
| |
| typedef struct { |
| imcf_uint8 protocol_type; |
| imcf_uint8 pad[1]; |
| imcf_uint16 port_num; |
| |
| imcf_uint8 addr[IMC_IPV4_ADDR_LEN]; |
| } imc_pcscf_ipv4_struct; |
| |
| typedef struct { |
| imcf_uint8 protocol_type; |
| imcf_uint8 pad[1]; |
| imcf_uint16 port_num; |
| |
| imcf_uint8 addr[IMC_IPV6_ADDR_LEN]; |
| } imc_pcscf_ipv6_struct; |
| |
| typedef struct { |
| imcf_uint8 num_of_ipv4_pcscf_addr; |
| imcf_uint8 pad[3]; |
| |
| imc_pcscf_ipv4_struct pcscf_v4[IMC_PCSCF_MAX_NUM]; |
| |
| imcf_uint8 num_of_ipv6_pcscf_addr; |
| imcf_uint8 pad2[3]; |
| |
| imc_pcscf_ipv6_struct pcscf_v6[IMC_PCSCF_MAX_NUM]; |
| } imc_pcscf_list_struct; |
| |
| typedef struct |
| { |
| imcf_int8 mode_set[IMCB_IMC_MAX_SDP_FMTP_SUB_VALUE_LENGTH]; |
| |
| imcf_uint8 is_octet_align; //0:default, bandwidth-efficient, 1: octet_align, 2: VzW for general |
| imcf_uint8 mode_change_period; //the period should be N. but currently only 1(default) or 2. |
| imcf_uint8 mode_change_cap; //1(default) or 2(recommended to support) |
| imcf_uint8 mode_change_neighbor;//0(default) or 1 |
| |
| imcf_uint8 crc; //0 or 1. Not support yet. |
| imcf_uint8 robust; //0 or 1. Not support yet. |
| imcf_uint8 interleaving; //the maximum number of frame-blocks. 0: not present. Not support yet. |
| imcf_uint8 channel; // the number of audio channel |
| |
| imcf_uint16 max_red; // the maximum duration in ms. Not support yet. |
| imcf_uint8 padding[2]; //< padding byte for 4bytes align |
| } imcb_imc_ltecsr_amr_info_struct; |
| |
| typedef struct |
| { |
| imcf_int8 mode_set[IMCB_IMC_MAX_SDP_FMTP_SUB_VALUE_LENGTH]; |
| |
| imcf_uint8 evs_support; |
| imcf_uint8 evs_mode_switch; |
| imcf_uint8 hf_only; |
| imcf_uint8 dtx; |
| |
| imcf_uint8 dtx_recv; |
| imcf_uint8 ch_send; |
| imcf_uint8 ch_recv; |
| imcf_uint8 channel; // the number of audio channel |
| |
| imcf_uint8 br[2]; ///< VoLTE_EVS_Codec_Bitrate_e |
| imcf_uint8 br_send[2]; ///< VoLTE_EVS_Codec_Bitrate_e |
| imcf_uint8 br_recv[2]; ///< VoLTE_EVS_Codec_Bitrate_e |
| imcf_uint8 bw[2]; ///< VoLTE_EVS_Bandwidth_e |
| imcf_uint8 bw_send[2]; ///< VoLTE_EVS_Bandwidth_e |
| imcf_uint8 bw_recv[2]; ///< VoLTE_EVS_Bandwidth_e |
| |
| imcf_uint8 mode_change_period; //the period should be N. but currently only 1(default) or 2. |
| imcf_uint8 mode_change_cap; //1(default) or 2(recommended to support) |
| imcf_uint8 mode_change_neighbor;//0(default) or 1 |
| imcf_int8 ch_aw_recv; |
| |
| imcf_int8 cmr; |
| imcf_uint8 padding[1]; ///< padding byte for 4 bytes align |
| imcf_uint16 max_red; // the maximum duration in ms. Not support yet. |
| } imcb_imc_ltecsr_evs_info_struct; |
| |
| typedef struct { |
| imcf_uint8 red_level; |
| imcf_uint8 red_codec_list[IMCB_IMC_MAX_RED_LEVEL]; |
| } imcb_imc_ltecsr_red_info_struct; |
| |
| typedef struct { |
| imcf_uint8 payload_type; ///< payload type |
| imcf_uint8 codec; ///< voip_codec_enum in codec_def.h |
| imcf_uint8 clock_rate; ///< dynamic rate, clock rate, see VoLTE_Event_Clock_Rate_e |
| imcf_uint8 g723_bitrate; ///< VoLTE_Event_G7231_BitRate_e |
| imcf_uint8 is_g723_annexAYES; ///< G.723.1 annexA Yes:1, No:0 |
| imcf_uint8 is_g729_annexBYES; ///< G.729 annexB Yes:1, No:0 |
| imcf_uint8 ilbc_mode; ///< VoLTE_Event_iLBC_Rate_e |
| imcf_uint8 text_cps; ///< |
| |
| imcf_uint32 ptime; ///< play time |
| imcf_uint32 max_ptime; ///< maximum play time |
| |
| imcb_imc_ltecsr_amr_info_struct amr_fmtp; |
| imcb_imc_ltecsr_evs_info_struct evs_fmtp; |
| imcb_imc_ltecsr_red_info_struct red_fmtp; |
| } imcb_imc_ltecsr_media_codec_struct; |
| |
| typedef enum { |
| IMC_SIP_CAUSE_UNSPECIFIED = 0, |
| IMC_SIP_CAUSE_300_MULTIPLE_CHOICES = 300, |
| IMC_SIP_CAUSE_301_MOVED_PERMANENTLY = 301, |
| IMC_SIP_CAUSE_302_MOVED_TEMPORARILY = 302, |
| IMC_SIP_CAUSE_305_USE_PROXY = 305, |
| IMC_SIP_CAUSE_380_ALTERNATIVE_SERVICE = 380, |
| IMC_SIP_CAUSE_400_BAD_REQUEST = 400, |
| IMC_SIP_CAUSE_401_UNAUTHORIZED = 401, |
| IMC_SIP_CAUSE_402_PAYMENT_REQUIRED = 402, |
| IMC_SIP_CAUSE_403_FORBIDDEN = 403, |
| IMC_SIP_CAUSE_404_NOT_FOUND = 404, |
| IMC_SIP_CAUSE_405_METHOD_NOT_ALLOWED = 405, |
| IMC_SIP_CAUSE_406_NOT_ACCEPTABLE = 406, |
| IMC_SIP_CAUSE_407_PROXY_AUTHENTICATION_REQUIRED = 407, |
| IMC_SIP_CAUSE_408_REQUEST_TIMEOUT = 408, |
| IMC_SIP_CAUSE_410_GONE = 410, |
| IMC_SIP_CAUSE_413_REQUEST_ENTITY_TOO_LARGE = 413, |
| IMC_SIP_CAUSE_414_REQUEST_URI_TOO_LARGE = 414, |
| IMC_SIP_CAUSE_415_UNSUPPORTED_MEDIA_TYPE = 415, |
| IMC_SIP_CAUSE_416_UNSUPPORTED_URI_SCHEME = 416, |
| IMC_SIP_CAUSE_420_BAD_EXTENSION = 420, |
| IMC_SIP_CAUSE_421_EXTENSION_REQUIRED = 421, |
| IMC_SIP_CAUSE_423_INTERVAL_TOO_BRIEF = 423, |
| IMC_SIP_CAUSE_480_TEMPORARILY_NOT_AVAILABLE = 480, |
| IMC_SIP_CAUSE_481_CALL_LEG_TRANSACTION_DOES_NOT_EXIST = 481, |
| IMC_SIP_CAUSE_482_LOOP_DETECTED = 482, |
| IMC_SIP_CAUSE_483_TOO_MANY_HOPS = 483, |
| IMC_SIP_CAUSE_484_ADDRESS_INCOMPLETE = 484, |
| IMC_SIP_CAUSE_485_AMBIGUOUS = 485, |
| IMC_SIP_CAUSE_486_BUSY_HERE = 486, |
| IMC_SIP_CAUSE_487_REQUEST_TERMINATED = 487, |
| IMC_SIP_CAUSE_488_NOT_ACCEPTABLE_HERE = 488, |
| IMC_SIP_CAUSE_491_REQUEST_PENDING = 491, |
| IMC_SIP_CAUSE_493_UNDECIPHERABLE = 493, |
| IMC_SIP_CAUSE_494_SECURITY_AGREEMENT_REQUIRED = 494, |
| IMC_SIP_CAUSE_500_SERVER_INT_ERROR = 500, |
| IMC_SIP_CAUSE_501_NOT_IMPLEMENTED = 501, |
| IMC_SIP_CAUSE_502_BAD_GATEWAY = 502, |
| IMC_SIP_CAUSE_503_SERVICE_UNAVAILABLE = 503, |
| IMC_SIP_CAUSE_504_SERVER_TIME_OUT = 504, |
| IMC_SIP_CAUSE_505_SIP_VERSION_NOT_SUPPORTED = 505, |
| IMC_SIP_CAUSE_513_MESSAGE_TOO_LARGE = 513, |
| IMC_SIP_CAUSE_580_PRECONDITION_FAILURE = 580, |
| IMC_SIP_CAUSE_600_BUSY_EVERYWHERE = 600, |
| IMC_SIP_CAUSE_603_DECLINE = 603, |
| IMC_SIP_CAUSE_604_DOES_NOT_EXIST_ANYWHERE = 604, |
| IMC_SIP_CAUSE_606_NOT_ACCEPTABLE = 606, |
| IMC_SIP_CAUSE_700_INTERNAL_REQUEST_TIMEOUT = 700, //no sip error response 700 actually exist , this is for Internal timeout |
| IMC_SIP_CAUSE_UNKNOWN = 800, |
| IMC_SIP_CAUSE_MAX = IMC_SIP_CAUSE_UNKNOWN, |
| } imcb_imc_sip_cause_enum; |
| |
| typedef struct { |
| imcf_uint8 len; |
| imcf_uint8 pad[3]; |
| imcf_uint8 data[256]; |
| } ims_sim_usim_data_struct; |
| |
| typedef struct { |
| imcf_uint8 len; |
| imcf_uint8 pad[3]; |
| imcf_uint8 data[256]; |
| } ims_isim_data_struct; |
| |
| typedef struct volte_event_media_config { |
| kal_uint8 local_address[VOLTE_IPADDR_LENGTH]; |
| |
| // RTP and RTCP session for audio and video |
| 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_remote_rtp_port; |
| kal_uint16 audio_remote_rtcp_port; |
| kal_uint16 audio_local_rtcp_port; ///< rtcp port number. we may configure it not rtp_port+1 |
| kal_uint16 audio_local_rtp_port; ///< rtp port number for media attribute in SDP message |
| kal_uint8 audio_remote_rtp_address[VOLTE_IPADDR_LENGTH]; |
| kal_uint8 audio_remote_rtcp_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 |
| 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 remote_addr_type; ///< VoLTE_Event_IP_Version_e, apply to RTP audio & video session, RTCP audio & video session |
| kal_uint8 audio_rtp_direction; ///< VoLTE_Event_RTP_DIRECTION_e |
| kal_uint8 video_rtp_direction; ///< VoLTE_Event_RTP_DIRECTION_e |
| // required by video codec |
| kal_uint8 video_payload_type; |
| |
| kal_uint32 rtcp_interval; ///< IMCB will get value from NVRAM. Used by data plane. |
| 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. |
| |
| // required by voice codec driver |
| kal_uint8 audio_codec; ///< voip_codec_enum in codec_def.h |
| kal_uint8 audio_payload_type; ///< payload type |
| kal_uint8 audio_clock_rate; ///< dynamic rate, clock rate, see VoLTE_Event_Clock_Rate_e |
| 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_uint16 max_red; // the maximum duration in ms |
| // required by RTCP FB |
| kal_uint16 rtcp_rsize; |
| kal_uint32 rtcpfb_type; ///< bitmap, VoLTE_Event_RTCP_FB_Type_e |
| kal_uint32 network_id; |
| kal_char id[VOLTE_MAX_SDP_EGBYTE_LENGTH]; |
| kal_char trr_int[VOLTE_MAX_SDP_EGBYTE_LENGTH]; |
| kal_char id_app_string[VOLTE_MAX_SDP_FMTP_SUB_VALUE_LENGTH]; |
| kal_char ack_app_string[VOLTE_MAX_SDP_FMTP_SUB_VALUE_LENGTH]; |
| kal_char nack_app_string[VOLTE_MAX_SDP_FMTP_SUB_VALUE_LENGTH]; |
| kal_char tmmbr_string[VOLTE_MAX_SDP_FMTP_SUB_VALUE_LENGTH]; |
| kal_char vbcm_string[VOLTE_MAX_SDP_FMTP_SUB_VALUE_LENGTH]; |
| kal_char cname_string[VOLTE_MAX_CNAME_LENGTH]; |
| |
| /* EVS Support */ |
| kal_uint8 evs_support; |
| kal_uint8 evs_mode_switch; ///< 0(default) or 1 |
| kal_uint8 hf_only; ///< 0(default) or 1 |
| kal_uint8 dtx; ///< 0 or 1(default) |
| kal_uint8 dtx_recv; ///< 0 or 1(default) |
| kal_uint8 pading[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; ///< number of channel number, 1 for default |
| kal_uint8 ch_recv; ///< number of channel number, 1 for default |
| kal_int8 ch_aw_recv; ///< -1, 0(default), 2, 3, 5, or 7 |
| kal_int8 cmr; ///< 0(default), 1, or -1 |
| |
| /* RTCP-XR */ |
| kal_uint16 rtcp_xr_format; |
| 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_uint8 rtcp_xr_rtt_mode; |
| kal_uint8 rtcp_xr_stat_flags; |
| |
| /* TTY */ |
| kal_uint32 text_b_as; // RTP bandwidth |
| kal_uint32 text_b_rs; // RTCP sender bandwidth |
| kal_uint32 text_b_rr; // RTCP receiver bandwidth |
| kal_uint16 text_remote_rtp_port; |
| kal_uint16 text_remote_rtcp_port; |
| kal_uint16 text_local_rtcp_port; ///< rtcp port number. we may configure it not rtp_port+1 |
| kal_uint16 text_local_rtp_port; ///< rtp port number for media attribute in SDP message |
| kal_int8 text_remote_rtp_address[IMCB_IMC_IPADDR_LENGTH]; |
| kal_int8 text_remote_rtcp_address[IMCB_IMC_IPADDR_LENGTH]; |
| kal_uint8 text_rtp_direction; ///< VoLTE_Event_RTP_DIRECTION_e |
| kal_uint8 text_t140_payload_type; ///< payload type |
| kal_uint8 text_red_payload_type; ///< payload type |
| kal_uint8 text_red_level; ///< T140 Red level |
| kal_uint8 text_cps; ///< T140 Red level |
| /* ALTC ================================================================================*/ |
| kal_uint8 text_addr_type; |
| kal_uint8 text_pad[2]; |
| |
| /* 1940 - 4 = 1936*/ |
| /* offline define feature flag */ |
| /* ex. used by ALTC feautre */ |
| kal_uint32 feature_flag; |
| |
| /* ALTC 1936 - 16 = 1920 */ |
| /* ======================================================================================*/ |
| kal_uint8 text_local_address[IMCB_IMC_IPADDR_LENGTH]; |
| /* ======================================================================================*/ |
| |
| /* Asymmetric RTP payload type support 1920 - 4 - 736*8 = 1180 */ |
| kal_uint32 recv_codec_num; |
| imcb_imc_ltecsr_media_codec_struct recv_codec_list[IMCB_IMC_MAX_RECV_CODEC_LIST_LENGTH]; |
| |
| kal_uint8 resv[1180]; |
| } VoLTE_Event_Media_config_t, |
| volte_event_media_config_struct; |
| |
| typedef struct { |
| imcf_uint32 type; // imcb_imc_tlv_para_enum |
| imcf_uint32 len; |
| imcf_uint8 value[0]; |
| } imcb_imc_tlv_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| imcf_uint32 acct_id; |
| imcf_uint64 ua_id; // reg client information |
| imcf_uint32 total_len; |
| imcf_uint32 total_num; |
| imcf_uint32 tlv_dst; |
| imcf_uint8 data[IMC_MAX_ILM_BUFFER_LEN-16]; // imcb_imc_tlv_struct |
| } imcb_imc_tlv_para_setting_ind_struct, |
| imcb_imc_tlv_para_setting_req_struct, |
| VoLTE_Event_Tlv_Para_Setting_t; |
| |
| typedef struct _VoLTE_Event_ATCmd_Relay_t { |
| LOCAL_PARA_HDR |
| imcf_uint32 account_id; // Account ID, normal account of the SIM |
| imcf_uint64 ua_id; // reg client information |
| imcf_uint32 atcmd_id; // VoLTE_ATCmd_Id_t |
| imcf_uint32 pad; // pad |
| imcf_uint32 pad2; // pad |
| imcf_char cmdline[IMC_ATCMD_MAX_CMDLINE_LEN]; |
| } VoLTE_Event_ATCmd_Relay_t; |
| |
| typedef enum { |
| IMCB_IMC_TLV_TO_UNSPECIFIC = 0, |
| IMCB_IMC_TLV_TO_UA = 1, |
| IMCB_IMC_TLV_TO_IMCB = 2, |
| IMCB_IMC_TLV_TO_IMC = 3 |
| } imcb_imc_tlv_dst_enum; |
| |
| enum VoLTE_EIMSCAI_MODE_e { |
| VoLTE_EIMSCAI_MODE_unspecific = 0, |
| VoLTE_EIMSCAI_MODE_original_ims_call = 1, |
| VoLTE_EIMSCAI_MODE_client_api = 2, |
| VoLTE_EIMSCAI_MODE_enrich_calling = 3, |
| VoLTE_EIMSCAI_MODE_max |
| }; |
| |
| enum VoLTE_EIMSCAI_TYPE_e { |
| VoLTE_EIMSCAI_TYPE_unspecific = 0, |
| VoLTE_EIMSCAI_TYPE_header = 1, |
| VoLTE_EIMSCAI_TYPE_location = 2, |
| VoLTE_EIMSCAI_TYPE_max |
| }; |
| |
| typedef enum _VoLTE_ATCmd_Id_e { |
| VoLTE_ATCMD_NONE = 0, |
| VoLTE_ATCMD_EIMSXUI = 1, /* +EIMSXUI:<account_id>,<broadcast_flag>,<xui_info> */ |
| VoLTE_ATCMD_EIMSEVTPKG = 2, /* +EIMSEVTPKG: <call_id>,<type>,<urc_index>,<total_urc_count>,<data> */ |
| VoLTE_ATCMD_EIMSGEO = 3, /* AT+EIMSGEO=/+EIMSGEO:<account_id>,<broadcast_flag>,<latitude>,<longitude>,<accurate>,<method>,<city>,<state>,<zip>,<country> */ |
| VoLTE_ATCMD_EIMSPDIS = 4, /* +EIMSPDIS: <transaction_id>,<em_id>,<method>,<nw_if_name[]> ; AT+EIMSPDIS= <transaction_id>,<method>,<is_success> */ |
| VoLTE_ATCMD_EIMSPCSCF = 5, /* AT+EIMSPCSCF= <transaction_id>,<method>, <protocol_type>, <port_num>, <addr> */ |
| VoLTE_ATCMD_PRTTCALL = 6, /* +PRTTCALL: <call_id>, <op> ; AT+PRTTCALL: <call_id>, <result> */ |
| VoLTE_ATCMD_DIGITLINE = 7, /* AT+DIGITLINE=<account_id>,<serial_number>,<is_logout>,<has_next>,<is_native>,<msisdn>,"<token>" |
| * +DIGITLINE=<account_id>,<serial_number>,<msisdn_num>,<msisdn>,<is_active> */ |
| VoLTE_ATCMD_EIMSREGURI = 8, /* AT+EIMSREGURI=<account_id>,<profileURI>,<expiryTime>*/ |
| VoLTE_ATCMD_EIMSREGRESP = 9, /* AT+EIMSREGRESP=<account_id>,<profileURI>,<errorCode>,<errorMessage>"*/ |
| VoLTE_ATCMD_EIMSHEADER = 10, /* AT+EIMSHEADER=<call_id>,<header_type> */ |
| /* +EIMSHEADER:<call_id>,<header_type>,<totalcount>,<index>,"<value>"*/ |
| VoLTE_ATCMD_EIMSCALLMODE = 11, /* AT+EIMSCALLMODE=<op>*/ |
| VoLTE_ATCMD_ESIPREGINFO = 12, /* +ESIPREGINFO : <account_id>,<direction>,<SIP_msg_type>,<method>,<response_code>,"reason_phrase", <warn_text> */ |
| VoLTE_ATCMD_EIMSCAI = 13, /* AT+EIMSCAI: <mode>, <type>, <total>, <index>, <count>, [additional Info] */ |
| /* +EIMSCAI: <call_id>, <mode>, <type>, <total>, <index>, <count>, [additional Info] */ |
| VoLTE_ATCMD_ELOCAEN = 14, /* AT+ELOCAEN=<op> */ |
| VoLTE_ATCMD_CECN = 15, /* +CECN:<data_type> 0: updated MSD transfered; 1: request update MSD; |
| * 100: request in-band MSD transfer; 101: request in-band MSD transfer for SRVCC; 102: MSD transfered fail*/ |
| VoLTE_ATCMD_ERCSMTINV = 16, /* +ERCSMTINV: <from number>, <total count>, <index>, <MT SIP INVITE> */ |
| VoLTE_ATCMD_MAX, |
| } VoLTE_ATCmd_Id_e, VoLTE_ATCmd_Id_t; |
| |
| /* location info */ |
| typedef struct _VoLTE_Event_LBS_Location_ { |
| kal_int32 lat[2]; /* [0..8388607], 23 bits field */ |
| kal_int32 lng[2]; /* [-8388608..8388607], 24 bits field */ |
| kal_int32 acc; |
| kal_uint8 timestamp[VOLTE_MAX_TIME_STAMP_LENGTH]; // VOLTE_MAX_TIME_STAMP_LENGTH =32 |
| } VoLTE_Event_LBS_Location_t; |
| |
| #define IMS_MAX_TIME_STAMP_LENGTH 32 |
| typedef struct |
| { |
| imcf_int32 lat[2]; //double lat |
| imcf_int32 lng[2]; //double lng |
| imcf_int32 acc; |
| imcf_uint8 timestamp[IMS_MAX_TIME_STAMP_LENGTH]; //32 |
| } imcb_imc_loc_ts_struct; |
| |
| typedef struct _VoLTE_Event_Setting_TLV_ { |
| kal_int32 type; // VoLTE_Setting_Type_e |
| kal_int32 len; // length of data |
| kal_int32 value[0]; // data |
| } VoLTE_Event_Setting_TLV_t; |
| |
| typedef struct _VoLTE_Event_Setting_ { |
| LOCAL_PARA_HDR |
| kal_int32 id; ///< account id |
| kal_uint64 ua_id; // reg client information |
| kal_int32 len; ///< the length of data |
| kal_int32 num; ///< the number of settings |
| #if defined(WIN32) |
| kal_uint8 data[0]; ///< data |
| #else |
| VoLTE_Event_Setting_TLV_t data[0]; ///< data |
| #endif |
| } VoLTE_Event_Setting_t; |
| |
| typedef struct _VoLTE_Event_MD_Lower_Layer_Err { |
| LOCAL_PARA_HDR |
| kal_int32 acct_id; |
| kal_uint64 ua_id; // reg client information |
| kal_uint32 call_id; // unused |
| kal_uint32 cause; // VoLTE_Event_MD_Lower_Layer_Err_e |
| kal_uint8 value; // Value |
| kal_uint32 type; // VoLTE_Event_MD_Lower_Layer_TYPE_e |
| } VoLTE_Event_MD_Lower_Layer_Err_t; |
| |
| typedef struct _VoLTE_Event_Query_State { |
| LOCAL_PARA_HDR |
| kal_int32 id; // account id |
| kal_uint64 ua_id; // reg client information |
| kal_int32 type; // refer to ::VoLTE_Query_Type_e |
| } VoLTE_Event_Query_State_t; |
| |
| typedef struct _VoLTE_Event_Update_PLANI_Time { |
| LOCAL_PARA_HDR |
| kal_int32 id; // account id |
| kal_uint64 ua_id; // reg client information |
| kal_char timestamp[VOLTE_MAX_TIME_STAMP_LENGTH]; // VOLTE_MAX_TIME_STAMP_LENGTH =32 |
| } VoLTE_Event_Update_PLANI_Time_t; |
| |
| typedef struct _VoLTE_AutoTesting_Info_ { |
| LOCAL_PARA_HDR |
| kal_uint32 id; |
| } VoLTE_AutoTesting_Info_t; |
| |
| typedef struct _VoLTE_Event_Logging_Event_Notify_ { |
| LOCAL_PARA_HDR |
| kal_uint32 id; |
| kal_uint64 ua_id; // reg client information |
| kal_uint32 type; |
| } VoLTE_Event_Logging_Event_Notify_t; |
| |
| typedef struct _VoLTE_Event_PS_DATA_OFF_Req_ { |
| LOCAL_PARA_HDR |
| kal_int32 id; |
| kal_uint64 ua_id; // reg client information |
| kal_int32 psdataoff_status; |
| kal_int32 exempt_service; |
| } VoLTE_Event_PS_DATA_OFF_Req_t; |
| |
| typedef struct _VoLTE_Event_Network_Change_ { |
| LOCAL_PARA_HDR |
| kal_int32 id; // account id |
| kal_uint64 ua_id; // reg client information |
| kal_int32 state; // refer to ::VoLTE_Event_Network_State_e |
| kal_int32 type; // refer to ::VoLTE_Event_Network_Type_e |
| kal_int32 sub_type; // refer to ::VoLTE_Event_Network_Type_e (for VoData only) |
| 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_Network_Change_t; |
| |
| typedef struct _VoLTE_Event_Rat_Change_ { |
| LOCAL_PARA_HDR |
| kal_int32 id; // account id |
| kal_uint64 ua_id; // reg client information |
| kal_int32 type; // refer to ::VoLTE_Event_Network_Type_e |
| kal_int32 sub_type; // refer to ::VoLTE_Event_Network_Type_e (for VoData only) |
| kal_uint8 cell_id[VOLTE_MAX_CELL_ID_LENGTH]; // current cell id from the modem PS |
| VoLTE_Event_LBS_Location_t loc_info; |
| kal_uint8 ssid[VOLTE_MAX_SSID_LENGTH]; |
| kal_int32 mtu; |
| } VoLTE_Event_Rat_Change_t; |
| |
| typedef struct _VoLTE_Event_3gpp_Rat_Change_ { |
| LOCAL_PARA_HDR |
| kal_int32 id; // account id |
| kal_uint64 ua_id; // reg client information |
| kal_int32 old_rat_type; // refer to ::VoLTE_Event_Network_Type_e |
| kal_uint8 old_cell_id[VOLTE_MAX_CELL_ID_LENGTH]; // current cell id from the modem PS |
| kal_int32 new_rat_type; // refer to ::VoLTE_Event_Network_Type_e |
| kal_uint8 new_cell_id[VOLTE_MAX_CELL_ID_LENGTH]; // current cell id from the modem PS |
| VoLTE_Event_LBS_Location_t loc_info; |
| } VoLTE_Event_3gpp_Rat_Change_t; |
| |
| typedef struct _VoLTE_Event_IP_Change_Notify { |
| LOCAL_PARA_HDR |
| kal_int32 acct_id; |
| kal_uint64 ua_id; // reg client information |
| } VoLTE_Event_IP_Change_Notify_t; |
| |
| typedef struct _VoLTE_Event_iRat_without_IP_Change { |
| LOCAL_PARA_HDR |
| kal_int32 acct_id; |
| kal_int32 old_rat_type; // refer to ::VoLTE_Event_Network_Type_e |
| kal_int32 new_rat_type; // refer to ::VoLTE_Event_Network_Type_e |
| } VoLTE_Event_iRat_without_IP_Change_t; |
| |
| typedef struct _VoLTE_Event_Condition_Change_Notify { |
| LOCAL_PARA_HDR |
| kal_int32 acct_id; |
| kal_uint64 ua_id; // reg client information |
| kal_uint8 cell_id[VOLTE_MAX_CELL_ID_LENGTH]; // the current cell id from the modem PS |
| kal_int32 pdn_req_type; // refer to ::imcb_pdn_req_type_enum |
| kal_int32 is_ip_change; |
| kal_int32 is_pcscf_list_change; // refer to ::imcb_pcscf_list_change_enum |
| VoLTE_Event_LBS_Location_t loc_info; |
| } VoLTE_Event_Condition_Change_Notify_t; |
| |
| typedef struct _VoLTE_Event_FF00H_Update { |
| LOCAL_PARA_HDR |
| kal_int32 acct_id; |
| kal_uint64 ua_id; // reg client information |
| kal_int32 ff00h; |
| } VoLTE_Event_FF00H_Update_t; |
| |
| typedef struct _VoLTE_Event_Timer { |
| LOCAL_PARA_HDR |
| kal_uint32 id; |
| kal_uint32 timer_id; |
| kal_uint32 timeout; |
| kal_uint32 user_data; |
| } VoLTE_Event_Timer_t; |
| |
| typedef struct _VoLTE_Event_UA_Msg_Hdr { |
| kal_int32 id; // account id |
| kal_uint8 handshake; // 0: one-way, 1: two-way |
| kal_uint8 resv[3]; |
| kal_uint8 data[0]; |
| } VoLTE_Event_UA_Msg_Hdr_t ; |
| |
| typedef struct _VoLTE_Event_Geolocation_Info { |
| LOCAL_PARA_HDR |
| kal_uint32 type_id; // same as msg id |
| kal_uint64 ua_id; // reg client information |
| kal_char latitude[16]; |
| kal_char longitude[16]; |
| kal_char accuracy[8]; |
| kal_char method[16]; |
| kal_char city[32]; |
| kal_char state[32]; |
| kal_char zip[8]; |
| kal_char country_code[8]; |
| kal_char wifi_mac[20]; |
| kal_char confidence[8]; |
| kal_char altitude[16]; |
| kal_char accuracy_semiMajorAxis[16]; |
| kal_char accuracy_semiMinorAxis[16]; |
| kal_char accuracy_verticalAxis[16]; |
| VoLTE_Event_UA_Msg_Hdr_t ua_msg_hdr; /* contains a zero-length array, so must be in the end */ |
| } VoLTE_Event_Geolocation_Info_t; |
| |
| typedef struct _VoLTE_Event_AP_Location_status { |
| LOCAL_PARA_HDR |
| kal_uint64 ua_id; // reg client information |
| kal_int32 acct_id; |
| kal_uint32 status; |
| } VoLTE_Event_AP_Location_status_t; |
| |
| /* |
| [+CLCC: <id1>,<dir>,<stat>,<mode>,<mpty>[, |
| <number>,<type>] |
| [<CR><LF>+CLCC: <id2>,<dir>,<stat>,<mode>,<mpty>[, |
| <number>,<type>] |
| */ |
| typedef struct _VoLTE_Event_List_one_call { |
| kal_int32 acct_id; |
| kal_uint32 call_id; |
| kal_uint8 is_mt_call; |
| kal_uint8 stat_of_the_call; |
| kal_uint8 mode; // VOLTE_LIST_CALL_CNF:+CLCC VOLTE_CNF_REG_QUERY_CALL_STATE:VoLTE_Event_Call_Mode_e |
| kal_uint8 is_conference_call; |
| kal_char phone_number[VOLTE_MAX_URI_LENGTH]; |
| kal_uint32 is_international; // 0: no, 1: the phone number is a national number |
| } VoLTE_Event_List_one_call_t; |
| |
| enum VoLTE_Event_RTP_DIRECTION_e { |
| VoLTE_Event_RTP_DIRECTION_INACTIVE = 0, ///< RTP session suspends. Inactive also is default value. |
| VoLTE_Event_RTP_DIRECTION_SENDONLY, ///< Send only |
| VoLTE_Event_RTP_DIRECTION_RECVONLY, ///< Receive only |
| VoLTE_Event_RTP_DIRECTION_SENDRECV, ///< Send and Receive |
| /*add here*/ |
| VoLTE_Event_RTP_DIRECTION_Max, |
| }; |
| |
| enum VoLTE_Event_Feature_Sync_e { |
| VoLTE_Event_Feature_Sync_Unknown = 0, |
| VoLTE_Event_Feature_Sync_Reset_Throttling_Para_Criteria = 1, |
| /*add here*/ |
| VoLTE_Event_Feature_Sync_Max, |
| }; |
| |
| typedef struct _VoLTE_Event_Feature_Sync_ { |
| LOCAL_PARA_HDR |
| kal_uint32 id; |
| kal_uint32 feature; //VoLTE_Event_Feature_Sync_e |
| } VoLTE_Event_Feature_Sync_t; |
| |
| typedef struct _VoLTE_Event_3gpp_OOS_Ind_ { |
| LOCAL_PARA_HDR |
| kal_int32 id; ///< the account id |
| kal_uint64 ua_id; // reg client information |
| kal_int32 oos_state; ///< VoLTE_Event_3gpp_OOS_State_e |
| kal_int32 oos_timestamp; ///< 3gpp OOS unix timestamp |
| } VoLTE_Event_3gpp_OOS_Ind_t; |
| |
| typedef struct _VoLTE_Event_Notify { |
| LOCAL_PARA_HDR |
| kal_int32 acct_id; |
| kal_uint64 ua_id; // reg client information |
| kal_int32 data; |
| } VoLTE_Event_Notify_t; |
| |
| enum VoLTE_Event_Auth_Result_e { |
| VoLTE_Event_Auth_Result_Accept = 0, |
| VoLTE_Event_Auth_Result_Reject = 1, |
| /*add here*/ |
| VoLTE_Event_Auth_Result_Max, |
| }; |
| |
| typedef struct _VoLTE_Event_Reg_Auth_Resp { |
| LOCAL_PARA_HDR |
| kal_int32 id; // account id |
| kal_int32 result; // refer to ::VoLTE_Event_Auth_Result_e |
| kal_char nc[VOLTE_MAX_AUTH_NC]; // nc |
| kal_char response[VOLTE_MAX_AUTH_RESPONSE]; // response |
| kal_char auts[VOLTE_MAX_AUTH_AUTS]; // auts |
| kal_char ck_esp[VOLTE_MAX_AUTH_CK]; // ck_esp for ipsec encryption key |
| kal_char ik_esp[VOLTE_MAX_AUTH_IK]; // ik_esp for ipsec intergrity key |
| kal_uint8 ck_bin[IMC_MAX_CK_LEN]; |
| kal_uint8 ik_bin[IMC_MAX_IK_LEN]; |
| kal_uint8 ck_len; |
| kal_uint8 ik_len; |
| kal_uint32 user_data; // user data for UA |
| } VoLTE_Event_Reg_Auth_Resp_t; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint32 acct_id; |
| kal_uint32 sys_time[2]; ///< system time, in ms |
| kal_uint8 src_ip[VOLTE_MAX_ADDRESS_LENGTH]; ///< SIP message source IP addr |
| kal_uint8 dst_ip[VOLTE_MAX_ADDRESS_LENGTH]; ///< SIP message destination IP addr |
| kal_uint32 direction; ///< refer to ::ims_dbg_direction_enum |
| kal_uint32 transaction_id; ///< map to ts_id of transaction_layer |
| kal_uint32 transport_protocol; ///< refer to ::ims_dbg_transport_enum |
| kal_uint32 msg_type; ///< refer to ::ims_dbg_msg_type_enum |
| kal_uint32 method_type; ///< refer to ::ims_dbg_method_enum |
| kal_uint32 cseq; ///< cseq |
| kal_int32 network_id; ///< network id |
| kal_uint32 access_rat; ///< access RAT |
| kal_uint16 rsp_code; ///< SIP response code |
| kal_char request_line[VOLTE_MAX_REQUEST_LINE_LENGTH]; ///< First Line of a SIP message (Request-Line/Status-Line) |
| kal_uint8 call_id[VOLTE_MAX_CALL_ID_LENGTH]; ///< call id |
| kal_char reason_text[VOLTE_MAX_REASON_TEXT_LENGTH]; ///< reason header field |
| kal_char warning_text[VOLTE_MAX_WARNING_TEXT_LENGTH]; ///< warning header field |
| kal_char user_agent_text[VOLTE_MAX_USER_AGENT_LENGTH]; ///< user agent header field |
| kal_char codec_info[VOLTE_MAX_CODEC_LIST_LENGTH]; ///< codec list |
| kal_uint16 audio_port; ///< audio port number |
| kal_uint16 video_port; ///< video port number |
| kal_uint16 audio_as; ///< audioAS |
| kal_uint16 video_as; ///< videoAS |
| kal_uint16 session_as; ///< sessionAS |
| kal_uint16 sip_msg_len; ///< SIP msg length |
| kal_uint8 sip_msg_data[0]; ///< dynamic buffer for SIP msg |
| } ims_dbg_sip_info_ind_struct, |
| sip_dbg_sip_info_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint32 is_acct_id_valid; |
| kal_uint32 acct_id; |
| |
| kal_uint32 is_emergency_type_valid; |
| kal_uint32 emergency_type; |
| |
| kal_uint32 is_reg_state_valid; |
| kal_uint32 reg_state; |
| |
| kal_uint32 is_private_uid_valid; |
| kal_uint8 private_uid[VOLTE_MAX_REG_UID_LENGTH]; |
| |
| kal_uint32 is_public_uid_valid; |
| kal_uint8 public_uid[VOLTE_MAX_REG_UID_LENGTH]; |
| |
| kal_uint32 is_associated_uri_valid; |
| kal_uint8 associated_uri[VOLTE_MAX_ASSOCIATED_URI]; |
| |
| kal_uint32 is_em_reg_timestamp_valid; |
| kal_uint8 em_reg_timestamp[VOLTE_MAX_TIME_STAMP_LENGTH]; |
| |
| kal_uint32 is_reg_expires_valid; |
| kal_uint32 reg_expires; |
| |
| /** Removal of IPSEC Attribute |
| * ipsec_status not used or set in REG UA, |
| * and not consistent with the interface of |
| * em_imc_reg_info_ind_struct in em_imc_public_struct.h |
| * |
| * the change also makes the interface match the EM document |
| **/ |
| #if 0 |
| /* under construction !*/ |
| /* under construction !*/ |
| #endif |
| |
| kal_uint32 is_ems_mode_valid; |
| kal_uint32 ems_mode; |
| |
| kal_uint32 is_last_sip_cause_valid; |
| kal_uint32 last_sip_cause; |
| |
| kal_uint32 is_att_dm_type_valid; |
| kal_uint32 att_dm_type; |
| |
| |
| kal_uint32 is_att_reg_type_valid; |
| kal_uint32 att_reg_type; |
| |
| kal_uint32 is_att_direction_valid; |
| kal_uint32 att_direction; |
| |
| kal_uint32 is_att_call_id_valid; |
| #define _SIP_MSG_MAX_EM_CALLID_LEN 100 |
| kal_uint8 att_call_id[_SIP_MSG_MAX_EM_CALLID_LEN]; |
| |
| kal_uint32 is_att_request_uri_valid; |
| kal_uint8 att_request_uri[VOLTE_MAX_URI_LENGTH]; |
| |
| kal_uint32 is_att_to_valid; |
| kal_uint8 att_to[VOLTE_MAX_URI_LENGTH]; |
| |
| kal_uint32 is_att_reg_state_valid; |
| kal_uint32 att_reg_state; |
| |
| kal_uint32 is_att_reg_result_valid; |
| kal_uint32 att_reg_result; |
| } ims_dbg_em_reg_info_ind_struct; |
| |
| |
| |
| enum VoLTE_Stack_IPSec_Encry_Algo_e { |
| VoLTE_Stack_IPSec_Encry_Algo_NULL = 0, |
| VoLTE_Stack_IPSec_Encry_Algo_3DES_CBC = 1, |
| VoLTE_Stack_IPSec_Encry_Algo_AES_CBC = 2 |
| }; |
| |
| enum VoLTE_Stack_IPSec_Integrity_Algo_e { |
| VoLTE_Stack_IPSec_Integrity_Algo_HMAC_MD5 = 0, |
| VoLTE_Stack_IPSec_Integrity_Algo_HMAC_SHA1 = 1 |
| }; |
| |
| typedef struct _VoLTE_Event_UA_State_ { |
| LOCAL_PARA_HDR |
| kal_uint32 conn_info; ///< REG connection information |
| kal_uint8 ua_type; ///< UA type |
| kal_uint8 ua_enabled; ///< UA enabled |
| } VoLTE_Event_UA_State_t; |
| |
| /*PANI header necessary information , send from call UA to STACK*/ |
| typedef struct _VoLTE_Event_UA_Stack_PANI_Info_ { |
| LOCAL_PARA_HDR |
| //Basic information for PANI |
| kal_int32 acct_id; |
| kal_uint8 cell_id[VOLTE_MAX_CELL_ID_LENGTH]; |
| kal_int8 cell_id_3gpp[VOLTE_MAX_CELL_ID_LENGTH]; |
| kal_int8 g_emerg_cell_id[VOLTE_MAX_CELL_ID_LENGTH]; |
| kal_int8 country_code[8]; |
| kal_uint32 net_type; ///< VoLTE_Event_Network_Type_e |
| kal_int32 sub_net_type; ///< VoLTE_Event_Network_Type_e |
| kal_int8 pani_access_category; ///decide to carry access-type or access-class in PANI header, refer to VoLTE_Stack_PANI_Access_Category_e |
| kal_uint32 is_emergency_call; |
| |
| //Customization for PANI |
| kal_uint8 set_zero_cell_id_in_wifi; |
| kal_uint8 set_zero_cell_id_when_invalid; |
| kal_uint8 add_country_to_pani; |
| kal_uint8 add_cellid_to_pani; |
| kal_uint8 add_timezone_to_pani; |
| kal_uint8 add_pani_in_ack; |
| kal_uint8 add_pani_in_cancel; |
| |
| } VoLTE_Event_UA_Stack_PANI_Info_t; |
| |
| /* Teardown Flow for IMCB/REG State un-sync */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_int32 id; // account id |
| kal_int32 ua_id; // reg client information |
| kal_int32 imcb_current_state; // refer to ::imcb_fsm_state_enum |
| kal_int32 receiving_ua_state; // refer to ::VoLTE_Event_Reg_State_e |
| } imsua_imcb_unexpected_state_ind_struct; |
| |
| typedef imsua_imcb_unexpected_state_ind_struct imsua_ims_stack_unexpected_state_req_struct; |
| |
| /* REGUA-IMC MSG_ID_REGUA_IMC_REMAIN_TIME_IND */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 rereg_flag; // send rereg_time or not |
| kal_int32 rereg_remain_time; // rereg_time |
| kal_uint8 resub_flag; // send resub_time or not |
| kal_int32 resub_remain_time; // resub_time |
| } regua_imc_remain_time_ind_struct; |
| |
| // Constant |
| #define MAX_CC_CDU_URI_LEN MAX_CC_ATD_NUM_LEN |
| #define MAX_CC_ECPI_NUM_LEN MAX_CC_ATD_NUM_LEN |
| #define MAX_CC_EAIC_NUM_LEN MAX_CC_ATD_NUM_LEN |
| |
| #define IMS_MAX_CALL_NUM 7 |
| #define IMS_MAX_CONFERENCE_CALL_NUM 5 |
| #define IMS_MAX_CALL_NUM_IN_CONF 5 |
| #define MAX_SS_NOTIFY_DATA_LEN 512 |
| |
| #define IMS_USSD_MAX_MSG_LEN (1500) |
| #define IMS_USSD_LANGUANGE_LEN (32) |
| |
| typedef enum |
| { |
| IMS_CALL_CATEGORY_NORMAL = 0, |
| IMS_CALL_CATEGORY_EMERGENCY |
| } ims_call_category_enum; |
| |
| typedef enum |
| { |
| IMS_CC_RESULT_SUCCESS = 0, |
| IMS_CC_RESULT_FAILURE, |
| IMS_CC_RESULT_INVALID |
| } ims_cc_result_enum; |
| |
| typedef enum |
| { |
| // Source: UA |
| IMS_CC_CAUSE_NORMAL = 0, /* receive BYE request, MO hangup, or User reject to receive the all. mapping to CS NORMAL_CLEARING = 16. */ |
| IMS_CC_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*/ |
| IMS_CC_CAUSE_NONUMBER, /* no dialing number for MO call. mapping to CS Unassigned/Unobtainable number, VDM can require CS to make call. UNOBTAINABLE_NUMBER = 1*/ |
| IMS_CC_CAUSE_UNREGISTERED, /* account is not registered, VDM can require CS to make call, mapping to CS NORMAL_UNSPECIFIED = 31*/ |
| IMS_CC_CAUSE_DISCONNECT, /* register state go to disconnect state, mapping to CS BEARER_NOT_AVAIL = 58, play congestion tone*/ |
| IMS_CC_CAUSE_BECANCEL, /* we cancel the call, which is receive MO_HANGUP_REQ from AP side. Mapping to CS_NORMAL_CLEANING = 16*/ |
| IMS_CC_CAUSE_BEREJECT, /* receive 4xx,5xx,6xx from the peer side to cancel request, mapping to CS USER_BUSY = 17, play busy tone*/ |
| IMS_CC_CAUSE_BEREJECT_380, /* receive 380 alternative service, mapping to CS SERVICE_NOT_AVAILABLE = 63. VDM can require CS to make call */ |
| IMS_CC_CAUSE_BEREJECT_380_EMERGENCY_TO_CS, /* receive 380 alternative service, mapping to CS SERVICE_NOT_AVAILABLE = 63. VDM can require CS to make call */ |
| IMS_CC_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 */ |
| IMS_CC_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 */ |
| IMS_CC_CAUSE_BEREJECT_480, /* receive 480, mapping to CS TEMPORARY_FAILURE = 41, play congestion tone*/ |
| IMS_CC_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.*/ |
| IMS_CC_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.*/ |
| IMS_CC_CAUSE_NO_PRIVACY, /* network cannot support privacy service when user requires critical level. mapping to CS BEARER_NOT_AVAIL = 58, play congestion tone */ |
| IMS_CC_CAUSE_PRECONDFAIL, /* receive 580 precondition failure, mapping to CS BEARER_NOT_AVAIL = 58, play congestion tone*/ |
| IMS_CC_CAUSE_SECONDCALL, /* receive second call request, VDM can have its policy, mapping to CS NORMAL_UNSPECIFIED = 31*/ |
| IMS_CC_CAUSE_NOMEDIACONTENT, /* peer side do not provide SDP for media content or receive 488, mapping to CS QOS_NOT_AVAIL = 49, play congestion tone*/ |
| IMS_CC_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.*/ |
| IMS_CC_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.*/ |
| IMS_CC_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 */ |
| IMS_CC_CAUSE_SRVCC, /* Add for SRVCC, mapping to CS NORMAL_UNSPECIFIED = 31 */ |
| IMS_CC_CAUSE_FACILITY_REJECTED, /* receive 504 with XML body for Registration Restoration. Mapping to CS FACILILITY_REJECTED = 29 */ |
| IMS_CC_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) */ |
| IMS_CC_CAUSE_GENERIC_RETRY_CS, |
| IMS_CC_CAUSE_GENERIC_NO_RETRY, |
| IMS_CC_CAUSE_GENERIC_RETRY_IMS_CS, |
| IMS_CC_CAUSE_ABORTED, |
| IMS_CC_CAUSE_TIMER_B_EXPIRY, |
| IMS_CC_CAUSE_ECT_TIMEOUT, |
| IMS_CC_CAUSE_TIMER_VZW_EXPIRY, |
| IMS_CC_CAUSE_AC_BARRED, |
| IMS_CC_CAUSE_NW_REJ_CONN, |
| IMS_CC_CAUSE_BEREJECT_503_OUTAGE_TEXT, |
| IMS_CC_CAUSE_GENERIC_CHANGE_PCSCF, |
| IMS_CC_CAUSE_RTT_EMC_FAIL, |
| IMS_CC_CAUSE_BEREJECT_380_EMERGENCY_NORMAL_CS_TO_IMS, /* receive 380 alternative service, VDM can require CS to make a normal CS call or new IMS call */ |
| IMS_CC_CAUSE_BEREJECT_380_EMERGENCY_ACTION_ELEM_UNKNOWN, /* receive 380 alternative service, without contact header, XML type is emergency but unknown or missing action element. */ |
| IMS_CC_CAUSE_RETRY_IMS_VIDEO_TO_VOICE, |
| IMS_CC_CAUSE_NO_RETRY_BAR_IMS, /*Huawei's requirement, bar IMS for some specific scenarios, then VDM will only try CS during a time period*/ |
| IMS_CC_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)*/ |
| IMS_CC_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 */ |
| IMS_CC_CAUSE_UA_MAX, |
| |
| // Source: IMC |
| IMS_CC_CAUSE_UNAVAILABLE_OF_CALLS, /* unavailable of IMS Voice Service */ |
| IMS_CC_CAUSE_EMERG_REG_TIMEOUT, /* AT&T <CDR-LTE-2424>, CS domain search after emerg-reg-timer expires */ |
| IMS_CC_CAUSE_RAT_MISMATCH, |
| IMS_CC_CAUSE_RECOVERY_FOR_IMS_REG, |
| // Do not assign 0xC8 for new error code because it is used by VDM_CC_CAUSE_RESEL_IMS_FOR_ECC for VDM/L4 workaround |
| |
| IMS_CC_CAUSE_MAX |
| } ims_cc_cause_enum; |
| |
| typedef enum |
| { |
| IMS_CC_EAIC_ALLOWED = 0, |
| IMS_CC_EAIC_NOT_ALLOWED |
| } ims_cc_eaic_result_enum; |
| |
| typedef enum |
| { |
| IMS_CC_MT_NORMAL = 0, |
| IMS_CC_MT_SSAC_BARRING |
| } ims_cc_mt_reason_enum; |
| |
| typedef enum |
| { |
| IMS_CALL_RELATED_SS_TYPE_REL_HELD_OR_UDUB, // AT+CHLD=0 |
| IMS_CALL_RELATED_SS_TYPE_REL_ACTIVE_AND_ACCEPT, // AT+CHLD=1 |
| IMS_CALL_RELATED_SS_TYPE_REL_SPECIFIC_CALL, // AT+CHLD=1x |
| IMS_CALL_RELATED_SS_TYPE_HOLD_ACTIVE_AND_ACCEPT, // AT+CHLD=2 |
| IMS_CALL_RELATED_SS_TYPE_HOLD_ACTIVE_EXCEPT_SPECIFIC_CALL, // AT+CHLD=2x |
| IMS_CALL_RELATED_SS_TYPE_ADD_HELD_CALL, // AT+CHLD=3 |
| IMS_CALL_RELATED_SS_TYPE_EXPLICIT_CALL_TRANSFER, // AT+CHLD=4 |
| IMS_CALL_RELATED_SS_TYPE_ACTIVATE_CCBS_CALL, // AT+CHLD=5 |
| IMS_CALL_RELATED_SS_TYPE_REL_ALL, // AT+CHLD=6 |
| IMS_CALL_RELATED_SS_TYPE_REL_CALL_REJECT, // AT+CHLD=8 |
| IMS_CALL_RELATED_SS_TYPE_VT_FALL_TO_VOICE, // AT+CHLD=9x |
| IMS_CALL_RELATED_SS_TYPE_INVALID |
| } ims_call_related_ss_type_enum; |
| |
| typedef enum |
| { |
| /* values 1-127 can be found in 3GPP TS 24.008 Annex H. */ |
| /* H.1.1 Cause No. 1 "unassigned (unallocated) number" */ |
| IMS_EXT_ERROR_REPORT_UNOBTAINABLE_NUMBER = 1, |
| /* H.1.2 Cause No. 3 "no route to destination" */ |
| IMS_EXT_ERROR_REPORT_NO_ROUTE_TO_DEST = 3, |
| /* H.1.3 Cause No. 6 "channel unacceptable" */ |
| IMS_EXT_ERROR_REPORT_CHANNEL_UNACCEPTABLE = 6, |
| /* H.1.4 Cause No. 8 "operator determined barring" */ |
| IMS_EXT_ERROR_OPERATOR_DETERMINED_BARRING = 8, |
| /* H.1.5 Cause No. 16 "normal call clearing" */ |
| IMS_EXT_ERROR_REPORT_NORMAL_CLEARING = 16, |
| /* H.1.6 Cause No. 17 "user busy" */ |
| IMS_EXT_ERROR_REPORT_USER_BUSY = 17, |
| /* H.1.7 Cause No. 18 "no user responding" */ |
| IMS_EXT_ERROR_REPORT_NO_USER_RESPONDING = 18, |
| /* H.1.8 Cause No. 19 "user alerting, no answer" */ |
| IMS_EXT_ERROR_REPORT_NO_ANSWER = 19, |
| /* H.1.9 Cause No. 21 "call rejected" */ |
| IMS_EXT_ERROR_REPORT_CALL_REJECTED = 21, |
| /* H.1.10 Cause No. 22 "number changed" */ |
| IMS_EXT_ERROR_REPORT_NUMBER_CHANGED = 22, |
| /* H.1.10a Cause No. 24 "call rejected due to feature at the destination" */ |
| IMS_EXT_ERROR_REPORT_CELL_REJECTED_DUE_FEAT = 24, |
| /* H.1.11 Cause No. 25 "pre-emption" */ |
| IMS_EXT_ERROR_REPORT_PRE_EMPTION = 25, |
| /* H.1.12 Cause No. 26 "Non-selected user clearing" */ |
| IMS_EXT_ERROR_REPORT_NONSELECTED_USER_CLEARING = 26, |
| /* H.1.13 Cause No. 27 "Destination out of order" */ |
| IMS_EXT_ERROR_REPORT_DESTINATION_OUT_OF_OREDER = 27, |
| /* H.1.14 Cause No. 28 "Invalid number format (incomplete number) " */ |
| IMS_EXT_ERROR_REPORT_INVALID_NUMBER_FORMAT = 28, |
| /* H.1.15 Cause No. 29 "Facility rejected" */ |
| IMS_EXT_ERROR_REPORT_FACILITY_REJECTED = 29, |
| /* H.1.16 Cause No. 30 "response to STATUS ENQUIRY" */ |
| IMS_EXT_ERROR_REPORT_RESP_TO_STATUS_ENQUIRY = 30, |
| /* H.1.17 Cause No. 31 "normal, unspecified */ |
| IMS_EXT_ERROR_REPORT_NORMAL_UNSPECIFIED = 31, |
| /* H.2.1 Cause No. 34 "no circuit/channel available" */ |
| IMS_EXT_ERROR_REPORT_NO_CHANNEL_AVAILABLE = 34, |
| /* H.2.2 Cause No. 38 "network out of order" */ |
| IMS_EXT_ERROR_REPORT_NWK_OUT_OF_ORDER = 38, |
| /* H.2.3 Cause No. 41 "temporary failure" */ |
| IMS_EXT_ERROR_REPORT_TEMPORARY_FAILURE = 41, |
| /* H.2.4 Cause No. 42 "switching equipment congestion" */ |
| IMS_EXT_ERROR_REPORT_SWITCHING_CONGESTION = 42, |
| /* H.2.5 Cause No. 43 "access information discarded" */ |
| IMS_EXT_ERROR_REPORT_ACCESS_INFO_DISCARDER = 43, |
| /* H.2.6 Cause No. 44 "requested channel not available" */ |
| IMS_EXT_ERROR_REPORT_REQUESTED_CHANNEL_NOT_AVAIL = 44, |
| /* H.2.7 Cause No. 47 "resource unavailable, unspecified" */ |
| IMS_EXT_ERROR_REPORT_RESOURCE_UNAVAILABLE = 47, |
| /* H.3.1 Cause No. 49 "quality of service unavailable" */ |
| IMS_EXT_ERROR_REPORT_QOS_NOT_AVAIL = 49, |
| /* H.3.2 Cause No. 50 "Requested facility not subscribed" */ |
| IMS_EXT_ERROR_REPORT_REQ_FACILITY_NOT_SUBSCRIBED = 50, |
| /* H.3.3 Cause No. 55 "Incoming calls barred within the CUG" */ |
| IMS_EXT_ERROR_REPORT_INCOMING_CALLS_BARRED_IN_CUG = 55, |
| /* H.3.4 Cause No. 57 "Bearer capability not authorized" */ |
| IMS_EXT_ERROR_REPORT_BEARER_CAP_NOT_AUTHORIZED = 57, |
| /* H.3.5 Cause No. 58 "Bearer capability not presently available" */ |
| IMS_EXT_ERROR_REPORT_BEARER_NOT_AVAIL = 58, |
| /* H.3.6 Cause No. 63 "Service or option not available, unspecified" */ |
| IMS_EXT_ERROR_REPORT_SERVICE_NOT_AVAILABLE = 63, |
| /* H.3.7 Cause No. 68 "ACM equal to or greater than ACMmax" */ |
| IMS_EXT_ERROR_REPORT_ACM_GREATER_THAN_ACMMAX = 68, |
| /* H.4.1 Cause No. 65 "bearer service not implemented" */ |
| IMS_EXT_ERROR_REPORT_BEARER_SERVICE_NOT_IMPLEMENTED = 65, |
| /* H.4.2 Cause No. 69 "request facility not implemented" */ |
| IMS_EXT_ERROR_REPORT_REQ_FACILITY_NOT_IMPLEMENTED = 69, |
| /* H.4.3 Cause No. 70 "only restricted digital information bearer capability is available" */ |
| IMS_EXT_ERROR_REPORT_ONLY_DIGITAL_INFO_BEARER = 70, |
| /* H.4.4 Cause No. 79 "service or option not implemented, unspecified" */ |
| IMS_EXT_ERROR_REPORT_SERVICE_NOT_IMPLEMENTED = 79, |
| /* H.5.1 Cause No. 81 "invalid transaction identified value" */ |
| IMS_EXT_ERROR_REPORT_INVALID_TRANSACTION_IDENTIFIER = 80, |
| /* H.5.2 Cause No. 87 "user not member of CUG" */ |
| IMS_EXT_ERROR_REPORT_USER_NOT_MEMBER_OF_CUG = 87, |
| /* H.5.3 Cause No. 88 "incompatible destination" */ |
| IMS_EXT_ERROR_REPORT_INCOMPATIBLE_DESTINATION = 88, |
| /* H.5.4 Cause No. 91 "invalid transit network selection" */ |
| IMS_EXT_ERROR_REPORT_INVALID_TRANSIT_NWK_SELECTION = 91, |
| /* H.5.5 Cause No. 95 "semantically incorrect message" */ |
| IMS_EXT_ERROR_REPORT_SEMANTICALLY_INCORRECT_MSG = 95, |
| /* H.6.1 Cause No. 96 "invalid mandatory information" */ |
| IMS_EXT_ERROR_REPORT_INVALID_MANDATORY_INFORMATION = 96, |
| /* H.6.2 Cause No. 97 "message type non-existent or not implemented" */ |
| IMS_EXT_ERROR_REPORT_MSG_TYPE_NON_EXISTENT = 97, |
| /* H.6.3 Cause No. 98 "message type not compatible with protocol state" */ |
| IMS_EXT_ERROR_REPORT_MSG_TYPE_NOT_COMP_WITH_STATE = 98, |
| /* H.6.4 Cause No. 99 "information element non-existent or not implemented" */ |
| IMS_EXT_ERROR_REPORT_INFO_ELEMENT_NON_EXISTENT = 99, |
| /* H.6.5 Cause No. 100 "conditional IE error" */ |
| IMS_EXT_ERROR_REPORT_CONDITIOANL_IE_ERROR = 100, |
| /* H.6.6 Cause No. 101 "message not compatible with protocol state" */ |
| IMS_EXT_ERROR_MSG_NOT_COMP_WITH_STATE = 101, |
| /* H.6.7 Cause No. 102 "recovery on timer expiry" */ |
| IMS_EXT_ERROR_RECOVERY_ON_TIMER_EXPIRY = 102, |
| /* H.6.8 Cause No. 111 "protocol error, unspecified" */ |
| IMS_EXT_ERROR_REPORT_PROTOCOL_ERROR_UNSPECIFIED = 111, |
| /* H.7.1 Cause No. 127 "interworking, unspecified" */ |
| IMS_EXT_ERROR_REPORT_INTERWORKING_UNSPECIFIED = 127, |
| |
| /* other error causes */ |
| IMC_EXT_ERROR_REPORT_INVALID_CMD = 0, |
| IMS_EXT_ERROR_REPORT_FDN_RESTRICTION = 2600, // refer to ps_cause_enum |
| IMS_EXT_ERROR_REPORT_ECT_TIMEOUT = 899, |
| IMS_EXT_ERROR_REPORT_DEDICATED_BEARER_TIMEOUT = 1000, // may reselect CS domain |
| IMS_EXT_ERROR_REPORT_GENERIC_RETRY_CS = 1001, // may reselect CS domain |
| IMS_EXT_ERROR_REPORT_GENERIC_NO_RETRY = 1002, |
| IMS_EXT_ERROR_REPORT_GENERIC_RETRY_IMS_CS = 1003, // may retry IMS once, then CS domain |
| IMS_EXT_ERROR_REPORT_TIMER_B_EXPIRY = 1004, |
| IMS_EXT_ERROR_REPORT_GENERIC_RETRY_IMS_VIDEO_TO_VOICE = 1005, // always retry IMS. |
| IMS_EXT_ERROR_REPORT_NO_RETRY_BAR_IMS = 1006, // VDM will only try CS when barring IMS |
| IMS_EXT_ERROR_REPORT_NON_UE_DETECT_EMERG = 380, // report to AP to trigger normal to ecc redial |
| IMS_EXT_ERROR_REPORT_SILENT_REDIAL_3GPP2 = 2001, |
| IMS_EXT_ERROR_REPORT_DIAL_1XRTT_DIRECTLY = 2002, |
| IMS_EXT_ERROR_REPORT_NEED_GLOBAL_MODE_FOR_EMERG = 2003, |
| IMS_EXT_ERROR_REPORT_SSAC_BAR = 2004, |
| IMS_EXT_ERROR_REPORT_RTT_EMC_FAIL = 2005 |
| } ims_ext_error_report_enum; |
| |
| /* Deprecated: do not use after IMS interface 0x55 taken in use */ |
| #define IMS_EXT_ERROR_REPORT_TEMPORTARY_FAILURE IMS_EXT_ERROR_REPORT_TEMPORARY_FAILURE |
| |
| |
| typedef ims_ext_error_report_enum ims_disc_cause_enum; |
| |
| typedef enum |
| { |
| IMS_SUB_EVENT_UNKNOWN = 0, |
| IMS_SUB_EVENT_CONF = 1, |
| IMS_SUB_EVENT_MAX, |
| }ims_ss_sub_event_enum; |
| |
| typedef enum |
| { |
| IMS_DEREG_CAUSE_UNSPECIFIED = 0, |
| IMS_DEREG_CAUSE_PWR_OFF = 1, |
| IMS_DEREG_CAUSE_RF_OFF = 2, |
| IMS_DEREG_CAUSE_IMS_PLMN_BLOCKED = 3, |
| IMS_DEREG_CAUSE_IMS_3402_BLOCKED = 4, |
| IMS_DEREG_CAUSE_APN_CHANGE = 5, |
| IMS_DEREG_CAUSE_IMS_VOICE_NOT_AVAIL = 6, |
| IMS_DEREG_CAUSE_IMS_SIM_NOT_READY = 7, |
| IMS_DRREG_CAUSE_CAUSE_IGNORE_CHANGE = 8, |
| IMS_DEREG_CAUSE_ERAT = 11, |
| IMS_DEREG_CAUSE_MAX |
| }ims_dereg_cause_enum; |
| |
| typedef enum |
| { |
| VOICE_ADS_CTRL_AUTO = 0, // VDM apply domain selection |
| VOICE_ADS_CTRL_IMS_ALWAYS // VDM select IMS domain as long as IMS Registered |
| } voice_ads_ctrl_enum; |
| |
| typedef enum |
| { |
| IMS_SRVCC_CALL_MODE_VOICE = 0, |
| IMS_SRVCC_CALL_MODE_VIDEO, |
| IMS_SRVCC_CALL_MODE_EMERGENCY, |
| IMS_SRVCC_CALL_MODE_VOICE_CONFERENCE, |
| IMS_SRVCC_CALL_MODE_VIDEO_CONFERENCE, |
| IMS_SRVCC_CALL_MODE_VOICE_CONFERENCE_PARTS, // voice conference call participant |
| IMS_SRVCC_CALL_MODE_VIDEO_CONFERENCE_PARTS, // video conference call participant |
| IMS_SRVCC_CALL_MODE_MAX |
| } ims_srvcc_call_mode_enum; |
| |
| typedef enum |
| { |
| IMS_SRVCC_CALL_DIRECTION_MO = 0, |
| IMS_SRVCC_CALL_DIRECTION_MT, |
| IMS_SRVCC_CALL_DIRECTION_MAX, |
| } ims_srvcc_call_direction_enum; |
| |
| typedef enum |
| { |
| IMS_SRVCC_CALL_STATE_EARLY = 0, |
| IMS_SRVCC_CALL_STATE_EARLY_WITH_MEDIA, |
| IMS_SRVCC_CALL_STATE_ACTIVE, |
| IMS_SRVCC_CALL_STATE_ON_HOLD, |
| IMS_SRVCC_CALL_STATE_PRE_ALERTING, |
| IMS_SRVCC_CALL_STATE_PRE_ALERTING_WITH_MEDIA, |
| IMS_SRVCC_CALL_STATE_ACTIVE_RETRY_CC_CONNECT, |
| IMS_SRVCC_CALL_STATE_MAX |
| } ims_srvcc_call_state_enum; |
| |
| typedef enum |
| { |
| IMS_SRVCC_CALL_ECC_CTGY_UNSPECIFIED = 0, |
| IMS_SRVCC_CALL_ECC_CTGY_POLICE = 0x1, |
| IMS_SRVCC_CALL_ECC_CTGY_AMBULANCE = 0x2, |
| IMS_SRVCC_CALL_ECC_CTGY_FIRE = 0x4, |
| IMS_SRVCC_CALL_ECC_CTGY_MARINE = 0x8, |
| IMS_SRVCC_CALL_ECC_CTGY_MOUNTAIN = 0x10, |
| IMS_SRVCC_CALL_ECC_CTGY_MANUALLY = 0x40, |
| IMS_SRVCC_CALL_ECC_CTGY_AUTO = 0x80, |
| IMS_SRVCC_CALL_ECC_CTGY_GAS = 0x100, |
| IMS_SRVCC_CALL_ECC_CTGY_ANIMAL = 0x200, |
| IMS_SRVCC_CALL_ECC_CTGY_PHYSICIAN = 0x400, |
| IMS_SRVCC_CALL_ECC_CTGY_POISON = 0x800, |
| IMS_SRVCC_CALL_ECC_CTGY_TRAFFIC = 0x1000, |
| IMS_SRVCC_CALL_ECC_CTGY_COUNTRY_SPECIFIC = 0x2000, |
| IMS_SRVCC_CALL_ECC_CTGY_UNRECOGNIZED = 0x8000, |
| |
| /*Korea TTA special emergency Ctgy*/ |
| IMS_SRVCC_CALL_ECC_CTGY_KR_SPIES = 0x3, |
| IMS_SRVCC_CALL_ECC_CTGY_KR_INTELLIGENCE = 0x6, |
| IMS_SRVCC_CALL_ECC_CTGY_KR_SMUGGLING = 0x9, |
| IMS_SRVCC_CALL_ECC_CTGY_KR_SCHOOL_VIOLENCE = 0x12, |
| IMS_SRVCC_CALL_ECC_CTGY_KR_CYBERTERRORISM = 0x13, |
| IMS_SRVCC_CALL_ECC_CTGY_MAX = 0xFFFF |
| }ims_srvcc_call_ecc_category_enum; |
| |
| typedef enum |
| { |
| IMS_CC_EVTA_MODE_UNKNOWN = 0, |
| IMS_CC_EVTA_MODE_ACCEPT_AS_VOICE = 1, |
| IMS_CC_EVTA_MODE_ACCEPT_AS_ONE_WAY_VIDEO_RX = 2, |
| IMS_CC_EVTA_MODE_ACCEPT_AS_ONE_WAY_VIDEO_TX = 3, |
| IMS_CC_EVTA_MODE_MAX, |
| } ims_cc_evta_mode_enum; |
| |
| typedef enum |
| { |
| IMS_CALL_TYPE_NATIONAL = 129, |
| IMS_CALL_TYPE_INTERNATIONAL = 145, |
| } ims_call_type_enum; |
| |
| typedef enum |
| { |
| IMS_CALL_DIR_MO_CALL = 0, |
| IMS_CALL_DIR_MT_CALL = 1, |
| } ims_call_dir_enum; |
| |
| typedef enum |
| { |
| IMS_CALL_STATE_ACTIVE = 0, |
| IMS_CALL_STATE_HELD = 1, |
| IMS_CALL_STATE_MO_DIALING = 2, |
| IMS_CALL_STATE_MO_ALERTING = 3, |
| IMS_CALL_STATE_MT_INCOMING = 4, |
| IMS_CALL_STATE_MT_WAITING = 5, |
| } ims_call_state_enum; |
| |
| typedef enum |
| { |
| IMS_CALL_MODE_CS_DOMAIN_BEGIN = 0, |
| IMS_CALL_MODE_CS_VOICE_CALL = IMS_CALL_MODE_CS_DOMAIN_BEGIN, |
| IMS_CALL_MODE_CS_DATA_CALL, |
| IMS_CALL_MODE_CS_FAX_CALL, |
| IMS_CALL_MODE_CS_VFD_VOICE, /* voice followed by data, voice mode */ |
| IMS_CALL_MODE_CS_AVD_VOICE, /* alternating voice/data, voice mode */ |
| IMS_CALL_MODE_CS_AVF_VOICE, /* alternating voice/fax, voice mode */ |
| IMS_CALL_MODE_CS_VFD_DATA, /* voice followed by data, data mode */ |
| IMS_CALL_MODE_CS_AVD_DATA, /* alternating voice/data, data mode */ |
| IMS_CALL_MODE_CS_AVF_FAX, /* alternating voice/fax, fax mode */ |
| IMS_CALL_MODE_CS_UNKNOWN_MODE, |
| IMS_CALL_MODE_CS_VIDEO_CALL, |
| |
| IMS_CALL_MODE_IMS_DOMAIN_BEGIN = 20, |
| IMS_CALL_MODE_IMS_VOICE_CALL = IMS_CALL_MODE_IMS_DOMAIN_BEGIN, |
| IMS_CALL_MODE_IMS_VIDEO_CALL, |
| IMS_CALL_MODE_IMS_VOICE_CONF, |
| IMS_CALL_MODE_IMS_VIDEO_CONF, |
| IMS_CALL_MODE_IMS_VOICE_CONF_PARTS, // voice conference call participant |
| IMS_CALL_MODE_IMS_VIDEO_CONF_PARTS, // video conference call participant |
| IMS_CALL_MODE_IMS_DOMAIN_END = 39 |
| } ims_call_mode_enum; |
| |
| typedef enum |
| { |
| IMCSMS_MS_NW_RP_DATA =0, |
| IMCSMS_NW_MS_RP_DATA, |
| IMCSMS_MS_NW_RP_ACK, |
| IMCSMS_NW_MS_RP_ACK, |
| IMCSMS_MS_NW_RP_ERROR, |
| IMCSMS_NW_MS_RP_ERROR, |
| IMCSMS_MS_NW_RP_SMMA |
| } imcsms_rp_msg_type_enum; |
| |
| typedef enum |
| { |
| SC_UNSPECIFIED = (0<<0), |
| SC_POLICE = (1<<0), |
| SC_AMBULANCE = (1<<1), |
| SC_FIRE = (1<<2), |
| SC_MARINE = (1<<3), |
| SC_MOUNTAIN = (1<<4), |
| SC_MANUALLY_INITIATED_ECALL = (1<<5), |
| SC_AUTOMATICALLY_INITIATED_ECALL = (1<<6), |
| SC_RESERVED = (1<<7), |
| SC_GAS = (1<<8), |
| SC_ANIMAL = (1<<9), |
| SC_PHYSICAL = (1<<10), |
| SC_POISON = (1<<11), |
| SC_TRAFFIC = (1<<12), |
| SC_COUNTRY_SPECIFIC = (1<<13), |
| SC_EXTENDED_SUB_SERVICE = (1<<14), |
| SC_UNRECOGNIZED = (1<<15), |
| |
| /*Korea TTA special emergency category */ |
| SC_TTA_SPIES = 0x3, |
| SC_TTA_INTELLIGENCE = 0x6, |
| SC_TTA_SMUGGLING = 0x9, |
| SC_TTA_SCHOOL_VIOLENCE = 0x12, |
| SC_TTA_CYBERTERRORISM = 0x13, |
| } ims_ecc_category_enum; |
| |
| typedef struct |
| { |
| /* +ECPI:<call_id>,<msg_type>,<is_ibt>,<is_tch>,<dir>, |
| * <call_mode>,[<number>,<type>],[<disc_cause>],[<pau>] |
| */ |
| kal_bool is_ibt; |
| kal_bool is_tch; |
| ims_call_dir_enum call_dir; |
| ims_call_mode_enum call_mode; |
| kal_bool is_number_call_type_present; |
| kal_uint8 number[MAX_CC_ECPI_NUM_LEN]; |
| ims_call_type_enum call_type; |
| kal_bool is_disc_cause_present; |
| ims_disc_cause_enum disc_cause; |
| } ims_ecpi_info_struct; |
| |
| typedef struct |
| { |
| kal_uint8 call_id; /* call_id_ims = call_id_ap */ |
| ims_srvcc_call_mode_enum call_mode; |
| ims_srvcc_call_direction_enum call_direction; |
| ims_srvcc_call_state_enum call_state; |
| ims_srvcc_call_ecc_category_enum call_ecc_category; |
| kal_uint8 num_of_conf_parts; |
| kal_uint8 call_number[MAX_CC_ATD_NUM_LEN]; |
| } ims_srvcc_call_ctxt_struct; |
| |
| typedef struct { |
| kal_uint8 number[MAX_CC_ECPI_NUM_LEN]; |
| ims_call_type_enum call_type; |
| ims_call_mode_enum call_mode; |
| kal_uint8 digit_to_line_number[IMC_MAX_URI_LENGTH]; |
| } ims_cc_eaic_info_struct; |
| |
| /* +CLCC:<idx>,<dir>,<stat>,<mode>,<mpty>,[<number>,<type>]... */ |
| typedef struct { |
| kal_uint8 call_id; |
| ims_call_dir_enum dir; |
| ims_call_state_enum call_state; |
| ims_call_mode_enum call_mode; |
| kal_bool mpty; // FALSE: is NOT conference call, TRUE: is conference call |
| ims_call_type_enum call_type; |
| kal_uint8 number[MAX_CC_ATD_NUM_LEN]; |
| kal_uint8 cli_validity; |
| } ims_call_list_struct; |
| |
| /* ViLTE */ |
| typedef enum |
| { |
| IMS_CC_CAMERA_INACTIVE = 0, |
| IMS_CC_CAMERA_SEND_ONLY = 1, |
| IMS_CC_CAMERA_RECV_ONLY = 2, |
| IMS_CC_CAMERA_SEND_RECV = 3, |
| IMS_CC_CAMERA_MAX, |
| } ims_cc_camera_direction_enum; |
| |
| typedef enum |
| { |
| IMS_SEND_USSD_RESULT_SUCCESS = 0, |
| IMS_SEND_USSD_RESULT_FAILURE = 1, |
| IMS_SEND_USSD_RESULT_MAX, |
| } ims_send_ussd_result_enum; |
| |
| typedef enum |
| { |
| IMCSMS_C2K_SUBMIT = 0, //C2K SMS triggered by AP (AT+C2KCMGS) |
| IMCSMS_C2K_ACKNOWLEDGE = 1, |
| IMCSMS_CDMA_SUBMIT //C2K SMS triggered by MD3 (SDM_VAL_C2K_IND) |
| } imcsms_c2k_msg_type_enum; |
| |
| typedef enum |
| { |
| IMCSMS_C2K_CLASS_NONE =0, //No error |
| IMCSMS_C2K_CLASS_RESERVED, //Reserved |
| IMCSMS_C2K_CLASS_TEMPORARY, //Temporary error |
| IMCSMS_C2K_CLASS_PERMANENT //Permanent error |
| } imcsms_c2k_error_class_enum; |
| |
| typedef enum |
| { |
| IMCSMS_C2K_CAUSE_START = 0, |
| IMCSMS_C2K_CAUSE_NWRES = 2, |
| IMCSMS_C2K_CAUSE_NWFAIL = 3, |
| IMCSMS_C2K_CAUSE_OTHER_GENERAL_PROBLEM = 107, |
| IMCSMS_C2K_CAUSE_OK = 32768, |
| IMCSMS_C2K_CAUSE_END = 32780, |
| } imcsms_c2k_cause_code_enum; |
| |
| typedef enum |
| { |
| IMCSMS_CS_NETWORK_NOT_AVAILABLE = 0, |
| IMCSMS_CS_NETWORK_HOME, |
| IMCSMS_CS_NETWORK_ROAMING |
| } imcsms_cs_network_status_enum; |
| |
| typedef enum { |
| CALL_UNKNOWN_TIMER = 99, |
| CALL_REFRESH_TIMER = 100, ///< session timer / 2. When it times out, we shall send re-INVITE or UPDATE to refresh the session. |
| CALL_REFRESHCALL_TIMEOUT_TIMER, ///< session timer. When it times out, we shall terminate the session. |
| CALL_TCALL_TIMER, ///< examine the call progress for waiting 100 trying in MO call. If call is stopped because SIP message is not received and this timer is timeout, we will CANCEL this call. |
| CALL_CALLEND_TIMER, ///< examine the call cancel progress. To prevent we wait too long for CANCEL call; or used in OOS_END to wait NW cancel the ringing call, timeout will send reject code by UE |
| CALL_UPDATE_PRECOND_TIMER, |
| CALL_WAITING_MT_CALL_CNF_TIMER, ///< waiting MSG_ID_VOLTE_MT_CALL_PRESENT_RSP from AP side |
| CALL_SERVICE_UNAVAILA_TIMER, ///< Receive 503 Service Unavailable, then we cannot make call in the time duration |
| CALL_RINGBACK_END_TIMER, ///< for NSN NVIOT MO internal timer for MT not accept |
| CALL_RINGING_END_TIMER, ///< for CAT MT internal timer |
| CALL_MO_INVITE_TO_BWCNF_TIMER, ///<examine the call progress from send invite to receive bw_cnf, will tigger csfb when timeout and not receive bw_cnf |
| CALL_WAITING_487_TIMER, ///< for force release call when no 487 received after send CANCEL |
| CALL_HOLD_RETRY_TIMER, ///< Hold retry timer. When it times out, hold is retried once as specified in RFC 3261. Otherwise hold fails. |
| CALL_UNHOLD_RETRY_TIMER, ///< Unhold retry timer. When it times out, unhold is retried once as specified in RFC 3261. Otherwise unhold fails. |
| CALL_ABORT_INVITE_TIMER, ///< Abort INVITE timer. When it times out, UE should abort the INVITE transaction. |
| CALL_SECOND_INVITE_TIMER, ///< For RJIL hold/unhold timer, there is an another INVITE transaction after hold/unhold so we need to start a timer to wait the second INVITE transaction completed. |
| CALL_SDP_ANS_ACK_TIMER, ///< For KDDI, we need to start timer for waiting PRACK. |
| CALL_MT_PROCESSING_TIMER, ///< For KDDI, we need to start timer after receiving initial INVITE. |
| CALL_ECT_NOTIFY_TIMER, ///< NOTIFY guard timer for Assured ECT |
| CALL_SESSION_MODIFY_RETRY_TIMER, ///< RJIL IOT upgrade have to retry after Retry-After value |
| CALL_MOD_SESSION_RSP_TIMER, ///< For MSG_ID_VOLTE_MOD_SESSION_IND guard timer. When it timeout, aussme reject. |
| CALL_CELL_ID_VALID_TIMER, ///< cell id is stored in acct.c before it is considered too old |
| CALL_TEXT_WAIT_TIMER, ///< For VZW, if receive normal MT call but gtt on, need wait 2s, if no empty reINVITE, send reINVITE |
| CALL_LTE_EMC_TIMER, ///< Examine the call progress for waiting 200 OK in MO LTE emergency call. If 1xx received but no 200 OK received within the timer, we will CANCEL this call. |
| CALL_EMC_RTT_CB_TIMER, ///< For TMOUS RTT, When receiving a voice call after an EMC RTT call is terminated, we need automatically add text component (voice to RTT call upgrade) |
| CALL_E2_EMC_INIT_TIMER, ///< For TMOUS EMC, E2 Emergency setup initiation |
| CALL_E3_EMC_CATCH_ALL_H_TIMER, ///< For TMOUS EMC, E3 Emergency setup catch all for home |
| CALL_E3_EMC_CATCH_ALL_V_TIMER, ///< For TMOUS EMC, E3 Emergency setup catch all for roaming |
| CALL_MEDIA_OFF_GUARD_TIMER, ///< ignore media on / off pingpang. silent drop media off when timer existed |
| CALL_NORMAL_CLEAR_TIMER, ///< timeout, DISC change to NULL state |
| CALL_TCW_MT_CALL_TIMER, ///for telcel ,waiting communication,when it time out send 480 response to MO |
| CALL_EMERGENCY_OPTION_TIMER, ///< For Sprint EMC, send a SIP OPTIONS Method with an updated PIDF-LO |
| CALL_ROAMING_EPS_ONLY_TIMER, ///< For TMOUS, when eps-only attach to roaming plmn, no cancel or CSFB for no dedicated bearer. And drop call when timer expiry. |
| CALL_TERMINATION_TIMER, ///< Terminate session after timeout |
| CALL_ECT_DELAY_TARGET_UNHOLD_TIMER, ///< Delay abort guard timer for consultative ECT when unexpected BYE is received from transferee |
| CALL_IGNORE_REPEATE_180_TIMER, ///< When timer running, ignore repeated 180 |
| CALL_ANBR_RETRY_TIMER, ///< Recv L2 ANBR but cannot handle immeediately, timeout retry it |
| CALL_ANBR_GUARD_TIMER, ///< During guard time, L2 ANBR message will be delay to timeout |
| CALL_WAIT_PRACK_FOR_183_TIMER, ///< After timerout,MT will send BW IND |
| CALL_MOD_SESSION_REQ_TIMER, ///< For VOLTE_MOD_SESSION_REQ guard timer. When it timeout, aussme reject |
| CALL_EMC_CLEAR_TIMER, ///< For TMOUS EMC, timeout, DISC change to NULL state |
| CALL_MO_B1_TIMER, ///< For TMOUS, UE MO Timer B1, GID-MTRREQ-459360 |
| CALL_LCFS_MT_CALL_TIMER, ///< for TMOUS, (last come first served) the UE shall accept network paging message (from LTE) to take the 2nd call in 2G/3G prior to sending 180 ringing or any final response (2xx, 4xx-6xx). |
| CALL_PENDING_ECPI133_TIMER, ///< MT don't answer the call,MO hangup, delay ECPI133 1s to confirm ACK have recv TCP ACK. |
| CONF_CALL_FINAL_NOTIFY_TIMER, ///< For REFER NOTIFY operation complete or not. |
| CONF_CALL_MODIFY_WAIT_NOTIFY_TIMER, ///< In order to wait NOTIFY(conference call SUBSCRIBE), start CONF_CALL_MODIFY_WAIT_NOTIFY_TIMER. |
| CALL_UPGRADE_BW_FAIL_AUTO_DOWNGRADE_TIMER, ///< When call upgrade fail, in order to avoid mo and mt send reINVITE at the same time for auto downgrade, start CALL_UPGRADE_BW_FAIL_AUTO_DOWNGRADE_TIMER(mo 3s, mt 1s). |
| CALL_DOWNGRADE_WAITING_FINAL_RESP_TIMER, ///< Huawei's requirement, during this timer running, MD will not accept any call operation request (including local and remote) |
| CALL_MO_INVITE_TO_18x_TIMER, ///< examine the call progress for waiting 18x in MO call. If timer is timeout, we will CANCEL this call. |
| CALL_MO_INVITE_RETRY_AFTER_TIMER, ///For KDDI, UE retry MO Call in retry-after if final response with the header |
| CALL_WAIT_AUDIO_RTP_FOR_CRS_TIMER, ///< To check if UA could receive audio rtp after the negoiation for video crs has been finished. If not, then need to notify AP when timer has expiried. |
| CALL_EVOLTESI_RINGING_TIMER, ///< A specific MT Ringing timer for enhanced volte si (short interruption) feature |
| CALL_EMC_PUBLISH_TIMER, ///< PUBLISH refresh timer for EMC Current Location Discovery |
| CALL_CS_SERVICE_NOTIFY_RSP_TIMER, /////For Airtel, during ongoing IMS call, handles CS service response delay timer |
| CALL_INVITE_NO_RSP_RAN_PRIO_REQ_TIMER, ///<Timer for waiting INVITE response in WiFi call and trigger MSG_ID_IMC_IWLAN_REG_RAN_PRIO_UPDATE_REQ to IWLAN to trigger possible HO to LTE..> |
| CALL_SENDING_DELAY_TIMER, ///< Timer to delay the sending of ILMs. |
| } ims_call_timer_type_enum; |
| |
| typedef enum { |
| USSD_UNKNOWN_TIMER = 50, |
| USSD_REFRESH_TIMER, ///< session timer / 2. When it times out, we shall send re-INVITE or UPDATE to refresh the session. |
| USSD_REFRESHCALL_TIMEOUT_TIMER, ///< session timer. When it times out, we shall terminate the session. |
| USSD_TCALL_TIMER, ///< examine the call progress for waiting 200 OK in MO call. If call is stopped because SIP message is not received and this timer is timeout, we will CANCEL this call. |
| USSD_WAITING_487_TIMER, ///< for force release call when no 487 received after send CANCEL |
| USSD_NW_TIMEOUT_TIMER, ///< for local release when NW not send resonse for 1 min |
| USSD_WAIT_BYE_200_OK_TIMER, ///< wait for BYE 200 OK from N/W |
| } ims_ussd_timer_type_enum; |
| |
| |
| //***************************** |
| //*** UA LEGACY TYPE DEFINE *** |
| //***************************** |
| |
| #define UA_IMCB_MAP_STRUCT(ua, imcb) \ |
| typedef VoLTE_Event_ ## ua ## _t ua_imcb_ ## imcb ## _struct, volte_ ## imcb ## _struct; \ |
| |
| #define UA_VOLTE_ILM_MAP_STRUCT(ua, ilm) \ |
| typedef VoLTE_Event_ ## ua ## _t volte_ ## ilm ## _struct; \ |
| |
| |
| UA_IMCB_MAP_STRUCT(Network_Change, req_network_change) // message: MSG_ID_VOLTE_REQ_NETWORK_CHANGE |
| UA_IMCB_MAP_STRUCT(Rat_Change, req_rat_change) // message: MSG_ID_VOLTE_REQ_RAT_CHANGE |
| UA_IMCB_MAP_STRUCT(3gpp_Rat_Change, req_3gpp_rat_change) // message: MSG_ID_VOLTE_REQ_3GPP_RAT_CHANGE |
| UA_IMCB_MAP_STRUCT(3gpp_OOS_Ind, req_3gpp_oos_ind) // message: MSG_ID_VOLTE_REQ_3GPP_OOS_IND |
| |
| /***** UA QUERY CELL ID *****/ |
| UA_IMCB_MAP_STRUCT(Query_State, ind_query_state) /* message: MSG_ID_VOLTE_IND_QUERY_STATE */ |
| |
| /**** Logging Notify ****/ |
| UA_IMCB_MAP_STRUCT(Logging_Event_Notify, logging_event_notify_req) /* message: MSG_ID_VOLTE_REQ_LOGGING_EVENT_NOTIFY */ |
| typedef VoLTE_Event_Logging_Event_Notify_t volte_req_logging_event_notify_struct; |
| |
| /***** FF00H to UA *****/ |
| UA_IMCB_MAP_STRUCT(FF00H_Update, ff00h_update) /* message: FF00H_UPDATE MSG_ID_VOLTE_REQ_FF00H_UPDATE */ |
| typedef VoLTE_Event_FF00H_Update_t volte_req_ff00h_update_struct; |
| |
| /***** IP Change Notify to UA *****/ |
| UA_IMCB_MAP_STRUCT(IP_Change_Notify, ip_change_notify) /* message: IP_CHANGE_NOTIFY MSG_ID_VOLTE_REQ_IP_CHANGE_NOTIFY */ |
| |
| /***** iRat Change PDN success to UA *****/ |
| UA_IMCB_MAP_STRUCT(iRat_without_IP_Change, irat_without_ip_change) /* message: IRAT_WIOUTH_IP_CHANGE VOLTE_REQ_IRAT_WIOUTH_IP_CHANGE */ |
| typedef VoLTE_Event_iRat_without_IP_Change_t volte_req_irat_without_ip_change_struct; |
| |
| /***** Feature Sync *****/ |
| UA_IMCB_MAP_STRUCT(Feature_Sync, feature_sync_req) /* message: FEATURE_SYNC_REQ VOLTE_REQ_FEATURE_SYNC */ |
| typedef VoLTE_Event_Feature_Sync_t volte_req_feature_sync_struct; |
| |
| UA_IMCB_MAP_STRUCT(PS_DATA_OFF_Req, req_ps_data_off) // message: MSG_ID_VOLTE_REQ_PS_DATA_OFF |
| |
| UA_IMCB_MAP_STRUCT(Tlv_Para_Setting, tlv_para_ind) /* mseeage: MSG_ID_VOLTE_IND_TLV_PARA */ |
| typedef VoLTE_Event_Tlv_Para_Setting_t volte_ind_tlv_para_struct; |
| |
| #if 0 |
| /* under construction !*/ |
| #else |
| // message: MSG_ID_VOLTE_REQ_UPDATE_RT_SETTING |
| typedef VoLTE_Event_Setting_t ua_imcb_req_update_rt_setting_header_struct, volte_req_update_rt_setting_struct; |
| typedef struct ua_imcb_req_update_rt_setting_struct { |
| imcf_uint8 data[1000]; |
| } ua_imcb_req_update_rt_setting_struct; |
| #endif |
| |
| UA_IMCB_MAP_STRUCT(MD_Lower_Layer_Err, req_md_lower_layer_err) // message: MSG_ID_VOLTE_REQ_MD_LOWER_LAYER_ERR |
| |
| /***** UA TIMER -> should be removed after gen97 *****/ |
| UA_IMCB_MAP_STRUCT(Timer, ind_timer_start) /* message: MSG_ID_VOLTE_IND_TIMER_START */ |
| UA_IMCB_MAP_STRUCT(Timer, ind_timer_cancel) /* message: MSG_ID_VOLTE_IND_TIMER_CANCEL */ |
| UA_IMCB_MAP_STRUCT(Timer, cnf_timer_expiry) /* message: MSG_ID_VOLTE_CNF_TIMER_EXPIRY */ |
| |
| typedef struct _VoLTE_Event_ATCmd_Relay_t ua_imcb_atcmd_relay_struct, volte_req_atcmd_relay, volte_ind_atcmd_relay; /* message: MSG_ID_VOLTE_REQ_ATCMD_RELAY -> should be removed after gen97?? */ |
| |
| /***** Condition Change Notify to UA *****/ |
| UA_IMCB_MAP_STRUCT(Condition_Change_Notify, condition_change_notify) /* message: CONDITION_CHANGE_NOTIFY MSG_ID_VOLTE_REQ_CONDITION_CHANGE_NOTIFY */ |
| |
| |
| #endif /* _IMS_COMMON_DEF_H_ */ |