[Feature][Modem]Add Modem Patch P1

Change-Id: Idee4f9fd6700b484f7db86704cf5639cec4d71a2
diff --git a/mcu/protocol/interface/ims/d2pm_d2rm_struct.h b/mcu/protocol/interface/ims/d2pm_d2rm_struct.h
old mode 100644
new mode 100755
index a0b9aa2..22b617b
--- a/mcu/protocol/interface/ims/d2pm_d2rm_struct.h
+++ b/mcu/protocol/interface/ims/d2pm_d2rm_struct.h
@@ -352,6 +352,7 @@
     d2pm_d2rm_retry_info_struct retry_info;
     epdg_mapped_info_struct     epdg_mapped_info;
     d2pm_d2rm_res_enum res;
+    res_info_struct res_info;
 
     /* private part */
     d2pm_d2rm_act_data_call_cnf_prv_struct d2pm_d2rm_prv;
@@ -583,6 +584,7 @@
     d2pm_d2rm_net_info_struct net_info;    // for Internet information
     ran_info_struct ran_info;    // RAN info of non-3GPP
     d2pm_d2rm_res_enum res;
+    res_info_struct res_info;
 
     /* private part */
     d2pm_d2rm_act_data_call_ind_prv_struct d2pm_d2rm_prv;
diff --git a/mcu/protocol/interface/ims/d2rm_ddm_struct.h b/mcu/protocol/interface/ims/d2rm_ddm_struct.h
old mode 100644
new mode 100755
index 56af80e..5fc5bfd
--- a/mcu/protocol/interface/ims/d2rm_ddm_struct.h
+++ b/mcu/protocol/interface/ims/d2rm_ddm_struct.h
@@ -372,6 +372,9 @@
 
     // ddm_res_enum res_code;
     kal_uint32 res_code;
+    // result info
+    res_info_ps_cause_t ps_cause;
+    res_info_nw_cause_t nw_cause;
     /* private part */
     d2rm_ddm_act_data_call_cnf_prv_struct d2rm_ddm_prv;
     d2pm_ddm_act_data_call_cnf_prv_struct d2pm_ddm_prv;
@@ -532,6 +535,8 @@
     d2rm_ddm_ip_info_struct ip_info;
     d2rm_ddm_net_info_struct net_info;
     ddm_res_enum res_code;
+    res_info_ps_cause_t ps_cause;
+    res_info_nw_cause_t nw_cause;
     /* private part */
     d2rm_ddm_act_data_call_ind_prv_struct d2rm_ddm_prv;
     d2pm_ddm_act_data_call_ind_prv_struct d2pm_ddm_prv;
diff --git a/mcu/protocol/interface/ims/imcb_imc_struct.h b/mcu/protocol/interface/ims/imcb_imc_struct.h
old mode 100644
new mode 100755
index 14ea0b7..6850014
--- a/mcu/protocol/interface/ims/imcb_imc_struct.h
+++ b/mcu/protocol/interface/ims/imcb_imc_struct.h
@@ -1418,8 +1418,7 @@
     imcf_uint32           sip_uri_type; /* ims_reg_sip_uri_type_enum */
     imcf_uint8            retry_after_ongoing;
     imcf_uint8            emergency_type;
