blob: 1189729be6e2558da0f4c3be3a2aef97588c3e73 [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) 2013
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35
36/*****************************************************************************
37 * Filename:
38 * ------------
39 * vdm_atp_struct.h
40 *
41 * Project:
42 * ------------
43 * MOLY
44 *
45 * Description:
46 * ------------
47 * This file defines the interface messages between VDM and IMS Proxy.
48 *
49 * Author:
50 * -----------
51 * -------
52 *
53 *===========================================================
54 * $Log$
55 *
56 * 06 21 2022 vijay.goyal
57 * [MOLY00765081] [FeatureDevelopment][ALPSAR06336232] TMOUS 22Q1 Requirement Gap Development - UE MO Timer F1
58 * .
59 *
60 * 01 27 2022 taffy.cheng
61 * [MOLY00803278] [Gen97][MD700] CR patch-back from R3.MP
62 *
63 * [MOLY00678551][MOLY00679592][MOLY00686355][MOLY00683334][MOLY00701221][MOLY00721364][MOLY00773738] Patch Back
64 *
65 * 01 10 2022 ot_hitesh.c
66 * [MOLY00774161] [mt2735][CS eCall][NG eCall][patch back] ecall patch back from NR15.R3.MD700.MP.ECAll.DEV
67 * .
68 *
69 * 12 16 2021 ot_hitesh.c
70 * [MOLY00774161] [mt2735][CS eCall][NG eCall][patch back] ecall patch back from NR15.R3.MD700.MP.ECAll.DEV
71 * .
72 *
73 * 12 01 2020 yulong.chang
74 * [MOLY00598875] Request a SRVCC CS Call Resource control by VDM
75 *
76 * ALPS05460502
77 *
78 * 10 14 2020 chen-wei.lan
79 * [MOLY00580995] [Titan97]IPC c2k call flow change for VDM enabled
80 * titan c2k
81 *
82 * 08 28 2020 chen-wei.lan
83 * [MOLY00562709] [5GHP][feature][Data&Call]game space mode
84 * .
85 *
86 * 08 14 2020 yulong.chang
87 * [MOLY00543239] [MT6883][VoNR] request to support API for call preference change
88 *
89 * Add At command ECNWS
90 *
91 * 07 27 2020 yulong.chang
92 * [MOLY00549478] [Gen97][HE3.0]N3GPP offload over data feature
93 * VoData VDM part
94 *
95 * 03 16 2020 chen-wei.lan
96 * [MOLY00504146] [5G-A][5G Modem·sfeature]ɬ¤Æ5G±µ¤J±±¨î
97 * ssac opt
98 *
99 * 03 10 2020 chen-wei.lan
100 * [MOLY00504146] [5G-A][5G Modem·sfeature]ɬ¤Æ5G±µ¤J±±¨î
101 * ssac opt
102 *
103 * 12 08 2019 chen-wei.lan
104 * [MOLY00346647] [MT6297][VDM/L4] changes for 97
105 * [patch back]6996240,7189967,7222841,7241346,7367549,8756435
106 *
107 * 12 02 2019 chen-wei.lan
108 * [MOLY00346647] [MT6297][VDM/L4] changes for 97
109 * [patch back]8519908,8519818,8915296,9086988,9086148,9085815,9318206,9357101
110 *
111 * 11 20 2019 chen-wei.lan
112 * [MOLY00460626] [Petrus]BSP+][Q0][Operator IOT] ECC cannot be established by RJIL after flight mode
113 * fix eXreg
114 *
115 * 11 13 2019 chen-wei.lan
116 * [MOLY00458901] [Rose][Petrus]BSP+][Q0]The CMCC volte card will register E network all the time.(Once)
117 * AT+EMCI=0
118 *
119 * 10 31 2019 chen-wei.lan
120 * [MOLY00455800] [Rose][Petrus]BSP+][Q0]The DUT will popup ECBM.(Once)
121 * add +VMCCMNC urc handling for VDM
122 *
123 * 10 25 2019 chen-wei.lan
124 * [MOLY00454520] ¡idump¡j??Éó?¥d??¤U?¥´120¡Amodem ­«? 1/5
125 * fix emcs
126 *
127 * 10 17 2019 chen-wei.lan
128 * [MOLY00449571] [MT6885][Petrus][Q0][MP1][SI2][SQC][China][SH][4GMM][FT][hVoLTE][hVoLTE_FT_2.1]sim1 C2K call failure after 4G3
129 * fix AT+EIMSCFG.
130 *
131 * 09 24 2019 danny.kuo
132 * [MOLY00440886] [Gen97] DSDA-like feature check in
133 * .
134 *
135 * 01 30 2019 kuan-wei.chen
136 * [MOLY00346647] [MT6297][VDM/L4] changes for 97
137 * [VMOLY.EVB.SEPT.DEV][MPD] sync VDM CL: 6995175~7345261
138 *
139 * 11 01 2018 kuan-wei.chen
140 * [MOLY00346647] [MT6297][VDM/L4] changes for 97
141 * [VMOLY][VDM][MPD]
142 *
143 * 08 17 2018 chen-wei.lan
144 * [MOLY00346647] [MT6297][VDM/L4] changes for 97
145 * l4c cc
146 *
147 * 05 24 2018 szu-chieh.chiu
148 * [MOLY00328315] [IMS][Gen95] Emergency PDN handover
149 * Emergency PDN handover.
150 *
151 * 05 23 2018 yulong.chang
152 * [MOLY00327672] [UMOLYE][Rose][MERLOT][O1][BSP+][Initial Tool]The device was not regist network after some operate.(once)
153 * VDM relay +CIEV:102,X to AP
154 *
155 * 05 03 2018 jerry.cheng
156 * [MOLY00322938] ?�H�ƥd����`?VOLTE - notify C2K call end to L4 (VDM part)
157 * .[UMOLYE] Send AT+EHVOLTE=0,2 to notify L4 C2K call end in order not to block switching to SRLTE mode
158 *
159 * 03 29 2018 yulong.chang
160 * [MOLY00313953] [UMOLYE][VDM][Vzw][CDMA-less][PCO] Trigger NWSEL search for Vzw CDMA less if UE has received PCO_FF00H=5 and AP radio control off and timer expired and UE is roaming
161 * PCO FF00H 5 - VDM main part
162 *
163 * 03 13 2018 yulong.chang
164 * [MOLY00312598] [DSBP] patch back "D-SBP enhancment for all modem" to UMOLYE and TC01.R3.DEV
165 * EFUN/CFUN controlled by L4BPWR (VDM part)
166 *
167 * 02 23 2018 yulong.chang
168 * [MOLY00309362] [Rose][Sylvia][O1][BSP+][Telephony switch]The ECC call will dialing all the time.(Once)
169 *
170 * improve +EMCSS (VDM part)
171 *
172 * 12 18 2017 yulong.chang
173 * [MOLY00296177] [MT6293][GMSS] prefer RAT handling enhancement
174 * Add one parameter in AT+EMCSS.
175 *
176 * AT+EMCSS=1,[<available_rat>,<prefer_rat>,<is_new_call>]
177 *
178 * 12 01 2017 yulong.chang
179 * [MOLY00293536] [VDM][TMO-US][RTT] Redial voice only VoLTE EMCl when RTT VoLTE EMC fail (VDM part)
180 * TMO RTT redial
181 *
182 * 12 01 2017 yulong.chang
183 * Roll back MOLY00291130
184 *
185 *
186 * 11 23 2017 jerry.cheng
187 * [MOLY00291130] [R3][VZW feature] VZ_REQ_e911_30203 (EMC call type)
188 * .rollback to resolve autosync conflict
189 *
190 * 11 21 2017 jerry.cheng
191 * [MOLY00287748] [93][TMO][VDM] Digits implementation
192 * .[TMO][Digits] modify query TRN AT cmd/URC format
193 *
194 * 11 21 2017 yulong.chang
195 * [MOLY00288769] [Zion][N1][Free Test][MCD][TEFT]make a vilte call,the picture is unclear(5/5) (vdm part)
196 * notify ERRC IMS call RAT (VDM part)
197 *
198 * 11 06 2017 jerry.cheng
199 * [MOLY00287748] [93][TMO][VDM] Digits implementation
200 * .Digits implementation - VDM part
201 *
202 * 09 01 2017 yulong.chang
203 * [MOLY00274843] [CDMA-less][LR12] main CR (VDM part)
204 * [LR11.MP5->UMOLYA sync] MOLY00262171 [CDMA-less][LR12] main CR (VDM part)
205 *
206 * 08 31 2017 yulong.chang
207 * [MOLY00274168] [MT6293][NWSIM][Regression][TC_9_3_1_3] UE return CME error for ATD01234567890;
208 * ALPS03464343 Bug fix (also reference At+CFUN)
209 *
210 * 08 30 2017 yulong.chang
211 * [MOLY00274412] [6755][E66_DUGL][ITS#1174]Without SIM and make Emergency call:911, DUT will met call drop
212 * [LR11.MP5->UMOLYA sync] MOLY00255649 [6755][E66_DUGL][ITS#1174]Without SIM and make Emergency call:911, DUT will met call drop
213 *
214 * 08 28 2017 yulong.chang
215 * [MOLY00274096] [VzW] addl call_domain_cause - IMSP/VDM/IMC part
216 * [LR11.MP5->UMOLYA sync] MOLY00254610 [VzW] addl call_domain_cause - IMSP/VDM/IMC part
217 *
218 * 08 24 2017 yulong.chang
219 * [MOLY00272923] [Bianco][N1][MTK FT][SRLTE][CT 6M C][LZ][Random] call can't hang up (ATP part)
220 * .
221 *
222 * 08 17 2017 jerry.cheng
223 * [MOLY00271227] [UMOLYA] [Rose][Vinson][N1]The ECC call will can't be dial out success.(5/5)
224 * [LR12->UMOLYA sync] [MOLY00259723] send call_status_req to NAS/AS : VDM/ATP - add call_type in AT+EVVS
225 *
226 * 08 17 2017 yulong.chang
227 * [MOLY00271652] [TCL][MICKEY6T TMO] [IMS/VoLTE] - L_IMS_VoLTE_50944_1 - for VDM/IMSP check-in
228 * [LR11.MP5->UMOLYA sync] MOLY00250915 [TCL][MICKEY6T TMO] [IMS/VoLTE] - L_IMS_VoLTE_50944_1 - for VDM/IMSP check-in
229 *
230 * 08 15 2017 jerry.cheng
231 * [MOLY00210061] [93][VDM] UMOLY sync to UMOLYA
232 * .[LR12->UMOLYA sync] MOLY00264006[LR12] patch back Skip ACB feature/VDM part to LR12
233 *
234 * 07 25 2017 jerry.cheng
235 * [MOLY00262992] [93][VDM] IMS parameter OTA update
236 * .OPPO IMS parameter OTA update
237 *
238 * 07 19 2017 jerry.cheng
239 * [MOLY00210061] [93][VDM] UMOLY sync to UMOLYA
240 * .[LR11.MP5 to UMOLYA].
241 * porting [MOLY00215268] [VDM][ATT] ACB enable, select CS domain to dial up call. VDM part.
242 * porting [MOLY00215276] [VDM][ATT] ACB enable, select CS domain to dial up call. NVRAM part
243 *
244 * 07 19 2017 jerry.cheng
245 * [MOLY00210061] [93][VDM] UMOLY sync to UMOLYA
246 * .[LR11.MP5 to UMOLYA] porting [MOLY00206357] [VzW] Call Pull & VICE Feature
247 *
248 * 06 26 2017 jerry.cheng
249 * [MOLY00259370] .EVADSMOD rearch
250 * .EVADSMOD rearch
251 *
252 * 04 25 2017 jerry.cheng
253 * [MOLY00242146] [93][VDM] bug fix
254 * .rename EVADSMOD parameter
255 *
256 * 04 19 2017 jerry.cheng
257 * [MOLY00242146] [93][VDM] bug fix
258 * .fix C2K ECPI
259 *
260 * 04 07 2017 jerry.cheng
261 * [MOLY00240312] [93] CT VoLTE modem re-architecture
262 * .[CT VoLTE] +CIEV: 102,2 for ECBM mode no need
263 *
264 * 04 07 2017 jerry.cheng
265 * [MOLY00240312] [93] CT VoLTE modem re-architecture
266 * .[CT VoLTE] hVoLTE / E911 configuration, VDM re-arch, extend AT+EVADMOD, AT+EMVSS
267 *
268 * 04 05 2017 jerry.cheng
269 * [MOLY00221572] [Gen93][L4 integration][VDM]
270 *
271 * .AT+EVIVS support for indicating ERRC to occupy CS semaphore in VoLTE/ViTLE/VoWifFI/ViWiFI period
272 *
273 * 04 05 2017 jerry.cheng
274 * [MOLY00221572] [Gen93][L4 integration][VDM]
275 * .[M3] relay conference call number from UA to CSCC
276 *
277 * 04 05 2017 jerry.cheng
278 * [MOLY00221572] [Gen93][L4 integration][VDM]
279 * .[M3] CLCCS .remove CLCC cnf check for unsync call(C2K) in order to fulfill C2K call waiting
280 *
281 * 04 05 2017 jerry.cheng
282 * [MOLY00221572] [Gen93][L4 integration][VDM]
283 * .[M3] STK/UTK
284 *
285 * 04 05 2017 jerry.cheng
286 * [MOLY00221572] [Gen93][L4 integration][VDM]
287 * .[M3] EIMSCFG - VDM part
288 *
289 * 04 05 2017 jerry.cheng
290 * [MOLY00221572] [Gen93][L4 integration][VDM]
291 * .[M3] 380 redial as ECC by VDM
292 *
293 * 02 20 2017 jerry.cheng
294 * [MOLY00221572] [Gen93][L4 integration][VDM]
295 * .+EVPC2K.
296 *
297 * 01 06 2017 jerry.cheng
298 * [MOLY00220510] [93 PREIT_DEV][UMOLYA] Rename IMSP interface/context/API to ATP and reorg folder layout
299 * rename IMSP to ATP, ATP related files.
300 *
301 * 01 05 2017 jerry.cheng
302 * [MOLY00220510] [93 PREIT_DEV][UMOLYA] Rename IMSP interface/context/API to ATP and reorg folder layout
303 * rename IMSP to ATP.
304 *
305 * 01 05 2017 chinte.chen
306 * [MOLY00220510] [93 PREIT_DEV][UMOLYA] Rename IMSP interface/context/API to ATP and reorg folder layout
307 * fixed VDM codegen failure
308 *
309 * 11 02 2016 jerry.cheng
310 * [MOLY00211075] [93][VDM][L4 Integration] CC AT cmd merge
311 * sync [MOLY00204150] TK vzw hVoLTE/E911 implementation
312 *
313 * . ATP part.
314 *
315 * 11 02 2016 jerry.cheng
316 * [MOLY00211075] [93][VDM][L4 Integration] CC AT cmd merge
317 * sync [MOLY00204150] TK vzw hVoLTE/E911 implementation
318 *
319 * TK hVoLTE: L4/ATP/VDM.
320 *
321 * 10 13 2016 timo.korpela
322 * [MOLY00206906] [FT][NL][VoLTE]he hidden caller ID does not work when make call to alphanumeric SIP-URI.
323 * Implemented handling for CLIR parameter received in AT+CDU command.
324 *
325 * 08 11 2016 kuan-wei.chen
326 * [MOLY00196499] [Jade N0][TK]Waiting call screen show "Unknown" when receive a waiting call from hiden number - vdm/atp source file
327 * .
328 *
329 * 06 27 2016 lexel.yu
330 * [MOLY00183611] [VZW_LC_IOT][PH1_VZW][Radio_Protocol][NDET_Lab] hVoLTE 2.2.40_Option-A fail
331 * Add AT+EICE=3 workaround for silent redial
332 *
333 * 06 06 2016 yingfui.hung
334 * [MOLY00171513] [PH1_VZW][joint-camp][GPS][Privacy Test] When Device's Location Setting is 'Location OFF', GPS work.
335 *
336 * .
337 *
338 * 06 01 2016 kuan-wei.chen
339 * [MOLY00146327] [VzW] hVoLTE implementation
340 * vzw patchback - L4, VDM
341 *
342 * 03 23 2016 yingfui.hung
343 * [MOLY00168587] [MT6755][Jade M6][MP3][L+W][In-house FTA][Case Fail][VoLTE] TC_11.2.2 FAIL
344 *
345 * .
346 *
347 * 03 08 2016 yingfui.hung
348 * [MOLY00167924] [L4][R12] Handling of SCM at VDM/SDM/L4 part
349 *
350 * .
351 *
352 * 12 16 2015 xinwei.cui
353 * [MOLY00153299] [VILTE][Anite][v37][E40][12.21]FAIL
354 * .
355 *
356 * 12 15 2015 kuan-wei.chen
357 * [MOLY00153140] [D1][WFC][M0] WFC preference if wifi only, disable WFC, prompt "server unreachable" when make a call. - VDM part
358 * wifi only mode is active only when AT+EIMSWFC=1
359 *
360 * 12 14 2015 kuan-wei.chen
361 * [MOLY00150109] [IMS Feature] Non-UE detectable emergency call R12 feature
362 * .
363 *
364 * 12 01 2015 kuan-wei.chen
365 * [MOLY00133272] [NTT DOCOMO][VoLTE][IO030143] UE sends SM__ACTIVATE_PDP_CONTEXT_REQUEST unexpectedly
366 * DCM, 1504929
367 *
368 * 11 26 2015 yingfui.hung
369 * [MOLY00116938] [VOLTE][NTT DOCOMO] requirement 5A.7.1.1 Service category
370 *
371 * .
372 *
373 * 11 13 2015 lexel.yu
374 * [MOLY00149112] [VDM] NAS should keep search network when IMS call over WiFi ongoing
375 *
376 * .
377 *
378 * 09 14 2015 lexel.yu
379 * [MOLY00141573] [UMOLY][LR11][TMO][IMS] bCSFB
380 * .
381 *
382 * 08 26 2015 ben.chiu
383 * [MOLY00138217] [ViLTE] M0 migration ViLTE feature Interface
384 * ViLTE interface patch back
385 *
386 * 07 09 2015 nick.wang
387 * [MOLY00127009] WFC Patch back to UMOLY- interface part
388 * .moly wfc interface patch
389 *
390 * 07 09 2015 nick.wang
391 * [MOLY00127009] WFC Patch back to UMOLY- interface part
392 * .jade interface sync
393 *
394 * 06 11 2015 lexel.yu
395 * [MOLY00085703] [VDM][MT6291] Sync MOLY to UMOLY
396 * [MOLY00114718] [VDM][Volunteer Patch] Patch back for MOLY trunk
397 * ATDC for conference call
398 *
399 * 06 10 2015 edwin.liu
400 * [MOLY00120219] Merge MOLY ATP changes to UMOLY
401 * .
402 *
403 * 06 05 2015 edwin.liu
404 * ATP to UMOLY.
405 *
406 * 04 09 2015 lexel.yu
407 * [MOLY00106459] [MT6291][IMS] VoLTE call event download
408 * IMS Call Event Download
409 *
410 * 03 16 2015 lexel.yu
411 * [MOLY00085703] [VDM][MT6291] Sync MOLY to UMOLY
412 * [MOLY00080860] fix typo: replace vdm_atp_snd_ads_staus_req_struct by vdm_atp_snd_ads_status_req_struct
413 * [MOLY00093643] [K2][CMCC][VoLTE][NS-IOT][R&S][TC 5.2.9.2][B3-E38]UE GSM??????^LTE?????????`? fail
414 *
415 * 02 24 2015 lexel.yu
416 * [MOLY00085703] [VDM][MT6291] Sync MOLY to UMOLY
417 * [MOLY00095972] [CMCC VoLTE][VDM] Add "4 to 23G" and "23G to 4" for IRAT event.
418 *
419 * 12 05 2014 lexel.yu
420 * [MOLY00085703] [VDM][MT6291] Sync MOLY to UMOLY
421 * [MOLY00085717] [VoLTE] Android L release VoLTE refactory for VDM and ATP
422 *
423 * 11 26 2014 lexel.yu
424 * [MOLY00085703] [VDM][MT6291] Sync MOLY to UMOLY
425 * [MOLY00083542] [L4]add a new internal URC to notify VDM STK call number (+ESTKCNUM)
426 * VDM part
427 *
428 * 11 05 2014 lexel.yu
429 * [MOLY00083035] [VDM] IMS call information
430 * .
431 *
432 * 09 02 2014 allan.ke
433 * [MOLY00075245] Change the algorithm of ADS SSAC timer control and include IMSVoPS as the conditions for domain selection when dialing emergency call
434 *
435 * 04 25 2014 tehuang.liu
436 * [MOLY00063538] [6290E2][VoLTE][VDM] Support VoLTE Gemini architecture
437 * not use compile options for VoLTE Gemini interface structures definition
438 *
439 * 04 23 2014 tehuang.liu
440 * [MOLY00063538] [6290E2][VoLTE][VDM] Support VoLTE Gemini architecture
441 * Check in VoLTE+Gemini related interfaces for VDM, ATP, L4C, EVAL, and ERRC
442 *
443 * 04 11 2014 tehuang.liu
444 * [MOLY00062327] [6290E2][VoLTE][VDM] Support STKCALL in CS domain
445 * .
446 *
447 * 04 09 2014 jinghan.wang
448 * [MOLY00062091] [IMS][VoLTE] Check in STKCALL part for VDM TRK
449 * .
450 *
451 * 02 20 2014 benjamin.kuo
452 * [MOLY00056441] Use string instead enum for call type in CRING
453 * .
454 *
455 * 02 17 2014 benjamin.kuo
456 * [MOLY00056253] Merge SRVCC implementation from personal CBr to MOLY trunk
457 * SRVCC
458 *
459 * 02 14 2014 benjamin.kuo
460 * [MOLY00055885] [6290E2][VoLTE][MWC] incorrect URC oder of VDM and ATP
461 * +CRING
462 *
463 * 12 10 2013 vend_edwin.liu
464 * ATP.
465 *****************************************************************************/
466
467#ifndef _VDM_ATP_STRUCT_H_
468#define _VDM_ATP_STRUCT_H_
469
470#include "kal_general_types.h"
471#include "kal_public_defs.h"
472#include "ims_common_def.h"
473#include "vdm_imc_struct.h"
474#include "vdm_atp_enums.h"
475#include "ps_public_enum.h"
476#include "l3_inc_enums.h"
477#include "sim_public_enum.h"
478#include "mcd_l3_inc_struct.h"
479#include "c2k_irat_msg_struct.h"
480#include "l4b_vdm_struct.h"
481#include "l4_vdm_enum.h"
482
483#define VDM_AT_CMD_TO_MD_NAME_LEN 32
484#define VDM_AT_CMD_TO_MD_VALUE_LEN 512
485
486typedef enum
487{
488 VDM_IRAT_STATUS_IDLE = 0,
489 VDM_IRAT_STATUS_ONGOING
490} vdm_irat_status_enum;
491
492
493typedef enum
494{
495 ADS_PROGRESS_ATTEMPT = 0,
496 ADS_PROGRESS_SUCCESS
497} ads_indication_progress_enum;
498
499
500typedef enum
501{
502 ADS_DOMAIN_CS = 0,
503 ADS_DOMAIN_IMS
504} ads_indication_domain_enum;
505
506typedef enum
507{
508 VDM_ADS_CALL_TYPE_INVALID = 0,
509 VDM_ADS_VOICE_OVER_CS,
510 VDM_ADS_VOICE_OVER_LTE,
511 VDM_ADS_VIDEO_OVER_LTE
512}vdm_ads_call_type_enum;
513
514typedef enum
515{
516 AP_CALL_STATE_IDLE = 0,
517 AP_CALL_STATE_RINGRING_FOR_MT_ONLY,
518 AP_CALL_STATE_OFFHOOK,
519} ap_call_state_enum;
520
521typedef enum
522{
523 AP_CALL_REASON_NORMAL = 0,
524 AP_CALL_REASON_SILENT_REDIAL,
525} ap_call_reason_enum;
526
527typedef enum
528{
529 AP_CALL_TYPE_VOICE = 0,
530 AP_CALL_TYPE_VIDEO,
531} ap_call_type_enum;
532
533/******************************************************************************
534 * Common AT command structure
535 *****************************************************************************/
536
537/*
538 * temp. for UT by MSC
539 */
540typedef struct
541{
542 kal_uint8 at_cmd_string[128];
543
544} at_cmd_buf_struct;
545
546
547typedef struct
548{
549 LOCAL_PARA_HDR
550 ims_result_code_enum result;
551 ims_err_id_enum err_id;
552} vdm_atp_common_at_rsp_struct;
553
554
555typedef vdm_atp_common_at_rsp_struct vdm_atp_common_at_cnf_struct;
556
557
558typedef struct {
559 LOCAL_PARA_HDR
560 kal_uint8 call_id;
561 kal_uint8 ecpi_type;
562 ims_ecpi_info_struct ecpi_info;
563} vdm_atp_common_cs_cc_epci_ind_struct;
564
565
566/******************************************************************************
567 * ATD<num> or ATD<num>;
568 *****************************************************************************/
569typedef struct
570{
571 LOCAL_PARA_HDR
572 kal_uint8 dial_num[MAX_CC_ATD_NUM_LEN];
573 kal_bool is_video_call;
574} vdm_atp_cmd_dial_ind_struct;
575
576typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_dial_rsp_struct;
577
578/******************************************************************************
579 * AT+CDV=<dial_num>,,,,,,so
580 *****************************************************************************/
581typedef struct
582{
583 LOCAL_PARA_HDR
584 kal_uint8 dial_num[MAX_CC_ATD_NUM_LEN];
585 kal_uint8 so;
586} vdm_atp_cmd_cdv_ind_struct;
587
588typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_cdv_rsp_struct;
589
590/******************************************************************************
591 * AT+CDU=1,<uri>
592 *****************************************************************************/
593typedef struct
594{
595 LOCAL_PARA_HDR
596 kal_uint8 dial_uri[MAX_CC_CDU_URI_LEN];
597 kal_bool video_call;
598 kal_uint8 clir;
599} vdm_atp_cmd_dial_uri_ind_struct;
600
601
602typedef struct
603{
604 LOCAL_PARA_HDR
605 ims_result_code_enum result;
606 ims_err_id_enum err_id;
607 kal_uint8 call_id;
608} vdm_atp_cmd_dial_uri_rsp_struct;
609
610
611/******************************************************************************
612 * AT+STKCALL=0
613 * NOTE: This AT command is forwarded from ATP to VDM.
614 * NOTE: For AT_STKCALL=x where x!=0, this AT command is not forwarded to VDM.
615 *****************************************************************************/
616
617typedef struct
618{
619 LOCAL_PARA_HDR
620 sat_terminal_res_enum tr; // o or 4
621 kal_uint8 additional_info;
622} vdm_atp_cmd_stk_call_ind_struct;
623
624typedef struct
625{
626 LOCAL_PARA_HDR
627 proxy_cmd_result_enum result;
628 atp_err_id_enum err_id;
629} vdm_atp_cmd_stk_call_rsp_struct;
630
631
632/******************************************************************************
633 * AT+EVADSMOD=<mode>,<ecc_preferred_domain>
634 *****************************************************************************/
635typedef struct
636{
637 LOCAL_PARA_HDR
638 vdm_ads_mode_enum ads_mode;
639 vdm_ads_ecc_preferred_domain_enum ads_ecc_preferred_domain;
640} vdm_atp_cmd_ads_mode_ind_struct;
641
642
643/******************************************************************************
644 * AT+EVADSREP=<mode>
645 *****************************************************************************/
646typedef struct
647{
648 LOCAL_PARA_HDR
649 vdm_ads_result_report_mode_enum ads_result_report_mode;
650} vdm_atp_cmd_ads_result_report_ind_struct;
651
652
653
654
655/******************************************************************************
656 * ATDE<num>;
657 *****************************************************************************/
658typedef struct
659{
660 LOCAL_PARA_HDR
661 kal_uint8 dial_num[MAX_CC_ATD_NUM_LEN];
662} vdm_atp_cmd_dial_emerg_ind_struct;
663
664/******************************************************************************
665 * ATDER=<num>,<call_id>
666 *****************************************************************************/
667typedef struct
668{
669 LOCAL_PARA_HDR
670 kal_uint8 dial_num[MAX_CC_ATD_NUM_LEN];
671 kal_uint8 call_id;
672} vdm_atp_cmd_dial_emerg_retry_ind_struct;
673
674typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_dial_emerg_rsp_struct;
675
676typedef vdm_atp_common_at_cnf_struct vdm_atp_cs_cc_emerg_call_cnf_struct;
677
678
679/******************************************************************************
680 * ATDF<dial_string>,<from_line>[;]
681 *****************************************************************************/
682typedef struct
683{
684 LOCAL_PARA_HDR
685 kal_uint8 dial_num[MAX_CC_ATD_NUM_LEN];
686 kal_uint8 from_line[IMC_MAX_URI_LENGTH];
687 kal_bool is_video_call;
688} vdm_atp_cmd_dial_from_line_ind_struct;
689
690typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_dial_from_line_rsp_struct;
691
692
693/******************************************************************************
694 * AT+ECALLPULL
695 * This command is used to dial with call pull
696 *****************************************************************************/
697typedef struct
698{
699 LOCAL_PARA_HDR
700 kal_uint8 dial_uri[MAX_CC_CDU_URI_LEN];
701 kal_bool video_call;
702} vdm_atp_cmd_dial_call_pull_ind_struct;
703
704typedef struct
705{
706 LOCAL_PARA_HDR
707 ims_result_code_enum result;
708 ims_err_id_enum err_id;
709 kal_uint8 call_id;
710} vdm_atp_cmd_dial_call_pull_rsp_struct;
711
712/******************************************************************************
713 * AT+EWFCP=<profile>;
714 *****************************************************************************/
715typedef struct
716{
717 LOCAL_PARA_HDR
718 wfc_profile_enum wfc_profile;
719} vdm_atp_cmd_wfc_profile_ind_struct;
720
721
722/******************************************************************************
723 * AT+EVPC2K=<is_voice_prefer_c2k>
724 *****************************************************************************/
725typedef struct
726{
727 LOCAL_PARA_HDR
728 kal_bool is_voice_prefer_c2k;
729} vdm_atp_cmd_voice_call_prefer_c2k_ind_struct;
730
731
732/******************************************************************************
733 * +ECPI:<call_id>,<msg_type=130>,<is_ibt>,<is_tch>,<dir>,
734 * <call_mode>,[<number>,<type>],"<pau">,[<disc_cause>]
735 *****************************************************************************/
736typedef struct {
737 LOCAL_PARA_HDR
738 kal_uint8 call_id;
739 ims_ecpi_info_struct ecpi_info;
740} vdm_atp_snd_ecpi_mo_call_id_alloc_req_struct;
741
742
743/******************************************************************************
744 * +ECPI:<call_id>,<msg_type=0>,<is_ibt>,<is_tch>,<dir>,
745 * <call_mode>,[<number>,<type>],"<pau>",[<disc_cause>]
746 *****************************************************************************/
747typedef struct
748{
749 LOCAL_PARA_HDR
750 kal_uint8 call_id;
751 ims_ecpi_info_struct ecpi_info;
752} vdm_atp_snd_ecpi_mt_call_setup_req_struct;
753
754
755/******************************************************************************
756 * +ECPI:<call_id>,<msg_type=133>,<is_ibt>,<is_tch>,<dir>,
757 * <call_mode>,[<number>,<type>],"<pau>",[<disc_cause>]
758 *****************************************************************************/
759typedef struct
760{
761 LOCAL_PARA_HDR
762 kal_uint8 call_id;
763 ims_ecpi_info_struct ecpi_info;
764 kal_bool is_far_end;
765} vdm_atp_snd_ecpi_call_release_req_struct;
766
767/******************************************************************************
768 * +ECPI:<call_id>,<msg_type=137>,<is_ibt>,<is_tch>,<dir>,
769 * <call_mode>,[<number>,<type>],"<pau>",[<disc_cause>]
770 *****************************************************************************/
771typedef struct
772{
773 LOCAL_PARA_HDR
774 kal_uint8 call_id;
775 ims_ecpi_info_struct ecpi_info;
776} vdm_atp_snd_ecpi_rtt_redial_req_struct;
777
778/******************************************************************************
779 * +ECPI:<call_id>,<msg_type!=0,130,133>,<is_ibt>,<is_tch>,<dir>,
780 * <call_mode>,[<number>,<type>],"<pau>",[<disc_cause>]
781 *****************************************************************************/
782typedef vdm_atp_common_cs_cc_epci_ind_struct vdm_atp_cs_cc_ecpi_translate_ind_struct;
783
784typedef vdm_atp_cs_cc_ecpi_translate_ind_struct vdm_atp_cs_cc_ecpi_translate_rsp_struct;
785typedef vdm_atp_cs_cc_ecpi_translate_ind_struct vdm_atp_c2k_cc_ecpi_translate_rsp_struct;
786
787
788/******************************************************************************
789 * AT+CHLD=[<n>]
790 *****************************************************************************/
791typedef struct
792{
793 LOCAL_PARA_HDR
794 kal_uint8 call_id;
795 ims_call_related_ss_type_enum opcode;
796 ims_cc_mo_disconnect_cause_enum cause;
797} vdm_atp_cmd_call_related_ss_ind_struct;
798
799typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_call_related_ss_rsp_struct;
800
801typedef vdm_atp_cmd_call_related_ss_ind_struct vdm_atp_cs_cc_call_related_ss_req_struct;
802
803/******************************************************************************
804 * ATH
805 *****************************************************************************/
806typedef struct
807{
808 LOCAL_PARA_HDR
809} vdm_atp_cmd_hangup_all_ind_struct;
810
811typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_hangup_all_rsp_struct;
812
813/******************************************************************************
814 * AT+ECHUP=<call_id>
815 *****************************************************************************/
816typedef struct
817{
818 LOCAL_PARA_HDR
819 kal_uint8 call_id;
820} vdm_atp_cmd_force_hangup_ind_struct;
821
822typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_force_hangup_rsp_struct;
823
824/******************************************************************************
825 * Combine ims_cc_eaic_info_struct with l4b_cc_eaic_info_struct
826 *****************************************************************************/
827typedef struct
828{
829 kal_uint8 number[MAX_CC_ECPI_NUM_LEN];
830 ims_call_type_enum call_type;
831 ims_call_mode_enum call_mode;
832 kal_uint8 redirect_num[MAX_CC_ECPI_NUM_LEN]; // CS CC
833 kal_uint8 digit_to_line_number[IMC_MAX_URI_LENGTH]; // IMS CC
834} vdm_atp_cc_eaic_info_struct;
835
836/******************************************************************************
837 * +EAIC: <call_id>,<number>,<type>,<call_mode>,<seq_no>[,<redirect_num>[,<digit_to_line_num>]]
838 *****************************************************************************/
839typedef struct
840{
841 LOCAL_PARA_HDR
842 kal_uint8 call_id;
843 vdm_atp_cc_eaic_info_struct eaic_info;
844 kal_uint8 seq_no;
845 vdm_enh_volte_si_flow_enum evoltesi_flow;
846} vdm_atp_snd_mt_call_approve_req_struct;
847
848/******************************************************************************
849 * AT+EAIC=<mode>,<call_id>,<seq_no>
850 *****************************************************************************/
851typedef struct
852{
853 LOCAL_PARA_HDR
854 kal_uint8 call_id;
855 kal_uint8 seq_no;
856 vdm_atp_mt_call_approval_mode_enum eaic_mode;
857 ims_cc_eaic_result_enum eaic_result;
858 atp_cmd_mode_enum cmd_mode;
859 kal_uint16 reject_cause;
860} vdm_atp_cmd_mt_call_approve_ind_struct;
861
862typedef struct
863{
864 LOCAL_PARA_HDR
865 atp_cmd_mode_enum cmd_mode;
866 ims_result_code_enum result;
867 ims_err_id_enum err_id;
868 vdm_atp_mt_call_approval_mode_enum eaic_mode;
869} vdm_atp_cmd_mt_call_approve_rsp_struct;
870
871/******************************************************************************
872 * ATA
873 *****************************************************************************/
874typedef struct
875{
876 LOCAL_PARA_HDR
877} vdm_atp_cmd_mt_call_accept_ind_struct;
878
879typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_mt_call_accept_rsp_struct;
880
881/******************************************************************************
882 * VTS=<dtmf>
883 *****************************************************************************/
884typedef struct
885{
886 LOCAL_PARA_HDR
887 kal_uint8 digit;
888} vdm_atp_cmd_dtmf_ind_struct;
889
890typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_dtmf_rsp_struct;
891
892/******************************************************************************
893 * AT+EVTS=<action>,<digit>
894 *****************************************************************************/
895typedef struct
896{
897 LOCAL_PARA_HDR
898 ims_dtmf_action_enum action;
899 kal_uint8 digit;
900} vdm_atp_cmd_ext_dtmf_ind_struct;
901
902typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_ext_dtmf_rsp_struct;
903
904/******************************************************************************
905 * AT+CEER
906 * +CEER:<cause>,<report>
907 * NOTE: ATP maps <ceer_cause> (int) to <report> (char string)
908 *****************************************************************************/
909typedef struct
910{
911 LOCAL_PARA_HDR
912} vdm_atp_cmd_ext_error_report_ind_struct;
913
914typedef struct
915{
916 LOCAL_PARA_HDR
917 ims_ext_error_report_enum ceer_cause;
918 ims_result_code_enum result;
919 ims_err_id_enum err_id;
920 kal_uint16 ecc_category;
921} vdm_atp_cmd_ext_error_report_rsp_struct;
922
923/******************************************************************************
924 * AT+CSTA:<type>
925 * NOTE: ATP multicasts this command to VDM (without rsp) and ATCI
926 *****************************************************************************/
927typedef struct
928{
929 LOCAL_PARA_HDR
930 kal_uint8 type;
931} vdm_atp_cmd_select_type_of_addr_ind_struct;
932
933
934/******************************************************************************
935 * AT+CLCC
936 * +CLCC:<idx>,<dir>,<stat>,<mode>,<mpty>,[<number>,<type>[,<alpha>[,<priority>[,<CLI_validity>]]]]...
937 *****************************************************************************/
938typedef vdm_imc_ims_cc_list_current_calls_req_struct
939 vdm_atp_cmd_list_current_calls_ind_struct;
940
941//avoid modifying ims_interface_md.h, declare new structure for CS CLCC
942typedef struct {
943 kal_uint8 call_id;
944 ims_call_dir_enum dir;
945 ims_call_state_enum call_state;
946 ims_call_mode_enum call_mode;
947 kal_bool mpty; // FALSE: is NOT conference call, TRUE: is conference call
948 ims_call_type_enum call_type;
949 kal_uint8 number[MAX_CC_ATD_NUM_LEN];
950 kal_uint8 cli_validity;
951} vdm_atp_call_list_struct;
952
953typedef struct
954{
955 LOCAL_PARA_HDR
956 kal_uint8 total_call;
957 vdm_atp_call_list_struct call_list[IMS_MAX_CALL_NUM];
958} vdm_atp_cmd_list_current_calls_rsp_struct;
959
960
961/******************************************************************************
962 * AT+CLCCS
963 * +CLCCS: <ccid1>,<dir>,<neg_status_present>,<neg_status>,<SDP_md>,<cs_mode>,<ccstatus>,<mpty>,[,<numbertype>,<ton>,<number>[,<priority_present>,<priority>[,<CLI_validity_present>,<CLI_validity>]]]
964 *****************************************************************************/
965typedef vdm_atp_cmd_list_current_calls_ind_struct
966 vdm_atp_cmd_list_current_calls_ext_ind_struct;
967
968typedef struct {
969 kal_uint8 call_id;
970 l4_call_dir_enum dir;
971 l4_clccs_call_mode_enum clccs_cs_mode;
972 l4_call_ccstatus_enum ccstatus;
973 kal_bool mpty; // FALSE: is NOT conference call, TRUE: is conference call
974 l4_call_number_type_enum number_type;
975 l4_call_type_enum call_type;
976 kal_uint8 number[MAX_SIP_URI_LEN];
977 kal_bool cli_present;
978 kal_uint8 cli_validity;
979} vdm_atp_call_list_ext_struct;
980
981typedef struct
982{
983 LOCAL_PARA_HDR
984 kal_uint8 total_call;
985 vdm_atp_call_list_ext_struct call_list[IMS_MAX_CALL_NUM];
986} vdm_atp_cmd_list_current_calls_ext_rsp_struct;
987
988/******************************************************************************
989 * +EADS: <progress>,<domain>
990 *****************************************************************************/
991typedef struct
992{
993 LOCAL_PARA_HDR
994 ads_indication_progress_enum progress;
995 ads_indication_domain_enum domain;
996} vdm_atp_snd_ads_status_req_struct;
997
998/******************************************************************************
999 * +EIMSINFO: <rat>,<cell_id>,<cell_service>, <plmn_id>,<plmn_type>,
1000 * <lac>,<tac>,<support_emc>,<lte_underly_cs_plmn_id>
1001 *****************************************************************************/
1002typedef struct
1003{
1004 LOCAL_PARA_HDR
1005 rat_enum rat;
1006 cell_service_enum cell_service;
1007 kal_bool is_limited_service_emc_support;
1008 kal_uint32 cell_id;
1009 plmn_id_struct plmn_id;
1010 domain_id_enum domain_id;
1011 plmn_id_struct lte_cs_plmn_id;//LTE underlying CS PLMN ID, only available for LTE combined attach UE
1012#if defined(__NG_ECALL_SUPPORT__)
1013 kal_bool is_ecall_support;
1014#endif
1015} vdm_atp_cell_info_update_ind_struct;
1016
1017/******************************************************************************
1018 * +VMCCMNC: <mcc>,<mnc> (source PSW)
1019 *****************************************************************************/
1020typedef struct
1021{
1022 LOCAL_PARA_HDR
1023 plmn_id_struct plmn_id;
1024} vdm_atp_c2k_mccmnc_ind_struct;
1025
1026/******************************************************************************
1027 * IMS Registration relayed by ATP (source: IMC)
1028 *****************************************************************************/
1029typedef struct
1030{
1031 LOCAL_PARA_HDR
1032 ims_reg_state_enum reg_state;
1033 ims_reg_type_enum reg_type;
1034 ims_access_rat_enum rat;
1035 ims_reg_service_enum reg_service;
1036 ims_reg_event_enum reg_event;
1037 imcb_imc_sip_cause_enum sip_cause;
1038 ims_reg_sub_state_enum reg_sub_state;
1039 kal_bool has_sent_register;
1040} vdm_atp_ims_reg_status_ind_struct;
1041
1042/******************************************************************************
1043 * AT+EVVS=<voice_status>,<is_emergency>
1044 *****************************************************************************/
1045typedef struct
1046{
1047 LOCAL_PARA_HDR
1048 kal_uint8 voice_status;
1049 kal_bool is_emergency;
1050} vdm_atp_cmd_call_status_ind_struct;
1051
1052
1053/******************************************************************************
1054 * TODO
1055 *****************************************************************************/
1056
1057typedef vdm_imc_ims_cc_list_current_calls_req_struct
1058 vdm_atp_cs_cc_list_current_calls_req_struct;
1059
1060typedef struct
1061{
1062 LOCAL_PARA_HDR
1063 // TODO
1064} vdm_atp_snd_ads_attempt_notification_req_struct;
1065
1066typedef struct
1067{
1068 LOCAL_PARA_HDR
1069 // TODO
1070} vdm_atp_snd_ads_end_notification_req_struct;
1071
1072
1073/******************************************************************************
1074 * +CRING: <type>
1075 * NOTE: <type> is string type but without ""
1076 *****************************************************************************/
1077typedef struct
1078{
1079 LOCAL_PARA_HDR
1080} vdm_atp_snd_mt_call_ring_req_struct;
1081
1082#if 0
1083/* under construction !*/
1084/* under construction !*/
1085/* under construction !*/
1086/* under construction !*/
1087#endif
1088
1089/******************************************************************************
1090 * AT+EGMC: <OP>,<Configure_Name>,<Set_Value>
1091 * NOTE:in game mode to release ERRC
1092 *****************************************************************************/
1093typedef struct
1094{
1095 LOCAL_PARA_HDR
1096} vdm_atp_cmd_general_modem_configure_set_struct;
1097
1098/******************************************************************************
1099 * AT+EVOLTESI: <mode>
1100 * NOTE:Enhanced VOLTE Short Interruption is ON/OFF
1101 *****************************************************************************/
1102typedef struct
1103{
1104 LOCAL_PARA_HDR
1105 vdm_trk_enh_volte_si_enum is_enh_volte_si;
1106} vdm_atp_cmd_enh_volte_si_ind_struct;
1107
1108/******************************************************************************
1109 * +ECRFCPY: <call_id>,<call_status>
1110 * NOTE:Enhance VOLTE call status update to normal
1111 *****************************************************************************/
1112typedef struct
1113{
1114 LOCAL_PARA_HDR
1115 kal_uint32 call_id;
1116 ims_enh_volte_si_call_status_enum call_status;
1117} vdm_atp_snd_enh_volte_si_call_status_ind_struct;
1118
1119/******************************************************************************
1120 * +ECONFSRVCC: <call_no>,<call1_id>[,<call2_id>[,<call3_id>[,...]]]
1121 *****************************************************************************/
1122typedef struct
1123{
1124 LOCAL_PARA_HDR
1125 kal_uint32 num_of_conf_parts;
1126 kal_uint32 call_id_table[IMS_MAX_CALL_NUM];
1127} vdm_atp_snd_srvcc_conf_call_id_req_struct;
1128
1129
1130/******************************************************************************
1131 * +EVADSREP: <domain>
1132 *****************************************************************************/
1133typedef struct
1134{
1135 LOCAL_PARA_HDR
1136 vdm_ads_result_enum ads_result;
1137} vdm_atp_snd_ads_result_report_req_struct;
1138
1139
1140/******************************************************************************
1141 * +ERDECCIND: <call_id>
1142 *****************************************************************************/
1143typedef struct
1144{
1145 LOCAL_PARA_HDR
1146 kal_uint8 call_id;
1147} vdm_atp_snd_ads_switch_to_emergency_req_struct;
1148
1149
1150/******************************************************************************
1151 * IMS Handover (WIFI/LTE) status relayed by ATP (source: IMC)
1152 *****************************************************************************/
1153typedef struct
1154{
1155 LOCAL_PARA_HDR
1156 ims_access_rat_enum source_rat;
1157 ims_access_rat_enum target_rat;
1158 ims_reg_type_enum reg_type;
1159} vdm_atp_ims_handover_start_ind_struct;
1160
1161typedef struct
1162{
1163 LOCAL_PARA_HDR
1164 ims_access_rat_enum source_rat;
1165 ims_access_rat_enum target_rat;
1166 kal_bool result;
1167 ims_reg_type_enum reg_type;
1168} vdm_atp_ims_handover_end_ind_struct;
1169
1170/******************************************************************************
1171 * +EICE: <ims_call_exist>,<is_emergency>,<ims_access_rat>
1172 *****************************************************************************/
1173typedef struct
1174{
1175 LOCAL_PARA_HDR
1176 kal_uint32 is_ims_call_exist;
1177 kal_bool is_emergency;
1178 ims_access_rat_enum ims_access_rat;
1179#ifdef __TC01_IMS_SUPPORT__
1180 kal_uint32 call_id;
1181 ap_call_state_enum call_state;
1182 ap_call_reason_enum call_reason;
1183 ap_call_type_enum call_type;
1184#endif
1185} vdm_atp_cmd_ims_call_exist_ind_struct;
1186
1187/******************************************************************************
1188 * AT+ECNWS=<available_rat>,<prefer_rat>
1189 *****************************************************************************/
1190typedef struct
1191{
1192 LOCAL_PARA_HDR
1193 rat_enum available_rat;
1194 rat_enum prefer_rat;
1195} vdm_atp_cmd_call_nw_scan_ind_struct;
1196
1197/******************************************************************************
1198 * AT+EDCONF
1199 *****************************************************************************/
1200typedef struct
1201{
1202 LOCAL_PARA_HDR
1203 kal_uint8 conf_call_participants;
1204 kal_uint8 conf_call_number_list[IMS_MAX_CALL_NUM_IN_CONF][MAX_CC_ATD_NUM_LEN];
1205 kal_bool is_video_call;
1206} vdm_atp_cmd_dial_conf_ind_struct;
1207
1208typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_dial_conf_rsp_struct;
1209
1210/******************************************************************************
1211 * +ECONFCHECK:<num_of_conf_call_members>,<is_allowed>[,<is_allowed>...
1212 *****************************************************************************/
1213typedef struct
1214{
1215 LOCAL_PARA_HDR
1216 kal_uint8 conf_call_participants;
1217 kal_bool is_allowed[IMS_MAX_CALL_NUM_IN_CONF];
1218} vdm_atp_snd_conf_check_result_req_struct;
1219
1220
1221/******************************************************************************
1222 * +QUERYTRN: <call_id>
1223 *****************************************************************************/
1224typedef struct
1225{
1226 LOCAL_PARA_HDR
1227 kal_uint8 call_id;
1228 kal_uint8 dial_string[MAX_CC_ECPI_NUM_LEN];
1229 kal_uint8 from_line[IMC_MAX_URI_LENGTH];
1230} vdm_atp_snd_digits_trn_query_req_struct;
1231
1232/******************************************************************************
1233 * AT+DIGITSTRN=<call_id>,<TRN>
1234 *****************************************************************************/
1235typedef struct
1236{
1237 LOCAL_PARA_HDR
1238 kal_uint8 call_id;
1239 kal_uint8 trn[MAX_CC_ATD_NUM_LEN];
1240} vdm_atp_cmd_ads_digits_trn_ind_struct;
1241
1242
1243/******************************************************************************
1244 * EVTA
1245 *****************************************************************************/
1246typedef struct
1247{
1248 LOCAL_PARA_HDR
1249 kal_uint8 call_id;
1250 ims_cc_evta_mode_enum mode;
1251} vdm_atp_cmd_mt_vt_special_accept_ind_struct;
1252
1253typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_mt_vt_special_accept_rsp_struct;
1254
1255/******************************************************************************
1256 * AT+EIMSCCP=<op> / AT+ECCP=<op>
1257 *****************************************************************************/
1258typedef struct
1259{
1260 LOCAL_PARA_HDR
1261 vdm_video_capability_enum video_capability;
1262 kal_bool on_off;
1263} vdm_atp_cmd_video_capability_ind_struct;
1264
1265/******************************************************************************
1266 * AT+EIMSCFG = <volte_cfg>, <vilte_cfg>, <vowifi_cfg>, <viwifi_cfg>, <ims_sms_cfg>, <eims_cfg>
1267 *****************************************************************************/
1268typedef struct
1269{
1270 LOCAL_PARA_HDR
1271 ims_cap_rat_enum vo3gpp_enable; // currently not used by VDM
1272 ims_cap_rat_enum vi3gpp_enable; // previous AT+EIMSCCP
1273 kal_bool is_vowifi_enable; // previous AT+EIMSWFC
1274 kal_bool is_viwifi_enable; // previous AT+EIMSCCP, AP did not have this configuration
1275} vdm_atp_cmd_ims_config_ind_struct;
1276
1277/******************************************************************************
1278 * +EC2KREG: <domain>,<state>,<service>
1279 *****************************************************************************/
1280typedef struct
1281{
1282 LOCAL_PARA_HDR
1283 domain_id_enum domain;
1284 kal_bool state;
1285 irat_ps_type_enum service;
1286} vdm_atp_c2k_service_state_ind_struct;
1287
1288/******************************************************************************
1289 * +EC2KCI: <is_cs_conn_ongoing>
1290 *****************************************************************************/
1291typedef struct
1292{
1293 LOCAL_PARA_HDR
1294 kal_bool is_cs_conn_ongoing;
1295} vdm_atp_c2k_1x_conn_status_ind_struct;
1296
1297/******************************************************************************
1298 * +EXXX: <reported_rat>
1299 *****************************************************************************/
1300typedef struct
1301{
1302 LOCAL_PARA_HDR
1303 kal_uint8 reported_rat;
1304} vdm_atp_reported_rat_ind_struct;
1305
1306/******************************************************************************
1307 * AT+EHVOLTE=<mode>,<submode>
1308 * This command is used to set hvolte mode
1309 *****************************************************************************/
1310typedef struct
1311{
1312 LOCAL_PARA_HDR
1313 hvolte_mode_enum mode;
1314 kal_uint8 submode;
1315} vdm_atp_gmss_set_hvolte_mode_req_struct;
1316
1317typedef vdm_atp_common_at_cnf_struct vdm_atp_gmss_set_hvolte_mode_cnf_struct;
1318
1319/******************************************************************************
1320 * AT+EMCS=<mode>
1321 * This command is used to set emergency call session start and end
1322 *****************************************************************************/
1323typedef struct
1324{
1325 LOCAL_PARA_HDR
1326} vdm_atp_emc_session_start_ind_struct;
1327
1328typedef struct
1329{
1330 LOCAL_PARA_HDR
1331} vdm_atp_emc_session_stop_ind_struct;
1332
1333/******************************************************************************
1334 * AT+EMCB=<mode>
1335 * This command is used to set emergency callback mode
1336 *****************************************************************************/
1337typedef struct
1338{
1339 LOCAL_PARA_HDR
1340} vdm_atp_emcb_mode_start_req_struct;
1341
1342typedef struct
1343{
1344 LOCAL_PARA_HDR
1345} vdm_atp_emcb_mode_stop_req_struct;
1346
1347/******************************************************************************
1348 * AT+VMEMEXIT
1349 * This command is used to exit emergency callback mode
1350 *****************************************************************************/
1351typedef struct
1352{
1353 LOCAL_PARA_HDR
1354} vdm_atp_cmd_exit_emcb_ind_struct;
1355
1356/******************************************************************************
1357 * +ESVC:<emergency_service_category>
1358 *****************************************************************************/
1359typedef struct
1360{
1361 LOCAL_PARA_HDR
1362 kal_uint16 emergency_service_category;
1363 atp_cmd_mode_enum cmd_mode;
1364} vdm_atp_cmd_emerg_serv_cat_ind_struct;
1365
1366typedef struct
1367{
1368 LOCAL_PARA_HDR
1369 kal_uint16 emergency_service_category;
1370 ims_result_code_enum result;
1371 ims_err_id_enum err_id;
1372 atp_cmd_mode_enum cmd_mode;
1373} vdm_atp_cmd_emerg_serv_cat_rsp_struct;
1374
1375/******************************************************************************
1376 * AT+EHVOLTE=0,1
1377 * indication for silent redial event from AP to MD
1378 *****************************************************************************/
1379typedef struct
1380{
1381 LOCAL_PARA_HDR
1382} vdm_atp_hvolte_silent_redial_ind_struct;
1383
1384/******************************************************************************
1385 * AT+ECBM
1386 * This command is used to enter/exit emergency callback mode
1387 *****************************************************************************/
1388
1389typedef struct
1390{
1391 LOCAL_PARA_HDR
1392 rat_enum ecbm_rat_mode;
1393} vdm_atp_ecbm_mode_start_req_struct;
1394
1395typedef struct
1396{
1397 LOCAL_PARA_HDR
1398 rat_enum ecbm_rat_mode;
1399} vdm_atp_ecbm_mode_stop_req_struct;
1400
1401/******************************************************************************
1402 * AT+ECFGSET=<cfg_name>,<cfg_value>
1403 * Set VDM setting through this AT command
1404 *****************************************************************************/
1405typedef struct {
1406 LOCAL_PARA_HDR
1407 kal_uint8 name[64];
1408 kal_uint8 value[128];
1409} vdm_atp_ecfg_set_ind_struct;
1410
1411typedef vdm_atp_common_at_rsp_struct vdm_atp_ecfg_set_rsp_struct;
1412
1413/******************************************************************************
1414 * AT+EIMSRTT=<op>
1415 * Set rtt_capability through this AT command
1416 *****************************************************************************/
1417typedef struct {
1418 LOCAL_PARA_HDR
1419 kal_uint8 operation;
1420} vdm_atp_cmd_rtt_capability_ind_struct;
1421
1422typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_rtt_capability_rsp_struct;
1423
1424/******************************************************************************
1425 * AT+ESELFACT="<key>","<value>"
1426 * Set Vzw self-activation feature related value through this AT command
1427 *****************************************************************************/
1428typedef struct {
1429 LOCAL_PARA_HDR
1430 kal_uint8 key[16];
1431 kal_uint8 value[16];
1432} vdm_atp_cmd_self_activation_ind_struct;
1433
1434typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_self_activation_rsp_struct;
1435
1436/******************************************************************************
1437 * AT+VMEMEXIT result
1438 *****************************************************************************/
1439typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_vmemexit_rsp_struct;
1440
1441/******************************************************************************
1442 * AT+EMCS=<mode>[,<airplane_mode>,<ims_reg_state>]
1443 *****************************************************************************/
1444typedef struct
1445{
1446 LOCAL_PARA_HDR
1447 kal_uint8 mode;
1448 kal_uint8 airplane_mode;
1449 kal_uint8 ims_reg_state;
1450 atp_channel_enum ch_id;
1451 kal_bool is_stop_from_ap;
1452} atp_vdm_cmd_emcs_req_struct;
1453
1454typedef struct
1455{
1456 LOCAL_PARA_HDR
1457 kal_uint8 mode;
1458 kal_uint8 airplane_mode;
1459 kal_uint8 ims_reg_state;
1460 atp_channel_enum ch_id;
1461 kal_bool response_at_ok;
1462} atp_vdm_cmd_emcs_cnf_struct;
1463
1464/******************************************************************************
1465 * AT+EMCSS=<mode>,<available_rat>,<prefer_rat>
1466 *****************************************************************************/
1467typedef struct
1468{
1469 LOCAL_PARA_HDR
1470 kal_uint8 mode;
1471 rat_enum available_rat;
1472 rat_enum prefer_rat;
1473}atp_vdm_cmd_emcss_ind_struct;
1474
1475/******************************************************************************
1476 * AT+ECBM=<mode>,<rat_mode>
1477 *****************************************************************************/
1478typedef struct
1479{
1480 LOCAL_PARA_HDR
1481 kal_uint8 mode;
1482 rat_enum rat_mode;
1483} atp_vdm_cmd_ecbm_req_struct;
1484
1485/******************************************************************************
1486 * +EMCSS: <available_rat>,<cause>
1487 *****************************************************************************/
1488typedef struct
1489{
1490 LOCAL_PARA_HDR
1491 rat_enum available_rat;
1492 vdm_emcss_cause_enum cause;
1493} atp_vdm_snd_emcss_urc_req_struct;
1494
1495/******************************************************************************
1496 * +ECNWS: <proc_status>
1497 *****************************************************************************/
1498typedef struct
1499{
1500 LOCAL_PARA_HDR
1501 proc_status_enum status;
1502} atp_vdm_snd_ecnws_urc_req_struct;
1503
1504/******************************************************************************
1505 * +CIEV: 102,<ecbm_status>
1506 * ecbm_status:
1507 * 0 - ECBM end
1508 * 1 - ECBM start
1509 * 2 - disable ECBM (notify AP need not to enter ECBM, leave emc mode directly)
1510 *****************************************************************************/
1511typedef struct
1512{
1513 LOCAL_PARA_HDR
1514 kal_uint8 ecbm_status;
1515} atp_vdm_snd_ecbm_urc_req_struct;
1516
1517/******************************************************************************
1518 * AT+ERDECCAPV=<is_approve>,<call_id>
1519 * Set leaving flight mode result through this AT command
1520 *****************************************************************************/
1521typedef struct {
1522 LOCAL_PARA_HDR
1523 kal_uint8 is_approve;
1524 kal_uint8 call_id;
1525} vdm_atp_cmd_switch_to_emergency_ind_struct;
1526
1527/******************************************************************************
1528 * AT+ESRVCCTFR: <call_num>, <call1_id>,<call1_mode>,<call1_direction>,<call1_state>,<call1_ecc_category>,<call1_number type>,<call1_number>,<call1_alpha>,<call1_CLI validity>
1529 *****************************************************************************/
1530typedef struct
1531{
1532 kal_uint8 call_id; /* call_id_ims = call_id_ap */
1533 ims_srvcc_call_mode_enum call_mode;
1534 ims_srvcc_call_direction_enum call_direction;
1535 ims_srvcc_call_state_enum call_state;
1536 ims_srvcc_call_ecc_category_enum call_ecc_category;
1537 ims_srvcc_call_number_format_enum call_number_format;
1538 kal_uint8 call_number[IMC_MAX_URI_LENGTH];
1539 //these two parameter is defined by L4 but seems not used by IMS CC
1540 kal_uint8 call_alpha[MAX_PS_NAME_SIZE + 1]; // MAX_PS_NAME_SIZE: 42
1541 kal_uint8 cli;
1542
1543 //just for TK compatible, not sure how to use this in TC01 project
1544 kal_uint8 num_of_conf_parts;
1545} ims_srvcc_call_ctxt_to_cs_struct;
1546
1547typedef struct
1548{
1549 LOCAL_PARA_HDR
1550 kal_uint32 num_call;
1551 ims_srvcc_call_ctxt_to_cs_struct srvcc_call_ctxt_to_cs_domain[IMS_MAX_CALL_NUM];
1552} vdm_atp_cmd_srvcc_context_transfer_ind_struct; //MSG_ID_VDM_ATP_CMD_SRVCC_CONTEXT_TRANSFER_IND
1553
1554/******************************************************************************
1555 * +ESRVCCTFR: <call_no>[,<call1_id>[,<call2_id>[,...]]]
1556 *****************************************************************************/
1557typedef struct
1558{
1559 LOCAL_PARA_HDR
1560 kal_uint32 num_of_call_instances;
1561 kal_uint32 call_id_table[IMS_MAX_CALL_NUM];
1562} vdm_atp_cmd_srvcc_context_transfer_rsp_struct; // MSG_ID_VDM_ATP_CMD_SRVCC_CONTEXT_TRANSFER_RSP
1563
1564/******************************************************************************
1565 * +ERESELR:<result>
1566 *****************************************************************************/
1567typedef struct
1568{
1569 LOCAL_PARA_HDR
1570 kal_bool result; //0, fail; 1, success
1571} vdm_atp_ssac_resel_result_ind_struct;
1572
1573/******************************************************************************
1574 * AT+EMGC
1575 *****************************************************************************/
1576typedef enum {
1577 VDM_EMGC_OP_QUERY = 0,
1578 VDM_EMGC_OP_SET
1579} vdm_atp_emgc_op_enum;
1580
1581typedef struct {
1582 LOCAL_PARA_HDR
1583 vdm_atp_emgc_op_enum op;
1584 kal_uint8 name[VDM_AT_CMD_TO_MD_NAME_LEN];
1585 kal_uint8 value[VDM_AT_CMD_TO_MD_VALUE_LEN];
1586} vdm_atp_at_cmd_to_md_ind_struct;
1587
1588/******************************************************************************
1589 * AT+EVODATA = <en>[,<data_mode>[,<allow_rat>]]
1590 *****************************************************************************/
1591typedef struct
1592{
1593 LOCAL_PARA_HDR
1594 kal_bool is_vodata_enable;
1595} vdm_atp_cmd_evodata_config_ind_struct;
1596
1597#if defined(__ECALL_SUPPORT__) || defined(__NG_ECALL_SUPPORT__)
1598/******************************************************************************
1599 * AT+CECALL=<type_of_eCall>[,<format>,<msd_data_length>,<msd_data>]
1600 * Dial eCall through this AT command
1601 *****************************************************************************/
1602typedef struct {
1603 LOCAL_PARA_HDR
1604 ecall_type_enum ecall_type;
1605 ecall_format_enum ecall_format;
1606 kal_uint8 msd_data_len;
1607 kal_uint8 msd_data[MAX_MSD_LENGTH];
1608} vdm_atp_cmd_dial_ecall_ind_struct;
1609
1610typedef vdm_atp_common_at_rsp_struct vdm_atp_cmd_dial_ecall_rsp_struct;
1611#endif
1612#endif // _VDM_ATP_STRUCT_H_
1613