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