-    imcf_uint8            has_sent_register;
-    imcf_uint8            pad[1];
+    imcf_uint8            pad[2];
 } imcb_imc_ims_reg_state_req_struct;
 
 /**
diff --git a/mcu/protocol/interface/ims/ims_common_def.h b/mcu/protocol/interface/ims/ims_common_def.h
old mode 100644
new mode 100755
index f81a353..49b4b02
--- a/mcu/protocol/interface/ims/ims_common_def.h
+++ b/mcu/protocol/interface/ims/ims_common_def.h
@@ -53,6 +53,11 @@
  *===========================================================
  * $Log$
  *
+ * 07 28 2022 ot_gang.zhang
+ * [MOLY00823817] [MT6879][Figeac][S0][R2][JAPAN][SOFTBANK][TB][TrialNW][SIP PANI Info][CR Review Excluded] Supporting OTR-Voice-032066
+ * 	
+ * 	.
+ *
  * 07 07 2022 jasleen.k
  * [MOLY00846008] [MT6873][Margaux][Q0][R3][JAPAN][SOFTBANK][SA][SIM][Lab][Degrade, CORE_GEN-10n-22-1001] On W22.14.P1, UE kept sending PDU_REQ(for IMS) after received DEREGISTRATION_REQ(re-registration required). Note that W21.51.P3 didn't have this issue.
  * 	
@@ -3244,6 +3249,30 @@
     kal_uint8                       ua_enabled;         ///< UA enabled
 } VoLTE_Event_UA_State_t;
 
+/*PANI header necessary information , send from call UA to STACK*/
+typedef struct _VoLTE_Event_UA_Stack_PANI_Info_ {
+    LOCAL_PARA_HDR
+    //Basic information for PANI
+    kal_int32                       acct_id;
+    kal_uint8                       cell_id[VOLTE_MAX_CELL_ID_LENGTH];
+    kal_int8                        cell_id_3gpp[VOLTE_MAX_CELL_ID_LENGTH];
+    kal_int8                        g_emerg_cell_id[VOLTE_MAX_CELL_ID_LENGTH];
+    kal_int8                        country_code[8];
+    kal_uint32                      net_type;               ///< VoLTE_Event_Network_Type_e
+    kal_int32                       sub_net_type;           ///< VoLTE_Event_Network_Type_e
+    kal_int8                        pani_access_category;   ///decide to carry access-type or access-class in PANI header, refer to VoLTE_Stack_PANI_Access_Category_e
+    kal_uint32                      is_emergency_call;
+
+    //Customization for PANI
+    kal_uint8                       set_zero_cell_id_in_wifi;
+    kal_uint8                       add_country_to_pani;
+    kal_uint8                       add_cellid_to_pani;
+    kal_uint8                       add_timezone_to_pani;
+    kal_uint8                       add_pani_in_ack;
+    kal_uint8                       add_pani_in_cancel;
+    
+} VoLTE_Event_UA_Stack_PANI_Info_t;
+
 /* Teardown Flow for IMCB/REG State un-sync */
 typedef struct {
     LOCAL_PARA_HDR
diff --git a/mcu/protocol/interface/ims/ims_interface_md.h b/mcu/protocol/interface/ims/ims_interface_md.h
old mode 100644
new mode 100755
index 8dfa807..e67f7f0
--- a/mcu/protocol/interface/ims/ims_interface_md.h
+++ b/mcu/protocol/interface/ims/ims_interface_md.h
@@ -42,6 +42,20 @@
  *
  * removed!
  * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
  *
  * removed!
  * removed!
@@ -465,8 +479,9 @@
 typedef enum
 {
     SSDS_IMC_SS_INVALID_TYPE,
-	SSDS_IMC_SS_OPEATION_TYPE,	
-	SSDS_IMC_USSD_TYPE,
+    SSDS_IMC_SS_OPEATION_TYPE,
+    SSDS_IMC_USSD_TYPE,
+    SSDS_IMC_USSD_ENABLE_TYPE,
 }ssds_imc_cmd_class_enum;
     
 typedef enum
@@ -510,7 +525,7 @@
 	SSDS_IMC_OTHER_LOCAL_CLIENT_RESPOND,       /* 3 :other local client has responded X*/
 	SSDS_IMC_NW_NOT_SUPPORT,                   /* 4 :operation not supported*/
 	SSDS_IMC_NW_TIMER_OUT,                     /* 5 :network time out X*/
-
+    SSDS_IMC_NW_ERROR_SESSION_STILL_EXISTS = 10,
 }ssds_ussd_status_enum;
 
 
diff --git a/mcu/protocol/interface/ims/ltecsr_struct.h b/mcu/protocol/interface/ims/ltecsr_struct.h
old mode 100644
new mode 100755
index 07c0b8d..2baae25
--- a/mcu/protocol/interface/ims/ltecsr_struct.h
+++ b/mcu/protocol/interface/ims/ltecsr_struct.h
@@ -58,6 +58,11 @@
  *
  * removed!
  * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
  *
  * removed!
  * removed!
@@ -1174,5 +1179,20 @@
     kal_int16                                   drx_adjustment;
 } nrrc_ltecsr_delay_budget_result_handle_req_struct;
 
+/**
+ * L5 LTECSR SAP
+ */
+typedef enum e_ltecsr_notify_recv_dtmf_event{
+    LTECSR_NOTIFY_RECV_DTMF_EVENT_START     =   0,
+    LTECSR_NOTIFY_RECV_DTMF_EVENT_STOP      =   1,
+    LTECSR_NOTIFY_RECV_DTMF_EVENT_STOP_ALL  =   2
+} ltecsr_notify_recv_dtmf_event_e;
+#define MAX_DTMF_RECV_REPORT_LENGTH 2
+/* L5_LTECSR_RECV_DTMF_IND (LTECSR -> L5) */
+typedef struct s_ltecsr_l5_recv_dtmf_ind_struct {
+    LOCAL_PARA_HDR
+    kal_uint8 mode;                                     /* 0:START, 1:STOP, 2:STOP_ALL */
+    kal_char digit[MAX_DTMF_RECV_REPORT_LENGTH];        /* digit[0]: the DTMF event char, digit[1]: always ended with '\0' */
+} l5_ltecsr_recv_dtmf_ind_struct;
 #endif