blob: 29afb3c1ee42499cc843ea0e9338a13c800ae2db [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/*******************************************************************************
37 *==============================================================================
38 * HISTORY
39 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
40 *------------------------------------------------------------------------------
41 * removed!
42 *
43 * removed!
44 * removed!
45 * removed!
46 * removed!
47 *
48 * removed!
49 * removed!
50 * removed!
51 * removed!
52 *
53 * removed!
54 * removed!
55 * removed!
rjw04b9c952023-03-28 14:35:43 +080056 * removed!
57 *
58 * removed!
59 * removed!
60 * removed!
rjw6c1fd8f2022-11-30 14:33:01 +080061 *
62 * removed!
63 * removed!
64 * removed!
65 *
66 * removed!
67 * removed!
68 * removed!
69 *
70 * removed!
71 * removed!
72 * removed!
73 *
74 * removed!
75 * removed!
76 * removed!
77 *
78 * removed!
79 * removed!
80 *
81 * removed!
82 * removed!
83 *
84 * removed!
85 * removed!
86 * removed!
87 * removed!
88 *
89 * removed!
90 * removed!
91 * removed!
92 * removed!
93 *
94 * removed!
95 * removed!
96 * removed!
97 * removed!
98 *
99 * removed!
100 * removed!
101 * removed!
102 * removed!
103 *
104 * removed!
105 * removed!
106 * removed!
107 * removed!
108 * removed!
109 * removed!
110 *
111 * removed!
112 * removed!
113 * removed!
114 *
115 * removed!
116 * removed!
117 * removed!
118 *
119 * removed!
120 * removed!
121 * removed!
122 * removed!
123 *
124 * removed!
125 * removed!
126 * removed!
127 *
128 * removed!
129 * removed!
130 * removed!
131 *
132 * removed!
133 * removed!
134 *
135 * removed!
136 * removed!
137 * removed!
138 * removed!
139 * removed!
140 * removed!
141 * removed!
142 * removed!
143 * removed!
144 * removed!
145 * removed!
146 * removed!
147 * removed!
148 * removed!
149 * removed!
150 * removed!
151 * removed!
152 * removed!
153 * removed!
154 *
155 * removed!
156 * removed!
157 * removed!
158 * removed!
159 *
160 * removed!
161 * removed!
162 *
163 * removed!
164 * removed!
165 * removed!
166 * removed!
167 * removed!
168 *
169 * removed!
170 * removed!
171 * removed!
172 *
173 * removed!
174 * removed!
175 *
176 * removed!
177 * removed!
178 *
179 * removed!
180 * removed!
181 *
182 * removed!
183 * removed!
184 * removed!
185 *
186 * removed!
187 * removed!
188 * removed!
189 *
190 * removed!
191 * removed!
192 * removed!
193 * removed!
194 *
195 * removed!
196 * removed!
197 * removed!
198 * removed!
199 * removed!
200 * removed!
201 *
202 * removed!
203 * removed!
204 * removed!
205 *
206 * removed!
207 * removed!
208 * removed!
209 *
210 * removed!
211 * removed!
212 * removed!
213 *
214 * removed!
215 * removed!
216 *
217 * removed!
218 * removed!
219 * removed!
220 *
221 * removed!
222 * removed!
223 * removed!
224 * removed!
225 *
226 * removed!
227 * removed!
228 * removed!
229 *
230 * removed!
231 * removed!
232 * removed!
233 *
234 * removed!
235 * removed!
236 * removed!
237 * removed!
238 *
239 * removed!
240 * removed!
241 * removed!
242 * removed!
243 *
244 * removed!
245 * removed!
246 * removed!
247 *
248 * removed!
249 * removed!
250 * removed!
251 *
252 * removed!
253 * removed!
254 * removed!
255 *
256 * removed!
257 * removed!
258 * removed!
259 *
260 * removed!
261 * removed!
262 * removed!
263 *
264 * removed!
265 * removed!
266 * removed!
267 * removed!
268 * removed!
269 * removed!
270 * removed!
271 *
272 * removed!
273 * removed!
274 * removed!
275 *
276 * removed!
277 * removed!
278 * removed!
279 *
280 * removed!
281 * removed!
282 * removed!
283 *
284 * removed!
285 * removed!
286 *
287 * removed!
288 * removed!
289 * removed!
290 *
291 * removed!
292 * removed!
293 * removed!
294 *
295 * removed!
296 * removed!
297 * removed!
298 *
299 * removed!
300 * removed!
301 * removed!
302 *
303 * removed!
304 * removed!
305 * removed!
306 *
307 * removed!
308 * removed!
309 * removed!
310 *
311 * removed!
312 * removed!
313 * removed!
314 *
315 * removed!
316 * removed!
317 * removed!
318 *
319 * removed!
320 * removed!
321 * removed!
322 *
323 * removed!
324 * removed!
325 * removed!
326 * removed!
327 *
328 * removed!
329 * removed!
330 * removed!
331 *
332 * removed!
333 * removed!
334 * removed!
335 *
336 * removed!
337 * removed!
338 * removed!
339 *
340 * removed!
341 * removed!
342 * removed!
343 * removed!
344 *
345 * removed!
346 * removed!
347 * removed!
348 * removed!
349 *
350 * removed!
351 * removed!
352 * removed!
353 *
354 * removed!
355 * removed!
356 * removed!
357 *
358 * removed!
359 * removed!
360 * removed!
361 *
362 * removed!
363 * removed!
364 * removed!
365 *
366 * removed!
367 * removed!
368 * removed!
369 *
370 * removed!
371 * removed!
372 * removed!
373 *
374 * removed!
375 * removed!
376 * removed!
377 *
378 * removed!
379 * removed!
380 * removed!
381 *
382 * removed!
383 * removed!
384 * removed!
385 *
386 * removed!
387 * removed!
388 * removed!
389 *
390 * removed!
391 * removed!
392 * removed!
393 *
394 * removed!
395 * removed!
396 * removed!
397 * removed!
398 * removed!
399 * removed!
400 *
401 * removed!
402 * removed!
403 * removed!
404 *
405 * removed!
406 * removed!
407 * removed!
408 * removed!
409 *
410 * removed!
411 * removed!
412 * removed!
413 * removed!
414 *
415 * removed!
416 * removed!
417 * removed!
418 * removed!
419 * removed!
420 * removed!
421 *
422 * removed!
423 * removed!
424 * removed!
425 * removed!
426 * removed!
427 * removed!
428 *
429 * removed!
430 * removed!
431 * removed!
432 * removed!
433 *
434 * removed!
435 * removed!
436 * removed!
437 * removed!
438 *
439 * removed!
440 * removed!
441 * removed!
442 *
443 * removed!
444 * removed!
445 * removed!
446 *
447 * removed!
448 * removed!
449 * removed!
450 *
451 * removed!
452 * removed!
453 * removed!
454 * removed!
455 * removed!
456 * removed!
457 *
458 * removed!
459 * removed!
460 * removed!
461 *
462 * removed!
463 * removed!
464 * removed!
465 * removed!
466 *
467 * removed!
468 * removed!
469 *
470 * removed!
471 * removed!
472 * removed!
473 *
474 * removed!
475 * removed!
476 * removed!
477 *
478 * removed!
479 * removed!
480 * removed!
481 *
482 * removed!
483 * removed!
484 * removed!
485 *
486 * removed!
487 * removed!
488 * removed!
489 * removed!
490 * removed!
491 * removed!
492 * removed!
493 *
494 * removed!
495 * removed!
496 * removed!
497 *
498 * removed!
499 * removed!
500 * removed!
501 *
502 * removed!
503 * removed!
504 * removed!
505 * removed!
506 *
507 * removed!
508 * removed!
509 * removed!
510 *
511 * removed!
512 * removed!
513 * removed!
514 *
515 * removed!
516 * removed!
517 * removed!
518 *
519 *------------------------------------------------------------------------------
520 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
521 *==============================================================================
522 *******************************************************************************/
523
524#ifndef _ATP_IMC_STRUCT_H
525#define _ATP_IMC_STRUCT_H
526
527#include "l3_inc_local.h"
528#include "l3_inc_enums.h"
529#include "ps_public_enum.h"
530#include "sim_public_enum.h"
531#include "imc_msgid.h"
532#include "ims_common_def.h"
533
534typedef enum
535{
536 IMS_CS_CALL_START = 0,
537 IMS_CS_CALL_END,
538 IMS_CS_CALL_OTHERS,
539} ims_cs_call_status_enum;
540
541typedef enum
542{
543 VOICE_DOMAIN_STATUS_START = 0,
544 VOICE_DOMAIN_STATUS_STOP
545}voice_domain_status_enum;
546
547typedef enum
548{
549 IMS_1X_CALL_END = 0,
550 IMS_1X_CALL_START,
551 IMS_1X_CALL_OTHERS,
552} ims_1x_call_status_enum;
553
554/*************************/
555/* IMS Registration enum */
556/*************************/
557typedef enum {
558 IMS_VOPS_NOT_SUPPORTED = 0,
559 IMS_VOPS_SUPPORTED
560} vops_enum;
561
562// mirror from rmmi_reg_state_enum and nas_reg_status_enum @/mcu/modem/interface/ims/vdm_atp_struct.h
563typedef enum
564{
565 NAS_PS_REG_STATUS_NOT_REGISTERED = 0,
566 NAS_PS_REG_STATUS_REGISTERED_HOME,
567 NAS_PS_REG_STATUS_NOT_REGISTERED_SEARCHING,
568 NAS_PS_REG_STATUS_REG_DENIED,
569 NAS_PS_REG_STATUS_OUT_OF_COVERAGE,
570 NAS_PS_REG_STATUS_REGISTERED_ROAMING,
571 NAS_PS_REG_STATUS_SMS_ONLY_HOME,
572 NAS_PS_REG_STATUS_SMS_ONLY_ROAMING,
573 NAS_PS_REG_STATUS_EMERGENCY_ONLY,
574 NAS_PS_REG_STATUS_CSFB_NOT_PREFERRED_HOME,
575 NAS_PS_REG_STATUS_CSFB_NOT_PREFERRED_ROAMING
576} nas_ps_reg_status_enum;
577
578typedef enum
579{
580 WIFI_STATE_OFF = 0,
581 WIFI_STATE_ON
582}wifi_state_enum;
583
584typedef enum
585{
586 WIFI_STATE_CAUSE_GENERAL = 0,
587 WIFI_STATE_CAUSE_UI_DISABLE,
588 WIFI_STATE_CAUSE_MAX
589}wifi_state_cause_enum;
590
591typedef enum
592{
593 WIFI_STATE_TARGET_RAN_UNKNOWN = 0,
594 WIFI_STATE_TARGET_RAN_3GPP = 1,
595 WIFI_STATE_TARGET_RAN_WIFI = 2,
596 WIFI_STATE_TARGET_RAN_NONE = 254,
597 WIFI_STATE_TARGET_RAN_MAX = 255
598}wifi_state_target_ran_enum;
599
600typedef enum
601{
602 IMS_DEREG_CAUSE_BY_NONE = 0,
603 IMS_DEREG_CAUSE_BY_DATA_DEATTACH,
604 IMS_DEREG_CAUSE_BY_SS_CONFIG,
605 IMS_DEREG_CAUSE_BY_IMS_RECONFIG,
606 IMS_DEREG_CAUSE_BY_D2,
607 IMS_DEREG_CAUSE_BY_D2_REFRESH,
608 IMC_DEREG_CAUSE_BY_MAX
609}ims_dereg_cause_by_enum;
610
611typedef enum
612{
613 IMS_RF_OFF_TYPE_UNSPEC = 0,
614 IMS_RF_OFF_TYPE_EFUN = 1,
615 IMS_RF_OFF_TYPE_CFUN = 2
616}ims_rf_off_type_enum;
617
618typedef enum
619{
620 ECBM_STATE_STOP = 0,
621 ECBM_STATE_START = 1
622}ecbm_state_enum;
623
624typedef enum
625{
626 ECBM_CAUSE_TIMER_EXPIRED = 0,
627 ECBM_CAUSE_ANOTHER_CALL = 1,
628 ECBM_CAUSE_URC_TO_AP = 2, //IMC ignore when state is STOP
629}ecbm_cause_enum;
630
631typedef enum {
632 ATP_EGMC_OP_QUERY = 0,
633 ATP_EGMC_OP_SET,
634} atp_egmc_op_enum;
635
636typedef enum{
637 ATP_IMC_DRP_FLUSH_NVRAM = 0,
638 ATP_IMC_DRP_DUMP_TO_NVRAM,
639}atp_imc_drp_enum;
640/*
641* This enum only use for unblocking AT+ECCTRL to indicate AP should wait for network's response.
642* This enum values should be aligned with ims_cc_result_enum, using unused value of ims_cc_result_enum.
643*/
644typedef enum{
645 WAITING_FOR_NW_RESPONSE = -128,
646}CALL_CONTROL_PROVISIONAL_RESULT;
647
648typedef enum {
649 IMS_ECCTRL_STATE_CHANGE_HELD = 131,
650 IMS_ECCTRL_STATE_CHANGE_ACTIVE = 132
651} ims_ecctrl_enum;
652
653typedef struct {
654 LOCAL_PARA_HDR
655 ims_result_code_enum result;
656 ims_err_id_enum err_id;
657} atp_imc_common_at_rsp_struct;
658typedef atp_imc_common_at_rsp_struct atp_imc_common_at_cnf_struct;
659/*******************************/
660/* IMS Registration interface */
661/*******************************/
662/*
663 * Description
664 * - the primitive is used for PS to notify IMC that the operation modes for collecting
665 * - six conditions which mentioned in TS24.229 Annex L3.1.2.
666 * Direction
667 * - PS -> IMC
668 */
669typedef struct {
670 LOCAL_PARA_HDR
671 ue_mode_enum ue_mode_op;
672} atp_imc_ue_mode_update_req_struct;
673
674/*
675 * Description
676 * - the primitive is used for PS to notify IMC that UE is attached to NW or not, and IMSVoPS indicator
677 * - six conditions which mentioned in TS24.229 Annex L3.1.2.
678 * Direction
679 * - PS -> IMC
680 */
681typedef struct {
682 LOCAL_PARA_HDR
683#if 0
684/* under construction !*/
685#endif
686 vops_enum ims_vops;
687} atp_imc_imsvops_notification_req_struct;
688
689/*
690 * Description
691 * - the primitive is used for PS to notify IMC rat_type, cell_id, PLMN_type
692 * Direction
693 * - PS -> IMC
694 */
695typedef struct {
696 LOCAL_PARA_HDR
697 ims_rat_type_enum rat_type;
698 kal_uint32 cell_id;
699 cell_service_enum cell_service;
700 plmn_id_struct plmn_id;
701 plmn_type_enum plmn_type;
702 kal_uint8 la_code[2];
703 kal_uint8 ta_code[2];
704 kal_bool limited_service_emc_support;
705 domain_id_enum domain;
706 kal_bool is_empty_cell;
707} atp_imc_cell_info_update_req_struct;
708typedef atp_imc_cell_info_update_req_struct atp_imc_eimsinfo_req_struct;
709
710
711/*
712 * Description
713 * - the primitive is used for IMC identifing core network is support Emergency Bearer Service or not
714 * Direction
715 * - PS -> IMC
716 */
717typedef struct {
718 LOCAL_PARA_HDR
719 kal_bool is_emb_s1_support;
720} atp_imc_emb_s1_supp_req_struct; /* Obsolete: to be removed after code change */
721
722typedef struct {
723 LOCAL_PARA_HDR
724 ims_access_rat_enum rat_type;
725 kal_bool is_emb_support;
726} atp_imc_emb_support_req_struct;
727
728/*
729 * Description
730 * - the primitive is used for PS to notify IMC to do
731 * - 1. IMS de-registration
732 * - 2. Release PDN/signaling bearer and media bearer
733 * Direction
734 * - PS -> IMC
735 */
736typedef struct {
737 LOCAL_PARA_HDR
738 ims_dereg_cause_enum reason;
739 ims_rf_off_type_enum rf_off_type;
740 rfoff_cause_enum rf_off_cause;
741} atp_imc_power_off_req_struct;
742
743/*
744 * Description
745 * - the primitive is used for IMC to notify PS that IMS registration start.
746 * Direction
747 * - IMC -> PS
748 */
749typedef struct {
750 LOCAL_PARA_HDR
751 ims_reg_type_enum reg_type; //IMS_REG_TYPE_NORMAL=0, IMS_REG_TYPE_EMERGENCY=1
752} atp_imc_ims_reg_start_ind_struct;
753
754/*
755 * Description
756 * - the primitive is used for IMC to notify PS that IMS deregistration start.
757 * Direction
758 * - IMC -> PS
759 */
760typedef struct {
761 LOCAL_PARA_HDR
762 ims_reg_type_enum dereg_type; //IMS_REG_TYPE_NORMAL=0, IMS_REG_TYPE_EMERGENCY=1
763} atp_imc_ims_dereg_start_ind_struct;
764
765/*
766 * Description
767 * - the primitive is used for IMC to notify PS send exit ECBM to AP when PDN is deactivated.
768 * Direction
769 * - IMC -> PS
770 */
771typedef struct {
772 LOCAL_PARA_HDR
773 kal_bool reserve;
774} atp_imc_ims_exit_start_ind_struct;
775
776/*
777 * Description
778 * - the primitive is used for IMC to notify PS current IMS ENABLE state.
779 * Direction
780 * - IMC -> PS
781 */
782typedef struct {
783 LOCAL_PARA_HDR
784 kal_bool is_enabled;
785} atp_imc_ims_enable_ind_struct;
786
787/*
788 * Description
789 * - the primitive is used for IMC to notify +EIMS:0/1
790 * Direction
791 * - IMC -> PS
792 */
793typedef struct {
794 LOCAL_PARA_HDR
795 kal_bool is_enable;
796} atp_imc_eims_urc_ind_struct;
797
798/*
799 * Description
800 * - the primitive is acknowledge of "IMC_REG_POWER_OFF_IND"
801 * Direction
802 * - IMC -> PS
803 */
804typedef struct {
805 LOCAL_PARA_HDR
806 ims_dereg_cause_enum reason;
807 ims_rf_off_type_enum rf_off_type;
808} atp_imc_power_off_cnf_struct;
809
810/*
811 * @brief
812 * @note MSG_ID_ATP_IMC_ECFG_SET_REQ
813 * AT> AT+ECFGSET=<cfg_name>,<cfg_value>
814 */
815typedef struct {
816 LOCAL_PARA_HDR
817 kal_uint8 name[64];
rjw04b9c952023-03-28 14:35:43 +0800818 kal_uint8 value[256];
rjw6c1fd8f2022-11-30 14:33:01 +0800819} atp_imc_ecfg_set_req_struct;
820
821/*
822 * @brief
823 * @note MSG_ID_ATP_IMC_ECFG_SET_CNF
824 * AT< OK or +CME ERROR:<err>
825 */
826typedef struct {
827 LOCAL_PARA_HDR
828 kal_bool result; // KAL_TRUE-success; KAL_FALSE-fail
829 ims_err_id_enum cause; // return "IMS_ERR_UNKNOWN" for all so far
830 // before define IMS domain proprietary cause
831} atp_imc_ecfg_set_cnf_struct;
832
833/*
834 * @brief
835 * @note MSG_ID_ATP_IMC_EMOCFG_REQ
836 * AT> AT+EMOCFG=<cfg_name>,<cfg_value>
837 */
838typedef struct {
839 LOCAL_PARA_HDR
840 kal_uint8 name[64];
841 kal_uint8 value[128];
842} atp_imc_emocfg_req_struct;
843
844/*
845 * @brief
846 * @note MSG_ID_ATP_IMC_EMOCFG_CNF
847 * AT< OK or +CME ERROR:<err>
848 */
849typedef struct {
850 LOCAL_PARA_HDR
851 kal_bool result;
852 ims_err_id_enum cause;
853} atp_imc_emocfg_cnf_struct;
854
855/*
856 * @brief
857 * @note MSG_ID_ATP_IMC_ECFG_GET_REQ
858 * AT> AT+ECFGSET=<cfg_name>
859 */
860typedef struct {
861 LOCAL_PARA_HDR
862 kal_uint8 name[64];
863} atp_imc_ecfg_get_req_struct;
864
865/*
866 * @brief
867 * @note MSG_ID_ATP_IMC_ECFG_GET_CNF
868 * AT< +ECFGGET:<cfg_name>,<cfg_value>
869 * AT< OK or +CME ERROR:<err>
870 */
871typedef struct {
872 LOCAL_PARA_HDR
873 kal_bool result; // KAL_TRUE-success; KAL_FALSE-fail
874 ims_err_id_enum cause; // return "IMS_ERR_UNKNOWN" for all so far
875 // before define IMS domain proprietary cause
876 kal_uint8 name[64];
rjw04b9c952023-03-28 14:35:43 +0800877 kal_uint8 value[256];
rjw6c1fd8f2022-11-30 14:33:01 +0800878} atp_imc_ecfg_get_cnf_struct;
879
880/*
881 * @brief
882 * @note MSG_ID_ATP_IMC_ECFG_RESET_REQ
883 * AT> AT+ECFGRESET=<cfg_name>
884 */
885typedef struct {
886 LOCAL_PARA_HDR
887 kal_uint8 name[64];
888} atp_imc_ecfg_reset_req_struct;
889
890/*
891 * @brief
892 * @note MSG_ID_ATP_IMC_ECFG_RESET_CNF
893 * AT< OK or +CME ERROR:<err>
894 */
895typedef struct {
896 LOCAL_PARA_HDR
897 kal_bool result; // KAL_TRUE-success; KAL_FALSE-fail
898 ims_err_id_enum cause; // return "IMS_ERR_UNKNOWN" for all so far
899 // before define IMS domain proprietary cause
900} atp_imc_ecfg_reset_cnf_struct;
901
902/*
903 * @brief
904 * @note MSG_ID_ATP_IMC_EPVS_SET_REQ
905 * AT> AT+EPVSSET=<cfg_name>,<cfg_value>
906 */
907typedef struct {
908 LOCAL_PARA_HDR
909 kal_uint8 name[64];
910 kal_uint8 value[128];
911} atp_imc_epvs_set_req_struct;
912
913/*
914 * @brief
915 * @note MSG_ID_ATP_IMC_EPVS_SET_CNF
916 * AT< OK or +CME ERROR:<err>
917 */
918typedef struct {
919 LOCAL_PARA_HDR
920 kal_bool result;
921 ims_err_id_enum cause;
922} atp_imc_epvs_set_cnf_struct;
923
924/*
925 * @brief
926 * @note MSG_ID_ATP_IMC_EPVS_GET_REQ
927 * AT> AT+EPVSGET=<cfg_name>
928 */
929typedef struct {
930 LOCAL_PARA_HDR
931 kal_uint8 name[64];
932} atp_imc_epvs_get_req_struct;
933
934/*
935 * @brief
936 * @note MSG_ID_ATP_IMC_EPVS_GET_CNF
937 * AT< +EPVSGET:<cfg_name>,<cfg_value>
938 * AT< OK or +CME ERROR:<err>
939 */
940typedef struct {
941 LOCAL_PARA_HDR
942 kal_bool result;
943 ims_err_id_enum cause;
944 kal_uint8 name[64];
945 kal_uint8 value[128];
946} atp_imc_epvs_get_cnf_struct;
947
948/*
949 * @brief
950 * @note MSG_ID_ATP_IMC_QUERY_URI_TYPE_REQ
951 * AT+CDU=0
952 */
953typedef struct {
954 LOCAL_PARA_HDR
955} atp_imc_query_uri_type_req_struct;
956
957/*
958 * @brief
959 * @note MSG_ID_ATP_IMC_QUERY_URI_TYPE_CNF
960 */
961typedef struct {
962 LOCAL_PARA_HDR
963 kal_uint8 uri_type; // ims_uri_type_enum;
964} atp_imc_query_uri_type_cnf_struct;
965
966/*
967 * @brief
968 * @note MSG_ID_ATP_IMC_SET_EVS_SUPPORT_REQ
969 * AT>AT+EIMSEVS=0|1
970 */
971typedef struct {
972 LOCAL_PARA_HDR
973 kal_bool is_enable;
974} atp_imc_set_evs_support_req_struct;
975
976/*
977 * @brief
978 * @note MSG_ID_ATP_IMC_SET_EVS_SUPPORT_CNF
979 * AT< OK
980 */
981typedef struct {
982 LOCAL_PARA_HDR
983 kal_bool is_success;
984 kal_uint32 cause; // unused
985} atp_imc_set_evs_support_cnf_struct;
986
987/*
988 * @brief
989 * @note MSG_ID_ATP_IMC_TIMER_TEST_REQ
990 */
991
992typedef struct {
993 LOCAL_PARA_HDR
994 kal_uint8 number;
995} atp_imc_timer_test_req_struct;
996
997/*
998 * @note MSG_ID_ATP_IMC_INTER_RAT_STATUS_IND
999 * +EIRAT: <irat_status>, <irat_result>
1000 */
1001typedef struct {
1002 LOCAL_PARA_HDR
1003 ims_irat_status_enum irat_status;
1004 kal_bool irat_result;
1005} atp_imc_inter_rat_status_ind_struct;
1006
1007/*
1008 * @brief
1009 * @note MSG_ID_ATP_IMC_AUTO_FAST_RETURN_IND
1010 * +EAFR=<afr_result>
1011 */
1012typedef struct {
1013 LOCAL_PARA_HDR
1014 kal_bool result;
1015} atp_imc_auto_fast_return_ind_struct;
1016
1017/*
1018 * @brief
1019 * @note MSG_ID_ATP_IMC_CS_CALL_STATUS_IND
1020 * +ECPI:<call_id>, <msg_type>, <is_ibt>, <is_tch>, <dir>, <call_mode>, <number>, <type>, "<pau>"[,<disc_cause>]
1021 */
1022typedef struct {
1023 LOCAL_PARA_HDR
1024 ims_cs_call_status_enum cs_call_status;
1025} atp_imc_cs_call_status_ind_struct;
1026
1027/*
1028 * @brief UE receive mt cs paging
1029 * note MSG_ID_ATP_IMC_MT_CS_PAGING_IND
1030 * +CIEV: 13
1031 */
1032typedef struct {
1033 LOCAL_PARA_HDR
1034} atp_imc_mt_cs_paging_ind_struct;
1035
1036/*
1037 * @brief
1038 * @note MSG_ID_ATP_IMC_VOICE_DOMAIN_STATUS_IND
1039 * AT+EVVS=<voice_status>
1040 */
1041typedef struct {
1042 LOCAL_PARA_HDR
1043 voice_domain_status_enum voice_domain_status;
1044} atp_imc_voice_domain_status_ind_struct;
1045
1046/*
1047 * @brief Turn on/off Radio link monitor
1048 * @note MSG_ID_ATP_SET_IMC_RLM_REQ
1049 */
1050typedef struct {
1051 LOCAL_PARA_HDR
1052 kal_uint8 enable;
1053} atp_imc_set_rlm_req_struct;
1054
1055/*
1056 * @brief IMS diable by AP
1057 * @note MSG_ID_ATP_IMC_IMS_DEREG_REQ/CNF
1058 * AT+EIMSDEREG:<cause>
1059 */
1060typedef struct {
1061 LOCAL_PARA_HDR
1062 kal_uint32 dereg_cause; //ims_dereg_cause_by_enum
1063} atp_imc_ims_dereg_req_struct,
1064 atp_imc_ims_dereg_cnf_struct;
1065
1066typedef struct
1067{
1068 LOCAL_PARA_HDR
1069 kal_uint8 dial_num[MAX_CC_ATD_NUM_LEN];
1070} atp_imc_fdn_ecc_check_req_struct;
1071
1072typedef struct
1073{
1074 LOCAL_PARA_HDR
1075 kal_bool is_allowed;
1076 kal_bool is_emergency;
1077 kal_uint16 emergency_service_category;
1078} atp_imc_fdn_ecc_check_cnf_struct;
1079
1080typedef struct
1081{
1082 LOCAL_PARA_HDR
1083 kal_uint8 dial_num[MAX_CC_ATD_NUM_LEN];
1084} atp_imc_ss_fdn_check_req_struct;
1085
1086typedef struct
1087{
1088 LOCAL_PARA_HDR
1089 kal_bool is_allowed;
1090} atp_imc_ss_fdn_check_cnf_struct;
1091
1092/*
1093 * @brief IMS diable by AP
1094 * @note MSG_ID_ATP_IMC_IMS_INIT_IND
1095 * AT+EIMSINVER:<AP>,<MD>
1096 */
1097typedef struct {
1098 LOCAL_PARA_HDR
1099 kal_uint32 ap_verno; //from imsa_connect_req
1100 kal_uint32 md_verno; //IMCB_IMC_HEADER_FILE_VERNO
1101} atp_imc_ims_init_ind_struct;
1102
1103/*
1104 * @brief
1105 * @note MSG_ID_ATP_IMC_C2K_SERVICE_STATE_REQ
1106 * +EC2KREG:<domain>, <state>, <service_type>
1107 */
1108typedef struct {
1109 LOCAL_PARA_HDR
1110 domain_id_enum domain;
1111 c2k_cell_service_enum state;
1112 c2k_rat_type_enum service_type;
1113} atp_imc_c2k_service_state_req_struct;
1114
1115/*
1116 * @brief
1117 * @note MSG_ID_ATP_IMC_C2K_CELL_INFO_UPDATE_REQ
1118 * +EC2KINFO:<access_type>, <sid>, <nid>, <pzid>, <base_id>, <sectot_id>, <subnet_length>, <carrier_id>
1119 */
1120typedef struct {
1121 LOCAL_PARA_HDR
1122 c2k_rat_type_enum access_type;
1123 kal_uint16 sid;
1124 kal_uint16 nid;
1125 kal_uint8 pzid;
1126 kal_uint16 base_id;
1127 kal_uint32 sectot_id[4];
1128 kal_uint8 subnet_length;
1129 kal_uint8 carrier_id[7];
1130} atp_imc_c2k_cell_info_update_req_struct;
1131
1132/*
1133 * @brief
1134 * @note MSG_ID_ATP_IMC_CAMPED_CELL_ID_UPDATE_REQ
1135 * +ECMPCID:<rat>,<ci>,<plmn_id>,<lac>,<tac>
1136 */
1137typedef struct {
1138 LOCAL_PARA_HDR
1139 ims_rat_type_enum rat_type;
1140 kal_uint64 cell_id;
1141 plmn_id_struct plmn_id;
1142 kal_uint8 la_code[2];
1143 kal_uint8 ta_code[3];
1144} atp_imc_camped_cell_id_update_req_struct;
1145
1146/*
1147 * @brief WFC profile from AP
1148 * @note MSG_ID_ATP_IMC_WFC_PROFILE_REQ/CNF
1149 * AT+EWFCP=<wfc_profile>
1150 */
1151typedef struct {
1152 LOCAL_PARA_HDR
1153 wfc_profile_enum wfc_profile;
1154} atp_imc_wfc_profile_req_struct;
1155
1156typedef struct {
1157 LOCAL_PARA_HDR
1158 kal_bool is_success;
1159 kal_uint32 cause; // un-used
1160} atp_imc_wfc_profile_cnf_struct;
1161
1162/*
1163 * @brief RCS feature tag from AP
1164 * @note MSG_ID_ATP_IMC_RCS_FEATURE_REQ/CNF
1165 * AT+EIMSRCS=<rcs_state><rcs_feature>
1166 */
1167typedef struct {
1168 LOCAL_PARA_HDR
1169 kal_uint8 rcs_state;
1170 kal_uint32 rcs_feature;
1171} atp_imc_rcs_feature_req_struct;
1172
1173typedef struct {
1174 LOCAL_PARA_HDR
1175 kal_bool is_success;
1176 kal_uint32 cause; // un-used
1177} atp_imc_rcs_feature_cnf_struct;
1178
1179/*
1180 * @brief user-defined SIP headers from AP
1181 * @note MSG_ID_ATP_IMC_SIP_HEADER_REQ/CNF
1182 * AT+ESIPHEADER=<header count>, <header name>, <value>, <header name>, <value>, ...
1183 */
1184typedef struct {
1185 LOCAL_PARA_HDR
1186 kal_uint8 value[256];
1187} atp_imc_sip_header_req_struct;
1188
1189typedef struct {
1190 LOCAL_PARA_HDR
1191 kal_bool is_success;
1192 kal_uint32 cause; // un-used
1193} atp_imc_sip_header_cnf_struct;
1194
1195/*
1196 * Description
1197 * - the primitive is indicator of "AT+ERAT"
1198 * Direction
1199 * - ATP -> IMC
1200 */
1201typedef struct {
1202 LOCAL_PARA_HDR
1203 kal_uint8 rat_mode;
1204 kal_uint8 prefer_rat;
1205 kal_uint16 ref_num;
1206} atp_imc_switch_prefer_rat_req_struct;
1207/*
1208 * Description
1209 * - the primitive is acknowledge of "MSG_ID_ATP_IMC_SWITCH_PREFER_RAT_REQ"
1210 * Direction
1211 * - IMC -> ATP
1212 */
1213typedef struct {
1214 LOCAL_PARA_HDR
1215 kal_uint16 ref_num;
1216} atp_imc_switch_prefer_rat_cnf_struct;
1217
1218/*
1219 * @brief
1220 * @note MSG_ID_ATP_IMC_SS_ECT_REQ
1221 * AT>AT+ECT=<ect_type>,<target_number>
1222 */
1223typedef struct {
1224 LOCAL_PARA_HDR
1225 kal_uint8 ect_type;
1226 kal_uint8 pad[3];
1227 kal_uint8 pau[IMC_MAX_ASSERTED_URI];
1228 kal_uint8 device_id[IMC_MAX_UUID_LEN];
1229} atp_imc_ss_ect_req_struct;
1230
1231
1232/*
1233 * @brief
1234 * @note MSG_ID_ATP_IMC_SS_ECT_CNF
1235 * AT< OK | ...
1236 */
1237typedef struct {
1238 LOCAL_PARA_HDR
1239 ims_cc_result_enum result;
1240 ims_cc_cause_enum cause;
1241} atp_imc_ss_ect_cnf_struct;
1242
1243/*
1244 * @brief
1245 * @note MSG_ID_ATP_IMC_SET_TEXT_CAPABILITY_REQ/CNF
1246 * AT+CTMCALL=<enable>
1247 */
1248typedef struct {
1249 LOCAL_PARA_HDR
1250 kal_uint8 enable;
1251} atp_imc_set_text_capability_req_struct;
1252
1253typedef struct {
1254 LOCAL_PARA_HDR
1255 kal_bool is_success;
1256 kal_uint32 cause; // un-used
1257} atp_imc_set_text_capability_cnf_struct;
1258
1259typedef struct {
1260 LOCAL_PARA_HDR
1261 kal_bool is_success;
1262 kal_uint32 cause; // un-used
1263} atp_imc_tty_capability_ind_struct;
1264
1265typedef struct {
1266 LOCAL_PARA_HDR
1267 kal_uint8 tty_mode; // TTY off:0, TTY Full:1, TTY HCO:2 (hearing carryover), TTY VCO:3 (voice carryover)
1268}atp_imc_ctmcall_ind_struct;
1269typedef atp_imc_common_at_rsp_struct atp_imc_ctmcall_rsp_struct;
1270
1271/*
1272 * @brief
1273 * @note MSG_ID_ATP_IMC_RTT_CAPABILITY_REQ/CNF
1274 * AT+EIMSRTT=<op>
1275 */
1276typedef struct {
1277 LOCAL_PARA_HDR
1278 kal_uint8 operation;
1279} atp_imc_rtt_capability_req_struct;
1280
1281typedef struct {
1282 LOCAL_PARA_HDR
1283 kal_bool is_success;
1284 kal_uint32 cause; // un-used
1285} atp_imc_rtt_capability_cnf_struct;
1286
1287/*
1288 * @brief
1289 * @note MSG_ID_ATP_IMC_RTT_OP_REQ/CNF
1290 * AT+RTTCALL = <call id>, <op>
1291 */
1292typedef struct {
1293 LOCAL_PARA_HDR
1294 kal_uint32 call_id;
1295 kal_uint32 op;
1296} atp_imc_cc_rtt_op_req_struct;
1297
1298typedef struct {
1299 LOCAL_PARA_HDR
1300 kal_uint32 acct_id;
1301 kal_uint32 call_id;
1302 kal_uint32 result;
1303} atp_imc_cc_rtt_op_cnf_struct;
1304
1305/*
1306 * @brief
1307 * @note MSG_ID_ATP_IMC_C2K_ECBM_STATE_REQ
1308 * +CIEV:<102>,<state>
1309 */
1310typedef struct {
1311 LOCAL_PARA_HDR
1312 kal_uint8 ecbm_state; //ecbm_state_enum
1313 kal_uint8 ecbm_stop_cause; //ecbm_stop_cause_enum
1314} atp_imc_c2k_ecbm_state_ind_struct;
1315
1316/*
1317 * @brief
1318 * @note MSG_ID_ATP_IMC_1X_CALL_STATUS_IND
1319 * +EC2KCI:<call_status>
1320 */
1321typedef struct{
1322 LOCAL_PARA_HDR
1323 ims_1x_call_status_enum c2k_1x_call_status;
1324} atp_imc_c2k_1x_call_status_ind_struct;
1325
1326/*
1327 * @brief
1328 * @note MSG_ID_ATP_IMC_TAU_FAIL_IND
1329 * +ETAUFAIL:<cause>
1330 */
1331typedef struct{
1332 LOCAL_PARA_HDR
1333 kal_uint8 cause;
1334} atp_imc_tau_fail_ind_struct;
1335
1336typedef struct {
1337 LOCAL_PARA_HDR
1338 kal_uint32 atcmd_id;
1339 kal_bool no_cnf;
1340 kal_uint8 cmdline[IMC_ATCMD_MAX_CMDLINE_LEN];
1341}atp_imc_atcmd_relay_ind_struct,
1342 atp_imc_atcmd_relay_req_struct;
1343
1344typedef struct {
1345 LOCAL_PARA_HDR
1346 kal_bool is_success;
1347 kal_uint32 cause; // un-used
1348} atp_imc_atcmd_relay_cnf_struct;
1349
rjw04b9c952023-03-28 14:35:43 +08001350#ifdef __NG_ECALL_SUPPORT__
1351typedef struct {
1352 LOCAL_PARA_HDR
1353 kal_uint8 ecall_domain;
1354 kal_uint32 msd_data_len;
1355 kal_uint8 msd_data[IMS_MAX_MSD_LENGTH];
1356} atp_imc_msd_update_req_struct;
yu.donge372c322023-08-30 20:25:04 -07001357
1358typedef struct {
1359 LOCAL_PARA_HDR
1360 kal_bool is_success;
1361 kal_uint32 cause; // un-used
1362} atp_imc_msd_update_cnf_struct;
1363
rjw04b9c952023-03-28 14:35:43 +08001364#endif
1365
rjw6c1fd8f2022-11-30 14:33:01 +08001366/*
1367 * Description
1368 * - the primitive is request of "MSG_ID_ATP_IMC_MIMS_CAPABILITY_REQ"
1369 * Direction
1370 * - ATP -> IMC
1371 */
1372typedef struct {
1373 LOCAL_PARA_HDR
1374 kal_uint32 reserved;
1375} atp_imc_mims_capability_req_struct;
1376
1377/*
1378 * Description
1379 * - the primitive is response of "MSG_ID_ATP_IMC_MIMS_CAPABILITY_CNF"
1380 * Direction
1381 * - IMC -> ATP
1382 */
1383typedef struct {
1384 LOCAL_PARA_HDR
1385 kal_bool is_success;
1386 kal_uint8 mims_num;
1387 kal_uint32 cause;
1388} atp_imc_mims_capability_cnf_struct;
1389
1390/*
1391 * Description
1392 * - the primitive is used for IMC to notify PS current IMS Roaming support or not.
1393 * Direction
1394 * - IMC -> ATP
1395 */
1396typedef struct {
1397 LOCAL_PARA_HDR
1398 kal_bool is_enabled;
1399} atp_imc_ims_roaming_ind_struct;
1400
1401/*
1402 * Description
1403 * - NWSEL is searching the available NW or not.
1404 * Direction
1405 * - ATP -> IMC
1406 */
1407typedef struct {
1408 LOCAL_PARA_HDR
1409 kal_bool is_searching;
1410} atp_imc_nw_search_status_ind_struct;
1411
1412/*
1413 * Description
1414 * - the primitive is used for IMC to notify PS IMS special event.
1415 * Direction
1416 * - IMC -> ATP
1417 */
1418typedef struct {
1419 LOCAL_PARA_HDR
1420 ims_special_event_enum special_event;
1421 imcb_imc_sip_cause_enum sip_cause;
1422} atp_imc_ims_event_ind_struct;
1423
1424#define IMC_AT_CMD_TO_MD_NAME_LEN 32
1425#define IMC_AT_CMD_TO_MD_VALUE_LEN 512
1426/*
1427 * Description
1428 * - the primitive is response of "MSG_ID_ATP_IMC_AT_CMD_TO_MD_IND"
1429 * Direction
1430 * - IMC -> ATP
1431 */
1432typedef struct {
1433 LOCAL_PARA_HDR
1434 atp_egmc_op_enum op;
1435 kal_uint8 name[IMC_AT_CMD_TO_MD_NAME_LEN];
1436 kal_uint8 value[IMC_AT_CMD_TO_MD_VALUE_LEN];
1437} atp_imc_at_cmd_to_md_ind_struct;
1438
1439typedef struct {
1440 LOCAL_PARA_HDR
1441 atp_imc_drp_enum op;
1442} atp_imc_dump_runtime_para_req_struct;
1443
1444
1445/*
1446 * @brief
1447 * @note MSG_ID_ATP_IMC_ECNCFG_REQ
1448 * AT> AT+ECNCFG=<>
1449 */
1450typedef struct {
1451 LOCAL_PARA_HDR
1452 kal_uint8 mobile_data;
1453 kal_uint8 data_roaming;
1454} atp_imc_ecncfg_req_struct;
1455
1456/*
1457 * Description
1458 * - the primitive is used for IMC to notify PS that STK call over IMS success.
1459 * Direction
1460 * - IMC -> PS
1461 */
1462typedef struct {
1463 LOCAL_PARA_HDR
1464 kal_uint16 terminal_response; //80 for AT+STKCALL=0, 81 for AT+STKCALL=4
1465} atp_imc_ims_stkcall_ind_struct;
1466
1467/*
1468 * Description
1469 * - the primitive is response of "MSG_ID_ATP_IMC_EIMSGEO_REQ"
1470 * Direction
1471 * - ATP -> IMC
1472 */
1473typedef struct {
1474 LOCAL_PARA_HDR
1475 kal_uint8 wifi_mac[20];
1476} atp_imc_eimsgeo_req_struct;
1477
1478typedef struct {
1479 LOCAL_PARA_HDR
1480 kal_int8 account_id;
1481 kal_int8 broadcast_flag;
1482 kal_int32 latitude[2];
1483 kal_int32 longitude[2];
1484 kal_int32 accuracy;
1485 kal_char method[16];
1486 kal_char city[32];
1487 kal_char state[32];
1488 kal_char zip[8];
1489 kal_char country_code[8];
1490 kal_char mcc[MAX_GEO_MCC_NUM][MAX_MCC_STR_LEN];
1491} atp_imc_eimsgeo_ind_struct;
1492
1493/*
1494 * @brief response of AT+ECCTRL
1495 * @note MSG_ID_IMSP_CALL_CONTROL_IND
1496 */
1497typedef struct {
1498 LOCAL_PARA_HDR
1499 ims_cc_result_enum result;
1500 ims_cc_cause_enum cause;
1501 kal_int32 operation; //imcb_imc_ss_operation_enum map to ims_ecctrl_enum
1502} atp_imc_call_control_ind_struct;
1503
1504/*
1505 * @brief
1506 * @note MSG_ID_ATP_IMC_CALL_CONTROL_V2_REQ
1507 * AT>AT+ECCTRL=<call_id>,<call_state>,<is_unblocking>
1508 */
1509typedef struct {
1510 LOCAL_PARA_HDR
1511 kal_uint8 call_id;
1512 ims_ecctrl_enum call_state;
1513 kal_uint8 is_unblocking;
1514} atp_imc_call_control_v2_req_struct;
1515
1516
1517
1518/*
1519 * Description
1520 * - the primitive is used for PS to notify IMC that the UE is in limited service
1521 * Direction
1522 * - PS -> IMC
1523 */
1524typedef struct {
1525 LOCAL_PARA_HDR
1526 kal_bool t311_expire_flag;
1527 imcf_uint8 pad[3];
1528} atp_imc_oos_start_req_struct;
1529
1530/*
1531 * Description
1532 * - the primitive is used for PS to notify IMC that the UE is out of limited service
1533 * Direction
1534 * - PS -> IMC
1535 */
1536typedef struct {
1537 LOCAL_PARA_HDR
1538} atp_imc_oos_end_req_struct;
1539
1540/*
1541 * Description
1542 * - the primitive is used for IMC to notify PS current IMS REG state. (IMC has to indicate VDM + PS other modules)
1543 * Direction
1544 * - IMC -> PS
1545 */
1546typedef struct {
1547 LOCAL_PARA_HDR
1548 ims_reg_state_enum reg_state; // REGISTERED, UNREGISTERED
1549 ims_reg_sub_state_enum reg_sub_state;
1550 ims_reg_type_enum reg_type; // normal or emergency reg
1551 ims_dereg_cause_enum dereg_cause; //ims_comm_def.h
1552 ims_access_rat_enum rat;
1553 ims_ecmp_enum ecmp;
1554 /* ViLTE */
1555 ims_reg_service_enum reg_service;
1556 imcf_bool ims_retry;
1557 imcf_bool has_sent_register;
1558 imcf_uint8 pad[2];
1559 ims_reg_event_enum reg_event;
1560 ims_reg_sip_uri_type_enum sip_uri_type;
1561 imcb_imc_sip_cause_enum sip_cause; //imcb_imc_sip_cause_enum
1562} atp_imc_ims_reg_status_ind_struct;
1563
1564// CC Interface
1565typedef struct atp_imc_cc_call_progress_ind_struct {
1566 LOCAL_PARA_HDR
1567 kal_uint8 call_id;
1568 kal_uint8 msg_type;
1569 ims_ecpi_info_struct ecpi_info;
1570} atp_imc_cc_call_progress_ind_struct;
1571
1572typedef struct atp_imc_cc_imsems_ind_struct {
1573 LOCAL_PARA_HDR
1574 kal_uint8 call_id;
1575} atp_imc_cc_imsems_ind_struct;
1576
1577typedef struct atp_imc_cc_evtstatus_ind_struct {
1578 LOCAL_PARA_HDR
1579 kal_bool is_on;
1580} atp_imc_cc_evtstatus_ind_struct;
1581
1582typedef struct atp_imc_cc_espeech_ind_struct {
1583 LOCAL_PARA_HDR
1584 kal_bool is_on;
1585} atp_imc_cc_espeech_ind_struct;
1586
1587typedef struct atp_imc_cc_cssu_ind_struct {
1588 LOCAL_PARA_HDR
1589 kal_uint8 msg_type;
1590} atp_imc_cc_cssu_ind_struct;
1591
1592/*
1593 * @brief
1594 * @note MSG_ID_ATP_IMC_CALL_CONTROL_REQ
1595 * AT>AT+ECCTRL=<call_id>,<call_state>
1596 */
1597typedef struct {
1598 LOCAL_PARA_HDR
1599 kal_uint8 call_id;
1600 ims_ecctrl_enum call_state;
1601} atp_imc_call_control_req_struct;
1602
1603/*
1604 * @brief
1605 * @note MSG_ID_ATP_IMC_CALL_CONTROL_CNF
1606 * AT< OK | ...
1607 */
1608typedef struct {
1609 LOCAL_PARA_HDR
1610 ims_cc_result_enum result;
1611 ims_cc_cause_enum cause;
1612 kal_int32 operation; //imcb_imc_ss_operation_enum map to ims_ecctrl_enum
1613} atp_imc_call_control_cnf_struct;
1614
1615typedef struct {
1616 LOCAL_PARA_HDR
1617 kal_uint8 call_id;
1618 kal_uint8 dir;
1619 kal_uint8 msg_type;
1620 kal_uint8 method;
1621 kal_uint16 response_code;
1622 imcf_uint8 reason_text[IMC_MAX_REASON_TEXT_LENGTH];
1623} atp_imc_sip_call_progress_ind_struct;
1624
1625
1626typedef enum {
1627 IMS_SR_AC_BARRED = 0,
1628 IMS_SR_NW_REJ_CONN_REQUEST = 1,
1629 IMS_SR_T3346_START = 2,
1630 IMS_SR_T3346_STOP = 3,
1631 IMS_SR_T3346_EXPIRY = 4,
1632 IMS_SR_CONN_FAIL = 5,
1633 IMS_SR_T3525_START = 6,
1634 IMS_SR_T3540_START = 7,
1635} ims_service_request_fail_enum;
1636
1637typedef struct {
1638 LOCAL_PARA_HDR
1639 ims_service_request_fail_enum cause;
yu.donge372c322023-08-30 20:25:04 -07001640 kal_uint8 value;
rjw6c1fd8f2022-11-30 14:33:01 +08001641} atp_imc_service_request_fail_req_struct;
1642
1643// SS Interface
1644typedef enum {
1645 IMS_CONF_OP_ADD = 0, // add
1646 IMS_CONF_OP_REMOVE = 1, // remove
1647 IMS_CONF_OP_MAX
1648} ims_conf_operation_enum;
1649
1650
1651typedef enum {
1652 IMS_NOTIFY_SERVICE_CALL_WAITING = 259, // mapped <service_id> = 259
1653 IMS_NOTIFY_SERVICE_CALL_BARRING = 256, // mapped <service_id> = 256
1654 IMS_NOTIFY_SERVICE_CALL_FORWARDING = 13, // mapped <service_id> = 13
1655 IMS_NOTIFY_SERVICE_CALL_MWI = 3, // Not used
1656 IMS_NOTIFY_SERVICE_CALL_CONFERENCE = 4, // Not used
1657 IMS_NOTIFY_SERVICE_CALL_MT_FORWARDING = 257,
1658 IMS_NOTIFY_SERVICE_NOTIFY_DIALOG = 258,
1659 IMS_NOTIFY_SERVICE_MAX
1660} ims_notify_service_enum;
1661
1662/*
1663 * @brief
1664 * @note MSG_ID_ATP_IMC_SS_SET_VIDEO_ABILITY_REQ
1665 * AT>AT+EIMSCCP=0|1
1666 */
1667typedef struct {
1668 LOCAL_PARA_HDR
1669 kal_bool is_enable;
1670} atp_imc_ss_set_video_ability_req_struct;
1671
1672/*
1673 * @brief
1674 * @note MSG_ID_ATP_IMC_SS_SET_VIDEO_ABILITY_CNF
1675 * AT< OK
1676 */
1677typedef struct {
1678 LOCAL_PARA_HDR
1679 kal_bool is_success;
1680 kal_uint32 cause; //unused
1681} atp_imc_ss_set_video_ability_cnf_struct;
1682
1683/*
1684 * @brief
1685 * @note MSG_ID_ATP_IMC_SET_VOICE_CAPABILITY_REQ
1686 * AT>AT+EIMSVOICE=0|1
1687 */
1688typedef struct {
1689 LOCAL_PARA_HDR
1690 kal_bool is_enable;
1691} atp_imc_set_voice_capability_req_struct;
1692
1693/*
1694 * @brief
1695 * @note MSG_ID_ATP_IMC_SET_VOICE_CAPABILITY_CNF
1696 * AT< OK
1697 */
1698typedef struct {
1699 LOCAL_PARA_HDR
1700 kal_bool is_success;
1701 kal_uint32 cause; //unused
1702} atp_imc_set_voice_capability_cnf_struct;
1703
1704/*
1705 * @brief
1706 * @note MSG_ID_ATP_IMC_SET_SMS_CAPABILITY_REQ
1707 * AT>AT+EIMSSMS=0|1
1708 */
1709typedef struct {
1710 LOCAL_PARA_HDR
1711 kal_bool is_enable;
1712} atp_imc_set_sms_capability_req_struct;
1713
1714/*
1715 * @brief
1716 * @note MSG_ID_ATP_IMC_SET_SMS_CAPABILITY_CNF
1717 * AT< OK
1718 */
1719typedef struct {
1720 LOCAL_PARA_HDR
1721 kal_bool is_success;
1722 kal_uint32 cause; //unused
1723} atp_imc_set_sms_capability_cnf_struct;
1724
1725#define ATP_IMC_SS_CONFERENCE_CONTROL_REQ_NUM_LEN IMC_MAX_CONF_CONTROL_URI_LENGTH /* same as in imcb_imc_ss_conference_control_req_struct */
1726
1727/*
1728 * @brief
1729 * @note MSG_ID_ATP_IMC_SS_CONFERENCE_CONTROL_REQ
1730 * AT>AT+ECONF=<conf_call_id>,<operation>,<num>[,<joined_call_id>]
1731 */
1732typedef struct {
1733 LOCAL_PARA_HDR
1734 kal_uint8 conf_call_id;
1735 ims_conf_operation_enum operation;
1736 kal_uint8 num[ATP_IMC_SS_CONFERENCE_CONTROL_REQ_NUM_LEN];
1737 kal_uint8 joined_call_id;
1738} atp_imc_ss_conference_control_req_struct;
1739
1740
1741/*
1742 * @brief
1743 * @note MSG_ID_ATP_IMC_SS_CONFERENCE_CONTROL_CNF
1744 * AT< OK | ...
1745 */
1746typedef struct {
1747 LOCAL_PARA_HDR
1748 ims_cc_result_enum result;
1749 ims_cc_cause_enum cause;
1750} atp_imc_ss_conference_control_cnf_struct;
1751
1752
1753/*
1754 * @brief
1755 * @note MSG_ID_ATP_IMC_SS_SUBSCRIBE_CONTROL_IND
1756 * AT< +ESUBCTRL:<call_id>,<event>,<result>,<cause>
1757 */
1758typedef struct {
1759 LOCAL_PARA_HDR
1760 kal_uint8 call_id;
1761 ims_ss_sub_event_enum event;
1762 ims_cc_result_enum result;
1763 ims_cc_cause_enum cause;
1764} atp_imc_ss_subscribe_control_ind_struct;
1765
1766
1767/*
1768 * @brief
1769 * @note MSG_ID_ATP_IMC_SS_CONFERENCE_CONTROL_IND
1770 * AT< +ECONF:<conf_call_id>,<operation>,<num>,<result>,<cause>[,<joined_call_id>]
1771 */
1772typedef struct {
1773 LOCAL_PARA_HDR
1774 kal_uint8 conf_call_id;
1775 ims_conf_operation_enum operation;
1776 kal_uint8 num[MAX_CC_ATD_NUM_LEN];
1777 kal_uint8 joined_call_id;
1778 ims_cc_result_enum result;
1779 ims_cc_cause_enum cause;
1780} atp_imc_ss_conference_control_ind_struct;
1781
1782
1783/*
1784 * @brief
1785 * @note MSG_ID_ATP_IMC_SS_PROGRESS_NOTIFY_IND
1786 * AT< +ECMCCSS:<call_id>,<service_id>,<data>
1787 */
1788typedef struct {
1789 LOCAL_PARA_HDR
1790 kal_uint8 call_id;
1791 ims_notify_service_enum service;
1792 kal_uint8 data[MAX_SS_NOTIFY_DATA_LEN]; // 512
1793} atp_imc_ss_progress_notify_ind_struct;
1794
1795/*
1796 * @brief
1797 * @note MSG_ID_ATP_IMC_SS_ECT_IND
1798 * AT< +ECT:<call_id>,<ect_result>,<cause>
1799 */
1800typedef struct {
1801 LOCAL_PARA_HDR
1802 kal_uint8 call_id;
1803 kal_uint8 result;
1804 ims_disc_cause_enum cause;
1805} atp_imc_ss_ect_ind_struct;
1806
1807/* WFC */
1808typedef struct {
1809 LOCAL_PARA_HDR
1810 ims_access_rat_enum source_rat;
1811 ims_access_rat_enum target_rat;
1812 ims_reg_type_enum reg_type;
1813}atp_imc_handover_start_ind_struct;
1814
1815typedef struct {
1816 LOCAL_PARA_HDR
1817 ims_access_rat_enum source_rat;
1818 ims_access_rat_enum target_rat;
1819 kal_bool result; /* fail (FALSE) or success (TRUE) */
1820 ims_reg_type_enum reg_type;
1821}atp_imc_handover_stop_ind_struct;
1822
1823/*
1824 * @brief
1825 * @note MSG_ID_ATP_IMC_CC_MEDIA_MOD_IND
1826 */
1827/* VILTE */
1828typedef struct {
1829 LOCAL_PARA_HDR
1830 kal_uint8 call_id;
1831 ims_call_mode_enum call_mode;
1832 ims_cc_camera_direction_enum camera_direction;
1833 kal_uint8 audio_direction;
1834 kal_uint8 audio_codec; // opaque
1835 kal_int8 p_assert_uri[IMS_P_ASSERT_URI_LEN];
1836} atp_imc_cc_media_mod_ind_struct;
1837
1838typedef struct {
1839 LOCAL_PARA_HDR
1840 kal_uint8 call_id;
1841 kal_uint8 local_video_capability;
1842 kal_uint8 remote_video_capability;
1843} atp_imc_cc_video_cap_ind_struct;
1844
1845typedef struct {
1846 LOCAL_PARA_HDR
1847 kal_uint8 call_id;
1848 kal_uint8 local_text_capability;
1849 kal_uint8 remote_text_capability;
1850 kal_uint8 local_text_status;
1851 kal_uint8 real_remote_text_capability;
1852} atp_imc_cc_text_cap_ind_struct;
1853
1854/*
1855 * @brief Turn on/off Radio link monitor
1856 * @note MSG_ID_ATP_IMC_RLM_EVENT_IND
1857 */
1858typedef struct {
1859 LOCAL_PARA_HDR
1860 kal_uint8 reserve;
1861 kal_uint8 event_type;
1862 kal_uint16 band;
1863} atp_imc_rlm_event_ind_struct;
1864
1865/**
1866 * @brief USSD AT Command RILD-->ATP-->IMC-->IMCB-->UA
1867 * @note MSG_ID_ATP_IMC_SEND_USSD_REQ
1868 */
1869typedef struct atp_imc_send_ussd_req {
1870 LOCAL_PARA_HDR
1871 kal_uint8 cmd_class; /*< class */
1872 kal_uint8 operation; /*< oper */
1873 kal_uint16 action; /*< action */
1874 kal_uint8 language[IMS_USSD_LANGUANGE_LEN]; /*< language */
1875 kal_uint16 error_code; /*< error_code */
1876 kal_uint16 message_len; /*< message length */
1877 kal_uint8 message[IMS_USSD_MAX_MSG_LEN];
1878 kal_uint8 digit_from_line_number[IMC_MAX_URI_LENGTH];
1879} atp_imc_send_ussd_req_struct;
1880
1881/**
1882 * @brief USSD AT Command RILD<--ATP<--IMC<--IMCB<--UA
1883 * @note MSG_ID_ATP_IMC_SEND_USSD_CNF
1884 */
1885typedef struct atp_imc_send_ussd_cnf {
1886 LOCAL_PARA_HDR
1887 kal_uint32 response; /*< OK or ERROR, may be extended to CME ERROR later on*/
1888} atp_imc_send_ussd_cnf_struct;
1889
1890/**
1891 * @brief USSD AT Command RILD<--ATP<--IMC<--IMCB<--UA
1892 * @note MSG_ID_ATP_IMC_RECV_USSD_IND
1893 */
1894typedef struct atp_imc_recv_ussd_ind {
1895 LOCAL_PARA_HDR
1896 kal_uint8 urc_class; /*< class */
1897 kal_uint8 alert_pattern; /*< Alertin Pattern for AP */
1898 kal_uint8 padding[2]; /*< oper */
1899 kal_uint16 status; /*< status */
1900 kal_uint16 sip_cause; /*< status */
1901 kal_uint8 language[IMS_USSD_LANGUANGE_LEN]; /*< language */
1902 kal_uint16 error_code; /*< error_code */
1903 kal_uint16 message_len; /*< message length */
1904 kal_uint8 message[IMS_USSD_MAX_MSG_LEN];
1905 kal_uint8 digit_from_line_number[IMC_MAX_URI_LENGTH];
1906} atp_imc_recv_ussd_ind_struct;
1907
1908/*
1909 * @brief
1910 * @note MSG_ID_ATP_IMC_SET_EMERGENCY_AID_REQ
1911 * AT>AT+EIMSAID="xxxx-yyyy-wwww-zzzz"
1912 */
1913typedef struct {
1914 LOCAL_PARA_HDR
1915 kal_uint8 emergency_aid[IMC_MAX_EMERGENCY_AID_LEN];
1916} atp_imc_set_emergency_aid_req_struct;
1917
1918/*
1919 * @brief
1920 * @note MSG_ID_ATP_IMC_SET_EMERGENCY_AID_CNF
1921 * AT< OK
1922 */
1923typedef struct {
1924 LOCAL_PARA_HDR
1925 kal_bool is_success;
1926 kal_uint32 cause; //unused
1927} atp_imc_set_emergency_aid_cnf_struct;
1928
1929/*
1930 * @brief
1931 * @note MSG_ID_ATP_IMC_CISRVCC_REQ
1932 * AT>AT+CISRVCC=0|1
1933 */
1934typedef struct {
1935 LOCAL_PARA_HDR
1936 kal_bool is_enable;
1937} atp_imc_cisrvcc_req_struct;
1938
1939/*
1940 * @brief
1941 * @note MSG_ID_ATP_IMC_CISRVCC_CNF
1942 * AT< OK
1943 */
1944typedef struct {
1945 LOCAL_PARA_HDR
1946 kal_bool is_success;
1947 kal_uint32 cause; //unused
1948} atp_imc_cisrvcc_cnf_struct;
1949
1950/*
1951 * @brief
1952 * @note MSG_ID_ATP_IMC_IMS_TIMER_STATUS_IND
1953 * AT+EITMR=<timer_type>,<timer_status>,<timer_length>
1954 */
1955typedef struct {
1956 LOCAL_PARA_HDR
1957 kal_uint32 account_id; /*< Account ID*/
1958 kal_uint32 timer_type; // ims_timer_type_enum
1959 kal_uint32 timer_status; // ims_timer_status_enum
1960 kal_uint16 timer_length;
1961 kal_uint8 pad[2];
1962} atp_imc_ims_timer_status_ind_struct;
1963
1964/*
1965 * @brief
1966 * @note MSG_ID_ATP_IMC_NORMAL_REG_CSCM_REQ
1967 * AT>AT+CSCM=<service_type>,<action>
1968 */
1969typedef struct {
1970 LOCAL_PARA_HDR
1971 ims_scm_info_type_enum service_type;
1972 ims_scm_info_action_enum action;
1973} atp_imc_normal_reg_cscm_req_struct;
1974
1975
1976/*
1977 * @brief
1978 * @note MSG_ID_ATP_IMC_NORMAL_REG_CSCM_CNF
1979 * AT< OK | ...
1980 */
1981typedef struct {
1982 LOCAL_PARA_HDR
1983 kal_bool result;
1984} atp_imc_normal_reg_cscm_cnf_struct;
1985
1986/*
1987 * @brief
1988 * @note MSG_ID_ATP_IMC_REGUA_REMAIN_TIME_IND
1989 */
1990typedef struct {
1991 LOCAL_PARA_HDR
1992 kal_uint8 rereg_flag; // send rereg_time or not
1993 kal_int32 rereg_remain_time; // rereg_time
1994 kal_uint8 resub_flag; // send resub_time or not
1995 kal_int32 resub_remain_time; // resub_time
1996} atp_imc_regua_remain_time_ind_struct;
1997
1998/*
1999 * Description
2000 * - to query IMEI SVN from L4
2001 * Direction
2002 * - IMC -> ATP
2003 */
2004typedef struct {
2005 LOCAL_PARA_HDR
2006} atp_imc_query_imei_svn_req_struct;
2007
2008typedef struct
2009{
2010 LOCAL_PARA_HDR
2011 kal_uint8 imei_svn[IMC_MAX_IMEI_SVN_LEN];
2012} atp_imc_query_imei_svn_cnf_struct;
2013
2014/*
2015 * @brief
2016 * @note MSG_ID_ATP_IMC_EVOLTESI_CONFIG_IND
2017 * AT+EVOLTESI
2018 */
2019typedef struct {
2020 LOCAL_PARA_HDR
2021 enh_volte_si_enum config;
2022} atp_imc_evoltesi_config_ind_struct;
2023
2024
2025#endif