blob: 8b756e86d7f1180b96033daf575349427af637db [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;
1357#endif
1358
rjw6c1fd8f2022-11-30 14:33:01 +08001359/*
1360 * Description
1361 * - the primitive is request of "MSG_ID_ATP_IMC_MIMS_CAPABILITY_REQ"
1362 * Direction
1363 * - ATP -> IMC
1364 */
1365typedef struct {
1366 LOCAL_PARA_HDR
1367 kal_uint32 reserved;
1368} atp_imc_mims_capability_req_struct;
1369
1370/*
1371 * Description
1372 * - the primitive is response of "MSG_ID_ATP_IMC_MIMS_CAPABILITY_CNF"
1373 * Direction
1374 * - IMC -> ATP
1375 */
1376typedef struct {
1377 LOCAL_PARA_HDR
1378 kal_bool is_success;
1379 kal_uint8 mims_num;
1380 kal_uint32 cause;
1381} atp_imc_mims_capability_cnf_struct;
1382
1383/*
1384 * Description
1385 * - the primitive is used for IMC to notify PS current IMS Roaming support or not.
1386 * Direction
1387 * - IMC -> ATP
1388 */
1389typedef struct {
1390 LOCAL_PARA_HDR
1391 kal_bool is_enabled;
1392} atp_imc_ims_roaming_ind_struct;
1393
1394/*
1395 * Description
1396 * - NWSEL is searching the available NW or not.
1397 * Direction
1398 * - ATP -> IMC
1399 */
1400typedef struct {
1401 LOCAL_PARA_HDR
1402 kal_bool is_searching;
1403} atp_imc_nw_search_status_ind_struct;
1404
1405/*
1406 * Description
1407 * - the primitive is used for IMC to notify PS IMS special event.
1408 * Direction
1409 * - IMC -> ATP
1410 */
1411typedef struct {
1412 LOCAL_PARA_HDR
1413 ims_special_event_enum special_event;
1414 imcb_imc_sip_cause_enum sip_cause;
1415} atp_imc_ims_event_ind_struct;
1416
1417#define IMC_AT_CMD_TO_MD_NAME_LEN 32
1418#define IMC_AT_CMD_TO_MD_VALUE_LEN 512
1419/*
1420 * Description
1421 * - the primitive is response of "MSG_ID_ATP_IMC_AT_CMD_TO_MD_IND"
1422 * Direction
1423 * - IMC -> ATP
1424 */
1425typedef struct {
1426 LOCAL_PARA_HDR
1427 atp_egmc_op_enum op;
1428 kal_uint8 name[IMC_AT_CMD_TO_MD_NAME_LEN];
1429 kal_uint8 value[IMC_AT_CMD_TO_MD_VALUE_LEN];
1430} atp_imc_at_cmd_to_md_ind_struct;
1431
1432typedef struct {
1433 LOCAL_PARA_HDR
1434 atp_imc_drp_enum op;
1435} atp_imc_dump_runtime_para_req_struct;
1436
1437
1438/*
1439 * @brief
1440 * @note MSG_ID_ATP_IMC_ECNCFG_REQ
1441 * AT> AT+ECNCFG=<>
1442 */
1443typedef struct {
1444 LOCAL_PARA_HDR
1445 kal_uint8 mobile_data;
1446 kal_uint8 data_roaming;
1447} atp_imc_ecncfg_req_struct;
1448
1449/*
1450 * Description
1451 * - the primitive is used for IMC to notify PS that STK call over IMS success.
1452 * Direction
1453 * - IMC -> PS
1454 */
1455typedef struct {
1456 LOCAL_PARA_HDR
1457 kal_uint16 terminal_response; //80 for AT+STKCALL=0, 81 for AT+STKCALL=4
1458} atp_imc_ims_stkcall_ind_struct;
1459
1460/*
1461 * Description
1462 * - the primitive is response of "MSG_ID_ATP_IMC_EIMSGEO_REQ"
1463 * Direction
1464 * - ATP -> IMC
1465 */
1466typedef struct {
1467 LOCAL_PARA_HDR
1468 kal_uint8 wifi_mac[20];
1469} atp_imc_eimsgeo_req_struct;
1470
1471typedef struct {
1472 LOCAL_PARA_HDR
1473 kal_int8 account_id;
1474 kal_int8 broadcast_flag;
1475 kal_int32 latitude[2];
1476 kal_int32 longitude[2];
1477 kal_int32 accuracy;
1478 kal_char method[16];
1479 kal_char city[32];
1480 kal_char state[32];
1481 kal_char zip[8];
1482 kal_char country_code[8];
1483 kal_char mcc[MAX_GEO_MCC_NUM][MAX_MCC_STR_LEN];
1484} atp_imc_eimsgeo_ind_struct;
1485
1486/*
1487 * @brief response of AT+ECCTRL
1488 * @note MSG_ID_IMSP_CALL_CONTROL_IND
1489 */
1490typedef struct {
1491 LOCAL_PARA_HDR
1492 ims_cc_result_enum result;
1493 ims_cc_cause_enum cause;
1494 kal_int32 operation; //imcb_imc_ss_operation_enum map to ims_ecctrl_enum
1495} atp_imc_call_control_ind_struct;
1496
1497/*
1498 * @brief
1499 * @note MSG_ID_ATP_IMC_CALL_CONTROL_V2_REQ
1500 * AT>AT+ECCTRL=<call_id>,<call_state>,<is_unblocking>
1501 */
1502typedef struct {
1503 LOCAL_PARA_HDR
1504 kal_uint8 call_id;
1505 ims_ecctrl_enum call_state;
1506 kal_uint8 is_unblocking;
1507} atp_imc_call_control_v2_req_struct;
1508
1509
1510
1511/*
1512 * Description
1513 * - the primitive is used for PS to notify IMC that the UE is in limited service
1514 * Direction
1515 * - PS -> IMC
1516 */
1517typedef struct {
1518 LOCAL_PARA_HDR
1519 kal_bool t311_expire_flag;
1520 imcf_uint8 pad[3];
1521} atp_imc_oos_start_req_struct;
1522
1523/*
1524 * Description
1525 * - the primitive is used for PS to notify IMC that the UE is out of limited service
1526 * Direction
1527 * - PS -> IMC
1528 */
1529typedef struct {
1530 LOCAL_PARA_HDR
1531} atp_imc_oos_end_req_struct;
1532
1533/*
1534 * Description
1535 * - the primitive is used for IMC to notify PS current IMS REG state. (IMC has to indicate VDM + PS other modules)
1536 * Direction
1537 * - IMC -> PS
1538 */
1539typedef struct {
1540 LOCAL_PARA_HDR
1541 ims_reg_state_enum reg_state; // REGISTERED, UNREGISTERED
1542 ims_reg_sub_state_enum reg_sub_state;
1543 ims_reg_type_enum reg_type; // normal or emergency reg
1544 ims_dereg_cause_enum dereg_cause; //ims_comm_def.h
1545 ims_access_rat_enum rat;
1546 ims_ecmp_enum ecmp;
1547 /* ViLTE */
1548 ims_reg_service_enum reg_service;
1549 imcf_bool ims_retry;
1550 imcf_bool has_sent_register;
1551 imcf_uint8 pad[2];
1552 ims_reg_event_enum reg_event;
1553 ims_reg_sip_uri_type_enum sip_uri_type;
1554 imcb_imc_sip_cause_enum sip_cause; //imcb_imc_sip_cause_enum
1555} atp_imc_ims_reg_status_ind_struct;
1556
1557// CC Interface
1558typedef struct atp_imc_cc_call_progress_ind_struct {
1559 LOCAL_PARA_HDR
1560 kal_uint8 call_id;
1561 kal_uint8 msg_type;
1562 ims_ecpi_info_struct ecpi_info;
1563} atp_imc_cc_call_progress_ind_struct;
1564
1565typedef struct atp_imc_cc_imsems_ind_struct {
1566 LOCAL_PARA_HDR
1567 kal_uint8 call_id;
1568} atp_imc_cc_imsems_ind_struct;
1569
1570typedef struct atp_imc_cc_evtstatus_ind_struct {
1571 LOCAL_PARA_HDR
1572 kal_bool is_on;
1573} atp_imc_cc_evtstatus_ind_struct;
1574
1575typedef struct atp_imc_cc_espeech_ind_struct {
1576 LOCAL_PARA_HDR
1577 kal_bool is_on;
1578} atp_imc_cc_espeech_ind_struct;
1579
1580typedef struct atp_imc_cc_cssu_ind_struct {
1581 LOCAL_PARA_HDR
1582 kal_uint8 msg_type;
1583} atp_imc_cc_cssu_ind_struct;
1584
1585/*
1586 * @brief
1587 * @note MSG_ID_ATP_IMC_CALL_CONTROL_REQ
1588 * AT>AT+ECCTRL=<call_id>,<call_state>
1589 */
1590typedef struct {
1591 LOCAL_PARA_HDR
1592 kal_uint8 call_id;
1593 ims_ecctrl_enum call_state;
1594} atp_imc_call_control_req_struct;
1595
1596/*
1597 * @brief
1598 * @note MSG_ID_ATP_IMC_CALL_CONTROL_CNF
1599 * AT< OK | ...
1600 */
1601typedef struct {
1602 LOCAL_PARA_HDR
1603 ims_cc_result_enum result;
1604 ims_cc_cause_enum cause;
1605 kal_int32 operation; //imcb_imc_ss_operation_enum map to ims_ecctrl_enum
1606} atp_imc_call_control_cnf_struct;
1607
1608typedef struct {
1609 LOCAL_PARA_HDR
1610 kal_uint8 call_id;
1611 kal_uint8 dir;
1612 kal_uint8 msg_type;
1613 kal_uint8 method;
1614 kal_uint16 response_code;
1615 imcf_uint8 reason_text[IMC_MAX_REASON_TEXT_LENGTH];
1616} atp_imc_sip_call_progress_ind_struct;
1617
1618
1619typedef enum {
1620 IMS_SR_AC_BARRED = 0,
1621 IMS_SR_NW_REJ_CONN_REQUEST = 1,
1622 IMS_SR_T3346_START = 2,
1623 IMS_SR_T3346_STOP = 3,
1624 IMS_SR_T3346_EXPIRY = 4,
1625 IMS_SR_CONN_FAIL = 5,
1626 IMS_SR_T3525_START = 6,
1627 IMS_SR_T3540_START = 7,
1628} ims_service_request_fail_enum;
1629
1630typedef struct {
1631 LOCAL_PARA_HDR
1632 ims_service_request_fail_enum cause;
1633} atp_imc_service_request_fail_req_struct;
1634
1635// SS Interface
1636typedef enum {
1637 IMS_CONF_OP_ADD = 0, // add
1638 IMS_CONF_OP_REMOVE = 1, // remove
1639 IMS_CONF_OP_MAX
1640} ims_conf_operation_enum;
1641
1642
1643typedef enum {
1644 IMS_NOTIFY_SERVICE_CALL_WAITING = 259, // mapped <service_id> = 259
1645 IMS_NOTIFY_SERVICE_CALL_BARRING = 256, // mapped <service_id> = 256
1646 IMS_NOTIFY_SERVICE_CALL_FORWARDING = 13, // mapped <service_id> = 13
1647 IMS_NOTIFY_SERVICE_CALL_MWI = 3, // Not used
1648 IMS_NOTIFY_SERVICE_CALL_CONFERENCE = 4, // Not used
1649 IMS_NOTIFY_SERVICE_CALL_MT_FORWARDING = 257,
1650 IMS_NOTIFY_SERVICE_NOTIFY_DIALOG = 258,
1651 IMS_NOTIFY_SERVICE_MAX
1652} ims_notify_service_enum;
1653
1654/*
1655 * @brief
1656 * @note MSG_ID_ATP_IMC_SS_SET_VIDEO_ABILITY_REQ
1657 * AT>AT+EIMSCCP=0|1
1658 */
1659typedef struct {
1660 LOCAL_PARA_HDR
1661 kal_bool is_enable;
1662} atp_imc_ss_set_video_ability_req_struct;
1663
1664/*
1665 * @brief
1666 * @note MSG_ID_ATP_IMC_SS_SET_VIDEO_ABILITY_CNF
1667 * AT< OK
1668 */
1669typedef struct {
1670 LOCAL_PARA_HDR
1671 kal_bool is_success;
1672 kal_uint32 cause; //unused
1673} atp_imc_ss_set_video_ability_cnf_struct;
1674
1675/*
1676 * @brief
1677 * @note MSG_ID_ATP_IMC_SET_VOICE_CAPABILITY_REQ
1678 * AT>AT+EIMSVOICE=0|1
1679 */
1680typedef struct {
1681 LOCAL_PARA_HDR
1682 kal_bool is_enable;
1683} atp_imc_set_voice_capability_req_struct;
1684
1685/*
1686 * @brief
1687 * @note MSG_ID_ATP_IMC_SET_VOICE_CAPABILITY_CNF
1688 * AT< OK
1689 */
1690typedef struct {
1691 LOCAL_PARA_HDR
1692 kal_bool is_success;
1693 kal_uint32 cause; //unused
1694} atp_imc_set_voice_capability_cnf_struct;
1695
1696/*
1697 * @brief
1698 * @note MSG_ID_ATP_IMC_SET_SMS_CAPABILITY_REQ
1699 * AT>AT+EIMSSMS=0|1
1700 */
1701typedef struct {
1702 LOCAL_PARA_HDR
1703 kal_bool is_enable;
1704} atp_imc_set_sms_capability_req_struct;
1705
1706/*
1707 * @brief
1708 * @note MSG_ID_ATP_IMC_SET_SMS_CAPABILITY_CNF
1709 * AT< OK
1710 */
1711typedef struct {
1712 LOCAL_PARA_HDR
1713 kal_bool is_success;
1714 kal_uint32 cause; //unused
1715} atp_imc_set_sms_capability_cnf_struct;
1716
1717#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 */
1718
1719/*
1720 * @brief
1721 * @note MSG_ID_ATP_IMC_SS_CONFERENCE_CONTROL_REQ
1722 * AT>AT+ECONF=<conf_call_id>,<operation>,<num>[,<joined_call_id>]
1723 */
1724typedef struct {
1725 LOCAL_PARA_HDR
1726 kal_uint8 conf_call_id;
1727 ims_conf_operation_enum operation;
1728 kal_uint8 num[ATP_IMC_SS_CONFERENCE_CONTROL_REQ_NUM_LEN];
1729 kal_uint8 joined_call_id;
1730} atp_imc_ss_conference_control_req_struct;
1731
1732
1733/*
1734 * @brief
1735 * @note MSG_ID_ATP_IMC_SS_CONFERENCE_CONTROL_CNF
1736 * AT< OK | ...
1737 */
1738typedef struct {
1739 LOCAL_PARA_HDR
1740 ims_cc_result_enum result;
1741 ims_cc_cause_enum cause;
1742} atp_imc_ss_conference_control_cnf_struct;
1743
1744
1745/*
1746 * @brief
1747 * @note MSG_ID_ATP_IMC_SS_SUBSCRIBE_CONTROL_IND
1748 * AT< +ESUBCTRL:<call_id>,<event>,<result>,<cause>
1749 */
1750typedef struct {
1751 LOCAL_PARA_HDR
1752 kal_uint8 call_id;
1753 ims_ss_sub_event_enum event;
1754 ims_cc_result_enum result;
1755 ims_cc_cause_enum cause;
1756} atp_imc_ss_subscribe_control_ind_struct;
1757
1758
1759/*
1760 * @brief
1761 * @note MSG_ID_ATP_IMC_SS_CONFERENCE_CONTROL_IND
1762 * AT< +ECONF:<conf_call_id>,<operation>,<num>,<result>,<cause>[,<joined_call_id>]
1763 */
1764typedef struct {
1765 LOCAL_PARA_HDR
1766 kal_uint8 conf_call_id;
1767 ims_conf_operation_enum operation;
1768 kal_uint8 num[MAX_CC_ATD_NUM_LEN];
1769 kal_uint8 joined_call_id;
1770 ims_cc_result_enum result;
1771 ims_cc_cause_enum cause;
1772} atp_imc_ss_conference_control_ind_struct;
1773
1774
1775/*
1776 * @brief
1777 * @note MSG_ID_ATP_IMC_SS_PROGRESS_NOTIFY_IND
1778 * AT< +ECMCCSS:<call_id>,<service_id>,<data>
1779 */
1780typedef struct {
1781 LOCAL_PARA_HDR
1782 kal_uint8 call_id;
1783 ims_notify_service_enum service;
1784 kal_uint8 data[MAX_SS_NOTIFY_DATA_LEN]; // 512
1785} atp_imc_ss_progress_notify_ind_struct;
1786
1787/*
1788 * @brief
1789 * @note MSG_ID_ATP_IMC_SS_ECT_IND
1790 * AT< +ECT:<call_id>,<ect_result>,<cause>
1791 */
1792typedef struct {
1793 LOCAL_PARA_HDR
1794 kal_uint8 call_id;
1795 kal_uint8 result;
1796 ims_disc_cause_enum cause;
1797} atp_imc_ss_ect_ind_struct;
1798
1799/* WFC */
1800typedef struct {
1801 LOCAL_PARA_HDR
1802 ims_access_rat_enum source_rat;
1803 ims_access_rat_enum target_rat;
1804 ims_reg_type_enum reg_type;
1805}atp_imc_handover_start_ind_struct;
1806
1807typedef struct {
1808 LOCAL_PARA_HDR
1809 ims_access_rat_enum source_rat;
1810 ims_access_rat_enum target_rat;
1811 kal_bool result; /* fail (FALSE) or success (TRUE) */
1812 ims_reg_type_enum reg_type;
1813}atp_imc_handover_stop_ind_struct;
1814
1815/*
1816 * @brief
1817 * @note MSG_ID_ATP_IMC_CC_MEDIA_MOD_IND
1818 */
1819/* VILTE */
1820typedef struct {
1821 LOCAL_PARA_HDR
1822 kal_uint8 call_id;
1823 ims_call_mode_enum call_mode;
1824 ims_cc_camera_direction_enum camera_direction;
1825 kal_uint8 audio_direction;
1826 kal_uint8 audio_codec; // opaque
1827 kal_int8 p_assert_uri[IMS_P_ASSERT_URI_LEN];
1828} atp_imc_cc_media_mod_ind_struct;
1829
1830typedef struct {
1831 LOCAL_PARA_HDR
1832 kal_uint8 call_id;
1833 kal_uint8 local_video_capability;
1834 kal_uint8 remote_video_capability;
1835} atp_imc_cc_video_cap_ind_struct;
1836
1837typedef struct {
1838 LOCAL_PARA_HDR
1839 kal_uint8 call_id;
1840 kal_uint8 local_text_capability;
1841 kal_uint8 remote_text_capability;
1842 kal_uint8 local_text_status;
1843 kal_uint8 real_remote_text_capability;
1844} atp_imc_cc_text_cap_ind_struct;
1845
1846/*
1847 * @brief Turn on/off Radio link monitor
1848 * @note MSG_ID_ATP_IMC_RLM_EVENT_IND
1849 */
1850typedef struct {
1851 LOCAL_PARA_HDR
1852 kal_uint8 reserve;
1853 kal_uint8 event_type;
1854 kal_uint16 band;
1855} atp_imc_rlm_event_ind_struct;
1856
1857/**
1858 * @brief USSD AT Command RILD-->ATP-->IMC-->IMCB-->UA
1859 * @note MSG_ID_ATP_IMC_SEND_USSD_REQ
1860 */
1861typedef struct atp_imc_send_ussd_req {
1862 LOCAL_PARA_HDR
1863 kal_uint8 cmd_class; /*< class */
1864 kal_uint8 operation; /*< oper */
1865 kal_uint16 action; /*< action */
1866 kal_uint8 language[IMS_USSD_LANGUANGE_LEN]; /*< language */
1867 kal_uint16 error_code; /*< error_code */
1868 kal_uint16 message_len; /*< message length */
1869 kal_uint8 message[IMS_USSD_MAX_MSG_LEN];
1870 kal_uint8 digit_from_line_number[IMC_MAX_URI_LENGTH];
1871} atp_imc_send_ussd_req_struct;
1872
1873/**
1874 * @brief USSD AT Command RILD<--ATP<--IMC<--IMCB<--UA
1875 * @note MSG_ID_ATP_IMC_SEND_USSD_CNF
1876 */
1877typedef struct atp_imc_send_ussd_cnf {
1878 LOCAL_PARA_HDR
1879 kal_uint32 response; /*< OK or ERROR, may be extended to CME ERROR later on*/
1880} atp_imc_send_ussd_cnf_struct;
1881
1882/**
1883 * @brief USSD AT Command RILD<--ATP<--IMC<--IMCB<--UA
1884 * @note MSG_ID_ATP_IMC_RECV_USSD_IND
1885 */
1886typedef struct atp_imc_recv_ussd_ind {
1887 LOCAL_PARA_HDR
1888 kal_uint8 urc_class; /*< class */
1889 kal_uint8 alert_pattern; /*< Alertin Pattern for AP */
1890 kal_uint8 padding[2]; /*< oper */
1891 kal_uint16 status; /*< status */
1892 kal_uint16 sip_cause; /*< status */
1893 kal_uint8 language[IMS_USSD_LANGUANGE_LEN]; /*< language */
1894 kal_uint16 error_code; /*< error_code */
1895 kal_uint16 message_len; /*< message length */
1896 kal_uint8 message[IMS_USSD_MAX_MSG_LEN];
1897 kal_uint8 digit_from_line_number[IMC_MAX_URI_LENGTH];
1898} atp_imc_recv_ussd_ind_struct;
1899
1900/*
1901 * @brief
1902 * @note MSG_ID_ATP_IMC_SET_EMERGENCY_AID_REQ
1903 * AT>AT+EIMSAID="xxxx-yyyy-wwww-zzzz"
1904 */
1905typedef struct {
1906 LOCAL_PARA_HDR
1907 kal_uint8 emergency_aid[IMC_MAX_EMERGENCY_AID_LEN];
1908} atp_imc_set_emergency_aid_req_struct;
1909
1910/*
1911 * @brief
1912 * @note MSG_ID_ATP_IMC_SET_EMERGENCY_AID_CNF
1913 * AT< OK
1914 */
1915typedef struct {
1916 LOCAL_PARA_HDR
1917 kal_bool is_success;
1918 kal_uint32 cause; //unused
1919} atp_imc_set_emergency_aid_cnf_struct;
1920
1921/*
1922 * @brief
1923 * @note MSG_ID_ATP_IMC_CISRVCC_REQ
1924 * AT>AT+CISRVCC=0|1
1925 */
1926typedef struct {
1927 LOCAL_PARA_HDR
1928 kal_bool is_enable;
1929} atp_imc_cisrvcc_req_struct;
1930
1931/*
1932 * @brief
1933 * @note MSG_ID_ATP_IMC_CISRVCC_CNF
1934 * AT< OK
1935 */
1936typedef struct {
1937 LOCAL_PARA_HDR
1938 kal_bool is_success;
1939 kal_uint32 cause; //unused
1940} atp_imc_cisrvcc_cnf_struct;
1941
1942/*
1943 * @brief
1944 * @note MSG_ID_ATP_IMC_IMS_TIMER_STATUS_IND
1945 * AT+EITMR=<timer_type>,<timer_status>,<timer_length>
1946 */
1947typedef struct {
1948 LOCAL_PARA_HDR
1949 kal_uint32 account_id; /*< Account ID*/
1950 kal_uint32 timer_type; // ims_timer_type_enum
1951 kal_uint32 timer_status; // ims_timer_status_enum
1952 kal_uint16 timer_length;
1953 kal_uint8 pad[2];
1954} atp_imc_ims_timer_status_ind_struct;
1955
1956/*
1957 * @brief
1958 * @note MSG_ID_ATP_IMC_NORMAL_REG_CSCM_REQ
1959 * AT>AT+CSCM=<service_type>,<action>
1960 */
1961typedef struct {
1962 LOCAL_PARA_HDR
1963 ims_scm_info_type_enum service_type;
1964 ims_scm_info_action_enum action;
1965} atp_imc_normal_reg_cscm_req_struct;
1966
1967
1968/*
1969 * @brief
1970 * @note MSG_ID_ATP_IMC_NORMAL_REG_CSCM_CNF
1971 * AT< OK | ...
1972 */
1973typedef struct {
1974 LOCAL_PARA_HDR
1975 kal_bool result;
1976} atp_imc_normal_reg_cscm_cnf_struct;
1977
1978/*
1979 * @brief
1980 * @note MSG_ID_ATP_IMC_REGUA_REMAIN_TIME_IND
1981 */
1982typedef struct {
1983 LOCAL_PARA_HDR
1984 kal_uint8 rereg_flag; // send rereg_time or not
1985 kal_int32 rereg_remain_time; // rereg_time
1986 kal_uint8 resub_flag; // send resub_time or not
1987 kal_int32 resub_remain_time; // resub_time
1988} atp_imc_regua_remain_time_ind_struct;
1989
1990/*
1991 * Description
1992 * - to query IMEI SVN from L4
1993 * Direction
1994 * - IMC -> ATP
1995 */
1996typedef struct {
1997 LOCAL_PARA_HDR
1998} atp_imc_query_imei_svn_req_struct;
1999
2000typedef struct
2001{
2002 LOCAL_PARA_HDR
2003 kal_uint8 imei_svn[IMC_MAX_IMEI_SVN_LEN];
2004} atp_imc_query_imei_svn_cnf_struct;
2005
2006/*
2007 * @brief
2008 * @note MSG_ID_ATP_IMC_EVOLTESI_CONFIG_IND
2009 * AT+EVOLTESI
2010 */
2011typedef struct {
2012 LOCAL_PARA_HDR
2013 enh_volte_si_enum config;
2014} atp_imc_evoltesi_config_ind_struct;
2015
2016
2017#endif