| /***************************************************************************** |
| * Copyright Statement: |
| * -------------------- |
| * This software is protected by Copyright and the information contained |
| * herein is confidential. The software may not be copied and the information |
| * contained herein may not be used or disclosed except with the written |
| * permission of MediaTek Inc. (C) 2005 |
| * |
| * BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES |
| * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE") |
| * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON |
| * AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES, |
| * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF |
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT. |
| * NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE |
| * SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR |
| * SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH |
| * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO |
| * NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S |
| * SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM. |
| * |
| * BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE |
| * LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE, |
| * AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE, |
| * OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO |
| * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. |
| * |
| * THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE |
| * WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF |
| * LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND |
| * RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER |
| * THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC). |
| * |
| *****************************************************************************/ |
| |
| /******************************************************************************* |
| *============================================================================== |
| * HISTORY |
| * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!! |
| *------------------------------------------------------------------------------ |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| * removed! |
| * removed! |
| * removed! |
| * |
| *------------------------------------------------------------------------------ |
| * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!! |
| *============================================================================== |
| *******************************************************************************/ |
| |
| #ifndef _ATP_IMC_STRUCT_H |
| #define _ATP_IMC_STRUCT_H |
| |
| #include "l3_inc_local.h" |
| #include "l3_inc_enums.h" |
| #include "ps_public_enum.h" |
| #include "sim_public_enum.h" |
| #include "imc_msgid.h" |
| #include "ims_common_def.h" |
| |
| typedef enum |
| { |
| IMS_CS_CALL_START = 0, |
| IMS_CS_CALL_END, |
| IMS_CS_CALL_OTHERS, |
| } ims_cs_call_status_enum; |
| |
| typedef enum |
| { |
| VOICE_DOMAIN_STATUS_START = 0, |
| VOICE_DOMAIN_STATUS_STOP |
| }voice_domain_status_enum; |
| |
| typedef enum |
| { |
| IMS_1X_CALL_END = 0, |
| IMS_1X_CALL_START, |
| IMS_1X_CALL_OTHERS, |
| } ims_1x_call_status_enum; |
| |
| /*************************/ |
| /* IMS Registration enum */ |
| /*************************/ |
| typedef enum { |
| IMS_VOPS_NOT_SUPPORTED = 0, |
| IMS_VOPS_SUPPORTED |
| } vops_enum; |
| |
| // mirror from rmmi_reg_state_enum and nas_reg_status_enum @/mcu/modem/interface/ims/vdm_atp_struct.h |
| typedef enum |
| { |
| NAS_PS_REG_STATUS_NOT_REGISTERED = 0, |
| NAS_PS_REG_STATUS_REGISTERED_HOME, |
| NAS_PS_REG_STATUS_NOT_REGISTERED_SEARCHING, |
| NAS_PS_REG_STATUS_REG_DENIED, |
| NAS_PS_REG_STATUS_OUT_OF_COVERAGE, |
| NAS_PS_REG_STATUS_REGISTERED_ROAMING, |
| NAS_PS_REG_STATUS_SMS_ONLY_HOME, |
| NAS_PS_REG_STATUS_SMS_ONLY_ROAMING, |
| NAS_PS_REG_STATUS_EMERGENCY_ONLY, |
| NAS_PS_REG_STATUS_CSFB_NOT_PREFERRED_HOME, |
| NAS_PS_REG_STATUS_CSFB_NOT_PREFERRED_ROAMING |
| } nas_ps_reg_status_enum; |
| |
| typedef enum |
| { |
| WIFI_STATE_OFF = 0, |
| WIFI_STATE_ON |
| }wifi_state_enum; |
| |
| typedef enum |
| { |
| WIFI_STATE_CAUSE_GENERAL = 0, |
| WIFI_STATE_CAUSE_UI_DISABLE, |
| WIFI_STATE_CAUSE_MAX |
| }wifi_state_cause_enum; |
| |
| typedef enum |
| { |
| WIFI_STATE_TARGET_RAN_UNKNOWN = 0, |
| WIFI_STATE_TARGET_RAN_3GPP = 1, |
| WIFI_STATE_TARGET_RAN_WIFI = 2, |
| WIFI_STATE_TARGET_RAN_NONE = 254, |
| WIFI_STATE_TARGET_RAN_MAX = 255 |
| }wifi_state_target_ran_enum; |
| |
| typedef enum |
| { |
| IMS_DEREG_CAUSE_BY_NONE = 0, |
| IMS_DEREG_CAUSE_BY_DATA_DEATTACH, |
| IMS_DEREG_CAUSE_BY_SS_CONFIG, |
| IMS_DEREG_CAUSE_BY_IMS_RECONFIG, |
| IMS_DEREG_CAUSE_BY_D2, |
| IMS_DEREG_CAUSE_BY_D2_REFRESH, |
| IMC_DEREG_CAUSE_BY_MAX |
| }ims_dereg_cause_by_enum; |
| |
| typedef enum |
| { |
| IMS_RF_OFF_TYPE_UNSPEC = 0, |
| IMS_RF_OFF_TYPE_EFUN = 1, |
| IMS_RF_OFF_TYPE_CFUN = 2 |
| }ims_rf_off_type_enum; |
| |
| typedef enum |
| { |
| ECBM_STATE_STOP = 0, |
| ECBM_STATE_START = 1 |
| }ecbm_state_enum; |
| |
| typedef enum |
| { |
| ECBM_CAUSE_TIMER_EXPIRED = 0, |
| ECBM_CAUSE_ANOTHER_CALL = 1, |
| ECBM_CAUSE_URC_TO_AP = 2, //IMC ignore when state is STOP |
| }ecbm_cause_enum; |
| |
| typedef enum { |
| ATP_EGMC_OP_QUERY = 0, |
| ATP_EGMC_OP_SET, |
| } atp_egmc_op_enum; |
| |
| typedef enum{ |
| ATP_IMC_DRP_FLUSH_NVRAM = 0, |
| ATP_IMC_DRP_DUMP_TO_NVRAM, |
| }atp_imc_drp_enum; |
| /* |
| * This enum only use for unblocking AT+ECCTRL to indicate AP should wait for network's response. |
| * This enum values should be aligned with ims_cc_result_enum, using unused value of ims_cc_result_enum. |
| */ |
| typedef enum{ |
| WAITING_FOR_NW_RESPONSE = -128, |
| }CALL_CONTROL_PROVISIONAL_RESULT; |
| |
| typedef enum { |
| IMS_ECCTRL_STATE_CHANGE_HELD = 131, |
| IMS_ECCTRL_STATE_CHANGE_ACTIVE = 132 |
| } ims_ecctrl_enum; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| ims_result_code_enum result; |
| ims_err_id_enum err_id; |
| } atp_imc_common_at_rsp_struct; |
| typedef atp_imc_common_at_rsp_struct atp_imc_common_at_cnf_struct; |
| /*******************************/ |
| /* IMS Registration interface */ |
| /*******************************/ |
| /* |
| * Description |
| * - the primitive is used for PS to notify IMC that the operation modes for collecting |
| * - six conditions which mentioned in TS24.229 Annex L3.1.2. |
| * Direction |
| * - PS -> IMC |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| ue_mode_enum ue_mode_op; |
| } atp_imc_ue_mode_update_req_struct; |
| |
| /* |
| * Description |
| * - the primitive is used for PS to notify IMC that UE is attached to NW or not, and IMSVoPS indicator |
| * - six conditions which mentioned in TS24.229 Annex L3.1.2. |
| * Direction |
| * - PS -> IMC |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| #if 0 |
| /* under construction !*/ |
| #endif |
| vops_enum ims_vops; |
| } atp_imc_imsvops_notification_req_struct; |
| |
| /* |
| * Description |
| * - the primitive is used for PS to notify IMC rat_type, cell_id, PLMN_type |
| * Direction |
| * - PS -> IMC |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| ims_rat_type_enum rat_type; |
| kal_uint32 cell_id; |
| cell_service_enum cell_service; |
| plmn_id_struct plmn_id; |
| plmn_type_enum plmn_type; |
| kal_uint8 la_code[2]; |
| kal_uint8 ta_code[2]; |
| kal_bool limited_service_emc_support; |
| domain_id_enum domain; |
| kal_bool is_empty_cell; |
| } atp_imc_cell_info_update_req_struct; |
| typedef atp_imc_cell_info_update_req_struct atp_imc_eimsinfo_req_struct; |
| |
| |
| /* |
| * Description |
| * - the primitive is used for IMC identifing core network is support Emergency Bearer Service or not |
| * Direction |
| * - PS -> IMC |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_emb_s1_support; |
| } atp_imc_emb_s1_supp_req_struct; /* Obsolete: to be removed after code change */ |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| ims_access_rat_enum rat_type; |
| kal_bool is_emb_support; |
| } atp_imc_emb_support_req_struct; |
| |
| /* |
| * Description |
| * - the primitive is used for PS to notify IMC to do |
| * - 1. IMS de-registration |
| * - 2. Release PDN/signaling bearer and media bearer |
| * Direction |
| * - PS -> IMC |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| ims_dereg_cause_enum reason; |
| ims_rf_off_type_enum rf_off_type; |
| rfoff_cause_enum rf_off_cause; |
| } atp_imc_power_off_req_struct; |
| |
| /* |
| * Description |
| * - the primitive is used for IMC to notify PS that IMS registration start. |
| * Direction |
| * - IMC -> PS |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| ims_reg_type_enum reg_type; //IMS_REG_TYPE_NORMAL=0, IMS_REG_TYPE_EMERGENCY=1 |
| } atp_imc_ims_reg_start_ind_struct; |
| |
| /* |
| * Description |
| * - the primitive is used for IMC to notify PS that IMS deregistration start. |
| * Direction |
| * - IMC -> PS |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| ims_reg_type_enum dereg_type; //IMS_REG_TYPE_NORMAL=0, IMS_REG_TYPE_EMERGENCY=1 |
| } atp_imc_ims_dereg_start_ind_struct; |
| |
| /* |
| * Description |
| * - the primitive is used for IMC to notify PS send exit ECBM to AP when PDN is deactivated. |
| * Direction |
| * - IMC -> PS |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool reserve; |
| } atp_imc_ims_exit_start_ind_struct; |
| |
| /* |
| * Description |
| * - the primitive is used for IMC to notify PS current IMS ENABLE state. |
| * Direction |
| * - IMC -> PS |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_enabled; |
| } atp_imc_ims_enable_ind_struct; |
| |
| /* |
| * Description |
| * - the primitive is used for IMC to notify +EIMS:0/1 |
| * Direction |
| * - IMC -> PS |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_enable; |
| } atp_imc_eims_urc_ind_struct; |
| |
| /* |
| * Description |
| * - the primitive is acknowledge of "IMC_REG_POWER_OFF_IND" |
| * Direction |
| * - IMC -> PS |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| ims_dereg_cause_enum reason; |
| ims_rf_off_type_enum rf_off_type; |
| } atp_imc_power_off_cnf_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_ECFG_SET_REQ |
| * AT> AT+ECFGSET=<cfg_name>,<cfg_value> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 name[64]; |
| kal_uint8 value[256]; |
| } atp_imc_ecfg_set_req_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_ECFG_SET_CNF |
| * AT< OK or +CME ERROR:<err> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool result; // KAL_TRUE-success; KAL_FALSE-fail |
| ims_err_id_enum cause; // return "IMS_ERR_UNKNOWN" for all so far |
| // before define IMS domain proprietary cause |
| } atp_imc_ecfg_set_cnf_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_EMOCFG_REQ |
| * AT> AT+EMOCFG=<cfg_name>,<cfg_value> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 name[64]; |
| kal_uint8 value[128]; |
| } atp_imc_emocfg_req_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_EMOCFG_CNF |
| * AT< OK or +CME ERROR:<err> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool result; |
| ims_err_id_enum cause; |
| } atp_imc_emocfg_cnf_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_ECFG_GET_REQ |
| * AT> AT+ECFGSET=<cfg_name> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 name[64]; |
| } atp_imc_ecfg_get_req_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_ECFG_GET_CNF |
| * AT< +ECFGGET:<cfg_name>,<cfg_value> |
| * AT< OK or +CME ERROR:<err> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool result; // KAL_TRUE-success; KAL_FALSE-fail |
| ims_err_id_enum cause; // return "IMS_ERR_UNKNOWN" for all so far |
| // before define IMS domain proprietary cause |
| kal_uint8 name[64]; |
| kal_uint8 value[256]; |
| } atp_imc_ecfg_get_cnf_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_ECFG_RESET_REQ |
| * AT> AT+ECFGRESET=<cfg_name> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 name[64]; |
| } atp_imc_ecfg_reset_req_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_ECFG_RESET_CNF |
| * AT< OK or +CME ERROR:<err> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool result; // KAL_TRUE-success; KAL_FALSE-fail |
| ims_err_id_enum cause; // return "IMS_ERR_UNKNOWN" for all so far |
| // before define IMS domain proprietary cause |
| } atp_imc_ecfg_reset_cnf_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_EPVS_SET_REQ |
| * AT> AT+EPVSSET=<cfg_name>,<cfg_value> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 name[64]; |
| kal_uint8 value[128]; |
| } atp_imc_epvs_set_req_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_EPVS_SET_CNF |
| * AT< OK or +CME ERROR:<err> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool result; |
| ims_err_id_enum cause; |
| } atp_imc_epvs_set_cnf_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_EPVS_GET_REQ |
| * AT> AT+EPVSGET=<cfg_name> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 name[64]; |
| } atp_imc_epvs_get_req_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_EPVS_GET_CNF |
| * AT< +EPVSGET:<cfg_name>,<cfg_value> |
| * AT< OK or +CME ERROR:<err> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool result; |
| ims_err_id_enum cause; |
| kal_uint8 name[64]; |
| kal_uint8 value[128]; |
| } atp_imc_epvs_get_cnf_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_QUERY_URI_TYPE_REQ |
| * AT+CDU=0 |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| } atp_imc_query_uri_type_req_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_QUERY_URI_TYPE_CNF |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 uri_type; // ims_uri_type_enum; |
| } atp_imc_query_uri_type_cnf_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_SET_EVS_SUPPORT_REQ |
| * AT>AT+EIMSEVS=0|1 |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_enable; |
| } atp_imc_set_evs_support_req_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_SET_EVS_SUPPORT_CNF |
| * AT< OK |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_success; |
| kal_uint32 cause; // unused |
| } atp_imc_set_evs_support_cnf_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_TIMER_TEST_REQ |
| */ |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 number; |
| } atp_imc_timer_test_req_struct; |
| |
| /* |
| * @note MSG_ID_ATP_IMC_INTER_RAT_STATUS_IND |
| * +EIRAT: <irat_status>, <irat_result> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| ims_irat_status_enum irat_status; |
| kal_bool irat_result; |
| } atp_imc_inter_rat_status_ind_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_AUTO_FAST_RETURN_IND |
| * +EAFR=<afr_result> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool result; |
| } atp_imc_auto_fast_return_ind_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_CS_CALL_STATUS_IND |
| * +ECPI:<call_id>, <msg_type>, <is_ibt>, <is_tch>, <dir>, <call_mode>, <number>, <type>, "<pau>"[,<disc_cause>] |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| ims_cs_call_status_enum cs_call_status; |
| } atp_imc_cs_call_status_ind_struct; |
| |
| /* |
| * @brief UE receive mt cs paging |
| * note MSG_ID_ATP_IMC_MT_CS_PAGING_IND |
| * +CIEV: 13 |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| } atp_imc_mt_cs_paging_ind_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_VOICE_DOMAIN_STATUS_IND |
| * AT+EVVS=<voice_status> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| voice_domain_status_enum voice_domain_status; |
| } atp_imc_voice_domain_status_ind_struct; |
| |
| /* |
| * @brief Turn on/off Radio link monitor |
| * @note MSG_ID_ATP_SET_IMC_RLM_REQ |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 enable; |
| } atp_imc_set_rlm_req_struct; |
| |
| /* |
| * @brief IMS diable by AP |
| * @note MSG_ID_ATP_IMC_IMS_DEREG_REQ/CNF |
| * AT+EIMSDEREG:<cause> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint32 dereg_cause; //ims_dereg_cause_by_enum |
| } atp_imc_ims_dereg_req_struct, |
| atp_imc_ims_dereg_cnf_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_uint8 dial_num[MAX_CC_ATD_NUM_LEN]; |
| } atp_imc_fdn_ecc_check_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_bool is_allowed; |
| kal_bool is_emergency; |
| kal_uint16 emergency_service_category; |
| } atp_imc_fdn_ecc_check_cnf_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_uint8 dial_num[MAX_CC_ATD_NUM_LEN]; |
| } atp_imc_ss_fdn_check_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_bool is_allowed; |
| } atp_imc_ss_fdn_check_cnf_struct; |
| |
| /* |
| * @brief IMS diable by AP |
| * @note MSG_ID_ATP_IMC_IMS_INIT_IND |
| * AT+EIMSINVER:<AP>,<MD> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint32 ap_verno; //from imsa_connect_req |
| kal_uint32 md_verno; //IMCB_IMC_HEADER_FILE_VERNO |
| } atp_imc_ims_init_ind_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_C2K_SERVICE_STATE_REQ |
| * +EC2KREG:<domain>, <state>, <service_type> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| domain_id_enum domain; |
| c2k_cell_service_enum state; |
| c2k_rat_type_enum service_type; |
| } atp_imc_c2k_service_state_req_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_C2K_CELL_INFO_UPDATE_REQ |
| * +EC2KINFO:<access_type>, <sid>, <nid>, <pzid>, <base_id>, <sectot_id>, <subnet_length>, <carrier_id> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| c2k_rat_type_enum access_type; |
| kal_uint16 sid; |
| kal_uint16 nid; |
| kal_uint8 pzid; |
| kal_uint16 base_id; |
| kal_uint32 sectot_id[4]; |
| kal_uint8 subnet_length; |
| kal_uint8 carrier_id[7]; |
| } atp_imc_c2k_cell_info_update_req_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_CAMPED_CELL_ID_UPDATE_REQ |
| * +ECMPCID:<rat>,<ci>,<plmn_id>,<lac>,<tac> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| ims_rat_type_enum rat_type; |
| kal_uint64 cell_id; |
| plmn_id_struct plmn_id; |
| kal_uint8 la_code[2]; |
| kal_uint8 ta_code[3]; |
| } atp_imc_camped_cell_id_update_req_struct; |
| |
| /* |
| * @brief WFC profile from AP |
| * @note MSG_ID_ATP_IMC_WFC_PROFILE_REQ/CNF |
| * AT+EWFCP=<wfc_profile> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| wfc_profile_enum wfc_profile; |
| } atp_imc_wfc_profile_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_success; |
| kal_uint32 cause; // un-used |
| } atp_imc_wfc_profile_cnf_struct; |
| |
| /* |
| * @brief RCS feature tag from AP |
| * @note MSG_ID_ATP_IMC_RCS_FEATURE_REQ/CNF |
| * AT+EIMSRCS=<rcs_state><rcs_feature> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 rcs_state; |
| kal_uint32 rcs_feature; |
| } atp_imc_rcs_feature_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_success; |
| kal_uint32 cause; // un-used |
| } atp_imc_rcs_feature_cnf_struct; |
| |
| /* |
| * @brief user-defined SIP headers from AP |
| * @note MSG_ID_ATP_IMC_SIP_HEADER_REQ/CNF |
| * AT+ESIPHEADER=<header count>, <header name>, <value>, <header name>, <value>, ... |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 value[256]; |
| } atp_imc_sip_header_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_success; |
| kal_uint32 cause; // un-used |
| } atp_imc_sip_header_cnf_struct; |
| |
| /* |
| * Description |
| * - the primitive is indicator of "AT+ERAT" |
| * Direction |
| * - ATP -> IMC |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 rat_mode; |
| kal_uint8 prefer_rat; |
| kal_uint16 ref_num; |
| } atp_imc_switch_prefer_rat_req_struct; |
| /* |
| * Description |
| * - the primitive is acknowledge of "MSG_ID_ATP_IMC_SWITCH_PREFER_RAT_REQ" |
| * Direction |
| * - IMC -> ATP |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint16 ref_num; |
| } atp_imc_switch_prefer_rat_cnf_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_SS_ECT_REQ |
| * AT>AT+ECT=<ect_type>,<target_number> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 ect_type; |
| kal_uint8 pad[3]; |
| kal_uint8 pau[IMC_MAX_ASSERTED_URI]; |
| kal_uint8 device_id[IMC_MAX_UUID_LEN]; |
| } atp_imc_ss_ect_req_struct; |
| |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_SS_ECT_CNF |
| * AT< OK | ... |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| ims_cc_result_enum result; |
| ims_cc_cause_enum cause; |
| } atp_imc_ss_ect_cnf_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_SET_TEXT_CAPABILITY_REQ/CNF |
| * AT+CTMCALL=<enable> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 enable; |
| } atp_imc_set_text_capability_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_success; |
| kal_uint32 cause; // un-used |
| } atp_imc_set_text_capability_cnf_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_success; |
| kal_uint32 cause; // un-used |
| } atp_imc_tty_capability_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 tty_mode; // TTY off:0, TTY Full:1, TTY HCO:2 (hearing carryover), TTY VCO:3 (voice carryover) |
| }atp_imc_ctmcall_ind_struct; |
| typedef atp_imc_common_at_rsp_struct atp_imc_ctmcall_rsp_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_RTT_CAPABILITY_REQ/CNF |
| * AT+EIMSRTT=<op> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 operation; |
| } atp_imc_rtt_capability_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_success; |
| kal_uint32 cause; // un-used |
| } atp_imc_rtt_capability_cnf_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_RTT_OP_REQ/CNF |
| * AT+RTTCALL = <call id>, <op> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint32 call_id; |
| kal_uint32 op; |
| } atp_imc_cc_rtt_op_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint32 acct_id; |
| kal_uint32 call_id; |
| kal_uint32 result; |
| } atp_imc_cc_rtt_op_cnf_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_C2K_ECBM_STATE_REQ |
| * +CIEV:<102>,<state> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 ecbm_state; //ecbm_state_enum |
| kal_uint8 ecbm_stop_cause; //ecbm_stop_cause_enum |
| } atp_imc_c2k_ecbm_state_ind_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_1X_CALL_STATUS_IND |
| * +EC2KCI:<call_status> |
| */ |
| typedef struct{ |
| LOCAL_PARA_HDR |
| ims_1x_call_status_enum c2k_1x_call_status; |
| } atp_imc_c2k_1x_call_status_ind_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_TAU_FAIL_IND |
| * +ETAUFAIL:<cause> |
| */ |
| typedef struct{ |
| LOCAL_PARA_HDR |
| kal_uint8 cause; |
| } atp_imc_tau_fail_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint32 atcmd_id; |
| kal_bool no_cnf; |
| kal_uint8 cmdline[IMC_ATCMD_MAX_CMDLINE_LEN]; |
| }atp_imc_atcmd_relay_ind_struct, |
| atp_imc_atcmd_relay_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_success; |
| kal_uint32 cause; // un-used |
| } atp_imc_atcmd_relay_cnf_struct; |
| |
| #ifdef __NG_ECALL_SUPPORT__ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 ecall_domain; |
| kal_uint32 msd_data_len; |
| kal_uint8 msd_data[IMS_MAX_MSD_LENGTH]; |
| } atp_imc_msd_update_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_success; |
| kal_uint32 cause; // un-used |
| } atp_imc_msd_update_cnf_struct; |
| |
| #endif |
| |
| /* |
| * Description |
| * - the primitive is request of "MSG_ID_ATP_IMC_MIMS_CAPABILITY_REQ" |
| * Direction |
| * - ATP -> IMC |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint32 reserved; |
| } atp_imc_mims_capability_req_struct; |
| |
| /* |
| * Description |
| * - the primitive is response of "MSG_ID_ATP_IMC_MIMS_CAPABILITY_CNF" |
| * Direction |
| * - IMC -> ATP |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_success; |
| kal_uint8 mims_num; |
| kal_uint32 cause; |
| } atp_imc_mims_capability_cnf_struct; |
| |
| /* |
| * Description |
| * - the primitive is used for IMC to notify PS current IMS Roaming support or not. |
| * Direction |
| * - IMC -> ATP |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_enabled; |
| } atp_imc_ims_roaming_ind_struct; |
| |
| /* |
| * Description |
| * - NWSEL is searching the available NW or not. |
| * Direction |
| * - ATP -> IMC |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_searching; |
| } atp_imc_nw_search_status_ind_struct; |
| |
| /* |
| * Description |
| * - the primitive is used for IMC to notify PS IMS special event. |
| * Direction |
| * - IMC -> ATP |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| ims_special_event_enum special_event; |
| imcb_imc_sip_cause_enum sip_cause; |
| } atp_imc_ims_event_ind_struct; |
| |
| #define IMC_AT_CMD_TO_MD_NAME_LEN 32 |
| #define IMC_AT_CMD_TO_MD_VALUE_LEN 512 |
| /* |
| * Description |
| * - the primitive is response of "MSG_ID_ATP_IMC_AT_CMD_TO_MD_IND" |
| * Direction |
| * - IMC -> ATP |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| atp_egmc_op_enum op; |
| kal_uint8 name[IMC_AT_CMD_TO_MD_NAME_LEN]; |
| kal_uint8 value[IMC_AT_CMD_TO_MD_VALUE_LEN]; |
| } atp_imc_at_cmd_to_md_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| atp_imc_drp_enum op; |
| } atp_imc_dump_runtime_para_req_struct; |
| |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_ECNCFG_REQ |
| * AT> AT+ECNCFG=<> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 mobile_data; |
| kal_uint8 data_roaming; |
| } atp_imc_ecncfg_req_struct; |
| |
| /* |
| * Description |
| * - the primitive is used for IMC to notify PS that STK call over IMS success. |
| * Direction |
| * - IMC -> PS |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint16 terminal_response; //80 for AT+STKCALL=0, 81 for AT+STKCALL=4 |
| } atp_imc_ims_stkcall_ind_struct; |
| |
| /* |
| * Description |
| * - the primitive is response of "MSG_ID_ATP_IMC_EIMSGEO_REQ" |
| * Direction |
| * - ATP -> IMC |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 wifi_mac[20]; |
| } atp_imc_eimsgeo_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_int8 account_id; |
| kal_int8 broadcast_flag; |
| kal_int32 latitude[2]; |
| kal_int32 longitude[2]; |
| kal_int32 accuracy; |
| kal_char method[16]; |
| kal_char city[32]; |
| kal_char state[32]; |
| kal_char zip[8]; |
| kal_char country_code[8]; |
| kal_char mcc[MAX_GEO_MCC_NUM][MAX_MCC_STR_LEN]; |
| } atp_imc_eimsgeo_ind_struct; |
| |
| /* |
| * @brief response of AT+ECCTRL |
| * @note MSG_ID_IMSP_CALL_CONTROL_IND |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| ims_cc_result_enum result; |
| ims_cc_cause_enum cause; |
| kal_int32 operation; //imcb_imc_ss_operation_enum map to ims_ecctrl_enum |
| } atp_imc_call_control_ind_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_CALL_CONTROL_V2_REQ |
| * AT>AT+ECCTRL=<call_id>,<call_state>,<is_unblocking> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 call_id; |
| ims_ecctrl_enum call_state; |
| kal_uint8 is_unblocking; |
| } atp_imc_call_control_v2_req_struct; |
| |
| |
| |
| /* |
| * Description |
| * - the primitive is used for PS to notify IMC that the UE is in limited service |
| * Direction |
| * - PS -> IMC |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool t311_expire_flag; |
| imcf_uint8 pad[3]; |
| } atp_imc_oos_start_req_struct; |
| |
| /* |
| * Description |
| * - the primitive is used for PS to notify IMC that the UE is out of limited service |
| * Direction |
| * - PS -> IMC |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| } atp_imc_oos_end_req_struct; |
| |
| /* |
| * Description |
| * - the primitive is used for IMC to notify PS current IMS REG state. (IMC has to indicate VDM + PS other modules) |
| * Direction |
| * - IMC -> PS |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| ims_reg_state_enum reg_state; // REGISTERED, UNREGISTERED |
| ims_reg_sub_state_enum reg_sub_state; |
| ims_reg_type_enum reg_type; // normal or emergency reg |
| ims_dereg_cause_enum dereg_cause; //ims_comm_def.h |
| ims_access_rat_enum rat; |
| ims_ecmp_enum ecmp; |
| /* ViLTE */ |
| ims_reg_service_enum reg_service; |
| imcf_bool ims_retry; |
| imcf_bool has_sent_register; |
| imcf_uint8 pad[2]; |
| ims_reg_event_enum reg_event; |
| ims_reg_sip_uri_type_enum sip_uri_type; |
| imcb_imc_sip_cause_enum sip_cause; //imcb_imc_sip_cause_enum |
| } atp_imc_ims_reg_status_ind_struct; |
| |
| // CC Interface |
| typedef struct atp_imc_cc_call_progress_ind_struct { |
| LOCAL_PARA_HDR |
| kal_uint8 call_id; |
| kal_uint8 msg_type; |
| ims_ecpi_info_struct ecpi_info; |
| } atp_imc_cc_call_progress_ind_struct; |
| |
| typedef struct atp_imc_cc_imsems_ind_struct { |
| LOCAL_PARA_HDR |
| kal_uint8 call_id; |
| } atp_imc_cc_imsems_ind_struct; |
| |
| typedef struct atp_imc_cc_evtstatus_ind_struct { |
| LOCAL_PARA_HDR |
| kal_bool is_on; |
| } atp_imc_cc_evtstatus_ind_struct; |
| |
| typedef struct atp_imc_cc_espeech_ind_struct { |
| LOCAL_PARA_HDR |
| kal_bool is_on; |
| } atp_imc_cc_espeech_ind_struct; |
| |
| typedef struct atp_imc_cc_cssu_ind_struct { |
| LOCAL_PARA_HDR |
| kal_uint8 msg_type; |
| } atp_imc_cc_cssu_ind_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_CALL_CONTROL_REQ |
| * AT>AT+ECCTRL=<call_id>,<call_state> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 call_id; |
| ims_ecctrl_enum call_state; |
| } atp_imc_call_control_req_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_CALL_CONTROL_CNF |
| * AT< OK | ... |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| ims_cc_result_enum result; |
| ims_cc_cause_enum cause; |
| kal_int32 operation; //imcb_imc_ss_operation_enum map to ims_ecctrl_enum |
| } atp_imc_call_control_cnf_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 call_id; |
| kal_uint8 dir; |
| kal_uint8 msg_type; |
| kal_uint8 method; |
| kal_uint16 response_code; |
| imcf_uint8 reason_text[IMC_MAX_REASON_TEXT_LENGTH]; |
| } atp_imc_sip_call_progress_ind_struct; |
| |
| |
| typedef enum { |
| IMS_SR_AC_BARRED = 0, |
| IMS_SR_NW_REJ_CONN_REQUEST = 1, |
| IMS_SR_T3346_START = 2, |
| IMS_SR_T3346_STOP = 3, |
| IMS_SR_T3346_EXPIRY = 4, |
| IMS_SR_CONN_FAIL = 5, |
| IMS_SR_T3525_START = 6, |
| IMS_SR_T3540_START = 7, |
| } ims_service_request_fail_enum; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| ims_service_request_fail_enum cause; |
| kal_uint8 value; |
| } atp_imc_service_request_fail_req_struct; |
| |
| // SS Interface |
| typedef enum { |
| IMS_CONF_OP_ADD = 0, // add |
| IMS_CONF_OP_REMOVE = 1, // remove |
| IMS_CONF_OP_MAX |
| } ims_conf_operation_enum; |
| |
| |
| typedef enum { |
| IMS_NOTIFY_SERVICE_CALL_WAITING = 259, // mapped <service_id> = 259 |
| IMS_NOTIFY_SERVICE_CALL_BARRING = 256, // mapped <service_id> = 256 |
| IMS_NOTIFY_SERVICE_CALL_FORWARDING = 13, // mapped <service_id> = 13 |
| IMS_NOTIFY_SERVICE_CALL_MWI = 3, // Not used |
| IMS_NOTIFY_SERVICE_CALL_CONFERENCE = 4, // Not used |
| IMS_NOTIFY_SERVICE_CALL_MT_FORWARDING = 257, |
| IMS_NOTIFY_SERVICE_NOTIFY_DIALOG = 258, |
| IMS_NOTIFY_SERVICE_MAX |
| } ims_notify_service_enum; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_SS_SET_VIDEO_ABILITY_REQ |
| * AT>AT+EIMSCCP=0|1 |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_enable; |
| } atp_imc_ss_set_video_ability_req_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_SS_SET_VIDEO_ABILITY_CNF |
| * AT< OK |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_success; |
| kal_uint32 cause; //unused |
| } atp_imc_ss_set_video_ability_cnf_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_SET_VOICE_CAPABILITY_REQ |
| * AT>AT+EIMSVOICE=0|1 |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_enable; |
| } atp_imc_set_voice_capability_req_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_SET_VOICE_CAPABILITY_CNF |
| * AT< OK |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_success; |
| kal_uint32 cause; //unused |
| } atp_imc_set_voice_capability_cnf_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_SET_SMS_CAPABILITY_REQ |
| * AT>AT+EIMSSMS=0|1 |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_enable; |
| } atp_imc_set_sms_capability_req_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_SET_SMS_CAPABILITY_CNF |
| * AT< OK |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_success; |
| kal_uint32 cause; //unused |
| } atp_imc_set_sms_capability_cnf_struct; |
| |
| #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 */ |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_SS_CONFERENCE_CONTROL_REQ |
| * AT>AT+ECONF=<conf_call_id>,<operation>,<num>[,<joined_call_id>] |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 conf_call_id; |
| ims_conf_operation_enum operation; |
| kal_uint8 num[ATP_IMC_SS_CONFERENCE_CONTROL_REQ_NUM_LEN]; |
| kal_uint8 joined_call_id; |
| } atp_imc_ss_conference_control_req_struct; |
| |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_SS_CONFERENCE_CONTROL_CNF |
| * AT< OK | ... |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| ims_cc_result_enum result; |
| ims_cc_cause_enum cause; |
| } atp_imc_ss_conference_control_cnf_struct; |
| |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_SS_SUBSCRIBE_CONTROL_IND |
| * AT< +ESUBCTRL:<call_id>,<event>,<result>,<cause> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 call_id; |
| ims_ss_sub_event_enum event; |
| ims_cc_result_enum result; |
| ims_cc_cause_enum cause; |
| } atp_imc_ss_subscribe_control_ind_struct; |
| |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_SS_CONFERENCE_CONTROL_IND |
| * AT< +ECONF:<conf_call_id>,<operation>,<num>,<result>,<cause>[,<joined_call_id>] |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 conf_call_id; |
| ims_conf_operation_enum operation; |
| kal_uint8 num[MAX_CC_ATD_NUM_LEN]; |
| kal_uint8 joined_call_id; |
| ims_cc_result_enum result; |
| ims_cc_cause_enum cause; |
| } atp_imc_ss_conference_control_ind_struct; |
| |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_SS_PROGRESS_NOTIFY_IND |
| * AT< +ECMCCSS:<call_id>,<service_id>,<data> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 call_id; |
| ims_notify_service_enum service; |
| kal_uint8 data[MAX_SS_NOTIFY_DATA_LEN]; // 512 |
| } atp_imc_ss_progress_notify_ind_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_SS_ECT_IND |
| * AT< +ECT:<call_id>,<ect_result>,<cause> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 call_id; |
| kal_uint8 result; |
| ims_disc_cause_enum cause; |
| } atp_imc_ss_ect_ind_struct; |
| |
| /* WFC */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| ims_access_rat_enum source_rat; |
| ims_access_rat_enum target_rat; |
| ims_reg_type_enum reg_type; |
| }atp_imc_handover_start_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| ims_access_rat_enum source_rat; |
| ims_access_rat_enum target_rat; |
| kal_bool result; /* fail (FALSE) or success (TRUE) */ |
| ims_reg_type_enum reg_type; |
| }atp_imc_handover_stop_ind_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_CC_MEDIA_MOD_IND |
| */ |
| /* VILTE */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 call_id; |
| ims_call_mode_enum call_mode; |
| ims_cc_camera_direction_enum camera_direction; |
| kal_uint8 audio_direction; |
| kal_uint8 audio_codec; // opaque |
| kal_int8 p_assert_uri[IMS_P_ASSERT_URI_LEN]; |
| } atp_imc_cc_media_mod_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 call_id; |
| kal_uint8 local_video_capability; |
| kal_uint8 remote_video_capability; |
| } atp_imc_cc_video_cap_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 call_id; |
| kal_uint8 local_text_capability; |
| kal_uint8 remote_text_capability; |
| kal_uint8 local_text_status; |
| kal_uint8 real_remote_text_capability; |
| } atp_imc_cc_text_cap_ind_struct; |
| |
| /* |
| * @brief Turn on/off Radio link monitor |
| * @note MSG_ID_ATP_IMC_RLM_EVENT_IND |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 reserve; |
| kal_uint8 event_type; |
| kal_uint16 band; |
| } atp_imc_rlm_event_ind_struct; |
| |
| /** |
| * @brief USSD AT Command RILD-->ATP-->IMC-->IMCB-->UA |
| * @note MSG_ID_ATP_IMC_SEND_USSD_REQ |
| */ |
| typedef struct atp_imc_send_ussd_req { |
| LOCAL_PARA_HDR |
| kal_uint8 cmd_class; /*< class */ |
| kal_uint8 operation; /*< oper */ |
| kal_uint16 action; /*< action */ |
| kal_uint8 language[IMS_USSD_LANGUANGE_LEN]; /*< language */ |
| kal_uint16 error_code; /*< error_code */ |
| kal_uint16 message_len; /*< message length */ |
| kal_uint8 message[IMS_USSD_MAX_MSG_LEN]; |
| kal_uint8 digit_from_line_number[IMC_MAX_URI_LENGTH]; |
| } atp_imc_send_ussd_req_struct; |
| |
| /** |
| * @brief USSD AT Command RILD<--ATP<--IMC<--IMCB<--UA |
| * @note MSG_ID_ATP_IMC_SEND_USSD_CNF |
| */ |
| typedef struct atp_imc_send_ussd_cnf { |
| LOCAL_PARA_HDR |
| kal_uint32 response; /*< OK or ERROR, may be extended to CME ERROR later on*/ |
| } atp_imc_send_ussd_cnf_struct; |
| |
| /** |
| * @brief USSD AT Command RILD<--ATP<--IMC<--IMCB<--UA |
| * @note MSG_ID_ATP_IMC_RECV_USSD_IND |
| */ |
| typedef struct atp_imc_recv_ussd_ind { |
| LOCAL_PARA_HDR |
| kal_uint8 urc_class; /*< class */ |
| kal_uint8 alert_pattern; /*< Alertin Pattern for AP */ |
| kal_uint8 padding[2]; /*< oper */ |
| kal_uint16 status; /*< status */ |
| kal_uint16 sip_cause; /*< status */ |
| kal_uint8 language[IMS_USSD_LANGUANGE_LEN]; /*< language */ |
| kal_uint16 error_code; /*< error_code */ |
| kal_uint16 message_len; /*< message length */ |
| kal_uint8 message[IMS_USSD_MAX_MSG_LEN]; |
| kal_uint8 digit_from_line_number[IMC_MAX_URI_LENGTH]; |
| } atp_imc_recv_ussd_ind_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_SET_EMERGENCY_AID_REQ |
| * AT>AT+EIMSAID="xxxx-yyyy-wwww-zzzz" |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 emergency_aid[IMC_MAX_EMERGENCY_AID_LEN]; |
| } atp_imc_set_emergency_aid_req_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_SET_EMERGENCY_AID_CNF |
| * AT< OK |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_success; |
| kal_uint32 cause; //unused |
| } atp_imc_set_emergency_aid_cnf_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_CISRVCC_REQ |
| * AT>AT+CISRVCC=0|1 |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_enable; |
| } atp_imc_cisrvcc_req_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_CISRVCC_CNF |
| * AT< OK |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool is_success; |
| kal_uint32 cause; //unused |
| } atp_imc_cisrvcc_cnf_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_IMS_TIMER_STATUS_IND |
| * AT+EITMR=<timer_type>,<timer_status>,<timer_length> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint32 account_id; /*< Account ID*/ |
| kal_uint32 timer_type; // ims_timer_type_enum |
| kal_uint32 timer_status; // ims_timer_status_enum |
| kal_uint16 timer_length; |
| kal_uint8 pad[2]; |
| } atp_imc_ims_timer_status_ind_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_NORMAL_REG_CSCM_REQ |
| * AT>AT+CSCM=<service_type>,<action> |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| ims_scm_info_type_enum service_type; |
| ims_scm_info_action_enum action; |
| } atp_imc_normal_reg_cscm_req_struct; |
| |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_NORMAL_REG_CSCM_CNF |
| * AT< OK | ... |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool result; |
| } atp_imc_normal_reg_cscm_cnf_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_REGUA_REMAIN_TIME_IND |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 rereg_flag; // send rereg_time or not |
| kal_int32 rereg_remain_time; // rereg_time |
| kal_uint8 resub_flag; // send resub_time or not |
| kal_int32 resub_remain_time; // resub_time |
| } atp_imc_regua_remain_time_ind_struct; |
| |
| /* |
| * Description |
| * - to query IMEI SVN from L4 |
| * Direction |
| * - IMC -> ATP |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| } atp_imc_query_imei_svn_req_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| kal_uint8 imei_svn[IMC_MAX_IMEI_SVN_LEN]; |
| } atp_imc_query_imei_svn_cnf_struct; |
| |
| /* |
| * @brief |
| * @note MSG_ID_ATP_IMC_EVOLTESI_CONFIG_IND |
| * AT+EVOLTESI |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| enh_volte_si_enum config; |
| } atp_imc_evoltesi_config_ind_struct; |
| |
| |
| #endif |