blob: 9c3aa83c8073e6dfedb9db4e70abb185191c7d74 [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2005
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#ifndef IMC_IMCB_STRUCT_H
37#define IMC_IMCB_STRUCT_H
38
39#include "ims_common_def.h"
40
41#define IMCB_IMC_MAX_RTP_ADDRESS_LENGTH (64)
42#define IMCB_IMC_MAX_SDP_EGBYTE_LENGTH (8)
43#define IMCB_IMC_MAX_CALL_NUM (7)
44#define IMCB_IMC_MAX_DATA_TO_IMC_LENGTH (512)
45#define IMCB_IMC_MAX_CNAME_LENGTH (52)
46
47typedef enum {
48 IMCB_IMC_QUERY_TYPE_INVALID = 0,
49 IMCB_IMC_QUERY_TYPE_CELL_ID = 1
50} imcb_imc_query_type_enum;
51
52//IMS SIM Enum
53typedef enum {
54 IMCB_IMC_SIM_PLUG_OUT = 0,
55 IMCB_IMC_SIM_USIM_REFRESH = 1,
56 IMCB_IMC_ISIM_REFRESH = 2,
57 IMCB_IMC_SIM_USIM_RESET = 3, //unused
58 IMCB_IMC_ISIM_RESET = 4, //unused
59 IMCB_IMC_SIM_USIM_INIT = 5, //unused
60 IMCB_IMC_ISIM_INIT = 6 //unused
61} imcb_imc_sim_error_reason_enum;
62
63typedef enum {
64 IMCB_IMC_IMS_AKA_USING_USIM = 0,
65 IMCB_IMC_IMS_AKA_USING_ISIM
66} imcb_imc_ims_aka_cal_decision_enum;
67
68//IMS Bearer Enum
69typedef enum {
70 IMCB_IMC_SIP_TYPE = 0,
71 IMCB_IMC_NON_SIP_TYPE,
72 IMCB_IMC_VOICE_TYPE,
73 IMCB_IMC_VIDEO_TYPE,
74 IMCB_IMC_TEXT_TYPE
75} imcb_imc_ebi_filter_type_enum,
76 imcb_imc_bearer_filter_type_enum;
77
78//IMS P-CSCF Enum
79typedef enum {
80 IMCB_IMC_PCSCF_P_LIST_NONE = 0,
81 IMCB_IMC_PCSCF_P_LIST_DHCP = 1,
82 IMCB_IMC_PCSCF_P_LIST_PCO = 2,
83 IMCB_IMC_PCSCF_P_LIST_SIM = 3,
84 IMCB_IMC_PCSCF_P_LIST_MO = 4,
85 IMCB_IMC_PCSCF_P_LIST_MANUAL = 5,
86 IMCB_IMC_PCSCF_P_LIST_END
87} imcb_imc_pcscf_priority_list_enum; // copy from imcb_imcb_struct.h, imcb_pcscf_type_enum
88
89typedef enum {
90 IMCB_IMC_USE_DEDICATED_BEAERER = 0,
91 IMCB_IMC_USE_SIGNALLING_BEARER = 1,
92 IMCB_IMC_FORCE_SIGNALLING_BEARER = 2
93} imcb_imc_voice_bearer_ctrl_enum;
94
95//IMS Registration Enum
96typedef enum {
97 IMC_REG_STATE_UNREGISTERED = 0,
98 IMC_REG_STATE_REGISTERING,
99 IMC_REG_STATE_REGISTERED,
100 IMC_REG_STATE_UNREGISTERING
101} imc_reg_state_enum;
102
103typedef enum {
104 IMC_CAUSE_NORMAL = 0,
105 IMC_CAUSE_INTERNAL_ERROR = 1,
106 IMC_CAUSE_STACK_ERROR = 2,
107 IMC_CAUSE_TIMER_ERROR = 3,
108 IMC_CAUSE_TRY_NEXT_PCSCF = 4,
109 IMC_CAUSE_PCSCF_ALL_FAILED = 5,
110 IMC_CAUSE_AUTH_ERROR = 6,
111 IMC_CAUSE_RESET = 7,
112 IMC_CAUSE_ASSURI_CHANGED = 8,
113 IMC_CAUSE_NETWORK_INITIATED = 10,
114 IMC_CAUSE_CHANNEL_BIND = 11,
115 IMC_CAUSE_OOS = 12,
116 IMC_CAUSE_SIP_ERROR = 13,
117 IMC_CAUSE_PARAMETER_ERROR = 14,
118 IMC_CAUSE_NOT_BIND = 15,
119 IMC_CAUSE_NOT_AUTO_RE_REG = 16,
120 IMC_CAUSE_RETRY_AFTER = 17,
121 IMC_CAUSE_IMS_PDN_FATAL_FAIL = 18,
122 IMC_CAUSE_MD_LOWER_LAYER_ERR = 19,
123 IMC_CAUSE_C2K_FAIL = 20,
124 IMC_CAUSE_RETRY_BY_RFC5626 = 21,
125 IMC_CAUSE_REL_EMC_PDN_AFR_Timer_Expr = 22,
126 IMC_CAUSE_IMS_PDN_DEACT_DETACH_REATTACH = 23,
127 IMC_CAUSE_Teardown_for_State_Unsync = 24,
128 IMC_CAUSE_IMS_SERVICE_NR_RECOVER = 25,
129 IMC_CAUSE_NOT_IMS_RETRY = 26,
130 IMC_CAUSE_NOT_AUTO_RE_REG_UNTIL_RAT_CHANGE = 28,
131 IMC_CAUSE_IMS_PDN_INFINITE_SUGGEST_TIME = 29,
132 IMC_CAUSE_INIT_REGISTER_SENT = 30,
133 IMC_CAUSE_UNKNOWN = 99,
134 IMC_CAUSE_MAX = IMC_CAUSE_UNKNOWN,
135} imcb_imc_reg_cause_enum;
136
137typedef enum {
138 IMCB_IMC_EM_REG_SCHEME_NONE = 0,
139 IMCB_IMC_EM_REG_SCHEME_WITH_EM_REG = 1,
140 IMCB_IMC_EM_REG_SCHEME_WITHOUT_EM_REG = 2,
141 IMCB_IMC_EM_REG_SCHEME_BY_NORMAL_IMS_PDN = 3
142} imcb_imc_em_reg_scheme_enum;
143
144typedef enum {
145 IMCB_IMC_DEREG_REASON_NORMAL = 0,
146 IMCB_IMC_DEREG_REASON_23G_WITHOUT_IMS_DEREG = 1,
147 IMCB_IMC_DEREG_REASON_23G_WITH_IMS_DEREG = 2,
148 IMCB_IMC_DEREG_REASON_WITHOUT_IMS_DEREG = 3
149} imcb_imc_dereg_reason_enum;
150
151typedef enum {
152 IMCB_IMC_DEREG_CS_NONE,
153 IMCB_IMC_DEREG_CS_PWR_OFF,
154 IMCB_IMC_DEREG_CS_RF_OFF,
155 IMCB_IMC_DEREG_CS_RUNTIME
156} imcb_imc_dereg_cause_enum;
157
158//IMS Call Enum
159typedef enum {
160 IMCB_IMC_ECCTRL_STATE_CHANGE_HELD = 131,
161 IMCB_IMC_ECCTRL_STATE_CHANGE_ACTIVE = 132
162} imcb_imc_ecctrl_enum;
163
164typedef enum {
165 IMCB_IMC_CALL_CAUSE_NORMAL = 0,
166 IMCB_IMC_CALL_CAUSE_ABNORMAL,
167 IMCB_IMC_CALL_CAUSE_NONUMBER,
168 IMCB_IMC_CALL_CAUSE_UNREGISTERED,
169 IMCB_IMC_CALL_CAUSE_DISCONNECT,
170 IMCB_IMC_CALL_CAUSE_BECANCEL,
171 IMCB_IMC_CALL_CAUSE_BEREJECT,
172 IMCB_IMC_CALL_CAUSE_BEREJECT_380,
173 IMCB_IMC_CALL_CAUSE_BEREJECT_380_EMERGENCY_TO_CS,
174 IMCB_IMC_CALL_CAUSE_BEREJECT_380_EMERGENCY_REREG,
175 IMCB_IMC_CALL_CAUSE_BEREJECT_380_EMERGENCY_TO_NORMAL_CS,
176 IMCB_IMC_CALL_CAUSE_BEREJECT_480,
177 IMCB_IMC_CALL_CAUSE_BEREJECT_503,
178 IMCB_IMC_CALL_CAUSE_TX_TIMEOUT,
179 IMCB_IMC_CALL_CAUSE_NO_PRIVACY,
180 IMCB_IMC_CALL_CAUSE_PRECONDFAIL,
181 IMCB_IMC_CALL_CAUSE_SECONDCALL,
182 IMCB_IMC_CALL_CAUSE_NOMEDIACONTENT,
183 IMCB_IMC_CALL_CAUSE_INVALIDMSG,
184 IMCB_IMC_CALL_CAUSE_INVALIDCMD,
185 IMCB_IMC_CALL_CAUSE_INVALIDIDX,
186 IMCB_IMC_CALL_CAUSE_SRVCC,
187 IMCB_IMC_CALL_CAUSE_FACILITY_REJECTED,
188 IMCB_IMC_CALL_CAUSE_DEDICATED_BEARER_TIMEOUT,
189 IMCB_IMC_CALL_CAUSE_RETRY_CS,
190 IMCB_IMC_CALL_CAUSE_NO_RETRY,
191 IMCB_IMC_CALL_CAUSE_RETRY_IMS_CS,
192 IMCB_IMC_CALL_CAUSE_ABORTED,
193 IMCB_IMC_CALL_CAUSE_TIMER_B_EXPIRY,
194 IMCB_IMC_CALL_CAUSE_ECT_TIMEOUT,
195 IMCB_IMC_CALL_CAUSE_TIMER_VZW_EXPIRY,
196 IMCB_IMC_CALL_CAUSE_AC_BARRED,
197 IMCB_IMC_CALL_CAUSE_NW_REJ_CONN,
198 IMCB_IMC_CALL_CAUSE_BEREJECT_503_OUTAGE_TEXT,
199 IMCB_IMC_CALL_CAUSE_CHANGE_PCSCF,
200 IMCB_IMC_CALL_CAUSE_RTT_EMC_FAIL,
201 IMCB_IMC_CALL_CAUSE_BEREJECT_380_EMERGENCY_NORMAL_CS_TO_IMS,
202 IMCB_IMC_CALL_CAUSE_BEREJECT_380_EMERGENCY_ACTION_ELEM_UNKNOWN,
203 IMCB_IMC_CALL_CAUSE_RETRY_IMS_VIDEO_TO_VOICE,
204 IMCB_IMC_CALL_CAUSE_NO_RETRY_BAR_IMS,
205 IMCB_IMC_CALL_CAUSE_BEREJECT_380_FLIGHTMODE_CS,
rjw04b9c952023-03-28 14:35:43 +0800206 IMCB_IMC_CALL_CAUSE_NO_RETRY_EMERGENCY,
yu.dongf9f3aa82024-06-18 02:16:31 -0700207 IMCB_IMC_CALL_CAUSE_NOT_ENTER_ECBM,
rjw6c1fd8f2022-11-30 14:33:01 +0800208 IMCB_IMC_CALL_CAUSE_UA_MAX,
209 IMCB_IMC_CALL_CAUSE_AVAIABLE_OF_CALLS,
210 IMCB_IMC_CALL_CAUSE_EMERG_REG_TIMEOUT, /* AT&T <CDR-LTE-2424>, CS domain search after emerg-reg-timer expires */
211 /* WFC */
212 IMCB_IMC_CALL_CAUSE_RAT_MISMATCH,
213 IMCB_IMC_CALL_CAUSE_RECOVERY_FOR_IMS_REG,
214 IMCB_IMC_CALL_CAUSE_MAX,
215} imcb_imc_call_stop_cause_enum;
216
217typedef enum {
218 IMCB_IMC_CALL_MODE_AUDIO = 0, // 0, normal voice call
219 IMCB_IMC_CALL_MODE_VIDEO_AUDIO, // 1, normal video call
220 IMCB_IMC_CALL_MODE_VIDEO_ONLY, // 2, only video call
221
222 /* specifical call */
223 IMCB_IMC_CALL_MODE_AUDIO_CONF = 11, // 11, audio conference call
224 IMCB_IMC_CALL_MODE_VIDEO_CONF, // 12, video conference call
225
226 IMCB_IMC_CALL_MODE_AUDIO_CONF_PARTS = 21, // 21, audio conference call participant
227 IMCB_IMC_CALL_MODE_VIDEO_CONF_PARTS, // 22, video conference call participant
228
229 /* emergency */
230 IMCB_IMC_CALL_MODE_EMERGENCY = 81, // 81, emergency call
231 IMCB_IMC_CALL_MODE_EMER_POLICE, // 82, police emergency call
232 IMCB_IMC_CALL_MODE_EMER_FIRE, // 83, fire emergency call
233 IMCB_IMC_CALL_MODE_EMER_GAS,
234 IMCB_IMC_CALL_MODE_EMER_AMBULANCE,
235 IMCB_IMC_CALL_MODE_EMER_ANIMAL,
236 IMCB_IMC_CALL_MODE_EMER_MARINE,
237 IMCB_IMC_CALL_MODE_EMER_MOUNTAIN,
238 IMCB_IMC_CALL_MODE_EMER_PHYSICIAN,
239 IMCB_IMC_CALL_MODE_EMER_POISON,
240 IMCB_IMC_CALL_MODE_EMER_TRAFFIC,
241 IMCB_IMC_CALL_MODE_EMER_COUNTRY_SPECIFIC,
yu.donge372c322023-08-30 20:25:04 -0700242 IMCB_IMC_CALL_MODE_EMER_EXTENDED_SUB_SERVICE, //for 24.301 9.9.3.37A Extended Emergency Number
rjw6c1fd8f2022-11-30 14:33:01 +0800243 IMCB_IMC_CALL_MODE_EMER_MANUAL_ECALL, // manual initiated ecall
244 IMCB_IMC_CALL_MODE_EMER_AUTO_ECALL, //auto initiated ecall
245 IMCB_IMC_CALL_MODE_EMER_UNRECOGNIZED = 99,
246
247 /*Korea TTA special emergency service*/
248 IMCB_IMC_CALL_MODE_EMER_KR_INTELLIGENCE = 201,
249 IMCB_IMC_CALL_MODE_EMER_KR_SPIES,
250 IMCB_IMC_CALL_MODE_EMER_KR_SCHOOL_VIOLENCE,
251 IMCB_IMC_CALL_MODE_EMER_KR_CYBERTERRORISM,
252 IMCB_IMC_CALL_MODE_EMER_KR_SMUGGLING,
253 IMCB_IMC_CALL_MODE_MAX,
254} imcb_imc_call_mode_enum;
255
256typedef enum {
257 IMCB_IMC_CALL_PROG_ECPI_0 = 0,
258 IMCB_IMC_CALL_PROG_ECPI_2 = 2,
259 IMCB_IMC_CALL_PROG_ECPI_6 = 6,
260 IMCB_IMC_CALL_PROG_ECPI_7 = 7,
261 IMCB_IMC_CALL_PROG_ECPI_131 = 131,
262 IMCB_IMC_CALL_PROG_ECPI_132 = 132,
263 IMCB_IMC_CALL_PROG_ECPI_133 = 133,
264 IMCB_IMC_CALL_PROG_ECPI_135 = 135,
265 IMCB_IMC_CALL_PROG_ECPI_136 = 136,
266 IMCB_IMC_CALL_PROG_ECPI_MAX,
267} imcb_imc_call_prog_ecpi_enum;
268
269typedef enum {
270 IMCB_IMC_CALL_HOLD_BY_LOCAL = 0,
271 IMCB_IMC_CALL_HOLD_BY_REMOTE = 1,
272 IMCB_IMC_CALL_ECT_HOLD_BY_REMOTE = 2,
273 IMCB_IMC_CALL_HOLD_BY_MAX,
274} imcb_imc_call_hold_by_enum;
275
276typedef enum {
277 IMCB_IMC_CALL_MDEIA_OFF = 0,
278 IMCB_IMC_CALL_MEDIA_ON,
279 IMCB_IMC_CALL_MEDIA_MAX,
280} imcb_imc_media_enum;
281
282typedef enum {
283 IMCB_IMC_CALL_RESULT_OK = 0,
284 IMCB_IMC_CALL_RESULT_FAILED,
285 IMCB_IMC_CALL_RESULT_MAX,
286} imcb_imc_call_stop_result_enum;
287
288typedef enum {
289 IMCB_IMC_MD_LOWER_LAYER_ERR_AC_BARRED = 0,
290 IMCB_IMC_MD_LOWER_LAYER_ERR_NW_REJ_CONN = 1,
291 IMCB_IMC_MD_LOWER_LAYER_ERR_T3346_START = 2,
292 IMCB_IMC_MD_LOWER_LAYER_ERR_T3346_STOP = 3,
293 IMCB_IMC_MD_LOWER_LAYER_ERR_T3346_EXPIRY = 4,
294 IMCB_IMC_MD_LOWER_LAYER_ERR_CONN_FAIL = 5,
295 IMCB_IMC_MD_LOWER_LAYER_ERR_T3525_START = 6,
296 IMCB_IMC_MD_LOWER_LAYER_ERR_T3540_START = 7,
297
298 IMCB_IMC_MD_LOWER_LAYER_NON_ESRFAIL_ERR =100,
299 IMCB_IMC_MD_LOWER_LAYER_NON_ESRFAIL_ERR_TAU_FAIL = 101,
300 IMCB_IMC_MD_LOWER_LAYER_NON_ESRFAIL_ERR_EPSFB_FAIL = 102,
301 IMCB_IMC_MD_LOWER_LAYER_ERR_MAX,
302} imcb_imc_md_lower_layer_err_enum;
303
304typedef enum
305{
306 IMCB_IMC_MD_EPSFB_TYPE_HANDOVER = 0,
307 IMCB_IMC_MD_EPSFB_TYPE_REDIRECTION =1
308}imcb_imc_md_epsfb_type_enum;
309
310typedef enum {
311 IMCB_IMC_OPERATION_UNKNOWN = 0,
312 IMCB_IMC_OPERATION_HOLD = 1,
313 IMCB_IMC_OPERATION_UNHOLD = 2,
314 IMCB_IMC_OPERATION_HOLD_N_UNHOLD = 3,
315 IMCB_IMC_OPERATION_HOLD_N_ACCEPT = 4,
316 IMCB_IMC_OPERATION_REMOTE_HOLD = 5,
317 IMCB_IMC_OPERATION_REMOTE_UNHOLD = 6,
318 IMCB_IMC_OPERATION_REL_ALL = 11,
319 IMCB_IMC_OPERATION_ATH_REL_ALL = 12,
320 IMCB_IMC_OPERATION_REL_BG = 13,
321 IMCB_IMC_OPERATION_REL_WAIT = 14,
322 IMCB_IMC_OPERATION_REL_ACTIVE_N_RESUME = 15,
323 IMCB_IMC_OPERATION_CREATE_3WAY_CONF = 16,
324 IMCB_IMC_OPERATION_ADD_OTHER_TO_CONF = 17,
325 IMCB_IMC_OPERATION_CREATE_CONF_BRIDGE = 18,
326 IMCB_IMC_OPERATION_REMOVE_OTHER_FROM_CONF = 19,
327 IMCB_IMC_OPERATION_JOIN_OTHER_TO_CONF = 20,
328 IMCB_IMC_OPERATION_REL_ACTIVE_N_ACCEPT = 21,
329 IMCB_IMC_OPERATION_ACCEPT = 22,
330 IMCB_IMC_OPERATION_ECCTRL = 23,
331 IMCB_IMC_OPERATION_CONF_W_RESOURCE_LIST = 24,
332 IMCB_IMC_OPERATION_ECT = 25,
333 IMCB_IMC_OPERATION_REL_MAX,
334} imcb_imc_ss_operation_enum;
335
336typedef enum {
337 IMCB_IMC_NOTIFY_CALL_WAITING = 0,
338 IMCB_IMC_NOTIFY_CALL_BARRING = 1,
339 IMCB_IMC_NOTIFY_CALL_FORWARDING = 2,
340 IMCB_IMC_NOTIFY_MWI = 3,
341 IMCB_IMC_NOTIFY_CONFERENCE = 4,
342 IMCB_IMC_NOTIFY_MT_CALL_FORWARDING = 5,
343 IMCB_IMC_NOTIFY_DIALOG = 6,
344 IMCB_IMC_NOTIFY_MAX,
345} imcb_imc_ss_notify_service_enum;
346
347typedef enum {
348 IMCB_IMC_SUB_EVENT_UNKNOWN = 0,
349 IMCB_IMC_SUB_EVENT_CONF = 1,
350 IMCB_IMC_SUB_EVENT_MAX,
351} imcb_imc_ss_sub_event_enum;
352
353typedef enum {
354 IMCB_IMC_URI_SCHEME_TYPE_NONE = 0,
355 IMCB_IMC_URI_SCHEME_TYPE_SIP,
356 IMCB_IMC_URI_SCHEME_TYPE_TEL,
357 IMCB_IMC_URI_SCHEME_TYPE_URN,
358 IMCB_IMC_URI_SCHEME_TYPE_MAX
359} imcb_imc_uri_scheme_type_enum;
360
361//IMS SRVCC Enum
362typedef enum {
363 IMCB_IMC_SRVCC_RESULT_STARTED = 0,
364 IMCB_IMC_SRVCC_RESULT_SUCCESS,
365 IMCB_IMC_SRVCC_RESULT_FAILED,
366 IMCB_IMC_SRVCC_RESULT_CANCELLED,
367 IMCB_IMC_SRVCC_RESULT_UNKNOWN,
368 IMCB_IMC_SRVCC_RESULT_MAX
369} imcb_imc_srvcc_status_enum;
370
371typedef enum {
372 IMCB_IMC_SRVCC_CALL_DIRECTION_MO = 0,
373 IMCB_IMC_SRVCC_CALL_DIRECTION_MT,
374 IMCB_IMC_SRVCC_CALL_DIRECTION_MAX,
375} imcb_imc_srvcc_call_direction_enum;
376
377typedef enum {
378 IMCB_IMC_SRVCC_CALL_STATE_EARLY = 0,
379 IMCB_IMC_SRVCC_CALL_STATE_EARLY_WITH_MEDIA,
380 IMCB_IMC_SRVCC_CALL_STATE_ACTIVE,
381 IMCB_IMC_SRVCC_CALL_STATE_ON_HOLD,
382 IMCB_IMC_SRVCC_CALL_STATE_PRE_ALERTING,
383 IMCB_IMC_SRVCC_CALL_STATE_PRE_ALERTING_WITH_MEDIA,
384 IMCB_IMC_SRVCC_CALL_STATE_ACTIVE_RETRY_CC_CONNECT,
385 IMCB_IMC_SRVCC_CALL_STATE_MAX
386} imcb_imc_srvcc_call_state_enum;
387
388typedef enum {
389 IMCB_IMC_SRVCC_CALL_ECC_CTGY_UNSPECIFIED = 0,
390 IMCB_IMC_SRVCC_CALL_ECC_CTGY_POLICE = 0x1,
391 IMCB_IMC_SRVCC_CALL_ECC_CTGY_AMBULANCE = 0x2,
392 IMCB_IMC_SRVCC_CALL_ECC_CTGY_FIRE = 0x4,
393 IMCB_IMC_SRVCC_CALL_ECC_CTGY_MARINE = 0x8,
394 IMCB_IMC_SRVCC_CALL_ECC_CTGY_MOUNTAIN = 0x10,
395 IMCB_IMC_SRVCC_CALL_ECC_CTGY_MANUALLY = 0x40,
396 IMCB_IMC_SRVCC_CALL_ECC_CTGY_AUTO = 0x80,
397 IMCB_IMC_SRVCC_CALL_ECC_CTGY_GAS = 0x100,
398 IMCB_IMC_SRVCC_CALL_ECC_CTGY_ANIMAL = 0x200,
399 IMCB_IMC_SRVCC_CALL_ECC_CTGY_PHYSICIAN = 0x400,
400 IMCB_IMC_SRVCC_CALL_ECC_CTGY_POISON = 0x800,
401 IMCB_IMC_SRVCC_CALL_ECC_CTGY_TRAFFIC = 0x1000,
402 IMCB_IMC_SRVCC_CALL_ECC_CTGY_COUNTRY_SPECIFIC = 0x2000,
403 IMCB_IMC_SRVCC_CALL_ECC_CTGY_UNRECOGNIZED = 0x8000,
404
405 /*Korea TTA special emergency Ctgy*/
406 IMCB_IMC_SRVCC_CALL_ECC_CTGY_KR_SPIES = 0x3,
407 IMCB_IMC_SRVCC_CALL_ECC_CTGY_KR_INTELLIGENCE = 0x6,
408 IMCB_IMC_SRVCC_CALL_ECC_CTGY_KR_INTELLIGENCE_01 = 0x7,
409 IMCB_IMC_SRVCC_CALL_ECC_CTGY_KR_SMUGGLING = 0x9,
410 IMCB_IMC_SRVCC_CALL_ECC_CTGY_KR_SCHOOL_VIOLENCE = 0x12,
411 IMCB_IMC_SRVCC_CALL_ECC_CTGY_KR_CYBERTERRORISM = 0x13,
412 IMCB_IMC_SRVCC_CALL_ECC_CTGY_MAX = 0xFFFF
413} imcb_imc_srvcc_call_ecc_category_enum;
414
415/* Ref 3GPP 26.445 Table A.3 */
416/* Only for Primary mode */
417typedef enum {
418 IMCB_IMC_EVS_CODEC_BITRATE_5_9 = 0x0,
419 IMCB_IMC_EVS_CODEC_BITRATE_7_2,
420 IMCB_IMC_EVS_CODEC_BITRATE_8_0,
421 IMCB_IMC_EVS_CODEC_BITRATE_9_6,
422 IMCB_IMC_EVS_CODEC_BITRATE_13_2,
423 IMCB_IMC_EVS_CODEC_BITRATE_16_4,
424 IMCB_IMC_EVS_CODEC_BITRATE_24_4,
425 IMCB_IMC_EVS_CODEC_BITRATE_32_0,
426 IMCB_IMC_EVS_CODEC_BITRATE_48_0,
427 IMCB_IMC_EVS_CODEC_BITRATE_64_0,
428 IMCB_IMC_EVS_CODEC_BITRATE_96_0,
429 IMCB_IMC_EVS_CODEC_BITRATE_128_0 = 0xB,
430 IMCB_IMC_EVS_CODEC_BITRATE_MAX,
431 IMCB_IMC_EVS_CODEC_BITRATE_NONE = 0xF,
432} imcb_imc_evs_codec_bitrate_enum;
433
434typedef enum {
435 IMCB_IMC_EVS_BANDWIDTH_NB,
436 IMCB_IMC_EVS_BANDWIDTH_WB,
437 IMCB_IMC_EVS_BANDWIDTH_SWB,
438 IMCB_IMC_EVS_BANDWIDTH_FB,
439 IMCB_IMC_EVS_BANDWIDTH_MAX,
440 IMCB_IMC_EVS_BANDWIDTH_NONE = 0xF,
441} imcb_imc_evs_bandwidth_enum;
442
443//IMS USSI Enum
444typedef enum {
445 IMCB_IMC_USSD_URC_STATUS_DISABLED = 0,
446 IMCB_IMC_USSD_URC_STATUS_ENABLED = 1,
447} imcb_imc_ussd_urc_status_enum;
448
449typedef enum {
450 IMCB_IMC_380_XML_TYPE_NOT_SET = 0,
451 IMCB_IMC_380_XML_TYPE_EMERGENCY,
452 IMCB_IMC_380_XML_TYPE_RESTORATION,
453 IMCB_IMC_380_XML_TYPE_UNKNOWN,
454 /*add here*/
455 IMCB_IMC_380_XML_TYPE_MAX,
456} imcb_imc_380_xml_type_enum;
457
458typedef enum {
459 IMCB_IMC_380_XML_ACTION_NOT_SET = 0,
460 IMCB_IMC_380_XML_ACTION_EMERGENCY_REGISTRATION,
461 IMCB_IMC_380_XML_ACTION_INITIAL_REGISTRATION,
462 IMCB_IMC_380_XML_ACTION_ANONYMOUS_EMERGECYCALL,
463 IMCB_IMC_380_XML_ACTION_UNKNOWN,
464 /*add here*/
465 IMCB_IMC_380_XML_ACTION_MAX,
466} imcb_imc_380_xml_action_enum;
467
468typedef enum {
469 IMCB_IMC_CALL_CAUSE_380_CONTACT_NOT_SET = 0,
470 IMCB_IMC_CALL_CAUSE_380_CONTACT_SOS_AND_CATEGORY_KNOWN,
471 IMCB_IMC_CALL_CAUSE_380_CONTACT_SOS_AND_CATEGORY_UNKNOWN,
472 IMCB_IMC_CALL_CAUSE_380_CONTACT_NOT_SOS,
473 IMCB_IMC_CALL_CAUSE_380_CONTACT_NO_CONTACT,
474 /*add here*/
475 IMCB_IMC_CALL_CAUSE_380_CONTACT_MAX,
476} imcb_imc_call_cause_380_contact_enum;
477
478typedef enum {
479 IMCB_IMC_CALL_CAUSE_380_XML_NOT_SET = 0,
480 IMCB_IMC_CALL_CAUSE_380_XML_ACTION_EMERGECY_REG,
481 IMCB_IMC_CALL_CAUSE_380_XML_ACTION_UNKNOWN_CATEGORY_MAPPED,
482 IMCB_IMC_CALL_CAUSE_380_XML_ACTION_UNKNOWN_CATEGORY_NOT_MAPPED,
483 IMCB_IMC_CALL_CAUSE_380_XML_ACTION_UNKNOWN_NO_CONTACT,
484 /*add here*/
485 IMCB_IMC_CALL_CAUSE_380_XML_MAX,
486} imcb_imc_call_cause_380_xml_enum;
487
488/*****imc_general_enum.h START*****/
489typedef enum {
490 IMS_SIM_TYPE_SIM_USIM_INVALID = 0,
491 IMS_SIM_TYPE_SIM_USIM_VALID,
492 IMS_SIM_TYPE_ISIM_UNKNOWN,
493 IMS_SIM_TYPE_ISIM_INVALID,
494 IMS_SIM_TYPE_ISIM_VALID,
495 IMS_SIM_TYPE_SIM_USIM_RELOAD_DONE,
496 IMS_SIM_TYPE_ISIM_RELOAD_DONE
497} ims_sim_type_enum;
498
499typedef enum {
500 IMS_SIM_USIM_IMSI = 0,
501 IMS_SIM_USIM_PSISMSC,
502 IMS_SIM_USIM_SMSP,
503 IMS_SIM_USIM_MSISDN,
504 IMS_SIM_USIM_FROMPREFERRED,
505 IMS_SIM_USIM_GID1,
506 IMS_SIM_USIM_GID2
507} ims_sim_usim_data_enum;
508
509typedef enum {
510 IMS_ISIM_IMPI = 0,
511 IMS_ISIM_IMPU,
512 IMS_ISIM_DOMAIN_NAME,
513 IMS_ISIM_PSISMSC,
514 IMS_ISIM_IST,
515 IMS_ISIM_FROMPREFERRED
516} ims_isim_data_enum;
517
518/* WFC */
519typedef enum {
520 IMC_ECMP_NONE=0,
521 IMC_ECMP_UNSPEC,
522 IMC_ECMP_3GPP,
523 IMC_ECMP_WLAN,
524 IMC_ECMP_EHRPD,
525 IMC_ECMP_MAX,
526} imc_ecmp_enum;
527
528/* initial configuration */
529typedef enum {
530 IMC_V4_ONLY = 0,
531 IMC_V6_ONLY,
532 IMC_V4_PREFER,
533 IMC_V6_PREFER
534} imc_v4v6_preference_enum;
535
536typedef enum {
537 IMC_NOT_FOR_IM_CN_SIGNALING = 0,
538 IMC_FOR_IM_CN_SIGNALING
539} imc_im_cn_signaling_flag_enum;
540
541typedef enum {
542 IMC_PCSCF_ADDR_DISCOVERY_VIA_NONE = 0,
543 IMC_PCSCF_ADDR_DISCOVERY_VIA_NAS_SIGNALLING = 1,
544 IMC_PCSCF_ADDR_DISCOVERY_VIA_DHCP = 2
545} imc_pcscf_discovery_enum;
546
547typedef enum {
548 IMC_RLM_DISABLED = 0,
549 IMC_RLM_ENABLED
550} imc_rlm_enum;
551
552typedef enum {
553 IMC_CC_RESULT_NONE,
554 IMC_CC_RESULT_SUCCESS,
555 IMC_CC_RESULT_FAIL,
556 IMC_CC_RESULT_END
557} imc_cc_result_enum;
558
559typedef enum {
560 IMC_CC_CALL_MOD_NONE,
561 IMC_CC_CALL_MOD_NORAMAL,
562 IMC_CC_CALL_MOD_EMERGENCY,
563 IMC_CC_CALL_MOD_END
564} imc_cc_call_mode_enum;
565
566typedef enum {
567 IMC_CC_CAUSE_NONE,
568 IMC_CC_CAUSE_END
569} imc_cc_cause_enum;
570
571typedef enum {
572 IMC_ECPI_NONE,
573 IMC_ECPI_END
574} imc_ecpi_enum;
575
576//IMS Common Enum
577typedef enum {
578 IMCB_IMC_OPERATOR_DEFAULT = 0x00, //0
579 /* WWOP system */
580 IMCB_IMC_OPERATOR_CMCC = 0x01, // 1
581 IMCB_IMC_OPERATOR_CU = 0x02, // 2
582 IMCB_IMC_OPERATOR_ORANGE = 0x03, // 3
583 IMCB_IMC_OPERATOR_TMOEU = 0x05, //5
584 IMCB_IMC_OPERATOR_VDF = 0x06, //6
585 IMCB_IMC_OPERATOR_ATT = 0x07, //7
586 IMCB_IMC_OPERATOR_TMOUS = 0x08, //8
587 IMCB_IMC_OPERATOR_CT = 0x09, //9
588 IMCB_IMC_OPERATOR_TIER2 = 0x0A, //10
589 IMCB_IMC_OPERATOR_H3G = 0x0B, //11
590 IMCB_IMC_OPERATOR_VZW = 0x0C, //12
591 IMCB_IMC_OPERATOR_TELEFONICA = 0x0F, //15
592 IMCB_IMC_OPERATOR_EE = 0x10, //16
593 IMCB_IMC_OPERATOR_DCM = 0x11, //17
594 IMCB_IMC_OPERATOR_RJIL = 0x12, //18
595 IMCB_IMC_OPERATOR_TELSTRA = 0x13, //19
596 IMCB_IMC_OPERATOR_SPRINT = 0x14, //20
597 IMCB_IMC_OPERATOR_DISH = 0x15, //21
598 IMCB_IMC_OPERATOR_SOFTBANK = 0x32, //50
599 IMCB_IMC_OPERATOR_CSL = 0x64, //100
600 IMCB_IMC_OPERATOR_PCCW = 0x65, //101
601 IMCB_IMC_OPERATOR_SMT = 0x66, //102
602 IMCB_IMC_OPERATOR_SINGTEL = 0x67, //103
603 IMCB_IMC_OPERATOR_STARHUB = 0x68, //104
604 IMCB_IMC_OPERATOR_AMX = 0x69, //105
605 IMCB_IMC_OPERATOR_3HK = 0x6A, //106
606 IMCB_IMC_OPERATOR_SFR = 0x6B, //107
607 IMCB_IMC_OPERATOR_TWN = 0x6C, //108
608 IMCB_IMC_OPERATOR_CHT = 0x6D, //109
609 IMCB_IMC_OPERATOR_FET = 0x6E, //110
610 IMCB_IMC_OPERATOR_TELCEL = 0x70, //112
611 IMCB_IMC_OPERATOR_BEELINE = 0x71, //113
612 IMCB_IMC_OPERATOR_KT = 0x72, //114
613 IMCB_IMC_OPERATOR_SKT = 0x73, //115
614 IMCB_IMC_OPERATOR_UPLUS = 0x74, //116
615 IMCB_IMC_OPERATOR_SMARTFREN = 0x75, //117
616 IMCB_IMC_OPERATOR_YTL = 0x76, //118
617 IMCB_IMC_OPERATOR_NATCOM = 0x77, //119
618 IMCB_IMC_OPERATOR_CLARO = 0x78, //120
619 IMCB_IMC_OPERATOR_BELL = 0x79, //121
620 IMCB_IMC_OPERATOR_AIS = 0x7A, //122
621 IMCB_IMC_OPERATOR_CMCC_2 = 0x7B, //123
622 IMCB_IMC_OPERATOR_APTG = 0x7C, //124
623 IMCB_IMC_OPERATOR_DTAC = 0x7D, //125
624 IMCB_IMC_OPERATOR_AVEA = 0x7E, //126
625 IMCB_IMC_OPERATOR_MEGAFONE = 0x7F, //127
626 IMCB_IMC_OPERATOR_DNA = 0x80, //128
627 IMCB_IMC_OPERATOR_KDDI = 0x81, //129
628 IMCB_IMC_OPERATOR_TIM = 0x82, //130
629 IMCB_IMC_OPERATOR_TRUEMOVE = 0x83, //131
630 IMCB_IMC_OPERATOR_MOVISTAR = 0x84, //132
631 IMCB_IMC_OPERATOR_DU = 0x85, //133
632 IMCB_IMC_OPERATOR_ELISA = 0x86, //134
633 IMCB_IMC_OPERATOR_MTS = 0x87, //135
634 IMCB_IMC_OPERATOR_ENTEL = 0x88, //136
635 IMCB_IMC_OPERATOR_TELE2 = 0x89, //137
636 IMCB_IMC_OPERATOR_CRICKET = 0x91, //145
637 IMCB_IMC_OPERATOR_M1 = 0x97, //151
638 IMCB_IMC_OPERATOR_FIRSTNET = 0xC4, //196
639 IMCB_IMC_OPERATOR_TPG = 0xDD, //221
rjw04b9c952023-03-28 14:35:43 +0800640 IMCB_IMC_OPERATOR_CBN = 0x0184, //388
yu.dongf9f3aa82024-06-18 02:16:31 -0700641 IMCB_IMC_OPERATOR_CUBIC = 0x01BB, //443
rjw6c1fd8f2022-11-30 14:33:01 +0800642
643 /* For Any IODT Activities */
644 IMCB_IMC_OPERATOR_ERICSSON_IMS_IWLAN = 0x03E9, //1001
645 IMCB_IMC_OPERATOR_NOKIA = 0x03EA, //1002
646 IMCB_IMC_OPERATOR_MTK_HQLAB_ERICSSON = 0x03EB, //1003
647 IMCB_IMC_OPERATOR_HUAWEI_IMS = 0x03EC, // 1004
648 /* VoLTE internal */
649 IMCB_IMC_OPERATOR_8475 = 0x4000, //16384
650 IMCB_IMC_OPERATOR_ERICSSON = 0x4001, //16385
651 IMCB_IMC_OPERATOR_CMW500 = 0x4002, //16386
652 IMCB_IMC_OPERATOR_PCT = 0x4003, //16387
653 /* Lab testing */
654 IMCB_IMC_OPERATOR_NSN = 0x5000, //20480
655
656 /* Free Test */
657 IMCB_IMC_OPERATOR_FREE_TEST = 0xFEE0, //no charge for testing
658} imcb_imc_operator_id_enum;
659
660/*****imc_general_enum.h END*****/
661
662/*****imc_general_struct.h START*****/
663
664/* in modem, sim_id = sim_idx */
665/* please ref modem/general/sim_public_enum.h */
666
667typedef struct imc_em_cfg_struct {
668 imcf_bool dbg_log;
669 imcf_bool log_to_msg;
670 imcf_bool dbg_assert;
671
672} imc_em_cfg_struct;
673
674typedef struct {
675 imc_rat_type_enum rat_type;
676 imc_rat_type_enum sub_rat_type;
677 imcf_uint8 pad[2];
678
679 imcf_uint8 plmn[IMC_MAX_PLMN_LEN]; /* in string format */
680 imcf_uint8 lac [IMC_MAX_LAC_LEN]; /* in string format, lac or tac */
681 imcf_uint8 ci [IMC_MAX_CI_LEN]; /* in string format */
682 imcf_uint8 cell_id[IMC_MAX_CELL_ID_LEN]; /* ignore 3gpp or non-3gpp */
683 imcf_uint8 ssid[IMC_MAX_SSID_LEN];
684
685 imcf_uint8 is_ems_support;
686 imcf_uint8 pad2[3];
687
688 /* C2K */
689 imcf_uint8 sid[IMC_MAX_SID_LEN]; /* in string format */
690 imcf_uint8 nid[IMC_MAX_NID_LEN]; /* in string format */
691 imcf_uint8 pzid[IMC_MAX_PZID_LEN]; /* in string format */
692 imcf_uint8 base_id[IMC_MAX_BASE_ID_LEN]; /* in string format */
693
694 imcf_uint8 sector_id[IMC_MAX_SECTOR_ID_LEN]; /* in string format */
695 imcf_uint8 subnet_length[IMC_MAX_SUBNET_LENGTH_LEN]; /* in string format */
696 imcf_uint8 carrier_id[IMC_MAX_CARRIER_ID_LEN]; /* in string format */
697} imc_rat_cell_info_struct;
698/*****imc_general_struct.h END*****/
699
700typedef enum {
701 /* UA TLV setting */
702 /* ------------------------------------------------ */
703 /* System */
704 /* ------------------------------------------------ */
705 IMCB_IMC_TLV_SYSTEM_START_CODE = 0,
706 IMCB_IMC_TLV_SYSTEM_OPERATOR_ID = IMCB_IMC_TLV_SYSTEM_START_CODE + 1, ///< DATA TYPE INT
707 IMCB_IMC_TLV_SYSTEM_GENERAL_SETTING = IMCB_IMC_TLV_SYSTEM_START_CODE + 2,
708
709 /* ------------------------------------------------ */
710 /* Network Information */
711 /* ------------------------------------------------ */
712 IMCB_IMC_TLV_NETWORK_INFORMATION_START_CODE = 1000,
713 IMCB_IMC_TLV_NETWORK_INFORMATION_LOCAL_ADDRESS = IMCB_IMC_TLV_NETWORK_INFORMATION_START_CODE + 1, ///< DATA TYPE IS STRING
714 IMCB_IMC_TLV_NETWORK_INFORMATION_LOCAL_PORT = IMCB_IMC_TLV_NETWORK_INFORMATION_START_CODE + 2, ///< DATA TYPE INT
715 IMCB_IMC_TLV_NETWORK_INFORMATION_LOCAL_PROTOCOL_TYPE = IMCB_IMC_TLV_NETWORK_INFORMATION_START_CODE + 3, ///< UDP: 0, TCP: 1
716 IMCB_IMC_TLV_NETWORK_INFORMATION_LOCAL_PROTOCOL_VERSION = IMCB_IMC_TLV_NETWORK_INFORMATION_START_CODE + 4, ///< IPV4: 1, IPV6: 2
717 IMCB_IMC_TLV_NETWORK_INFORMATION_LOCAL_IPSEC_PORT_START = IMCB_IMC_TLV_NETWORK_INFORMATION_START_CODE + 5,
718 IMCB_IMC_TLV_NETWORK_INFORMATION_LOCAL_IPSEC_PORT_RANGE = IMCB_IMC_TLV_NETWORK_INFORMATION_START_CODE + 6,
719 IMCB_IMC_TLV_NETWORK_INFORMATION_LOCAL_RTP_RTCP_PORT_START = IMCB_IMC_TLV_NETWORK_INFORMATION_START_CODE + 7,
720 IMCB_IMC_TLV_NETWORK_INFORMATION_LOCAL_RTP_RTCP_PORT_RANGE = IMCB_IMC_TLV_NETWORK_INFORMATION_START_CODE + 8,
721 IMCB_IMC_TLV_NETWORK_INFORMATION_IPSEC = IMCB_IMC_TLV_NETWORK_INFORMATION_START_CODE + 9, ///< DISABLE: 0, ENABLE: 1
722 IMCB_IMC_TLV_NETWORK_INFORMATION_CELL_ID = IMCB_IMC_TLV_NETWORK_INFORMATION_START_CODE + 10, ///< DATA TYPE IS STRING
723 IMCB_IMC_TLV_NETWORK_INFORMATION_RTP_DSCP = IMCB_IMC_TLV_NETWORK_INFORMATION_START_CODE + 11, /// FOR BUILD PASS, NEED TO REMOVE
724 IMCB_IMC_TLV_NETWORK_INFORMATION_IF_NAME = IMCB_IMC_TLV_NETWORK_INFORMATION_START_CODE + 12, ///< DATA TYPE IS STRING
725 IMCB_IMC_TLV_NETWORK_INFORMATION_NETWORK_ID = IMCB_IMC_TLV_NETWORK_INFORMATION_START_CODE + 13, ///< DATA TYPE IS INTEGER
726 IMCB_IMC_TLV_NETWORK_INFORMATION_SIP_DSCP = IMCB_IMC_TLV_NETWORK_INFORMATION_START_CODE + 14, ///< DATA TYPE IS INTEGER
727 IMCB_IMC_TLV_NETWORK_INFORMATION_RTP_VOICE_DSCP = IMCB_IMC_TLV_NETWORK_INFORMATION_START_CODE + 15, ///< DATA TYPE IS INTEGER
728 IMCB_IMC_TLV_NETWORK_INFORMATION_RTP_VIDEO_DSCP = IMCB_IMC_TLV_NETWORK_INFORMATION_START_CODE + 16, ///< DATA TYPE IS INTEGER
729 IMCB_IMC_TLV_NETWORK_INFORMATION_SIP_SOC_PRIORITY = IMCB_IMC_TLV_NETWORK_INFORMATION_START_CODE + 17, ///< DATA TYPE IS INTEGER
730 IMCB_IMC_TLV_NETWORK_INFORMATION_SIP_SOC_TCP_MSS = IMCB_IMC_TLV_NETWORK_INFORMATION_START_CODE + 18, ///< DATA TYPE IS INTEGER
731 IMCB_IMC_TLV_NETWORK_INFORMATION_RTP_VOICE_SOC_PRIORITY = IMCB_IMC_TLV_NETWORK_INFORMATION_START_CODE + 19, ///< DATA TYPE IS INTEGER
732 IMCB_IMC_TLV_NETWORK_INFORMATION_RTP_VIDEO_SOC_PRIORITY = IMCB_IMC_TLV_NETWORK_INFORMATION_START_CODE + 20, ///< DATA TYPE IS INTEGER
733 IMCB_IMC_TLV_NETWORK_INFORMATION_LBS_LOCATION_INFO = IMCB_IMC_TLV_NETWORK_INFORMATION_START_CODE + 21, ///< DATA TYPE IS INTEGER
734 IMCB_IMC_TLV_NETWORK_INFORMATION_SECURITY = IMCB_IMC_TLV_NETWORK_INFORMATION_START_CODE + 22,
735 IMCB_IMC_TLV_NETWORK_INFORMATION_AUTHENTICATION = IMCB_IMC_TLV_NETWORK_INFORMATION_START_CODE + 23,
736 IMCB_IMC_TLV_NETWORK_INFORMATION_PCSCF_PORT = IMCB_IMC_TLV_NETWORK_INFORMATION_START_CODE + 24,
737 IMCB_IMC_TLV_NETWORK_INFORMATION_EMERGENCY_AID = IMCB_IMC_TLV_NETWORK_INFORMATION_START_CODE + 25,
738
739 /* ------------------------------------------------ */
740 /* Account Settings */
741 /* ------------------------------------------------ */
742 IMCB_IMC_TLV_ACCOUNT_SETTINGS_START_CODE = 2000,
743 IMCB_IMC_TLV_ACCOUNT_SETTINGS_PUBLIC_UID = IMCB_IMC_TLV_ACCOUNT_SETTINGS_START_CODE + 1, ///< DATA TYPE IS STRING
744 IMCB_IMC_TLV_ACCOUNT_SETTINGS_PRIVATE_UID = IMCB_IMC_TLV_ACCOUNT_SETTINGS_START_CODE + 2, ///< DATA TYPE IS STRING
745 IMCB_IMC_TLV_ACCOUNT_SETTINGS_HOME_URI = IMCB_IMC_TLV_ACCOUNT_SETTINGS_START_CODE + 3, ///< DATA TYPE IS STRING
746 IMCB_IMC_TLV_ACCOUNT_SETTINGS_IMEI = IMCB_IMC_TLV_ACCOUNT_SETTINGS_START_CODE + 4, ///< DATA TYPE IS STRING
747 IMCB_IMC_TLV_ACCOUNT_SETTINGS_CONFFACTORYURI = IMCB_IMC_TLV_ACCOUNT_SETTINGS_START_CODE + 5,
748 IMCB_IMC_TLV_ACCOUNT_SETTINGS_IMSI_MNC = IMCB_IMC_TLV_ACCOUNT_SETTINGS_START_CODE + 6,
749 IMCB_IMC_TLV_ACCOUNT_SETTINGS_IMSI_MCC = IMCB_IMC_TLV_ACCOUNT_SETTINGS_START_CODE + 7,
750 IMCB_IMC_TLV_ACCOUNT_SETTINGS_MSISDN = IMCB_IMC_TLV_ACCOUNT_SETTINGS_START_CODE + 8,
751
752 /* ------------------------------------------------ */
753 /* Server Settings */
754 /* ------------------------------------------------ */
755 IMCB_IMC_TLV_SERVER_SETTINGS_START_CODE = 3000,
756 IMCB_IMC_TLV_SERVER_SETTINGS_PCSCF_LIST = IMCB_IMC_TLV_SERVER_SETTINGS_START_CODE + 1, ///< DATA TYPE IS STRING
757
758 /* ------------------------------------------------ */
759 /* VoLTE Service Settings */
760 /* ------------------------------------------------ */
761 IMCB_IMC_TLV_SERVICE_START_CODE = 10000,
762
763 /* ------------------------------------------------ */
764 /* VoLTE Call Settings */
765 /* ------------------------------------------------ */
766 IMCB_IMC_TLV_CALL_START_CODE = 11000,
767 IMCB_IMC_TLV_CALL_SESSION_FLAG = IMCB_IMC_TLV_CALL_START_CODE + 1,
768 IMCB_IMC_TLV_CALL_SESSION_TIMER = IMCB_IMC_TLV_CALL_START_CODE + 2, ///< IN SECONDS
769 IMCB_IMC_TLV_CALL_SESSION_MINSE = IMCB_IMC_TLV_CALL_START_CODE + 3, ///< IN SECONDS
770 IMCB_IMC_TLV_CALL_PRIVACY = IMCB_IMC_TLV_CALL_START_CODE + 4,
771 IMCB_IMC_TLV_CALL_CAPABILITY = IMCB_IMC_TLV_CALL_START_CODE + 5, ///< DATA TYPE IS ::VOLTE_CALL_CAPABILITY_TYPE_E
772 IMCB_IMC_TLV_CALL_RTCP_INTERVAL = IMCB_IMC_TLV_CALL_START_CODE + 6, ///< IN MS
773 IMCB_IMC_TLV_CALL_EARLY_MEDIA = IMCB_IMC_TLV_CALL_START_CODE + 7, ///< IF THE INCOMING CALL SUPPORT EARLY MEDIA, SHALL WE REQUIRE IT TO PLAY?
774 IMCB_IMC_TLV_CALL_CODECORDER1 = IMCB_IMC_TLV_CALL_START_CODE + 8, ///< VOIP_CODEC_ENUM
775 IMCB_IMC_TLV_CALL_CODECORDER2 = IMCB_IMC_TLV_CALL_START_CODE + 9, ///< VOIP_CODEC_ENUM
776 IMCB_IMC_TLV_CALL_CODECORDER3 = IMCB_IMC_TLV_CALL_START_CODE + 10, ///< VOIP_CODEC_ENUM
777 IMCB_IMC_TLV_CALL_DEF_MAX_PTIME = IMCB_IMC_TLV_CALL_START_CODE + 11,
778 IMCB_IMC_TLV_CALL_DEF_PTIME = IMCB_IMC_TLV_CALL_START_CODE + 12,
779 IMCB_IMC_TLV_CALL_G711_PTIME = IMCB_IMC_TLV_CALL_START_CODE + 13,
780 IMCB_IMC_TLV_CALL_G726_PTIME = IMCB_IMC_TLV_CALL_START_CODE + 14,
781 IMCB_IMC_TLV_CALL_G729_PTIME = IMCB_IMC_TLV_CALL_START_CODE + 15,
782 IMCB_IMC_TLV_CALL_AMR_PT = IMCB_IMC_TLV_CALL_START_CODE + 16,
783 IMCB_IMC_TLV_CALL_AMR_WB_PT = IMCB_IMC_TLV_CALL_START_CODE + 17,
784 IMCB_IMC_TLV_CALL_H264_PT = IMCB_IMC_TLV_CALL_START_CODE + 18,
785 IMCB_IMC_TLV_CALL_G729_ANNEXB = IMCB_IMC_TLV_CALL_START_CODE + 19,
786 IMCB_IMC_TLV_CALL_TELEVT = IMCB_IMC_TLV_CALL_START_CODE + 20,
787 IMCB_IMC_TLV_CALL_TELEVT_PT = IMCB_IMC_TLV_CALL_START_CODE + 21,
788 IMCB_IMC_TLV_CALL_PRIORITY = IMCB_IMC_TLV_CALL_START_CODE + 22,
789 IMCB_IMC_TLV_CALL_USERAGENT = IMCB_IMC_TLV_CALL_START_CODE + 23, ///< VOLTE_MAX_ADDRESS_LENGTH
790 IMCB_IMC_TLV_CALL_REJCODE = IMCB_IMC_TLV_CALL_START_CODE + 24,
791 IMCB_IMC_TLV_CALL_NORESOURCECODE = IMCB_IMC_TLV_CALL_START_CODE + 25,
792 IMCB_IMC_TLV_CALL_REJMEDIACODE = IMCB_IMC_TLV_CALL_START_CODE + 26,
793 IMCB_IMC_TLV_CALL_REJBYUSERCODE = IMCB_IMC_TLV_CALL_START_CODE + 27,
794 IMCB_IMC_TLV_CALL_CONF_SUBTIMER = IMCB_IMC_TLV_CALL_START_CODE + 28,
795 IMCB_IMC_TLV_CALL_AMR_MODE_SET = IMCB_IMC_TLV_CALL_START_CODE + 29,
796 IMCB_IMC_TLV_CALL_AMR_WB_MODE_SET = IMCB_IMC_TLV_CALL_START_CODE + 30,
797 IMCB_IMC_TLV_CALL_AMR_FMT_VARIANT = IMCB_IMC_TLV_CALL_START_CODE + 31,
798 IMCB_IMC_TLV_CALL_PRECONDITION = IMCB_IMC_TLV_CALL_START_CODE + 32,
799 IMCB_IMC_TLV_CALL_MO_INVITE_TO_BWCNF_TIME = IMCB_IMC_TLV_CALL_START_CODE + 33,
800 IMCB_IMC_TLV_CALL_H264_PT2 = IMCB_IMC_TLV_CALL_START_CODE + 34,
801 IMCB_IMC_TLV_CALL_H265_PT = IMCB_IMC_TLV_CALL_START_CODE + 35,
802 IMCB_IMC_TLV_CALL_H265_PT2 = IMCB_IMC_TLV_CALL_START_CODE + 36,
803 IMCB_IMC_TLV_CALL_AMR_OCT_PT = IMCB_IMC_TLV_CALL_START_CODE + 37,
804 IMCB_IMC_TLV_CALL_AMR_OPEN_PT = IMCB_IMC_TLV_CALL_START_CODE + 38,
805 IMCB_IMC_TLV_CALL_AMR_WB_OCT_PT = IMCB_IMC_TLV_CALL_START_CODE + 39,
806 IMCB_IMC_TLV_CALL_TELEVT_WB_PT = IMCB_IMC_TLV_CALL_START_CODE + 40,
807
808 IMCB_IMC_TLV_CALL_CONTACT_WITH_USERNAME_INCALL = IMCB_IMC_TLV_CALL_START_CODE + 41,
809 IMCB_IMC_TLV_CALL_SENDRECV_BEFORE_PRCD = IMCB_IMC_TLV_CALL_START_CODE + 42,
810 IMCB_IMC_TLV_CALL_ALWAYS_USE_UPDATE_FOR_PRCD = IMCB_IMC_TLV_CALL_START_CODE + 43,
811 IMCB_IMC_TLV_CALL_MERGE_NEED_SWAP = IMCB_IMC_TLV_CALL_START_CODE + 44,
812 IMCB_IMC_TLV_CALL_ALWAYS_USE_SIP_URI_FOR_MO_CALL = IMCB_IMC_TLV_CALL_START_CODE + 45,
813 IMCB_IMC_TLV_CALL_SET_STRENGTH_MANDATORY = IMCB_IMC_TLV_CALL_START_CODE + 46,
814 IMCB_IMC_TLV_CALL_SEND_REFER_TO_PEER = IMCB_IMC_TLV_CALL_START_CODE + 47,
815 IMCB_IMC_TLV_CALL_ADD_3GPP_IMS_IN_ACCEPT = IMCB_IMC_TLV_CALL_START_CODE + 48,
816 IMCB_IMC_TLV_CALL_TERMINAL_BASED_CW = IMCB_IMC_TLV_CALL_START_CODE + 49,
817 IMCB_IMC_TLV_CALL_REFER_DIALOG_TO_SERVER = IMCB_IMC_TLV_CALL_START_CODE + 50,
818 IMCB_IMC_TLV_CALL_CHECK_REASON_PHRASE = IMCB_IMC_TLV_CALL_START_CODE + 51,
819 IMCB_IMC_TLV_CALL_MERGE_SEND_BYE = IMCB_IMC_TLV_CALL_START_CODE + 52,
820 IMCB_IMC_TLV_CALL_WHEN_STOP_TCALL = IMCB_IMC_TLV_CALL_START_CODE + 53,
821 IMCB_IMC_TLV_CALL_SET_RTCP_0 = IMCB_IMC_TLV_CALL_START_CODE + 54,
822 IMCB_IMC_TLV_CALL_CHECK_CONTACT_380 = IMCB_IMC_TLV_CALL_START_CODE + 55,
823 IMCB_IMC_TLV_CALL_CONF_PARTICIPANT_NOT_SUBSCRIBE = IMCB_IMC_TLV_CALL_START_CODE + 56,
824 IMCB_IMC_TLV_CALL_ADD_SDP_IN_180_FOR_NON_PRECOND = IMCB_IMC_TLV_CALL_START_CODE + 57,
825 IMCB_IMC_TLV_CALL_ADD_PRECONDITION_IN_HOLD_UNHOLD_SDP = IMCB_IMC_TLV_CALL_START_CODE + 58,
826 IMCB_IMC_TLV_CALL_USE_ORG_SDP_FOR_INVITE_WITHOUT_SDP = IMCB_IMC_TLV_CALL_START_CODE + 59,
827 IMCB_IMC_TLV_CALL_OIR_PRIVACY_TO_HEADER = IMCB_IMC_TLV_CALL_START_CODE + 60,
828 IMCB_IMC_TLV_CALL_REGISTER_CAP_WHENEVER = IMCB_IMC_TLV_CALL_START_CODE + 61,
829 IMCB_IMC_TLV_CALL_NO_AUTO_RETRY_FOR_MO_CALL = IMCB_IMC_TLV_CALL_START_CODE + 62,
830 IMCB_IMC_TLV_CALL_USE_EPS_PREFIX_IN_PHONE_CONTEXT = IMCB_IMC_TLV_CALL_START_CODE + 63,
831 IMCB_IMC_TLV_CALL_FOLLOW_NW_IMS_VOPS_SUPPORT = IMCB_IMC_TLV_CALL_START_CODE + 64,
832 IMCB_IMC_TLV_CALL_ATTEMPT_REG_WHEN_RECEIVE403 = IMCB_IMC_TLV_CALL_START_CODE + 65,
833 IMCB_IMC_TLV_CALL_WAITING_487_FOR_CANCEL_TIMER_TIMEOUT = IMCB_IMC_TLV_CALL_START_CODE + 66,
834 IMCB_IMC_TLV_CALL_BCSFB_FEATURE_ENABLE = IMCB_IMC_TLV_CALL_START_CODE + 67,
835 IMCB_IMC_TLV_CALL_SEND_183_WHEN_PRCD_NONE = IMCB_IMC_TLV_CALL_START_CODE + 68,
836 IMCB_IMC_TLV_CALL_CALL_ID_WITH_HOST_INCALL = IMCB_IMC_TLV_CALL_START_CODE + 69,
837 IMCB_IMC_TLV_CALL_ADD_RTCP_PORT_INTO_SDP = IMCB_IMC_TLV_CALL_START_CODE + 70,
838 IMCB_IMC_TLV_CALL_ECC_SESSION_TIMER_ENABLE = IMCB_IMC_TLV_CALL_START_CODE + 71,
839 IMCB_IMC_TLV_CALL_SUBSCRIBE_DIALOG_TO_SERVER = IMCB_IMC_TLV_CALL_START_CODE + 72,
840 IMCB_IMC_TLV_CALL_CHECK_CONFERENCE_SUBSCRIBE = IMCB_IMC_TLV_CALL_START_CODE + 73,
841 IMCB_IMC_TLV_CALL_CONFERENCE_SUBSCRIBE_TIMING = IMCB_IMC_TLV_CALL_START_CODE + 74,
842 IMCB_IMC_TLV_CALL_GENERAL_AMR_NB_WB = IMCB_IMC_TLV_CALL_START_CODE + 75,
843 IMCB_IMC_TLV_CALL_DISABLE_CONF_CALL_PRCD = IMCB_IMC_TLV_CALL_START_CODE + 76,
844 IMCB_IMC_TLV_CALL_WAIT_CANCEL_IN_SRVCC_END = IMCB_IMC_TLV_CALL_START_CODE + 77,
845 IMCB_IMC_TLV_CALL_REJECT_1W_IF_1A1H = IMCB_IMC_TLV_CALL_START_CODE + 78,
846 IMCB_IMC_TLV_CALL_NO_AUTO_RETRY_FOR_DCM_MO_CALL = IMCB_IMC_TLV_CALL_START_CODE + 79,
847 IMCB_IMC_TLV_CALL_JOIN_SEND_BYE = IMCB_IMC_TLV_CALL_START_CODE + 80,
848 IMCB_IMC_TLV_CALL_SET_ZERO_CELL_ID_IN_WIFI = IMCB_IMC_TLV_CALL_START_CODE + 81,
849 IMCB_IMC_TLV_CALL_REJECT_MTCALL_BY_VOPS = IMCB_IMC_TLV_CALL_START_CODE + 82,
850 IMCB_IMC_TLV_CALL_REJECT_MTCALL_WHEN_VILTE = IMCB_IMC_TLV_CALL_START_CODE + 83,
851 IMCB_IMC_TLV_CALL_NOT_ADD_SDP_IN_OPTIONS = IMCB_IMC_TLV_CALL_START_CODE + 84,
852 IMCB_IMC_TLV_CALL_PCSCF_ERROR_WHEN663 = IMCB_IMC_TLV_CALL_START_CODE + 85,
853 IMCB_IMC_TLV_CALL_REL_CONF_IF_NO_PARTICIPANT = IMCB_IMC_TLV_CALL_START_CODE + 86,
854 IMCB_IMC_TLV_CALL_ADD_NO_FORK = IMCB_IMC_TLV_CALL_START_CODE + 87,
855 IMCB_IMC_TLV_CALL_TMO_SPECIFIC_SDP = IMCB_IMC_TLV_CALL_START_CODE + 88,
856 IMCB_IMC_TLV_CALL_CALL_RINGING_TIMER_TIMEOUT = IMCB_IMC_TLV_CALL_START_CODE + 89,
857 IMCB_IMC_TLV_CALL_CALL_RINGBACK_TIMER_TIMEOUT = IMCB_IMC_TLV_CALL_START_CODE + 90,
858 IMCB_IMC_TLV_CALL_CALL_TCALL_TIMER_TIMEOUT = IMCB_IMC_TLV_CALL_START_CODE + 91,
859 IMCB_IMC_TLV_CALL_REJECT_CODE_IN23G = IMCB_IMC_TLV_CALL_START_CODE + 92,
860 IMCB_IMC_TLV_CALL_CALL_REFRESHCALL_TIMER_EXPIRE = IMCB_IMC_TLV_CALL_START_CODE + 93,
861 IMCB_IMC_TLV_CALL_CALL_CALLEND_TIMER_TIMEOUT = IMCB_IMC_TLV_CALL_START_CODE + 94,
862 IMCB_IMC_TLV_CALL_WAITING_MT_CNF_TIMER_TIMEOUT = IMCB_IMC_TLV_CALL_START_CODE + 95,
863 IMCB_IMC_TLV_CALL_CONF_SUB_TIMER_TIMEOUT = IMCB_IMC_TLV_CALL_START_CODE + 96,
864 IMCB_IMC_TLV_CALL_MO_INVITE_TO_BW_CNF_TIMER_TIMEOUT = IMCB_IMC_TLV_CALL_START_CODE + 97,
865 IMCB_IMC_TLV_CALL_SRVCC_CAPABILITY = IMCB_IMC_TLV_CALL_START_CODE + 98,
866 IMCB_IMC_TLV_CALL_EVS_SUPPORT = IMCB_IMC_TLV_CALL_START_CODE + 99,
867 IMCB_IMC_TLV_CALL_EVS_MODE_SWITCH = IMCB_IMC_TLV_CALL_START_CODE + 100,
868 IMCB_IMC_TLV_CALL_HF_ONLY = IMCB_IMC_TLV_CALL_START_CODE + 101,
869 IMCB_IMC_TLV_CALL_DTX = IMCB_IMC_TLV_CALL_START_CODE + 102,
870 IMCB_IMC_TLV_CALL_DTX_RECV = IMCB_IMC_TLV_CALL_START_CODE + 103,
871 IMCB_IMC_TLV_CALL_BR_BEGIN = IMCB_IMC_TLV_CALL_START_CODE + 104,
872 IMCB_IMC_TLV_CALL_BR_END = IMCB_IMC_TLV_CALL_START_CODE + 105,
873 IMCB_IMC_TLV_CALL_BR_SEND_BEGIN = IMCB_IMC_TLV_CALL_START_CODE + 106,
874 IMCB_IMC_TLV_CALL_BR_SEND_END = IMCB_IMC_TLV_CALL_START_CODE + 107,
875 IMCB_IMC_TLV_CALL_BR_RECV_BEGIN = IMCB_IMC_TLV_CALL_START_CODE + 108,
876 IMCB_IMC_TLV_CALL_BR_RECV_END = IMCB_IMC_TLV_CALL_START_CODE + 109,
877 IMCB_IMC_TLV_CALL_BW_BEGIN = IMCB_IMC_TLV_CALL_START_CODE + 110,
878 IMCB_IMC_TLV_CALL_BW_END = IMCB_IMC_TLV_CALL_START_CODE + 111,
879 IMCB_IMC_TLV_CALL_BW_SEND_BEGIN = IMCB_IMC_TLV_CALL_START_CODE + 112,
880 IMCB_IMC_TLV_CALL_BW_SEND_END = IMCB_IMC_TLV_CALL_START_CODE + 113,
881 IMCB_IMC_TLV_CALL_BW_RECV_BEGIN = IMCB_IMC_TLV_CALL_START_CODE + 114,
882 IMCB_IMC_TLV_CALL_BW_RECV_END = IMCB_IMC_TLV_CALL_START_CODE + 115,
883 IMCB_IMC_TLV_CALL_CH_SEND = IMCB_IMC_TLV_CALL_START_CODE + 116,
884 IMCB_IMC_TLV_CALL_CH_RECV = IMCB_IMC_TLV_CALL_START_CODE + 117,
885 IMCB_IMC_TLV_CALL_CH_AW_RECV = IMCB_IMC_TLV_CALL_START_CODE + 118,
886 IMCB_IMC_TLV_CALL_CMR = IMCB_IMC_TLV_CALL_START_CODE + 119,
887 IMCB_IMC_TLV_CALL_WHEN_STOP_EPSFB_TIMER = IMCB_IMC_TLV_CALL_START_CODE + 457,
888
889 /* ------------------------------------------------ */
890 /* VoLTE MWI Settings */
891 /* ------------------------------------------------ */
892 IMCB_IMC_TLV_MWI_START_CODE = IMCB_IMC_TLV_CALL_START_CODE + 900,
893
894 /* ------------------------------------------------ */
895 /* VoLTE SMS Settings */
896 /* ------------------------------------------------ */
897 IMCB_IMC_TLV_SMS_START_CODE = 12000,
898 IMCB_IMC_TLV_SMS_CAPABILITY = IMCB_IMC_TLV_SMS_START_CODE + 1, ///< DATA TYPE IS BOOLEAN (1 OR 0) */
899 IMCB_IMC_TLV_SMS_3GPP_SMS_PSI = IMCB_IMC_TLV_SMS_START_CODE + 2, ///< DATA TYPE IS STRING
900
901 IMCB_IMC_TLV_SMS_PSISMSC_FROM_USER = IMCB_IMC_TLV_SMS_START_CODE + 3,
902 IMCB_IMC_TLV_SMS_FORCE_PSI_SCHEME_TO_TEL = IMCB_IMC_TLV_SMS_START_CODE + 4,
903 IMCB_IMC_TLV_SMS_ADD_USER_PHONE = IMCB_IMC_TLV_SMS_START_CODE + 5,
904 IMCB_IMC_TLV_SMS_UPDATE_CALL_ID_WITH_HOST = IMCB_IMC_TLV_SMS_START_CODE + 6,
905 IMCB_IMC_TLV_SMS_ADD_NO_FORK_IN_SMS = IMCB_IMC_TLV_SMS_START_CODE + 7,
906 IMCB_IMC_TLV_SMS_NSN_SPECIFIC = IMCB_IMC_TLV_SMS_START_CODE + 8,
907 IMCB_IMC_TLV_SMS_MO_RETRY_AFTER_504 = IMCB_IMC_TLV_SMS_START_CODE + 9,
908 IMCB_IMC_TLV_SMS_SEND_TIMERF_EXPIRY = IMCB_IMC_TLV_SMS_START_CODE + 10,
909 IMCB_IMC_TLV_SMS_IMSI_REGED_DISABLE_SMS = IMCB_IMC_TLV_SMS_START_CODE + 11,
910
911 /* ------------------------------------------------ */
912 /* VoLTE XDM Settings */
913 /* ------------------------------------------------ */
914 IMCB_IMC_TLV_XDM_START_CODE = 13000,
915
916 /* ------------------------------------------------ */
917 /* VoLTE REG Settings */
918 /* ------------------------------------------------ */
919 IMCB_IMC_TLV_REG_START_CODE = 14000,
920 IMCB_IMC_TLV_REG_REGISTER_EXPIRY = IMCB_IMC_TLV_REG_START_CODE + 1, ///< DATA TYPE IS INT
921 IMCB_IMC_TLV_REG_EVENT_SUBSCRIBE = IMCB_IMC_TLV_REG_START_CODE + 2, ///< DISABLE: 0, ENABLE: 1
922 IMCB_IMC_TLV_REG_EMERGENCY = IMCB_IMC_TLV_REG_START_CODE + 3, ///< DISABLE: 0, ENABLE: 1
923 IMCB_IMC_TLV_REG_RETRY_FIRST_TIME = IMCB_IMC_TLV_REG_START_CODE + 4, ///< DATA TYPE IS INT
924 IMCB_IMC_TLV_REG_RETRY_BASE_TIME = IMCB_IMC_TLV_REG_START_CODE + 5, ///< DATA TYPE IS INT
925 IMCB_IMC_TLV_REG_RETRY_MAX_TIME = IMCB_IMC_TLV_REG_START_CODE + 6, ///< DATA TYPE IS INT
926 IMCB_IMC_TLV_REG_CONTACT_WITH_USERNAME = IMCB_IMC_TLV_REG_START_CODE + 7, ///< DISABLE: 0, ENABLE: 1
927 IMCB_IMC_TLV_REG_URI_WITH_PORT = IMCB_IMC_TLV_REG_START_CODE + 8, ///< DISABLE: 0, ENABLE: 1
928 IMCB_IMC_TLV_REG_IPSEC_ALGO_SET = IMCB_IMC_TLV_REG_START_CODE + 9, ///< DATA TYPE IS INT
929 IMCB_IMC_TLV_REG_ENABLE_HTTP_DIGEST = IMCB_IMC_TLV_REG_START_CODE + 10, ///< DISABLE: 0, ENABLE: 1
930 IMCB_IMC_TLV_REG_AUTH_NAME = IMCB_IMC_TLV_REG_START_CODE + 11, ///< DATA TYPE IS STRING
931 IMCB_IMC_TLV_REG_AUTH_PASSWORD = IMCB_IMC_TLV_REG_START_CODE + 12, ///< DATA TYPE IS STRING
932 IMCB_IMC_TLV_REG_SPECIFIC_IPSEC_ALGO = IMCB_IMC_TLV_REG_START_CODE + 13, ///< DATA TYPE IS INT
933 IMCB_IMC_TLV_REG_CONTACT_WITH_TRANSPORT = IMCB_IMC_TLV_REG_START_CODE + 14,
934 IMCB_IMC_TLV_REG_CONTACT_WITH_REGID = IMCB_IMC_TLV_REG_START_CODE + 15,
935 IMCB_IMC_TLV_REG_CONTACT_WITH_MOBILITY = IMCB_IMC_TLV_REG_START_CODE + 16,
936 IMCB_IMC_TLV_REG_CONTACT_WITH_EXPIRES = IMCB_IMC_TLV_REG_START_CODE + 17,
937 IMCB_IMC_TLV_REG_AUTHORIZATION_WITH_ALGO = IMCB_IMC_TLV_REG_START_CODE + 18,
938 IMCB_IMC_TLV_REG_REREG_IN_RAT_CHANGE = IMCB_IMC_TLV_REG_START_CODE + 19,
939 IMCB_IMC_TLV_REG_REREG_IN_OOS_END = IMCB_IMC_TLV_REG_START_CODE + 20,
940 IMCB_IMC_TLV_REG_DE_SUBSCRIBE = IMCB_IMC_TLV_REG_START_CODE + 21,
941 IMCB_IMC_TLV_REG_USE_SPECIFIC_IPSEC_ALGO = IMCB_IMC_TLV_REG_START_CODE + 22,
942 IMCB_IMC_TLV_REG_TRY_NEXT_PCSCF = IMCB_IMC_TLV_REG_START_CODE + 23,
943 IMCB_IMC_TLV_REG_DEREG_CLEAR_IPSEC = IMCB_IMC_TLV_REG_START_CODE + 24,
944 IMCB_IMC_TLV_REG_INITIAL_REG_WITHOUT_PANI = IMCB_IMC_TLV_REG_START_CODE + 25,
945 IMCB_IMC_TLV_REG_DEREG_RESET_TCP_CLIENT = IMCB_IMC_TLV_REG_START_CODE + 26,
946 IMCB_IMC_TLV_REG_TREG = IMCB_IMC_TLV_REG_START_CODE + 27,
947 IMCB_IMC_TLV_REG_REREG_23G4 = IMCB_IMC_TLV_REG_START_CODE + 28,
948 IMCB_IMC_TLV_REG_RESUB_23G4 = IMCB_IMC_TLV_REG_START_CODE + 29,
949 IMCB_IMC_TLV_REG_NOT_AUTO_REG_403 = IMCB_IMC_TLV_REG_START_CODE + 30,
950 IMCB_IMC_TLV_REG_CALL_ID_WITH_HOST_INREG = IMCB_IMC_TLV_REG_START_CODE + 31,
951 IMCB_IMC_TLV_REG_KEEP_ALIVE_MODE = IMCB_IMC_TLV_REG_START_CODE + 32,
952 IMCB_IMC_TLV_REG_TCP_CONNECT_MAX_TIME_INVITE = IMCB_IMC_TLV_REG_START_CODE + 33,
953 IMCB_IMC_TLV_REG_EMS_MODE_IND = IMCB_IMC_TLV_REG_START_CODE + 34,
954 IMCB_IMC_TLV_REG_CONTACT_WITH_ACCESSTYPE = IMCB_IMC_TLV_REG_START_CODE + 35,
955 IMCB_IMC_TLV_REG_WFC_WITH_PLANI = IMCB_IMC_TLV_REG_START_CODE + 36,
956 IMCB_IMC_TLV_REG_USE_UDP_ON_TCP_FAIL = IMCB_IMC_TLV_REG_START_CODE + 37,
957 IMCB_IMC_TLV_REG_IPSEC_FAIL_ALLOWED = IMCB_IMC_TLV_REG_START_CODE + 38,
958 IMCB_IMC_TLV_REG_CONTACT_WITH_VIDEO_FEATURE_TAG_IN_SUBSCRIBE = IMCB_IMC_TLV_REG_START_CODE + 39,
959 IMCB_IMC_TLV_REG_VIA_WITHOUT_RPORT = IMCB_IMC_TLV_REG_START_CODE + 40,
960 IMCB_IMC_TLV_REG_REG_ROUTE_HDR = IMCB_IMC_TLV_REG_START_CODE + 41,
961 IMCB_IMC_TLV_REG_VIA_URI_WITH_DEFAULT_PORT = IMCB_IMC_TLV_REG_START_CODE + 42,
962 IMCB_IMC_TLV_REG_NOTIFY_SMS_NOTIFY_DONE = IMCB_IMC_TLV_REG_START_CODE + 43,
963 IMCB_IMC_TLV_REG_EMERGENCY_USE_IMSI = IMCB_IMC_TLV_REG_START_CODE + 44,
964 IMCB_IMC_TLV_REG_CHECK_MSISDN = IMCB_IMC_TLV_REG_START_CODE + 45,
965 IMCB_IMC_TLV_REG_RETRY_INTERVAL_AFTER_403 = IMCB_IMC_TLV_REG_START_CODE + 46,
966 IMCB_IMC_TLV_REG_SUPPORT_THROTTLING_ALGO = IMCB_IMC_TLV_REG_START_CODE + 47,
967 IMCB_IMC_TLV_REG_REG_AFTER_NW_DEREG_60S = IMCB_IMC_TLV_REG_START_CODE + 48,
968 IMCB_IMC_TLV_REG_SUB_CONTACT_WITH_SIP_INSTANCE = IMCB_IMC_TLV_REG_START_CODE + 49,
969 IMCB_IMC_TLV_REG_STOP_REG_MD_LOWER_LAYER_ERR = IMCB_IMC_TLV_REG_START_CODE + 50,
970 IMCB_IMC_TLV_REG_REG_GRUU_SUPPORT = IMCB_IMC_TLV_REG_START_CODE + 51,
971
972 /* ------------------------------------------------ */
973 /* VoLTE SIP Settings */
974 /* ------------------------------------------------ */
975 IMCB_IMC_TLV_SIP_START_CODE = 15000,
976 IMCB_IMC_TLV_SIP_T1_TIMER = IMCB_IMC_TLV_SIP_START_CODE + 1, ///< DATA TYPE IS INT
977 IMCB_IMC_TLV_SIP_T2_TIMER = IMCB_IMC_TLV_SIP_START_CODE + 2, ///< DATA TYPE IS INT
978 IMCB_IMC_TLV_SIP_T4_TIMER = IMCB_IMC_TLV_SIP_START_CODE + 3, ///< DATA TYPE IS INT
979 IMCB_IMC_TLV_SIP_KEEP_ALIVE = IMCB_IMC_TLV_SIP_START_CODE + 4, ///< DATA TYPE IS INT
980 IMCB_IMC_TLV_SIP_FORCE_USE_UDP = IMCB_IMC_TLV_SIP_START_CODE + 5, ///< DISABLE: 0, ENABLE: 1
981 IMCB_IMC_TLV_SIP_TCP_ON_DEMAND = IMCB_IMC_TLV_SIP_START_CODE + 6, ///< DISABLE: 0, ENABLE: 1
982 IMCB_IMC_TLV_SIP_TCP_MTU_SIZE = IMCB_IMC_TLV_SIP_START_CODE + 7, ///< DATA TYPE IS INT
983 IMCB_IMC_TLV_SIP_REG_TIMESTAMP = IMCB_IMC_TLV_SIP_START_CODE + 8, ///< DATA TYPE IS STRING, FOR WFC PLANI HEADER
984 IMCB_IMC_TLV_SIP_TRANSACTION_TIMER = IMCB_IMC_TLV_SIP_START_CODE + 9, ///< DATA TYPE IS INT
985
986 /* ------------------------------------------------ */
987 /* VoLTE USSD Settings */
988 /* ------------------------------------------------ */
989 IMCB_IMC_TLV_USSD_START_CODE = 16000,
990 IMCB_IMC_TLV_USSD_NW_TIMEOUT_TIMER = IMCB_IMC_TLV_USSD_START_CODE + 1, ///< DATA TYPE IS UINT8 */
991 IMCB_IMC_TLV_USSD_SETUP_TIMEOUT_TIMER = IMCB_IMC_TLV_USSD_START_CODE + 2, ///< DATA TYPE IS UINT8 */
992 IMCB_IMC_TLV_USSD_CAPABILITY = IMCB_IMC_TLV_USSD_START_CODE + 3, ///< DATA TYPE IS UINT8 */
993
994 /* IMCB <-> IMC internal */
995 IMCB_IMC_TLV_START_CODE = 100000,
996 IMCB_IMC_TLV_VIDEO_CAPABILITY = IMCB_IMC_TLV_START_CODE + 1,
997 IMCB_IMC_TLV_VOICE_CAPABILITY = IMCB_IMC_TLV_START_CODE + 2,
998 IMCB_IMC_TLV_IGNORE_SGN_QCI_CHECK = IMCB_IMC_TLV_START_CODE + 3,
999 IMCB_IMC_TLV_IGNORE_MEDIA_QOS_CHECK = IMCB_IMC_TLV_START_CODE + 4,
1000 IMCB_IMC_TLV_DEFAULT_FALLBACK_SUPPORT = IMCB_IMC_TLV_START_CODE + 5,
1001 IMCB_IMC_TLV_DEDICATED_FALLBACK_SUPPORT = IMCB_IMC_TLV_START_CODE + 6,
1002 IMCB_IMC_TLV_RESTORE_PCSCF = IMCB_IMC_TLV_START_CODE + 7,
1003 IMCB_IMC_TLV_NOT_ACQUIRE_AUDIO_RTCP = IMCB_IMC_TLV_START_CODE + 8,
1004 IMCB_IMC_TLV_NOT_ACQUIRE_VIDEO_RTCP = IMCB_IMC_TLV_START_CODE + 9,
1005 IMCB_IMC_TLV_IMCB_SETTING_STRING = IMCB_IMC_TLV_START_CODE + 10,
1006 IMCB_IMC_TLV_PCSCF_HOME_POLICY_LIST = IMCB_IMC_TLV_START_CODE + 11, ///< DATA TYPE IS STRING
1007 IMCB_IMC_TLV_PCSCF_VISIT_POLICY_LIST = IMCB_IMC_TLV_START_CODE + 12, ///< DATA TYPE IS STRING
1008 IMCB_IMC_TLV_GENERAL_SETTING = IMCB_IMC_TLV_START_CODE + 13,
1009
1010 IMCB_IMC_TLV_SILENTDEACT_TMOUS_CAT_REGFAIL = IMCB_IMC_TLV_START_CODE + 14, //100014
1011 IMCB_IMC_TLV_SGN_WEIGHT_OF_QCI_SFLAG_DEFAULT = IMCB_IMC_TLV_START_CODE + 15, //100015
1012 IMCB_IMC_TLV_NOT_DECOUPLE_DEREG_AND_PDN_DEACT = IMCB_IMC_TLV_START_CODE + 16, //100016
1013 IMCB_IMC_TLV_SILENT_PDN_DEACT = IMCB_IMC_TLV_START_CODE + 17, //100017
1014 IMCB_IMC_TLV_SEND_TIMERF_EXPIRY = IMCB_IMC_TLV_START_CODE + 18, //100018
1015 IMCB_IMC_TLV_SEND_TIMERB_EXPIRY = IMCB_IMC_TLV_START_CODE + 19, //100019
1016 //IMCB_IMC_TLV_IGNORE_VIDEO_QOS_CHECK = IMCB_IMC_TLV_START_CODE + 20, //100020
1017 IMCB_IMC_TLV_PDN_REJ_HANDLE = IMCB_IMC_TLV_START_CODE + 21, //100021
1018 IMCB_IMC_TLV_VIDEO_RESOURCE_RETAIN_TIMER = IMCB_IMC_TLV_START_CODE + 22, //100022 ///< DATA TYPE IS INT
1019 IMCB_IMC_TLV_VIDEO_DEFAULT_FALLBACK_SUPPORT = IMCB_IMC_TLV_START_CODE + 23, //100023
1020 IMCB_IMC_TLV_ENABLE_AUDIO_PRECONDITION = IMCB_IMC_TLV_START_CODE + 24, //100024
1021 IMCB_IMC_TLV_ENABLE_VIDEO_PRECONDITION = IMCB_IMC_TLV_START_CODE + 25, //100025
1022 IMCB_IMC_TLV_VIDEO_DEDICATED_FALLBACK_SUPPORT = IMCB_IMC_TLV_START_CODE + 26, //100026
1023 IMCB_IMC_TLV_DEREG_DEFER_PDN_RELEASE_TIMER = IMCB_IMC_TLV_START_CODE + 27, //100027
1024 IMCB_IMC_TLV_NORMAL_PDN_RETRY_COUNT = IMCB_IMC_TLV_START_CODE + 28, //100028
1025 IMCB_IMC_TLV_EXT_TIMER_CONFIG = IMCB_IMC_TLV_START_CODE + 29, //100029
1026 IMCB_IMC_TLV_RETRY_AFTER_IN_IMCB = IMCB_IMC_TLV_START_CODE + 30, //100030
1027 IMCB_IMC_TLV_RESET_RETRY_AFTER_TIMER_CRITERIA = IMCB_IMC_TLV_START_CODE + 31, //100031
1028 IMCB_IMC_TLV_VZW_DEVICE_TYPE = IMCB_IMC_TLV_START_CODE + 32, //100032
1029 IMCB_IMC_TLV_ENABLE_PREPCSCF_DISCOVER_SUPPORT = IMCB_IMC_TLV_START_CODE + 33, //100033
1030 IMCB_IMC_TLV_E911_RESOURCE_RETAIN_TIMER = IMCB_IMC_TLV_START_CODE + 34, //100034
1031 IMCB_IMC_TLV_AUDIO_BEARER_LOST_RETAINTIMER = IMCB_IMC_TLV_START_CODE + 35, //100035
1032 IMCB_IMC_TLV_VIDEO_BEARER_LOST_RETAINTIMER = IMCB_IMC_TLV_START_CODE + 36, //100036
1033 // RTT related - start
1034 IMCB_IMC_TLV_NOT_ACQUIRE_TEXT_RTCP = IMCB_IMC_TLV_START_CODE + 37, //100037
1035 IMCB_IMC_TLV_IGNORE_TEXT_QOS_CHECK = IMCB_IMC_TLV_START_CODE + 38, //100038
1036 IMCB_IMC_TLV_TEXT_RESOURCE_RETAIN_TIMER = IMCB_IMC_TLV_START_CODE + 39, //100039
1037 IMCB_IMC_TLV_TEXT_DEFAULT_FALLBACK_SUPPORT = IMCB_IMC_TLV_START_CODE + 40, //100040
1038 IMCB_IMC_TLV_ENABLE_TEXT_PRECONDITION = IMCB_IMC_TLV_START_CODE + 41, //100041
1039 IMCB_IMC_TLV_TEXT_DEDICATED_FALLBACK_SUPPORT = IMCB_IMC_TLV_START_CODE + 42, //100042
1040 // RTT related - end
1041 IMCB_IMC_TLV_PCSCF_RESELECT_FLAG = IMCB_IMC_TLV_START_CODE + 43, //100043
1042 IMCB_IMC_TLV_EMPTY_PCSCF_LIST_FAIL_CAUSE = IMCB_IMC_TLV_START_CODE + 44, //100044
1043 /*
1044 A is the first incoming, B is the later incoming bearer.
1045
1046 pf(bigger), qos (bigger) | prefer PF | prefer qos
1047 --------------------------+-------------+---------------
1048 CASE 1: A , A | A | A
1049 CASE 2: A , B | A | B
1050 CASE 3: B , A | B | A
1051 CASE 4: B , B | B | B
1052 */
1053 IMCB_IMC_TLV_BEARER_MATCHING_PREFERENCE = IMCB_IMC_TLV_START_CODE + 45, //100045 0: disabled, 1: prefer PF, 2: prefer qos
1054 IMCB_IMC_TLV_PDN_RETRY_PRE_BACKOFF_COUNT = IMCB_IMC_TLV_START_CODE + 46, //100046
1055 IMCB_IMC_TLV_PDN_RETRY_BASE_TIME = IMCB_IMC_TLV_START_CODE + 47, //100047
1056 IMCB_IMC_TLV_PDN_RETRY_MAX_TIME = IMCB_IMC_TLV_START_CODE + 48, //100048
1057 IMCB_IMC_TLV_PDN_RETRY_BACKOFF_ENABLE = IMCB_IMC_TLV_START_CODE + 49, //100049
1058 IMCB_IMC_TLV_LOGGING_EVENT_NOTIFY = IMCB_IMC_TLV_START_CODE + 50, //100050
1059 IMCB_IMC_TLV_WIFI_VOICE_CAPABILITY = IMCB_IMC_TLV_START_CODE + 51, //100051
1060 IMCB_IMC_TLV_WIFI_VIDEO_CAPABILITY = IMCB_IMC_TLV_START_CODE + 52, //100052
1061 IMCB_IMC_TLV_E911_E1_RESET = IMCB_IMC_TLV_START_CODE + 53, //100053
1062 // HPS TLV
1063 IMCB_IMC_TLV_REQ_HPS = IMCB_IMC_TLV_START_CODE + 54, //100054
1064 IMCB_IMC_TLV_REL_HPS = IMCB_IMC_TLV_START_CODE + 55, //100055
1065 IMCB_IMC_TLV_REL_HPS_THRESHOLD = IMCB_IMC_TLV_START_CODE + 56, //100056
1066 IMCB_IMC_TLV_REREG_FOR_PCSCF_RESTORATION = IMCB_IMC_TLV_START_CODE + 57, //100057
1067 IMCB_IMC_TLV_REPLACE_PCSCF_LIST_FOR_RESTORATION = IMCB_IMC_TLV_START_CODE + 58, //100058
1068 IMCB_IMC_TLV_LTE_ONLY_DISABLE_RES_RETAIN_TIMER = IMCB_IMC_TLV_START_CODE + 59, //100059
1069 IMCB_IMC_TLV_WAIT_FOR_SGN_TIMER = IMCB_IMC_TLV_START_CODE + 60, //100060
1070 IMCB_IMC_TLV_PSDATAOFF_PDNGW_SUPPORT = IMCB_IMC_TLV_START_CODE + 61, //100061
1071 IMCB_IMC_TLV_IGNORE_MEDIA_QCI_CHECK = IMCB_IMC_TLV_START_CODE + 62, //100062
1072 IMCB_IMC_TLV_RF_OWNER = IMCB_IMC_TLV_START_CODE + 63, //100063
1073 IMCB_IMC_TLV_IMS_PROGRESS_SLOW_TIMER = IMCB_IMC_TLV_START_CODE + 64, //100064
1074 IMCB_IMC_TLV_REREG_CSCM_IND = IMCB_IMC_TLV_START_CODE + 65, //100065
1075 IMCB_IMC_TLV_REREG_CSCM_CNF = IMCB_IMC_TLV_START_CODE + 66, //100066
1076 IMCB_IMC_TLV_USE_NORMAL_PCSCF = IMCB_IMC_TLV_START_CODE + 67, //100067
1077 IMCB_IMC_TLV_REL_EMC_PDN_AFR_TIMER_EXPR = IMCB_IMC_TLV_START_CODE + 68, //100068
1078 IMCB_IMC_TLV_TEXT_BEARER_LOST_RETAINTIMER = IMCB_IMC_TLV_START_CODE + 69, //100069
1079 IMCB_IMC_TLV_NR_NORMAL_PDN_RETRY_COUNT = IMCB_IMC_TLV_START_CODE + 70, //100070
1080 IMCB_IMC_TLV_NR_QUICK_DISABLE_SUPPORT = IMCB_IMC_TLV_START_CODE + 71, //100071
1081} imcb_imc_tlv_para_enum;
1082
1083//IMS Common Interface
1084typedef struct {
1085 LOCAL_PARA_HDR
1086 imcf_uint32 is_test_mode_on;
1087} imcb_imc_set_test_mode_req_struct;
1088
1089typedef struct {
1090 LOCAL_PARA_HDR
1091 imcf_uint32 reserved;
1092} imcb_imc_set_test_mode_cell_info_req_struct;
1093
1094typedef struct {
1095 imcf_uint8 is_connected; //boolean, IMSA is connected to UA or not
1096 imcf_uint8 pad[3];
1097} imcb_imc_comm_error_req_struct;
1098
1099typedef struct {
1100 LOCAL_PARA_HDR
1101 imcf_uint8 account_id;
1102 imcf_uint8 rat_type; //imc_rat_type_enum
1103 imcf_uint8 pad[2];
1104 /* WFC */
1105 imcf_uint8 cell_id[IMC_MAX_CELL_ID_LEN];
1106 imcb_imc_loc_ts_struct loc_info;
1107} imcb_imc_rat_change_ind_struct;
1108
1109typedef struct {
1110 LOCAL_PARA_HDR
1111 imcf_uint8 account_id;
1112 imcf_uint8 event_type;// 0: Signal is weak 1: LTE OOS search is on-going and may not recover
1113 imcf_uint16 lte_band;// the LTE band number, UA don't use it currently, just reserve(0: Invalid, 1-256: possible LTE band range)
1114} imcb_imc_rlm_event_ind_struct;
1115
1116//IMS SIM Interface
1117typedef struct {
1118 LOCAL_PARA_HDR
1119 imcf_uint8 sim_type; //ims_sim_type_enum
1120 imcf_uint8 session_id;
1121 imcf_uint8 pad[2];
1122} imcb_imc_sim_ready_req_struct;
1123
1124typedef struct {
1125 LOCAL_PARA_HDR
1126 imcf_uint8 sim_type; //ims_sim_type_enum
1127 imcf_uint8 session_id;
1128 imcf_uint8 pad[2];
1129} imcb_imc_sim_refresh_req_struct;
1130
1131typedef struct {
1132 LOCAL_PARA_HDR
1133 imcf_uint32 reason;
1134} imcb_imc_sim_error_req_struct;
1135
1136typedef struct {
1137 LOCAL_PARA_HDR
1138 imcf_uint32 reason;
1139} imcb_imc_sim_query_ind_struct;
1140
1141typedef struct {
1142 LOCAL_PARA_HDR
1143 imcf_uint8 sim_usim_type; //ims_sim_type_enum
1144 imcf_uint8 isim_type; //ims_sim_type_enum
1145 imcf_uint8 session_id;
1146 imcf_uint8 pad[2];
1147} imcb_imc_sim_query_rsp_struct;
1148
1149typedef struct {
1150 LOCAL_PARA_HDR
1151 imcf_uint8 data_type; //ims_sim_usim_data_enum
1152 imcf_uint8 pad[3];
1153} imcb_imc_read_sim_usim_ind_struct;
1154
1155typedef struct {
1156 imcf_uint8 length;
1157 imcf_uint8 data[IMC_MAX_IMPU_LEN];
1158} ims_impu_struct;
1159
1160typedef struct {
1161 LOCAL_PARA_HDR
1162 imcf_uint8 is_success; //boolean
1163 imcf_uint8 data_type; //ims_sim_usim_data_enum
1164 imcf_uint8 num_of_data;
1165 imcf_uint8 mnc_len;
1166 ims_sim_usim_data_struct sim_usim_data;
1167} imcb_imc_read_sim_usim_rsp_struct;
1168
1169typedef struct {
1170 LOCAL_PARA_HDR
1171 imcf_uint8 data_type; //ims_isim_data_enum
1172 imcf_uint8 pad[3];
1173} imcb_imc_read_isim_ind_struct;
1174
1175typedef struct {
1176 LOCAL_PARA_HDR
1177 imcf_uint8 is_success;
1178 imcf_uint8 data_type; // ims_isim_data_enum
1179 imcf_uint8 num_of_data;
1180 imcf_uint8 pad[1];
1181 ims_isim_data_struct isim_data[5];
1182} imcb_imc_read_isim_rsp_struct;
1183
1184typedef struct {
1185 LOCAL_PARA_HDR
1186 imcf_uint8 data_type; // ims_isim_data_enum
1187 imcf_uint8 num_of_data;
1188 imcf_uint8 pad[2];
1189 ims_isim_data_struct isim_data[5];
1190} imcb_imc_read_isim_ntf_req_struct;
1191
1192//IMS Registration Interface
1193typedef struct {
1194 LOCAL_PARA_HDR
1195 imcf_int32 account_id;
1196 imcf_int32 type; // imcb_imc_query_type_enum
1197} imcb_imc_query_state_req_struct;
1198
1199typedef struct {
1200 LOCAL_PARA_HDR
1201 imcf_int32 account_id;
1202 imcf_uint8 cell_id[IMC_MAX_CELL_ID_LEN];
1203 imcb_imc_loc_ts_struct loc_info;
1204} imcb_imc_query_state_cnf_struct;
1205
1206/**
1207 * Description
1208 * - the primitive is used for IMC indicate information to IMCB,
1209 * and IMCB will mapping(relay) to UA by UA's event msessage - VoLTE_REQ_UPDATE_RT_SETTING
1210 * Direction
1211 * - IMC -> IMCB
1212 */
1213typedef struct {
1214 LOCAL_PARA_HDR
1215 imcf_uint8 account_id;
1216 imcf_uint8 imei_len;
1217 imcf_uint8 pad[2];
1218 imcf_uint8 imei[IMC_MAX_IMEI_LEN];
1219
1220 imcf_uint8 imsi_mnc_len;
1221 imcf_uint8 pad1[3];
1222 imcf_uint8 imsi_mnc[IMC_MAX_MNC_MCC_LEN];
1223
1224 imcf_uint8 imsi_mcc_len;
1225 imcf_uint8 pad2[3];
1226 imcf_uint8 imsi_mcc[IMC_MAX_MNC_MCC_LEN];
1227
1228 imcf_uint8 impi_len;
1229 imcf_uint8 pad3[3];
1230 imcf_uint8 impi[IMC_MAX_IMPI_LEN];
1231
1232 imcf_uint8 num_of_impu;
1233 imcf_uint8 pad4[3];
1234 ims_impu_struct impu[IMC_MAX_IMPU_NUM];
1235
1236 imcf_uint8 domain_name_len;
1237 imcf_uint8 pad5[3];
1238 imcf_uint8 domain_name[IMC_MAX_DOMAIN_NAME_LEN];
1239
1240 imcf_uint8 psismsc_len;
1241 imcf_uint8 pad6[3];
1242 imcf_uint8 psismsc[IMC_MAX_ISIM_PSISMSC_LEN]; // should equal IMC_MAX_USIM_PSISMSC_LEN and IMC_MAX_SIM_SMSP_LEN
1243
1244 /********************INIT Configuration ****************/
1245 /* IMCB part */
1246 imcf_uint32 resource_retain_timer;
1247 imcf_uint32 emergency_pdn_retain_timer;
1248 imcf_uint32 poweroff_ims_dereg_timer;
1249 imcf_uint8 pcscf_priority_list[8];
1250 imcf_uint8 set_ue_im_cn_signaling_flag;
1251 imcf_uint8 check_nw_im_cn_signaling_flag;
1252 imcf_uint8 ims_signaling_qci;
1253 imcf_uint8 ims_voice_qci;
1254 imcf_uint8 ims_video_qci;
1255 imcf_uint8 ims_v4v6_preference; // imc_v4v6_preference_enum
1256 imcf_uint8 pcscf_manual_support;
1257 imcf_uint8 pcscf_mo_support;
1258 imcf_uint8 pcscf_sim_support;
1259 imcf_uint8 pcscf_pco_renew_support;
1260 imcf_uint8 resource_allocation_mode; //config UE initial or NW initial dedicated EPS bearer activation
1261 imcf_uint8 is_roaming;
1262 imcf_uint8 set_pcscf_discovery_via_nas;
1263 imcf_uint8 em_reg_scheme;
1264 imcf_uint8 ims_aka_cal_decision;
1265 imcf_uint8 voice_bearer_ctrl; // imcb_imc_voice_bearer_ctrl_enum
yu.dong99f21a22023-05-30 22:15:37 -07001266 imcf_uint8 pcscf_manual_list[64];
rjw6c1fd8f2022-11-30 14:33:01 +08001267 imcf_uint8 default_pcscf_address_is_v4;
1268 imcf_uint8 ims_text_qci;
1269 imcf_uint8 wifi_voice_support;
1270 imcf_uint8 wifi_video_over_ps_support;
1271 imcf_uint8 cell_id[IMC_MAX_CELL_ID_LEN];
1272
1273 /* UA part */
1274 imcf_uint32 local_port;
1275 imcf_uint32 ipsec_local_port_start;
1276 imcf_uint32 ipsec_local_port_range;
1277 imcf_uint32 rtp_rtcp_local_port_start;
1278 imcf_uint32 rtp_rtcp_local_port_range;
1279 imcf_uint32 rtcp_interval;
1280
1281 /* WFC */
1282 imcf_uint32 sip_dscp;
1283 imcf_uint32 sip_priority;
1284 imcf_uint32 dscp; /*audio*/
1285 imcf_uint32 audio_priority;
1286 imcf_uint32 video_dscp;
1287 imcf_uint32 video_priority;
1288
1289 imcf_uint32 register_expiry;
1290 imcf_uint32 UA_reg_t1_timer;
1291 imcf_uint32 UA_reg_t2_timer;
1292 imcf_uint32 UA_reg_t4_timer;
1293 imcf_uint32 UA_call_conf_subtimer;
1294 imcf_uint32 UA_call_session_timer;
1295 imcf_uint32 UA_call_amr_fmt_variant;
1296
1297 imcf_uint8 VoLTE_Setting_SIP_Force_Use_UDP;
1298 imcf_uint8 VoLTE_Setting_SIP_TCP_On_Demand;
1299 imcf_uint16 VoLTE_Setting_SIP_TCP_MTU_Size;
1300 /* WFC */
1301 imcf_uint32 VoLTE_Setting_SIP_TCP_MSS;
1302
1303 imcf_uint16 UA_call_session_min_se;
1304 imcf_uint16 UA_call_rej_code;
1305 imcf_uint16 UA_call_no_resource_code;
1306 imcf_uint16 UA_call_rej_media_code;
1307 imcf_uint16 UA_call_rej_by_user_code;
1308 imcf_uint16 operator_code;
1309 imcf_uint8 local_sip_protocol_type;
1310 imcf_uint8 UA_g711_ptime;
1311 imcf_uint8 UA_g726_ptime;
1312 imcf_uint8 UA_call_codec_order1;
1313 imcf_uint8 UA_call_codec_order2;
1314 imcf_uint8 UA_call_codec_order3;
1315 imcf_uint8 UA_call_def_max_ptime;
1316 imcf_uint8 UA_call_def_ptime;
1317 imcf_uint8 UA_call_amr_pt;
1318 imcf_uint8 UA_call_amr_wb_pt;
1319 imcf_uint8 UA_call_h264_pt;
1320 imcf_uint8 UA_call_g729_annexb;
1321 imcf_uint8 UA_call_g729_ptime;
1322 imcf_uint8 UA_call_priority;
1323 imcf_uint8 UA_call_privacy;
1324 imcf_uint8 UA_call_session_flag;
1325 imcf_uint8 UA_call_tel_evt;
1326 imcf_uint8 UA_call_tel_evt_pt;
1327 imcf_uint8 UA_call_precondition;
1328 imcf_uint8 early_media;
1329 imcf_uint8 sms_support;
1330 imcf_uint8 voice_support;
1331 imcf_uint8 video_over_ps_support;
1332 imcf_uint8 mwi_license;
1333 imcf_uint8 UA_reg_keep_alive;
1334 imcf_uint8 UA_net_ipsec;
1335 imcf_uint8 UA_reg_uri_with_port;
1336 imcf_uint8 UA_reg_ipsec_algo;
1337 imcf_uint8 UA_reg_http_digest;
1338 imcf_uint8 UA_reg_specific_ipsec_algo;
1339 imcf_uint8 UA_call_mo_invite_to_bw_cnf_time;
1340 imcf_uint8 amr_nb_codec_support;
1341 imcf_uint8 amr_wb_codec_support;
1342 imcf_uint8 g_series_codec_support;
rjw04b9c952023-03-28 14:35:43 +08001343 imcf_uint8 user_agent[256];
rjw6c1fd8f2022-11-30 14:33:01 +08001344 imcf_uint8 UA_call_amr_mode_set[16];
1345 imcf_uint8 UA_call_amr_wb_mode_set[20];
1346 imcf_uint8 UA_reg_auth_name[64];
1347 imcf_uint8 UA_reg_auth_password[32];
1348 imcf_uint8 UA_conf_factory_uri[128];
1349 /* WFC */
1350 imcf_uint8 wfc_support;
1351 imcf_uint8 UA_call_h264_pt2;
1352 imcf_uint8 UA_call_h265_pt;
1353 imcf_uint8 ipv6_zero_compression;
1354 imcf_uint8 UA_call_h265_pt2;
1355 /* USSI */
1356 imcf_uint8 ussd_support;
1357 imcf_uint8 UA_ussd_nw_timeout_timer;
1358 imcf_uint8 UA_ussd_setup_timeout_timer;
1359 imcf_uint32 pcscf_port_number;
1360 imcf_uint32 UA_reg_f_timer;
1361 imcf_uint8 msisdn_len;
1362 imcf_uint8 pad9[3];
1363 imcf_uint8 msisdn[IMC_MAX_USIM_MSISDN_LEN];
1364} imcb_imc_req_update_rt_setting_struct; //relay
1365
1366/* size(LOCAL_PARA_HDR) = 4 */
1367#define IMC_MAX_DEBUG_INFO_IND_LEN 500
1368
1369#define IMC_EM_TAG_LEN 2
1370#define IMC_EM_LENGTH_LEN 2
1371
1372/* For TLV parsing prototype */
1373
1374/**
1375 * Description
1376 * - the primitive is used for IMC requesting IMCB to do IMS registration,
1377 * IMCB will mapping to two UA's event message - VoLTE_REQ_NETWORK_CHANGE, VoLTE_REQ_REG
1378 * Direction
1379 * - IMC -> IMCB
1380 */
1381typedef struct {
1382 LOCAL_PARA_HDR
1383 imcf_uint8 account_id;
1384 imcf_uint8 rat_type; //imc_rat_type_enum
1385 imcf_uint8 pad[2];
1386
1387 imcf_uint8 cell_id[IMC_MAX_CELL_ID_LEN];
1388 /* WFC */
1389 imcf_uint32 access_rat_type; /* imc_access_rat_type_enum */
1390 imcb_imc_loc_ts_struct loc_info;
1391} imcb_imc_ims_reg_ind_struct;
1392
rjw04b9c952023-03-28 14:35:43 +08001393
1394/**
1395 * Description
1396 * - the ILM indicate which rat UE attach
1397 * Direction
1398 * IMC -> IMCB
1399 */
1400typedef struct {
1401 LOCAL_PARA_HDR
1402 imcf_uint32 currently_attached_rat; /* imc_access_rat_type_enum */
1403} imcb_imc_attached_rat_ind_struct;
1404
1405
rjw6c1fd8f2022-11-30 14:33:01 +08001406/**
1407 * Description
1408 * - the primitive is used for IMCB notifing IMC current IMS registration state,
1409 * the message is mapping from UA's event message - VoLTE_IND_REG_STATE
1410 * Direction
1411 * - IMCB -> IMC
1412 */
1413
1414typedef enum {
1415 IMC_EMERGENCY_OVER_NORMAL = 0,
1416 IMC_EMERGENCY_REGISTERED = 1,
1417 IMC_EMERGENCY_UNREGISTERED = 2,
1418} imc_emergency_type_enum;
1419
1420typedef struct {
1421 LOCAL_PARA_HDR
1422 imcf_uint8 account_id;
1423 imcf_uint8 reg_state; //imc_reg_state_enum
1424 imcf_uint16 cause; //imcb_imc_reg_cause_enum
1425 imcf_uint32 sip_cause; //imcb_imc_sip_cause_enum
1426 imcf_int32 retry_after; // time delay for IMC retrying initial registration
1427
1428 /* WFC */
1429 imcf_uint8 rat_type; /* imc_rat_type_enum */
1430 imcf_uint8 ecmp; /* imc_ecmp_enum */
1431 imcf_uint8 is_ems_support;
1432 imcf_uint8 pdn_alive;
1433
1434 imcf_uint32 reg_service; /* ims_reg_service_enum */
1435 imcf_uint32 reg_event; /* ims_reg_event_enum */
1436 imcf_uint32 sip_uri_type; /* ims_reg_sip_uri_type_enum */
1437 imcf_uint8 retry_after_ongoing;
1438 imcf_uint8 emergency_type;
rjw8e44aab2022-11-30 16:42:16 +08001439 imcf_uint8 pad[2];
rjw6c1fd8f2022-11-30 14:33:01 +08001440} imcb_imc_ims_reg_state_req_struct;
1441
1442/**
1443 * Description
1444 * - the primitive is used for IMC indicating IMCB to do IMS deregistration,
1445 * the message will map to UA's event message - VoLTE_REQ_DEREG
1446 * Direction
1447 * - IMC -> IMCB
1448 */
1449typedef struct {
1450 LOCAL_PARA_HDR
1451 imcf_uint8 account_id;
1452 imcf_uint8 reason; // imcb_imc_dereg_reason_enum
1453 imcf_uint8 cause; // imcb_imc_dereg_cause_enum
1454 imcf_uint8 pad[1];
1455 imcf_uint8 cell_id[IMC_MAX_CELL_ID_LEN];
1456 imcb_imc_loc_ts_struct loc_info;
1457 imcf_bool keep_pdn_alive;
1458} imcb_imc_ims_dereg_ind_struct;
1459
1460/**
1461 * Description
1462 * - the primitive is used for IMC indicating IMCB to send OOS_start event msg to UA
1463 * the message mapping to UA's event message - VoLTE_XXX
1464 * Direction
1465 * - IMC -> IMCB
1466 */
1467typedef struct {
1468 LOCAL_PARA_HDR
1469 imcf_uint8 account_id;
1470 imcf_uint8 pad[3];
1471} imcb_imc_oos_start_ind_struct;
1472
1473/**
1474 * Description
1475 * - the primitive is used for IMC indicating IMCB to send OOS_end event msg to UA
1476 * the message mapping to UA's event message - VoLTE_XXX
1477 * Direction
1478 * - IMC -> IMCB
1479 */
1480typedef struct {
1481 LOCAL_PARA_HDR
1482 imcf_uint8 account_id;
1483 imcf_uint8 pad[3];
1484} imcb_imc_oos_end_ind_struct;
1485
1486typedef struct {
1487 LOCAL_PARA_HDR
1488 imcf_uint32 account_id;
1489 imcf_uint32 vops;
1490} imcb_imc_ims_vops_notification_ind_struct;
1491
1492#define VSIM_ID_GET_SIM_ID(x) (x >> 4 )
1493#define VSIM_ID_GET_TYPE(x) (x & 0x0F)
1494
1495typedef imcf_uint8 imc_vsim_id_t;
1496
1497typedef union {
1498 imc_vsim_id_t vsim_id;
1499 imc_acct_id_t acct_id;
1500 imcf_uint8 pad[1];
1501} imc_ctxt_map_t;
1502
1503typedef enum {
1504 IMC_LOOP_TEST_NONE,
1505 IMC_LOOP_TEST_E2E,
1506 IMC_LOOP_TEST_E2E_TIMER,
1507 IMC_LOOP_TEST_2WAY_BV,
1508 IMC_LOOP_TEST_2WAY_VV,
1509
1510 IMC_LOOP_TEST_LAST
1511} imc_loop_test_enum;
1512
1513typedef enum {
1514 IMC_LOOP_TEST_CAUSE_NONE,
1515 IMC_LOOP_TEST_CAUSE_OK,
1516 IMC_LOOP_TEST_CAUSE_UNDER_TESTING,
1517 IMC_LOOP_TEST_CAUSE_OTHER_FAIL,
1518
1519 IMC_LOOP_TEST_CAUSE_LAST
1520} imc_loop_test_cause_enum;
1521
1522#define IMC_LOOP_TEST_DATA_LEN (1000)
1523typedef struct {
1524
1525 imc_ctxt_map_t ctxt;
1526 imcf_uint8 ttl;
1527 imc_loop_test_enum type;
1528 union {
1529 imcf_uint8 timeout; /* in sec */
1530 imcf_uint8 pad[1];
1531 } data;
1532
1533 imcf_uint32 token;
1534 imcf_uint8 chk_data[IMC_LOOP_TEST_DATA_LEN];
1535
1536} imc_loop_test_send_struct;
1537
1538typedef struct {
1539 LOCAL_PARA_HDR
1540 imc_loop_test_send_struct test_send;
1541} imcb_imc_loop_test_ind_struct;
1542
1543typedef struct {
1544
1545 imc_ctxt_map_t ctxt;
1546 imc_loop_test_cause_enum cause;
1547 imcf_uint8 ttl;
1548 imcf_uint8 pad[1];
1549
1550 imcf_uint32 token;
1551 imcf_uint8 chk_data[IMC_LOOP_TEST_DATA_LEN];
1552
1553} imc_loop_test_ack_struct;
1554
1555typedef struct {
1556 LOCAL_PARA_HDR
1557 imc_loop_test_ack_struct test_ack;
1558} imcb_imc_loop_test_rsp_struct;
1559
1560typedef struct imc_ipc_cfg_struct {
1561
1562 /* we reserve 10 * 4 bytes for config */
1563 imcf_uint32 pad[10];
1564
1565}imc_ipc_cfg_struct;
1566
1567typedef struct imc_ipc_header_struct {
1568 imcf_uint32 msg_id;
1569
1570 imcf_uint16 sqn;
1571 imcf_uint8 dst_id;
1572 imcf_uint8 log_flag;
1573
1574 imcf_uint32 sim_slot_id; // For multiple IMS
1575 imcf_uint32 resrv2;
1576
1577 imcf_uint32 ctrl_len;
1578 imcf_uint32 data_len;
1579
1580 imc_ipc_cfg_struct cfg;
1581
1582}imc_ipc_header_struct;
1583
1584typedef struct imc_ipc_struct {
1585 imc_ipc_header_struct header;
1586
1587 /* content ctrl + data part */
1588 imcf_uint8 body[IMC_IPC_BODY_LNE];
1589
1590} imc_ipc_struct;
1591
1592typedef struct {
1593 LOCAL_PARA_HDR
1594 imc_ipc_struct ipc;
1595} imcb_imc_ipc_ind_struct;
1596
1597typedef imcb_imc_ipc_ind_struct imcb_imc_ipc_req_struct;
1598
1599
1600/* volte_event_media_config */
1601typedef struct imcb_imc_media_param_struct {
1602 imcf_int8 local_address[IMCB_IMC_IPADDR_LENGTH];
1603
1604 // RTP and RTCP session for audio and video
1605 imcf_uint32 audio_b_as; // RTP bandwidth
1606 imcf_uint32 audio_b_rs; // RTCP sender bandwidth
1607 imcf_uint32 audio_b_rr; // RTCP receiver bandwidth
1608 imcf_uint16 audio_remote_rtp_port;
1609 imcf_uint16 audio_remote_rtcp_port;
1610 imcf_uint16 audio_local_rtcp_port; ///< rtcp port number. we may configure it not rtp_port+1
1611 imcf_uint16 audio_local_rtp_port; ///< rtp port number for media attribute in SDP message
1612 imcf_int8 audio_remote_rtp_address[IMCB_IMC_IPADDR_LENGTH];
1613 imcf_int8 audio_remote_rtcp_address[IMCB_IMC_IPADDR_LENGTH];
1614
1615 imcf_uint32 video_b_as; // RTP bandwidth
1616 imcf_uint32 video_b_rs; // RTCP sender bandwidth
1617 imcf_uint32 video_b_rr; // RTCP receiver bandwidth
1618 imcf_uint16 video_remote_rtp_port;
1619 imcf_uint16 video_remote_rtcp_port;
1620 imcf_uint16 video_local_rtcp_port; ///< rtcp port number. we may configure it not rtp_port+1
1621 imcf_uint16 video_local_rtp_port; ///< rtp port number for media attribute in SDP message
1622 imcf_int8 video_remote_rtp_address[IMCB_IMC_IPADDR_LENGTH];
1623 imcf_int8 video_remote_rtcp_address[IMCB_IMC_IPADDR_LENGTH];
1624
1625 imcf_uint8 remote_addr_type; ///< VoLTE_Event_IP_Version_e, apply to RTP audio & video session, RTCP audio & video session
1626 imcf_uint8 audio_rtp_direction; ///< VoLTE_Event_RTP_DIRECTION_e
1627 imcf_uint8 video_rtp_direction; ///< VoLTE_Event_RTP_DIRECTION_e
1628 // required by video codec
1629 imcf_uint8 video_payload_type;
1630 imcf_uint32 rtcp_interval; ///< IMCB will get value from NVRAM
1631 /* WFC */
1632 imcf_uint32 dscp; /* audio */
1633 imcf_uint32 video_dscp;
1634 imcf_uint32 voice_soc_priority;
1635 imcf_uint32 video_soc_priority;
1636
1637 // required by voice codec driver
1638 imcf_uint8 audio_codec; ///< voip_codec_enum in codec_def.h
1639 imcf_uint8 audio_payload_type; ///< payload type
1640 imcf_uint8 audio_clock_rate; ///< dynamic rate, clock rate, see sdp_clock_rate_enum
1641 imcf_uint8 is_dtmf; ///< is dtmf tone useing telephony event
1642
1643 imcf_uint8 tele_evt_payload_type; ///< telephony event payload type
1644 imcf_uint8 tele_evt_clock_rate; ///< telephony event rate
1645 imcf_uint8 g723_bitrate; ///< VoLTE_Event_G7231_BitRate_e
1646 imcf_uint8 is_g723_annexAYES; ///< G.723.1 annexA Yes:1, No:0
1647
1648 imcf_uint8 is_g729_annexBYES; ///< G.729 annexB Yes:1, No:0
1649 imcf_uint8 ilbc_mode; ///< VoLTE_Event_iLBC_Rate_e
1650 // required by RFC 6679 ECN
1651 imcf_uint8 ecn_capable_rtp_method; ///< VoLTE_Event_ECN_RTP_METHOD_e
1652 imcf_uint8 ecn_capable_ect; //0, 1
1653
1654 imcf_uint32 ptime; ///< ptime of the codec
1655 imcf_uint32 max_ptime; ///< max ptime is the buffer size for data plane. may not the same to ptime
1656 // required by AMR and AMR WB codec
1657 imcf_int8 mode_set[IMCB_IMC_MAX_SDP_FMTP_SUB_VALUE_LENGTH];
1658
1659 imcf_uint8 is_octet_align; ///< 0:default, bandwidth-efficient, 1: octet_align
1660 imcf_uint8 mode_change_period; ///< the period should be N. but currently only 1(default) or 2.
1661 imcf_uint8 mode_change_cap; ///< 1(default) or 2(recommended to support)
1662 imcf_uint8 mode_change_neighbor;///< 0(default) or 1
1663
1664 imcf_uint8 crc; ///< 0 or 1
1665 imcf_uint8 robust; ///< 0 or 1
1666 imcf_uint8 interleaving; ///< the maximum number of frame-blocks. 0: not present
1667 imcf_uint8 channel; ///< the number of audio channel. must be 1 currently
1668 imcf_uint16 max_red; // the maximum duration in ms
1669// required by RTCP FB
1670 imcf_uint16 rtcp_rsize;
1671 imcf_uint32 rtcpfb_type; ///< bitmap, VoLTE_Event_RTCP_FB_Type_e
1672 /* WFC */
1673 imcf_uint32 network_id;
1674 imcf_int8 id[IMCB_IMC_MAX_SDP_EGBYTE_LENGTH];
1675 imcf_int8 trr_int[IMCB_IMC_MAX_SDP_EGBYTE_LENGTH];
1676 imcf_int8 id_app_string[IMCB_IMC_MAX_SDP_FMTP_SUB_VALUE_LENGTH];
1677 imcf_int8 ack_app_string[IMCB_IMC_MAX_SDP_FMTP_SUB_VALUE_LENGTH];
1678 imcf_int8 nack_app_string[IMCB_IMC_MAX_SDP_FMTP_SUB_VALUE_LENGTH];
1679 imcf_int8 tmmbr_string[IMCB_IMC_MAX_SDP_FMTP_SUB_VALUE_LENGTH];
1680 imcf_int8 vbcm_string[IMCB_IMC_MAX_SDP_FMTP_SUB_VALUE_LENGTH];
1681 imcf_int8 cname_string[IMCB_IMC_MAX_CNAME_LENGTH];
1682
1683 /* EVS Support */
1684 imcf_uint8 evs_support;
1685 imcf_uint8 evs_mode_switch;
1686 imcf_uint8 hf_only;
1687 imcf_uint8 dtx;
1688 imcf_uint8 dtx_recv;
1689 imcf_uint8 pading[3];
1690 imcf_uint8 br[2]; ///< VoLTE_EVS_Codec_Bitrate_e
1691 imcf_uint8 br_send[2]; ///< VoLTE_EVS_Codec_Bitrate_e
1692 imcf_uint8 br_recv[2]; ///< VoLTE_EVS_Codec_Bitrate_e
1693 imcf_uint8 bw[2]; ///< VoLTE_EVS_Bandwidth_e
1694 imcf_uint8 bw_send[2]; ///< VoLTE_EVS_Bandwidth_e
1695 imcf_uint8 bw_recv[2]; ///< VoLTE_EVS_Bandwidth_e
1696 imcf_uint8 ch_send;
1697 imcf_uint8 ch_recv;
1698 imcf_int8 ch_aw_recv;
1699 imcf_int8 cmr;
1700
1701 /* RTCP-XR */
1702 imcf_uint16 rtcp_xr_format;
1703 imcf_uint16 rtcp_xr_loss_maxsize;
1704 imcf_uint16 rtcp_xr_dup_maxsize;
1705 imcf_uint16 rtcp_xr_rcpt_maxsize;
1706 imcf_uint16 rtcp_xr_rtt_maxsize;
1707 imcf_uint8 rtcp_xr_rtt_mode;
1708 imcf_uint8 rtcp_xr_stat_flags;
1709
1710 /* TTY */
1711 /* 2000 - 4 * (3+2+4+4 + 1 + 1) = 1940*/
1712 /* ======================================================================================*/
1713 imcf_uint32 text_b_as; //RTP bandwidth
1714 imcf_uint32 text_b_rs; //RTCP sender bandwidth
1715 imcf_uint32 text_b_rr; //RTCP receiver bandwidth
1716
1717 imcf_uint16 text_remote_rtp_port;
1718 imcf_uint16 text_remote_rtcp_port;
1719
1720 imcf_uint16 text_local_rtcp_port; // < rtcp port number
1721 imcf_uint16 text_local_rtp_port; // < rtp port number
1722
1723 imcf_int8 text_remote_rtp_address[IMCB_IMC_IPADDR_LENGTH];
1724 imcf_int8 text_remote_rtcp_address[IMCB_IMC_IPADDR_LENGTH];
1725
1726 imcf_uint8 text_rtp_direction; // < VoLTE_EVENT_RTP_Direction
1727 imcf_uint8 text_t140_payload_type; // < payload
1728 imcf_uint8 text_red_payload_type; //payload type
1729 imcf_uint8 text_red_level; //< T140 Red level
1730
1731 imcf_uint8 text_cps; // < T140 Red level
1732 /* ALTC ================================================================================*/
1733 imcf_uint8 text_addr_type;
1734 imcf_uint8 text_pad[2];
1735
1736 /* 1940 - 4 = 1936*/
1737 /* offline define feature flag */
1738 /* ex. used by ALTC feautre */
1739 imcf_uint32 feature_flag;
1740
1741 /* ALTC 1936 - 16 = 1920 */
1742 /* ======================================================================================*/
1743 imcf_uint8 text_local_address[IMCB_IMC_IPADDR_LENGTH];
1744 /* ======================================================================================*/
1745
1746 //imcf_uint8 resv[1920];
1747 /* Asymmetric RTP payload type support 1920 - 4 - 736*8 = 1180 */
1748 imcf_uint32 recv_codec_num;
1749 imcb_imc_ltecsr_media_codec_struct recv_codec_list[IMCB_IMC_MAX_RECV_CODEC_LIST_LENGTH];
1750
1751 imcf_uint8 resv[1180];
1752
1753} imcb_imc_media_param_struct;
1754
1755typedef enum imcb_imc_xmit_mode_enum {
1756 IMCB_IMC_XMIT_MODE_NONE=0,
1757 IMCB_IMC_XMIT_MODE_SENDONLY,
1758 IMCB_IMC_XMIT_MODE_RECVONLY,
1759 IMCB_IMC_XMIT_MODE_SENDRECV,
1760 IMCB_IMC_XMIT_MODE_INACTIVE,
1761 IMCB_IMC_XMIT_MODE_ACTIVE,
1762} imcb_imc_xmit_mode_enum;
1763
1764#if 0
1765/* under construction !*/
1766/* under construction !*/
1767/* under construction !*/
1768/* under construction !*/
1769/* under construction !*/
1770#endif
1771
1772typedef struct imcb_imc_bearer_mbr_gbr {
1773 imcf_int32 dl_gbr;
1774 imcf_int32 dl_mbr;
1775 imcf_int32 ul_gbr;
1776 imcf_int32 ul_mbr;
1777} imcb_imc_bearer_mbr_gbr_t;
1778
1779typedef struct imcb_imc_xxx2ltecsr_param_struct {
1780
1781 /* call id */
1782 imcf_int32 call_id;
1783
1784 /* session id */
1785 imcf_int32 voice_sid;
1786 imcf_int32 video_sid;
1787
1788 /* BID for voice and video */
1789 /* for media_del, BID is not used */
1790 imcf_int32 voice_bid; /* LTE: EBI, NR: PSI|QFI */
1791 imcf_int32 video_bid; /* LTE: EBI, NR: PSI|QFI */
1792
1793 /* WFC */
1794 imcf_uint16 voice_type; /* 0 (LTE), 1 (WIFI), 2 (NR) */
1795 imcf_uint16 video_type; /* 0 (LTE), 1 (WIFI), 2 (NR) */
1796
1797 /* op code */
1798 /* for media_new, we should set all 1's */
1799 /* for media_del, only vioce/viedeo fc are used */
1800 imcf_uint32 func_class;
1801
1802 /* Default Bearer ID */
1803 imcf_uint32 default_bid; /* LTE: Default EBI, NR: PSI|Default QFI */
1804
1805 /* PDN Context ID */
1806 imcf_uint32 pdn_cid;
1807
1808 /* all parameters */
1809 /* for media_del, params is not used */
1810 imcb_imc_media_param_struct params;
1811
1812 /* pcscf */
1813 imcf_uint32 ip_version; /* 1 (IPv4), 2 (IPv6) */
1814 imcf_int8 pcscf_address[IMCB_IMC_IPADDR_LENGTH];
1815 imcf_uint8 if_name[IMC_MAX_IF_NAME_LENGTH];
1816
1817 /* text sid for TTY/RTT
1818 0 default value
1819 -1 delete tty/rtt
1820 others tty/rtt alive
1821 */
1822 imcf_int32 tty_sid;
1823 imcf_int32 tty_bid; /* LTE: EBI, NR: PSI|QFI */
1824
1825 imcf_uint16 tty_type; /* 0 (LTE), 1 (WIFI), 2 (NR) */
1826 imcf_uint16 gbr_mbr_present_mask; /* 0x1 voice, 0x2 video, 0x4 tty */
1827
1828 imcb_imc_bearer_mbr_gbr_t voice_bearer_quatlity;
1829 imcb_imc_bearer_mbr_gbr_t video_bearer_quatlity;
1830 imcb_imc_bearer_mbr_gbr_t tty_bearer_quatlity;
1831} imcb_imc_xxx2ltecsr_param_struct ;
1832
1833typedef struct imcb_imc_media_new {
1834 LOCAL_PARA_HDR
1835 imcf_uint32 tv_sec;
1836 imcb_imc_xxx2ltecsr_param_struct param;
1837} imcb_imc_media_new_struct;
1838
1839typedef struct imcb_imc_media_del {
1840 LOCAL_PARA_HDR
1841 imcb_imc_xxx2ltecsr_param_struct param;
1842} imcb_imc_media_del_struct;
1843
1844typedef struct imcb_imc_media_update {
1845 LOCAL_PARA_HDR
1846 imcb_imc_xxx2ltecsr_param_struct param;
1847} imcb_imc_media_update_struct;
1848
1849typedef struct {
1850 LOCAL_PARA_HDR
1851 imcf_int32 account_id;
1852 imcf_int32 call_id;
1853 imcf_uint32 anbr_value;
1854} imcb_imc_cc_media_anbr_notify_ind_struct;
1855
1856typedef struct {
1857 LOCAL_PARA_HDR
1858 imcf_int32 account_id;
1859 imcf_int32 call_id;
1860 imcf_uint32 anbr_result;
1861} imcb_imc_cc_media_anbr_notify_rsp_struct;
1862
1863//IMS Call Interface
1864/**
1865 * Description
1866 * -
1867 * Remark
1868 * - header file: volte_event.h
1869 * - MSG_ID: VOLTE_CALL_PROGRESS_IND
1870 * - struct: VoLTE_Event_Call_Prog_t
1871 * Direction
1872 * - IMCB --> IMC
1873 */
1874typedef struct {
1875 LOCAL_PARA_HDR
1876 imcf_int32 acct_id;
1877 imcf_uint32 call_id;
1878 imcf_int32 is_ibt;
1879 imcf_uint8 p_assert_uri[IMC_MAX_ASSERTED_URI];
1880 imcf_int32 cause; //imcb_imc_call_stop_cause_enum
1881 imcf_int32 call_mode; //imcb_imc_call_mode_enum
1882 imcf_int32 ecpi; //imcb_imc_call_prog_ecpi_enum
1883 imcf_int32 hold_by; //imcb_imc_call_hold_by_enum
1884 imcf_int32 dir;
1885 imcf_int32 q850_cause; // 0 means that Q.850 cause was not received in Reason: header.
1886 imcf_uint16 terminal_resp; // Terminal response for STK call
1887 imcf_uint8 wait_rtp_pkt;//if ibt = 1 run wait RTP pkts from N/W if timeout UA Rxs IMS_NOTIFY_REQ
1888 imcf_uint8 pad[1];
1889} imcb_imc_cc_call_progress_req_struct;
1890
1891/**
1892 * Description
1893 * -
1894 * Remark
1895 * - header file: volte_event.h
1896 * - MSG_ID: VOLTE_SIP_CALL_PROGRESS_IND
1897 * - struct: VoLTE_Event_SIP_Call_Prog_Ind_t
1898 * Direction
1899 * - IMCB --> IMC
1900 */
1901typedef struct {
1902 LOCAL_PARA_HDR
1903 imcf_int32 acct_id;
1904 imcf_uint64 ua_id; /*reg client information*/
1905 imcf_uint32 call_id;
1906 imcf_uint8 call_mode;
1907 imcf_uint8 dir; /*0: send, 1: receive*/
1908 imcf_uint8 sip_msg_type; /*0: request, 1: response*/
1909 imcf_uint8 method; /*1:SIP_INVITE_METHOD,2:SIP_REFER_METHOD ..etc , refer to inet_method_enum*/
1910
1911 imcf_uint16 response_code; /*0:only used when SIP type is request, else: response code(100~600)*/
1912 imcf_uint8 pad[2];
1913 imcf_uint8 reason_text[IMC_MAX_REASON_TEXT_LENGTH];
1914} imcb_imc_cc_sip_call_progress_ind_struct;
1915
1916/**
1917 * Description
1918 * -
1919 * Remark
1920 * - header file: volte_event.h
1921 * - MSG_ID: VOLTE_MEDIA_IND
1922 * - struct: VoLTE_Event_MediaInfo_t
1923 * Direction
1924 * - IMCB --> IMC
1925 */
1926typedef struct {
1927 LOCAL_PARA_HDR
1928 imcf_int32 acct_id;
1929 imcf_uint32 call_id;
1930 imcf_int32 is_on; //imcb_imc_media_enum
1931} imcb_imc_cc_media_req_struct;
1932
1933/**
1934 * Description
1935 * -
1936 * Remark
1937 * - header file: volte_event.h
1938 * - MSG_ID: VOLTE_MO_CALL_REQ
1939 * - struct: VoLTE_Event_Call_Start_t
1940 * Direction
1941 * - IMC --> IMCB
1942 */
1943
1944typedef enum {
1945 IMCB_IMC_CALL_SERVICE_NORMAL = 0,
1946 IMCB_IMC_CALL_SERVICE_CALL_PULL = 1,
1947 IMCB_IMC_CALL_SERVICE_STK_CALL = 2,
1948
1949 //ecall
1950 IMCB_IMC_CALL_SERVICE_ECALL_TEST = 100,
1951 IMCB_IMC_CALL_SERVICE_ECALL_RECONFIGURE = 101,
1952
1953 //add here
1954 IMCB_IMC_CALL_SERVICE_END
1955} imcb_imc_call_service_enum;
1956
1957typedef struct {
1958 LOCAL_PARA_HDR
1959 imcf_uint8 dial_number[128];
1960 imcf_int32 acct_id;
1961 imcf_uint32 call_id;
1962 imcf_uint8 clir;
1963 imcb_imc_call_mode_enum call_mode;
1964 imcb_imc_uri_scheme_type_enum uri_scheme;
1965 imcf_uint8 cell_id[IMC_MAX_CELL_ID_LEN];
1966 imcb_imc_loc_ts_struct loc_info;
1967 imcb_imc_call_service_enum service;
1968 plmn_type_enum plmn;
1969 imcf_uint8 rtt_setting;
1970 imcf_uint8 redial_setting; /* ims_stk_setup_call_enum */
1971 imcf_uint8 digit_from_line_number[IMC_MAX_URI_LENGTH];
1972 imcf_uint8 stk_type; /* ims_stk_type_enum */
yu.donge372c322023-08-30 20:25:04 -07001973 imcf_uint8 pad[3];
1974 imcf_uint16 sub_service_field_length; /*for emergency extended sub_service*/
1975 imcf_uint8 sub_service_field[IMC_SUB_SERVICE_LENGTH]; /*for emergency extended sub_service*/
rjw6c1fd8f2022-11-30 14:33:01 +08001976
1977 /*ecall over IMS*/
1978#ifdef __NG_ECALL_SUPPORT__
yu.donge372c322023-08-30 20:25:04 -07001979 imcf_bool ims_only_allowed_domain;
rjw6c1fd8f2022-11-30 14:33:01 +08001980 imcf_uint8 msd_data_len;
1981 imcf_uint8 msd_data[IMS_MAX_MSD_LENGTH];
1982#endif
1983} imcb_imc_cc_mo_call_ind_struct;
1984
1985/**
1986 * Description
1987 * -
1988 * Remark
1989 * - header file: volte_event.h
1990 * - MSG_ID: VOLTE_MO_CALL_CNF
1991 * - struct: VoLTE_Event_MO_Call_Cnf_t
1992 * Direction
1993 * - IMCB --> IMC
1994 */
1995typedef struct {
1996 LOCAL_PARA_HDR
1997 imcf_int32 acct_id;
1998 imcf_uint32 call_id;
1999 imcb_imc_call_stop_cause_enum cause;
2000 imcb_imc_call_stop_result_enum result;
2001 imcb_imc_call_mode_enum call_mode;
2002 imcf_uint8 is_international; // 0:no, 1: the phone is number is national number
2003 imcf_uint8 isDateString; // 0: not a date string, 1: it is a date string in time variable
2004 imcf_uint32 time;
2005 imcf_int32 duration;
2006 imcf_uint8 reason[128];
2007 imcb_imc_srvcc_call_ecc_category_enum ecc_category;
2008 imcb_imc_call_service_enum service;
2009 imcf_uint8 pad[3];
2010 imcf_int32 q850_cause; // 0 means that Q.850 cause was not received in Reason: header.
2011 imcf_uint8 country_specific_urn[IMC_MAX_URI_LENGTH];
2012 imcb_imc_call_cause_380_contact_enum cause_380_contact;
2013 imcb_imc_call_cause_380_xml_enum cause_380_xml;
2014 imcb_imc_380_xml_type_enum xml_type_380;
2015 imcb_imc_380_xml_action_enum xml_action_380;
2016} imcb_imc_cc_mo_call_rsp_struct;
2017
2018/**
2019 * Description
2020 * -
2021 * Remark
2022 * - header file: volte_event.h
2023 * - MSG_ID: VOLTE_MT_CALL_ABORT_IND
2024 * - struct: VoLTE_Event_MT_Call_Abort_t
2025 * Direction
2026 * - IMCB --> IMC
2027 */
2028typedef struct {
2029 LOCAL_PARA_HDR
2030 imcf_int32 acct_id;
2031 imcf_uint32 seq_no; /* acctually uint8, or 4-byte align */
2032 imcf_int32 cause; //imcb_imc_call_stop_cause_enum
2033} imcb_imc_cc_mt_call_abort_req_struct;
2034
2035/**
2036 * Description
2037 * -
2038 * Remark
2039 * - header file: volte_event.h
2040 * - MSG_ID: VOLTE_MT_CALL_PRESENT_IND
2041 * - struct: VoLTE_Event_MT_Call_Ind_t
2042 * Direction
2043 * - IMCB --> IMC
2044 */
2045typedef struct {
2046 LOCAL_PARA_HDR
2047 imcf_int32 acct_id;
2048 imcf_uint8 seq_no;
2049 imcf_uint8 is_national_num; // 0: local number, 1: national number
2050 imcf_uint8 call_mode; //imcb_imc_call_mode_enum
2051 imcf_uint8 uri_scheme; //imcb_imc_uri_scheme_type_enum
2052 imcf_uint8 dial_number[128];
2053 imcf_uint8 digit_to_line_number[IMC_MAX_URI_LENGTH];
2054} imcb_imc_cc_mt_call_present_req_struct;
2055
2056/**
2057 * Description
2058 * -
2059 * Remark
2060 * - header file: volte_event.h
2061 * - MSG_ID: VOLTE_MT_CALL_PRESENT_RSP
2062 * - struct: VoLTE_Event_MT_Call_Rsp_t
2063 * Direction
2064 * - IMC --> IMCB
2065 */
2066typedef struct {
2067 LOCAL_PARA_HDR
2068 imcf_int32 acct_id;
2069 imcf_uint32 call_id;
2070 imcf_uint8 seq_no;
2071 imcf_uint8 call_mode; //imcb_imc_call_mode_enum
2072 imcf_wchar result; //imcb_imc_call_stop_result_enum
2073 imcf_int32 response_code;
2074 imcf_uint8 cell_id[IMC_MAX_CELL_ID_LEN];
2075 imcb_imc_loc_ts_struct loc_info;
2076 imcf_uint8 rtt_setting;
2077 imcf_uint8 pad[3];
2078} imcb_imc_cc_mt_call_present_cnf_struct;
2079
2080/**
2081 * Description
2082 * -
2083 * Remark
2084 * - header file: volte_event.h
2085 * - MSG_ID: VOLTE_MT_CALL_RING_IND
2086 * - struct: VoLTE_Event_Call_Refresh_t
2087 * Direction
2088 * - IMCB --> IMC
2089 */
2090typedef struct {
2091 LOCAL_PARA_HDR
2092 imcf_int32 acct_id;
2093 imcf_uint32 call_id;
2094 imcf_uint8 p_assert_uri[IMC_MAX_ASSERTED_URI];
2095} imcb_imc_cc_mt_call_ring_req_struct;
2096
2097/**
2098 * Description
2099 * -
2100 * Remark
2101 * - header file: volte_event.h
2102 * - MSG_ID: VOLTE_MO_HANGUP_REQ
2103 * - struct: VoLTE_Event_Req_t
2104 * Direction
2105 * - IMC --> IMCB
2106 */
2107typedef struct {
2108 LOCAL_PARA_HDR
2109 imcf_int32 acct_id;
2110 imcf_uint32 call_id;
2111 imcf_uint8 cell_id[IMC_MAX_CELL_ID_LEN];
2112 imcb_imc_loc_ts_struct loc_info;
2113 imcf_uint32 cause;
2114} imcb_imc_cc_mo_force_hangup_ind_struct;
2115
2116/**
2117 * Description
2118 * -
2119 * Remark
2120 * - header file: volte_event.h
2121 * - MSG_ID: VOLTE_MO_HANGUP_REQ
2122 * - struct: VoLTE_Event_Req_t
2123 * Direction
2124 * - IMC --> IMCB
2125 */
2126typedef struct {
2127 LOCAL_PARA_HDR
2128 imcf_int32 acct_id;
2129 imcf_uint32 call_id;
2130 imcf_uint8 cell_id[IMC_MAX_CELL_ID_LEN];
2131 imcb_imc_loc_ts_struct loc_info;
2132 imcf_uint32 cause; // use ims_cc_mo_disconnect_cause_enum to passmo call disconnect cause (AT+ECHLD)
2133} imcb_imc_cc_mo_hangup_ind_struct;
2134
2135/**
2136 * Description
2137 * -
2138 * Remark
2139 * - header file: volte_event.h
2140 * - MSG_ID: VOLTE_MO_HANGUP_CNF
2141 * - struct: VoLTE_Event_Call_Stop_t
2142 * Direction
2143 * - IMCB --> IMC
2144 */
2145typedef struct {
2146 LOCAL_PARA_HDR
2147 imcf_int32 acct_id;
2148 imcf_uint32 call_id;
2149 imcf_int32 result; //imcb_imc_call_stop_result_enum
2150 imcf_int32 cause; //imcb_imc_call_stop_cause_enum
2151} imcb_imc_cc_mo_hangup_rsp_struct;
2152
2153/**
2154 * Description
2155 * -
2156 * Remark
2157 * - header file: volte_event.h
2158 * - MSG_ID: VOLTE_MT_ACCEPT_REQ
2159 * - struct: VoLTE_Event_Req_t
2160 * Direction
2161 * - IMC --> IMCB
2162 */
2163typedef struct {
2164 LOCAL_PARA_HDR
2165 imcf_int32 acct_id;
2166 imcf_uint32 call_id;
2167 imcf_uint8 cell_id[IMC_MAX_CELL_ID_LEN];
2168 imcb_imc_loc_ts_struct loc_info;
2169 imcf_uint32 cause;
2170} imcb_imc_cc_mt_accept_ind_struct;
2171
2172/**
2173 * Description
2174 * -
2175 * Remark
2176 * - header file: volte_event.h
2177 * - MSG_ID: VOLTE_NO_RTPPKT_REQ
2178 * - struct: VoLTE_Event_Req_t
2179 * Direction
2180 * - IMC --> IMCB
2181 */
2182typedef struct {
2183 LOCAL_PARA_HDR
2184 imcf_int32 acct_id;
2185 imcf_uint32 call_id;
2186 imcf_uint8 cell_id[IMC_MAX_CELL_ID_LEN];
2187 imcb_imc_loc_ts_struct loc_info;
2188 imcf_uint32 cause;
2189} imcb_imc_cc_no_rtppkt_ind_struct;
2190
2191/**
2192 * Description
2193 * - This message is used to inform when call receives
2194 * RTP packets before media is activated.
2195 * Remark
2196 * - header file: volte_event.h
2197 * - MSG_ID: VOLTE_INCOMING_RTPPKT_REQ
2198 * - struct: VoLTE_Event_Req_t
2199 * Direction
2200 * - IMC --> IMCB
2201 */
2202typedef struct {
2203 LOCAL_PARA_HDR
2204 imcf_int32 acct_id;
2205 imcf_uint32 call_id;
2206 imcf_uint8 cell_id[IMC_MAX_CELL_ID_LEN];
2207 imcb_imc_loc_ts_struct loc_info;
2208 imcf_uint32 cause;
2209} imcb_imc_cc_incoming_rtppkt_ind_struct;
2210
2211/**
2212 * Description
2213 * - This message is used to inform Call UA the
2214 * domain conflict event.
2215 * Remark
2216 * - header file: volte_event.h
2217 * - MSG_ID: VOLTE_MO_CALL_DOMAIN_CONFLICT_REQ
2218 * - struct: VoLTE_Event_Req_t
2219 * Direction
2220 * - IMC --> IMCB
2221 */
2222typedef struct {
2223 LOCAL_PARA_HDR
2224 imcf_int32 acct_id;
2225 imcf_uint32 call_id;
2226 imcf_uint8 cell_id[IMC_MAX_CELL_ID_LEN];
2227 imcb_imc_loc_ts_struct loc_info;
2228 imcf_uint32 cause;
2229} imcb_imc_cc_mo_call_domain_conflict_ind_struct;
2230
2231/**
2232 * Description
2233 * -
2234 * Remark
2235 * - header file: volte_event.h
2236 * - MSG_ID: VOLTE_MO_CALL_DOMAIN_CONFLICT_CNF
2237 * - struct: VoLTE_Event_Call_Stop_t
2238 * Direction
2239 * - IMCB --> IMC
2240 */
2241typedef struct {
2242 LOCAL_PARA_HDR
2243 imcf_int32 acct_id;
2244 imcf_uint32 call_id;
2245 imcf_int32 result;
2246 imcf_int32 cause;
2247} imcb_imc_cc_mo_call_domain_conflict_rsp_struct;
2248
2249#ifdef __NG_ECALL_SUPPORT__
2250/**
2251 * Description
2252 * -
2253 * Remark
2254 * - header file:
2255 * - MSG_ID: VOLTE_ECALL_IN_BAND_MSD_TRANSFER_RSP
2256 * - struct: VoLTE_Event_ecall_In_Band_MSD_Transfer_Rsp_t
2257 * Direction
2258 * - IMC --> IMCB
2259 */
2260typedef struct {
2261 LOCAL_PARA_HDR
2262 imcf_int32 acct_id;
2263 imcf_uint32 call_id;
2264} imcb_imc_cc_ecall_in_band_msd_transfer_rsp_struct;
2265
2266/**
2267 * Description
2268 * -
2269 * Remark
2270 * - header file:
2271 * - MSG_ID: VOLTE_ECALL_UPDATE_MSD_RSP
2272 * - struct: VoLTE_Event_ecall_update_MSD_Rsp_t
2273 * Direction
2274 * - IMC --> IMCB
2275 */
2276typedef struct {
2277 LOCAL_PARA_HDR
2278 imcf_int32 acct_id;
2279 imcf_uint32 call_id;
2280 imcf_uint8 msd_len;
2281 imcf_uint8 msd_data[IMS_MAX_MSD_LENGTH];
2282} imcb_imc_cc_ecall_update_msd_rsp_struct;
2283#endif
2284
2285/**
2286 * Description
2287 * - This message indicates that LTECSR want to notify IMCB/UA.
2288 * Remark
2289 * - header file: ltecsr_struct.h,
2290 * - MSG_ID: MSG_ID_IMCB_IMC_CC_IMS_NOTIFY_IND
2291 * - struct: ltecsr_ims_notify_msg_t
2292 * Direction
2293 * - IMC --> IMCB
2294 */
2295typedef struct {
2296 LOCAL_PARA_HDR
2297 imcf_int32 acct_id;
2298 imcf_uint32 call_id;
2299 imcf_uint8 msg_id; // imcb_imc_ims_notify_enum
2300 imcf_uint8 ver; // structure version number start from 0
2301 imcf_uint16 rsv; // reserve bit must fill 0 (for 4 byte alignment)
2302 imcf_uint8 ext[IMC_MAX_IMS_NOTIFY_EXT_LEN]; // reserve for future other usage
2303 imcf_uint8 cell_id[IMC_MAX_CELL_ID_LEN];
2304 imcb_imc_loc_ts_struct loc_info;
2305} imcb_imc_cc_ims_notify_ind_struct;
2306
2307/**
2308 * Description
2309 * -
2310 * Remark
2311 * - header file: volte_event.h
2312 * - MSG_ID: VOLTE_MT_ACCEPT_RSP
2313 * - struct: VoLTE_Event_Call_Stop_t
2314 * Direction
2315 * - IMCB --> IMC
2316 */
2317typedef struct {
2318 LOCAL_PARA_HDR
2319 imcf_int32 acct_id;
2320 imcf_uint32 call_id;
2321 imcf_int32 result; //imcb_imc_call_stop_result_enum
2322 imcf_int32 cause; //imcb_imc_call_stop_cause_enum
2323} imcb_imc_cc_mt_accept_rsp_struct;
2324
2325/*
2326 * @brief
2327 * @note MSG_ID_IMCB_IMC_CALL_CONTROL_IND
2328 * AT>AT+ECCTRL=<call_id>,<call_state>
2329 */
2330 typedef struct {
2331 LOCAL_PARA_HDR
2332 imcf_int32 acct_id;
2333 imcf_uint32 call_id;
2334 imcf_int32 expected_call_state; //imcb_imc_ecctrl_enum
2335 imcf_uint8 cell_id[IMC_MAX_CELL_ID_LEN];
2336 imcb_imc_loc_ts_struct loc_info;
2337 } imcb_imc_call_control_ind_struct;
2338
2339/*
2340 * @brief
2341 * @note MSG_ID_ATP_IMC_SS_CALL_CONTROL_RSP
2342 * AT< OK | ...
2343 */
2344typedef struct {
2345 LOCAL_PARA_HDR
2346 imcf_int32 acct_id;
2347 imcf_int32 operation; //imcb_imc_ss_operation_enum
2348 imcf_int32 result; //imcb_imc_call_stop_result_enum
2349 imcf_int32 cause; //imcb_imc_call_stop_cause_enum
2350} imcb_imc_call_control_rsp_struct;
2351
2352/**
2353 * Description
2354 * -
2355 * Remark
2356 * - header file: volte_event.h
2357 * - MSG_ID: VOLTE_MO_CONF_CALL_REQ
2358 * - struct: VoLTE_Event_Conf_Call_Start_t
2359 * Direction
2360 * - IMC --> IMCB
2361 */
2362typedef struct {
2363 LOCAL_PARA_HDR
2364 imcf_int32 acct_id;
2365 imcf_uint32 call_id;
2366 imcb_imc_call_mode_enum call_mode;
2367 imcf_uint8 conf_call_participants;
2368 imcf_uint8 pad[2];
2369 imcf_uint8 conf_call_number_list[IMC_MAX_CALL_NUM_IN_CONFERENCE][IMC_MAX_CONF_CONTROL_URI_LENGTH];
2370 imcf_uint8 cell_id[IMC_MAX_CELL_ID_LEN];
2371 imcb_imc_loc_ts_struct loc_info;
2372 plmn_type_enum plmn;
2373} imcb_imc_cc_mo_conf_call_ind_struct;
2374
2375/**
2376 * Description
2377 * -
2378 * Remark
2379 * - header file: volte_event.h
2380 * - MSG_ID: VOLTE_MO_CONF_CALL_CNF
2381 * - struct: VoLTE_Event_MO_Conf_Call_Cnf_t
2382 * Direction
2383 * - IMCB --> IMC
2384 */
2385typedef struct {
2386 LOCAL_PARA_HDR
2387 imcf_int32 acct_id;
2388 imcf_uint32 call_id;
2389 imcb_imc_call_stop_cause_enum cause;
2390 imcb_imc_call_stop_result_enum result;
2391 imcb_imc_call_mode_enum call_mode;
2392 imcf_uint8 pad[2];
2393 imcf_int32 q850_cause; // 0 means that Q.850 cause was not received in Reason: header.
2394} imcb_imc_cc_mo_conf_call_rsp_struct;
2395
2396/**
2397 * Description
2398 * -
2399 * Remark
2400 * - header file: volte_event.h
2401 * - MSG_ID: VOLTE_REQ_MD_LOWER_LAYER_ERR
2402 * - struct: VoLTE_Event_MD_Lower_Layer_Err_t
2403 * Direction
2404 * - IMC --> IMCB
2405 */
2406typedef struct {
2407 LOCAL_PARA_HDR
2408 imcf_int32 acct_id;
2409 imcf_uint32 call_id;
2410 imcf_uint32 cause; //imcb_imc_md_lower_layer_err_enum
yu.donge372c322023-08-30 20:25:04 -07002411 imcf_uint8 value;
rjw6c1fd8f2022-11-30 14:33:01 +08002412 imcf_uint32 type; //imcb_imc_md_epsfb_type_enum
2413} imcb_imc_md_lower_layer_err_ind_struct;
2414
2415typedef struct {
2416 LOCAL_PARA_HDR
2417 imcf_int32 acct_id;
2418 imcf_uint8 cell_id[IMC_MAX_CELL_ID_LEN];
2419 imcb_imc_loc_ts_struct loc_info;
2420 imcf_uint32 cause;
2421} imcb_imc_ss_switch_waiting_or_holding_and_active_ind_struct;
2422
2423typedef struct {
2424 LOCAL_PARA_HDR
2425 imcf_int32 acct_id;
2426 imcf_int32 operation; //imcb_imc_ss_operation_enum
2427 imcf_int32 result; //imcb_imc_call_stop_result_enum
2428 imcf_int32 cause; //imcb_imc_call_stop_cause_enum
2429} imcb_imc_ss_switch_waiting_or_holding_and_active_rsp_struct;
2430
2431typedef struct {
2432 LOCAL_PARA_HDR
2433 imcf_int32 acct_id;
2434 imcf_uint8 cell_id[IMC_MAX_CELL_ID_LEN];
2435 imcb_imc_loc_ts_struct loc_info;
2436 imcf_uint32 cause;
2437} imcb_imc_ss_release_waiting_or_all_bg_calls_ind_struct;
2438
2439typedef struct {
2440 LOCAL_PARA_HDR
2441 imcf_int32 acct_id;
2442 imcf_int32 operation; //imcb_imc_ss_operation_enum
2443 imcf_int32 result; //imcb_imc_call_stop_result_enum
2444 imcf_int32 cause; //imcb_imc_call_stop_cause_enum
2445} imcb_imc_ss_release_waiting_or_all_bg_calls_rsp_struct;
2446
2447typedef struct {
2448 LOCAL_PARA_HDR
2449 imcf_int32 acct_id;
2450 imcf_uint8 cell_id[IMC_MAX_CELL_ID_LEN];
2451 imcb_imc_loc_ts_struct loc_info;
2452 imcf_uint32 cause;
2453} imcb_imc_ss_release_all_fg_and_resume_bg_call_ind_struct;
2454
2455typedef struct {
2456 LOCAL_PARA_HDR
2457 imcf_int32 acct_id;
2458 imcf_int32 operation; //imcb_imc_ss_operation_enum
2459 imcf_int32 result; //imcb_imc_call_stop_result_enum
2460 imcf_int32 cause; //imcb_imc_call_stop_cause_enum
2461} imcb_imc_ss_release_all_fg_and_resume_bg_call_rsp_struct;
2462
2463typedef struct {
2464 LOCAL_PARA_HDR
2465 imcf_int32 acct_id;
2466 imcf_uint8 cell_id[IMC_MAX_CELL_ID_LEN];
2467 imcb_imc_loc_ts_struct loc_info;
2468 imcf_uint32 cause;
2469} imcb_imc_ss_release_all_fg_and_bg_calls_ind_struct;
2470
2471typedef struct {
2472 LOCAL_PARA_HDR
2473 imcf_int32 acct_id;
2474 imcf_int32 operation; //imcb_imc_ss_operation_enum
2475 imcf_int32 result; //imcb_imc_call_stop_result_enum
2476 imcf_int32 cause; //imcb_imc_call_stop_cause_enum
2477} imcb_imc_ss_release_all_fg_and_bg_calls_rsp_struct;
2478
2479typedef struct {
2480 LOCAL_PARA_HDR
2481 imcf_int32 acct_id;
2482 imcf_uint8 cell_id[IMC_MAX_CELL_ID_LEN];
2483 imcb_imc_loc_ts_struct loc_info;
2484 imcf_uint32 cause;
2485} imcb_imc_ss_explicit_call_transfer_ind_struct;
2486
2487typedef struct {
2488 LOCAL_PARA_HDR
2489 imcf_int32 acct_id;
2490 imcf_int32 operation; //imcb_imc_ss_operation_enum
2491 imcf_int32 result; //imcb_imc_call_stop_result_enum
2492 imcf_int32 cause; //imcb_imc_call_stop_cause_enum
2493} imcb_imc_ss_explicit_call_transfer_rsp_struct;
2494
2495/* For ECT blind/assured */
2496
2497typedef enum {
2498 IMS_ECT_TYPE_NONE = 0,
2499 IMS_ECT_TYPE_BLIND = 1,
2500 IMS_ECT_TYPE_ASSURED = 2, /* default */
2501 IMS_ECT_TYPE_ASSURED_PUSH = 3, /* TMOUS Digit device transfer */
2502 IMS_ECT_TYPE_CANCEL = 4,
2503} imcb_imc_ect_type_enum;
2504
2505typedef struct {
2506 LOCAL_PARA_HDR
2507 imcf_int32 acct_id;
2508 imcf_uint8 cell_id[IMC_MAX_CELL_ID_LEN];
2509 imcb_imc_loc_ts_struct loc_info;
2510 imcf_uint8 ect_type; // imcb_imc_ect_type_enum
2511 imcf_uint8 pad[3];
2512 imcf_int8 p_assert_uri[IMC_MAX_ASSERTED_URI];
2513 imcf_uint8 device_id[IMC_MAX_UUID_LEN];
2514} imcb_imc_ss_ect_ind_struct;
2515
2516typedef struct {
2517 LOCAL_PARA_HDR
2518 imcf_int32 acct_id;
2519 imcf_int32 result; //imcb_imc_call_stop_result_enum
2520 imcf_int32 cause; //imcb_imc_call_stop_cause_enum
2521} imcb_imc_ss_ect_rsp_struct;
2522
2523typedef struct {
2524 LOCAL_PARA_HDR
2525 imcf_int32 acct_id;
2526 imcf_uint32 call_id;
2527 imcf_int32 result; //imcb_imc_call_stop_result_enum
2528 imcf_int32 cause; //imcb_imc_call_stop_cause_enum
2529} imcb_imc_ss_ect_req_struct;
2530
2531typedef struct {
2532 LOCAL_PARA_HDR
2533 imcf_int32 acct_id;
2534 imcf_uint32 call_id;
2535 imcf_uint8 cell_id[IMC_MAX_CELL_ID_LEN];
2536 imcb_imc_loc_ts_struct loc_info;
2537 plmn_type_enum plmn;
2538} imcb_imc_ss_create_conference_call_ind_struct;
2539
2540typedef struct {
2541 LOCAL_PARA_HDR
2542 imcf_int32 acct_id;
2543 imcf_int32 operation; //imcb_imc_ss_operation_enum
2544 imcf_int32 result; //imcb_imc_call_stop_result_enum
2545 imcf_int32 cause; //imcb_imc_call_stop_cause_enum
2546} imcb_imc_ss_create_conference_call_rsp_struct;
2547
2548typedef struct {
2549 LOCAL_PARA_HDR
2550 imcf_int32 acct_id;
2551 imcf_uint8 cell_id[IMC_MAX_CELL_ID_LEN];
2552 imcb_imc_loc_ts_struct loc_info;
2553 imcf_uint32 cause;
2554} imcb_imc_ss_ath_rel_all_calls_ind_struct;
2555
2556typedef struct {
2557 LOCAL_PARA_HDR
2558 imcf_int32 acct_id;
2559 imcf_int32 operation; //imcb_imc_ss_operation_enum
2560 imcf_int32 result; //imcb_imc_call_stop_result_enum
2561 imcf_int32 cause; //imcb_imc_call_stop_cause_enum
2562} imcb_imc_ss_ath_rel_all_calls_rsp_struct;
2563
2564typedef struct {
2565 LOCAL_PARA_HDR
2566 imcf_uint32 reserved;
2567} imcb_imc_ss_list_current_calls_ind_struct;
2568
2569typedef struct {
2570 imcf_int32 acct_id;
2571 imcf_uint32 call_id;
2572 imcf_uint8 is_mt_call;
2573 imcf_uint8 state_of_the_call;
2574 imcf_uint8 mode;
2575 imcf_uint8 is_conference_call;
2576 imcf_uint8 phone_number[128];
2577 imcf_uint32 is_international; // 0:no, 1: the phone number is a national number
2578} imcb_list_one_call_struct;
2579
2580typedef struct {
2581 LOCAL_PARA_HDR
2582 imcf_uint32 total_call;
2583 imcb_list_one_call_struct call_list[12]; // max_account*3, may changed??
2584} imcb_imc_ss_list_current_calls_rsp_struct;
2585
2586typedef struct {
2587 LOCAL_PARA_HDR
2588 imcf_int32 acct_id;
2589 imcf_uint32 call_id;
2590 imcf_uint32 service; //imcb_imc_ss_notify_service_enum
2591 imcf_uint8 data[IMCB_IMC_MAX_DATA_TO_IMC_LENGTH];
2592} imcb_imc_ss_progress_notify_req_struct;
2593
2594typedef struct {
2595 LOCAL_PARA_HDR
2596 imcf_int32 acct_id;
2597 imcf_uint32 conf_call_id;
2598 imcf_uint32 joined_call_id;
2599 imcf_uint8 dial_number[IMC_MAX_CONF_CONTROL_URI_LENGTH];
2600 imcf_int32 operation; //imcb_imc_ss_operation_enum
2601 imcf_int32 result; //imcb_imc_call_stop_result_enum
2602 imcf_int32 cause; //imcb_imc_call_stop_cause_enum
2603} imcb_imc_ss_conference_control_req_struct;
2604
2605typedef struct {
2606 LOCAL_PARA_HDR
2607 imcf_int32 acct_id;
2608 imcf_uint32 call_id;
2609 imcf_int32 event; //imcb_imc_ss_sub_event_enum
2610 imcf_int32 result; //imcb_imc_call_stop_result_enum
2611 imcf_int32 cause; //imcb_imc_call_stop_cause_enum
2612} imcb_imc_ss_subscribe_control_req_struct;
2613
2614typedef struct {
2615 LOCAL_PARA_HDR
2616 imcf_int32 acct_id;
2617 imcf_uint32 conf_call_id;
2618 imcf_int32 joined_call_id;
2619 imcf_uint32 op; //imcb_imc_ss_operation_enum
2620 imcf_uint8 number[IMC_MAX_CONF_CONTROL_URI_LENGTH];
2621 imcf_uint8 cell_id[IMC_MAX_CELL_ID_LEN];
2622 imcb_imc_loc_ts_struct loc_info;
2623} imcb_imc_ss_conference_control_ind_struct;
2624
2625typedef struct {
2626 LOCAL_PARA_HDR
2627 imcf_int32 acct_id;
2628 imcf_int32 operation; //imcb_imc_ss_operation_enum
2629 imcf_int32 result; //imcb_imc_call_stop_result_enum
2630 imcf_int32 cause; //imcb_imc_call_stop_cause_enum
2631} imcb_imc_ss_conference_control_rsp_struct;
2632
2633//IMS SRVCC Interface
2634typedef struct {
2635 imcf_int32 call_id;
2636 imcf_uint32 ecc_category; /* imcb_imc_srvcc_call_ecc_category_enum */
2637 imcf_uint8 call_mode; /* imcb_imc_call_mode_enum */
2638 imcf_uint8 direction; /* imcb_imc_srvcc_call_direction_enum */
2639 imcf_uint8 dlg_state; /* imcb_imc_srvcc_call_state_enum */
2640 imcf_uint8 num_of_conf_parts;
2641} imcb_imc_srvcc_call_ctxt_struct;
2642
2643typedef struct {
2644 LOCAL_PARA_HDR
2645 imcf_uint32 num_calls;
2646 imcb_imc_srvcc_call_ctxt_struct srvcc_call_ctxt_from_ims[IMCB_IMC_MAX_CALL_NUM];
2647 imcf_uint32 acct_id;
2648 imcf_uint8 conf_call_number_list[IMC_MAX_CALL_NUM_IN_CONFERENCE][IMC_MAX_URI_LENGTH];
2649} imcb_imc_srvcc_context_transfer_req_struct;
2650
2651typedef struct {
2652 LOCAL_PARA_HDR
2653 imcf_int32 acct_id;
2654 imcf_int32 srvcc_ho_status; /* imcb_imc_srvcc_status_enum */
2655} imcb_imc_srvcc_status_update_ind_struct;
2656
2657//Auto Test Tool Interface
2658typedef struct {
2659 imcf_uint8 src_ip[64];
2660 imcf_uint8 dst_ip[64];
2661 imcf_uint8 src_port[16];
2662 imcf_uint8 dst_port[16];
2663 imcf_uint8 spi[32];
2664 imcf_uint8 dir; //0:in 1:out
2665 imcf_uint8 padding[3];
2666} imcb_imc_reg_ipsec_info_struct;
2667
2668typedef struct {
2669 LOCAL_PARA_HDR
2670 imcf_uint32 acct_id;
2671} imcb_imc_reg_ipsec_flush_req_struct;
2672
2673typedef struct {
2674 LOCAL_PARA_HDR
2675 imcb_imc_reg_ipsec_info_struct ipsec_info[4];
2676 imcf_uint8 index;
2677 imcf_uint8 transport; //0:udp 1:tcp
2678 imcf_uint8 mode; //0:Transport 1:Tunnel
2679 imcf_uint8 protocol; //0:AH 1:ESP
2680 imcf_uint8 encry_algo; /* VoLTE_Stack_IPSec_Encry_Algo_e */
2681 imcf_uint8 integrity_algo; /* enum VoLTE_Stack_IPSec_Integrity_Algo_e */
2682 imcf_uint8 padding[2];
2683 imcf_uint8 ck[256];
2684 imcf_uint8 ik[256];
2685 imcf_uint32 acct_id;
2686} imcb_imc_reg_ipsec_add_req_struct;
2687
2688typedef struct {
2689 LOCAL_PARA_HDR
2690 imcf_uint8 index;
2691 imcf_uint8 padding[3];
2692 imcf_uint32 acct_id;
2693} imcb_imc_reg_ipsec_delete_req_struct;
2694
2695typedef struct {
2696 LOCAL_PARA_HDR
2697 imcb_imc_bearer_filter_type_enum type;
2698 imcf_bid_t bid;
2699} imcb_imc_start_bearer_filter_req_struct;
2700
2701typedef struct {
2702 LOCAL_PARA_HDR
2703 imcb_imc_bearer_filter_type_enum type;
2704 imcf_bid_t bid;
2705} imcb_imc_stop_bearer_filter_req_struct;
2706
2707typedef struct {
2708 LOCAL_PARA_HDR
2709 imcf_uint8 type; // imcb_imc_ebi_filter_type_enum
2710 imcf_uint8 pad[3];
2711 imcf_uint32 ebi;
2712} imcb_imc_start_ebi_filter_req_struct;
2713
2714typedef struct {
2715 LOCAL_PARA_HDR
2716 imcf_uint8 type; // imcb_imc_ebi_filter_type_enum
2717 imcf_uint8 pad[3];
2718 imcf_uint32 ebi;
2719} imcb_imc_stop_ebi_filter_req_struct;
2720
2721//IMS USSI Interface
2722typedef struct imcb_imc_send_ussd_ind {
2723 LOCAL_PARA_HDR
2724 imcf_uint32 account_id; /*< Account ID*/
2725 imcf_uint8 cmd_class; /*< class */
2726 imcf_uint8 operation; /*< oper */
2727 imcf_uint16 action; /*< action */
yu.donge372c322023-08-30 20:25:04 -07002728 imcf_uint8 language[IMS_USSD_LANGUANGE_LEN]; /*< language */
rjw6c1fd8f2022-11-30 14:33:01 +08002729 imcf_int16 error_code; /*< error_code */
2730 imcf_int16 message_len; /*< message length */
yu.donge372c322023-08-30 20:25:04 -07002731 imcf_uint8 message[IMS_USSD_MAX_MSG_LEN];
rjw6c1fd8f2022-11-30 14:33:01 +08002732 imcf_uint8 digit_from_line_number[IMC_MAX_URI_LENGTH];
2733} imcb_imc_send_ussd_ind_struct;
2734
2735typedef struct imcb_imc_send_ussd_rsp {
2736 LOCAL_PARA_HDR
2737 imcf_uint32 account_id; /*< Account ID*/
2738 imcf_uint32 response; /*< OK or ERROR, may be extended to CME ERROR later on*/
2739} imcb_imc_send_ussd_rsp_struct;
2740
2741typedef struct imcb_imc_recv_ussd_req {
2742 LOCAL_PARA_HDR
2743 imcf_uint32 account_id; /*< Account ID*/
2744 imcf_uint8 urc_class; /*< class */
2745 imcf_uint8 alert_pattern; /*< Alertin Pattern for AP */
2746 imcf_uint8 padding[2]; /*< oper */
2747 imcf_uint16 status; /*< status */
2748 imcf_uint16 sip_cause; /*< status */
yu.donge372c322023-08-30 20:25:04 -07002749 imcf_uint8 language[IMS_USSD_LANGUANGE_LEN]; /*< language */
rjw6c1fd8f2022-11-30 14:33:01 +08002750 imcf_int16 error_code; /*< error_code */
2751 imcf_int16 message_len; /*< message length */
yu.donge372c322023-08-30 20:25:04 -07002752 imcf_uint8 message[IMS_USSD_MAX_MSG_LEN];
rjw6c1fd8f2022-11-30 14:33:01 +08002753} imcb_imc_recv_ussd_req_struct;
2754
2755
2756typedef struct imcb_imc_ussd_urc_status_ind {
2757 LOCAL_PARA_HDR
2758 imcf_uint32 account_id; /*< Account ID*/
2759 imcf_uint32 status; /*< USSI URC enabled status */
2760} imcb_imc_ussd_urc_status_ind_struct;
2761
2762//IMS VT Service Interface
2763typedef struct {
2764 LOCAL_PARA_HDR
2765 imcf_uint32 account_id;
2766 imcf_uint32 is_connected;
2767} imcb_imc_vt_connect_req_struct;
2768
2769typedef struct {
2770 LOCAL_PARA_HDR
2771 imcf_uint32 account_id;
2772 imcf_uint16 operator_code;
2773 imcf_uint8 pad[2];
2774} imcb_imc_vt_cap_query_ind_struct;
2775
2776typedef struct {
2777 LOCAL_PARA_HDR
2778 imcf_uint32 account_id;
2779 imcf_uint32 result; //0: success, 1: fail
2780 imcf_uint16 operator_code;
2781 imcf_uint8 pad[2];
2782} imcb_imc_vt_cap_query_rsp_struct;
2783
2784typedef struct {
2785 LOCAL_PARA_HDR
2786 imcf_uint32 account_id;
2787 imcf_uint32 call_id;
2788 imcf_int32 direction;
2789} imcb_imc_cc_vt_active_ind_struct;
2790
2791typedef struct {
2792 LOCAL_PARA_HDR
2793 imcf_int32 account_id;
2794 imcf_uint32 call_id;
2795 imcf_uint8 call_mode; //imcb_imc_call_mode_enum
2796 // 0 : inactive
2797 // 1 : send_only
2798 // 2 : recv_only
2799 // 3 : send_recv
2800 imcf_uint8 camera_direction;
2801 imcf_uint8 audio_direction;
2802 imcf_uint8 audio_codec; //opaque
2803 imcf_int8 p_assert_uri[IMC_MAX_ASSERTED_URI];
2804} imcb_imc_cc_media_mod_req_struct;
2805
2806typedef struct {
2807 LOCAL_PARA_HDR
2808 imcf_int32 account_id;
2809 imcf_uint32 call_id;
2810 imcf_uint8 local_video_cap;
2811 imcf_uint8 remote_video_cap;
2812 imcf_uint8 pad[2];
2813} imcb_imc_cc_video_cap_req_struct;
2814
2815typedef enum {
2816 IMCB_IMC_EVTA_MODE_UNKNOWN = 0,
2817 IMCB_IMC_EVTA_MODE_ACCEPT_AS_VOICE = 1,
2818 IMCB_IMC_EVTA_MODE_ACCEPT_AS_ONE_WAY_VIDEO_RX = 2,
2819 IMCB_IMC_EVTA_MODE_ACCEPT_AS_ONE_WAY_VIDEO_TX = 3,
2820 IMCB_IMC_EVTA_MODE_MAX,
2821} imcb_imc_evta_mode_enum;
2822
2823typedef enum
2824{
2825 IMCB_IMC_SEND_USSD_RESULT_SUCCESS = 0,
2826 IMCB_IMC_SEND_USSD_RESULT_FAILURE = 1,
2827 IMCB_IMC_SEND_USSD_RESULT_MAX ,
2828} imcb_imc_send_ussd_result_enum;
2829
2830typedef struct {
2831 LOCAL_PARA_HDR
2832 imcf_int32 acct_id;
2833 imcf_uint32 call_id;
2834 imcf_uint8 cell_id[IMC_MAX_CELL_ID_LEN];
2835 imcf_uint32 mode; /* imcb_imc_evta_mode_enum */
2836 imcb_imc_loc_ts_struct loc_info;
2837} imcb_imc_cc_mt_vt_special_accept_ind_struct;
2838
2839typedef struct {
2840 LOCAL_PARA_HDR
2841 imcf_int32 acct_id;
2842 imcf_uint32 call_id;
2843 imcf_int32 result; /*0: success, 1: fail*/
2844 imcf_int32 cause; /*imcb_imc_call_stop_cause_enum*/
2845} imcb_imc_cc_mt_vt_special_accept_rsp_struct;
2846
2847//WFC
2848typedef struct {
2849 LOCAL_PARA_HDR
2850 imcf_uint8 source_rat_type;
2851 imcf_uint8 target_rat_type;
2852 imcf_uint8 pad[2];
2853} imcb_imc_handover_start_req_struct;
2854
2855typedef struct {
2856 LOCAL_PARA_HDR
2857 imcf_uint8 source_rat_type;
2858 imcf_uint8 target_rat_type;
2859 imcf_uint8 is_success;
2860 imcf_uint8 pad;
2861} imcb_imc_handover_stop_req_struct;
2862
2863typedef struct {
2864 LOCAL_PARA_HDR
2865 imcf_uint8 source_rat_type;
2866 imcf_uint8 target_rat_type;
2867 imcf_uint8 pdn_id; /* LTE: Default EBI, NR: PDU Session ID */
2868 imcf_uint8 acct_id;
2869 imcf_uint32 network_id;
2870 imcf_uint8 if_name[IMC_MAX_IF_NAME_LENGTH];
2871} imcb_imc_handover_begin_req_struct;
2872
2873typedef struct {
2874 LOCAL_PARA_HDR
2875 imcf_uint8 source_rat_type;
2876 imcf_uint8 target_rat_type;
2877 imcf_uint8 is_success;
2878 imcf_uint8 pdn_id; /* LTE: Default EBI, NR: PDU Session ID */
2879 imcf_uint32 network_id;
2880 imcf_uint8 if_name[IMC_MAX_IF_NAME_LENGTH];
2881 imcf_uint8 acct_id;
2882 imcf_uint8 pad[3];
yu.dongc592bc72024-04-24 22:45:13 -07002883 imcf_int32 ps_errcause;
2884 imcf_int32 epdg_errcause; // n3epc_pdn_reject_enum
2885 imcf_int32 epdg_sub_errcause; // n3epc_ike_error_notify_enum
rjw6c1fd8f2022-11-30 14:33:01 +08002886} imcb_imc_handover_end_req_struct;
2887
2888typedef struct {
2889 LOCAL_PARA_HDR
2890 imcf_uint8 account_id;
2891 imcf_uint8 rat_type; //imc_rat_type_enum
2892 imcf_uint8 ecmp; /* imc_ecmp_enum */
2893 imcf_uint8 need_broadcast;
2894 imcf_uint32 reg_service; /* ims_reg_service_enum */
2895 imcf_uint32 reg_event; // ims_reg_event_enum
2896 imcf_uint32 sip_uri_type;// ims_reg_sip_uri_type_enum
2897} imcb_imc_reg_ems_mode_req_struct;
2898
2899typedef struct {
2900 LOCAL_PARA_HDR
2901 imcf_uint8 tlv_data[IMC_MAX_ILM_BUFFER_LEN];
2902} imcb_imc_ims_debug_info_req_struct;
2903
2904typedef struct
2905{
2906 LOCAL_PARA_HDR
2907 kal_uint8 tlv_data[IMC_MAX_DEBUG_INFO_IND_LEN];
2908} imcb_imc_ims_debug_info_ind_struct;
2909
2910
2911/* TTY */
2912typedef struct {
2913 LOCAL_PARA_HDR
2914 imcf_uint32 account_id; /*< Account ID*/
2915 imcf_uint32 enable;
2916} imcb_imc_cc_tty_enable_ind_struct;
2917
2918typedef struct {
2919 LOCAL_PARA_HDR
2920 imcf_uint32 account_id; /*< Account ID*/
2921 imcf_uint32 result; // imcb_imc_call_stop_result_enum
2922} imcb_imc_cc_tty_enable_rsp_struct;
2923
2924typedef struct {
2925 LOCAL_PARA_HDR
2926 imcf_int32 acct_id;
2927 imcf_uint32 call_id; /*assigned by CC*/
2928 imcf_uint8 local_text_capability; /* GTT/RTT on/off */
2929 imcf_uint8 remote_text_capability; /* remote sdp text status */
2930 imcf_uint8 local_text_status; /* local sdp text status */
2931 imcf_uint8 real_remote_text_capability; /* remote Contact header text cap */
2932} imcb_imc_cc_tty_capability_req_struct;
2933
2934/* RTT */
2935typedef struct {
2936 LOCAL_PARA_HDR
2937 imcf_uint32 acct_id; /*< Account ID*/
2938 imcf_uint32 call_id;
2939 imcf_uint32 op; /* 0: downgrade, 1: upgrade */
2940} imcb_imc_cc_rtt_op_ind_struct;
2941
2942typedef struct {
2943 LOCAL_PARA_HDR
2944 imcf_uint32 acct_id; /*< Account ID*/
2945 imcf_uint32 call_id;
2946 imcf_uint32 result;
2947} imcb_imc_cc_rtt_op_rsp_struct;
2948
2949
2950typedef struct {
2951 LOCAL_PARA_HDR
2952 imcf_uint32 account_id;
2953} imcb_imc_release_pdn_ind_struct;
2954
2955typedef struct {
2956 LOCAL_PARA_HDR
2957 imcf_uint32 account_id;
2958} imcb_imc_release_pdn_rsp_struct;
2959
2960typedef struct {
2961 LOCAL_PARA_HDR
2962 imcf_uint32 account_id; /* Account ID, normal account of the SIM */
2963 imcf_uint32 atcmd_id;
2964 imcf_uint32 pad[2];
2965 imcf_uint8 cmdline[IMC_ATCMD_MAX_CMDLINE_LEN];
2966} imcb_imc_atcmd_relay_req_struct,
2967imcb_imc_atcmd_relay_ind_struct;
2968
2969/*
2970 * @brief
2971 * @note MSG_ID_IMCB_IMC_IMS_TIMER_STATUS_IND
2972 * AT+EITMR=<timer_type>,<timer_status>,<timer_length>
2973 */
2974typedef struct imcb_imc_ims_timer_status_ind {
2975 LOCAL_PARA_HDR
2976 imcf_uint32 account_id; /*< Account ID*/
2977 imcf_uint32 timer_type; // ims_timer_type_enum
2978 imcf_uint32 timer_status; // ims_timer_status_enum
2979 imcf_uint16 timer_length;
2980 imcf_uint8 pad[2];
2981} imcb_imc_ims_timer_status_ind_struct;
2982
2983typedef enum {
2984 IMCB_IMC_SRU_OP_UNSPEC = 0,
2985 IMCB_IMC_SRU_OP_REQUEST_RF = 1,
2986 IMCB_IMC_SRU_OP_RELEASE_RF = 2
2987} imcb_imc_sru_operation_enum;
2988
2989typedef enum {
2990 IMCB_IMC_SRU_METHOD_UNSPEC = 0,
2991 IMCB_IMC_SRU_METHOD_INIT_REG = 1,
2992 IMCB_IMC_SRU_METHOD_RE_REG = 2,
2993 IMCB_IMC_SRU_METHOD_SUBSCRIBE = 3,
2994 IMCB_IMC_SRU_METHOD_USSD = 4,
2995 IMCB_IMC_SRU_METHOD_CONF_SUBSCRIBE = 5,
2996 IMCB_IMC_SRU_METHOD_MWI_SUBSCRIBE = 6,
2997 IMCB_IMC_SRU_METHOD_CALLPULL_SUBSCRIBE = 7,
2998 IMCB_IMC_SRU_METHOD_INIT_REG_LOW = 8
2999} imcb_imc_sru_method_enum;
3000
3001/*
3002 * @brief
3003 * @note MSG_ID_IMCB_IMC_SRU_INFO_REQ
3004 * To control RF resource from REG UA module (Initial reqiester, re-register, subscribe)
3005 */
3006typedef struct imcb_imc_sru_info_req {
3007 LOCAL_PARA_HDR
3008 imcf_uint32 account_id; /*< Account ID*/
3009 imcf_uint8 op; //imcb_imc_sru_operation_enum
3010 imcf_uint8 method; //imcb_imc_sru_method_enum
3011 imcf_uint8 pad[2];
3012 imcf_uint32 access_rat_type; //imc_access_rat_type
3013} imcb_imc_sru_info_req_struct;
3014
3015/*
3016 * @brief
3017 * @note MSG_ID_IMCB_IMC_PS_DATA_OFF_IND
3018 *
3019 */
3020typedef struct imcb_imc_ps_data_off_ind {
3021 LOCAL_PARA_HDR
3022 imcf_uint32 account_id;
3023 imcf_uint32 psdataoff_status; // ims_ps_data_off_status_enum
3024 imcf_uint32 exempt_service; // ims_ps_data_off_exempt_service_enum
3025} imcb_imc_ps_data_off_ind_struct;
3026
3027/*
3028 * @brief
3029 * @note MSG_ID_IMCB_IMC_SMS_CS_AVAILABILITY_REQ
3030 *
3031 */
3032typedef struct {
3033 LOCAL_PARA_HDR
3034 imcf_uint32 acct_id;
3035 imcf_uint32 request_id;
3036} imcb_imc_sms_cs_availability_req_struct;
3037
3038typedef enum {
3039 IMCB_IMC_CS_NETWORK_NOT_AVAILABLE = 0,
3040 IMCB_IMC_CS_NETWORK_HOME,
3041 IMCB_IMC_CS_NETWORK_ROAMING,
3042} imcb_imc_cs_network_status_enum;
3043
3044/*
3045 * @brief
3046 * @note MSG_ID_IMCB_IMC_SMS_CS_AVAILABILITY_CNF
3047 *
3048 */
3049typedef struct {
3050 LOCAL_PARA_HDR
3051 imcf_uint32 acct_id;
3052 imcf_uint32 request_id;
3053 imcf_uint32 cs_network_status; /* imcb_imc_cs_network_status_enum */
3054} imcb_imc_sms_cs_availability_cnf_struct;
3055
3056/*
3057 * @brief
3058 * @note MSG_ID_IMCB_IMC_CC_CS_AVAILABILITY_REQ
3059 *
3060 */
3061typedef struct {
3062 LOCAL_PARA_HDR
3063 imcf_uint32 acct_id;
3064 imcf_uint32 call_id;
3065} imcb_imc_cc_cs_availability_req_struct;
3066
3067/*
3068 * @brief
3069 * @note MSG_ID_IMCB_IMC_CC_CS_AVAILABILITY_CNF
3070 *
3071 */
3072typedef struct {
3073 LOCAL_PARA_HDR
3074 imcf_uint32 acct_id;
3075 imcf_uint32 call_id;
3076 imcf_uint32 cs_network_status; /* imcb_imc_cs_network_status_enum */
3077} imcb_imc_cc_cs_availability_cnf_struct;
3078
3079typedef struct {
3080 LOCAL_PARA_HDR
3081 imcf_uint8 transaction_id;
3082} imcb_imc_pcscf_discovery_via_sim_req_struct;
3083
3084typedef struct {
3085 LOCAL_PARA_HDR
3086 imcf_uint8 transaction_id;
3087 imc_pcscf_list_struct pcscf_list;
3088} imcb_imc_pcscf_discovery_via_sim_cnf_struct;
3089
3090typedef struct {
3091 LOCAL_PARA_HDR
3092 imcf_uint8 transaction_id;
3093 imcf_uint8 cause;
3094} imcb_imc_pcscf_discovery_via_sim_rej_struct;
3095
3096typedef struct {
3097 LOCAL_PARA_HDR
3098 imc_acct_id_t acct_id;
3099 imcf_uint8 cause;
3100} imcb_imc_ims_reset_suggestion_timer_req_struct;
3101
3102#endif /* IMC_IMCB_STRUCT_H */