| #ifndef _IMC_IWLAN_STRUCT_H |
| #define _IMC_IWLAN_STRUCT_H |
| |
| #include "ps_public_enum.h" |
| #include "ims_common_def.h" |
| #include "ims_interface_md.h" |
| #include "atp_imc_struct.h" |
| #include "codec_def.h" |
| #include "custom_iwlan_config.h" |
| |
| typedef enum { |
| IMC_IWLAN_MEDIA_UNSPEC = 0, |
| IMC_IWLAN_MEDIA_NEW, |
| IMC_IWLAN_MEDIA_UPDATE, |
| IMC_IWLAN_MEDIA_DEL |
| } imc_iwlan_media_state_enum; |
| |
| typedef enum { |
| IMC_IWLAN_IMS_CALL_STATUS_UNSPEC = 0, |
| IMC_IWLAN_IMS_CALL_STATUS_REQ, |
| IMC_IWLAN_IMS_CALL_STATUS_BEGIN, |
| IMC_IWLAN_IMS_CALL_STATUS_CONNECTED, |
| IMC_IWLAN_IMS_CALL_STATUS_END, |
| } imc_iwlan_ims_call_status_enum; |
| |
| typedef enum |
| { |
| IMS_STATE_IDLE = 0, |
| IMS_STATE_ONCELL, |
| IMS_STATE_ONWIFI, |
| IMS_STATE_CNT, |
| IMS_STATE_ONALL = 0xCC, |
| }ims_state_enum; |
| |
| typedef enum { |
| IMS_ACTIVE_NOT_ALLOW = 0, |
| IMS_ACTIVE_ALLOW = 1, |
| IMS_ACTIVE_MAINTAIN = 2, |
| } ims_active_status_enum; |
| |
| typedef enum { |
| IMS_NOT_ALLOW_UNSPEC = 0, |
| IMS_RF_OFF = BITMASK(1), |
| IMS_23G_RAU = BITMASK(2), |
| IMS_AFR_DEREG = BITMASK(3), |
| IMS_SIM_INVALID = BITMASK(4), |
| IMS_NOT_ALLOW_CELL = BITMASK(5), |
| IMS_WIFI_ONLY_OR_NA = BITMASK(6), |
| IMS_RAT_NOT_SUPPORT = BITMASK(7), |
| IMS_ROAM_BAR = BITMASK(8), |
| IMS_VOPS_BAR = BITMASK(9), |
| IMS_VOPS_BAR_WITH_CALL = BITMASK(10), |
| IMS_C2K_DEREG = BITMASK(11), |
| IMS_NOT_ALLOW_WIFI = BITMASK(12), |
| IMS_CS_PREFER = BITMASK(13), |
| IMS_POOR_WIFI = BITMASK(14), |
| IMS_DEAD_ZONE = BITMASK(15), |
| IMS_SIP403 = BITMASK(16), |
| IMS_CELL_ONLY_OR_NA = BITMASK(17), |
| } ims_not_allow_cause_enum; |
| |
| typedef enum { |
| IMS_ROAMING_DISABLE = 0, |
| IMS_ROAMING_ENABLE = 1, |
| } ims_roaming_status_enum; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| ims_roaming_status_enum allow_3gpp_roaming; |
| } imc_iwlan_ims_roaming_status_ind_struct; |
| |
| /* |
| * @brief IMS diable by IWLAN |
| * @note MSG_ID_IMC_IWLAN_IMS_DEREG_IND/RSP |
| * AT+EIMSDEREG=4 |
| */ |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint32 dereg_cause; |
| } imc_iwlan_ims_dereg_ind_struct, |
| imc_iwlan_ims_dereg_rsp_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| imc_acct_type_enum acct_type; //defined in ims_interface_md.h |
| kal_uint32 call_id; |
| ims_call_mode_enum call_mode; //defined in ims_interface_md.h |
| imc_iwlan_ims_call_status_enum call_status; |
| } imc_iwlan_ims_call_status_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| hvolte_call_domain_enum call_domain; |
| kal_bool is_for_silent_redial; |
| hvolte_mode_change_cause_enum cause; |
| } imc_iwlan_ims_cc_set_hvolte_call_domain_req_struct; |
| |
| typedef struct { |
| kal_uint8 domain; // 3gpp domain |
| ims_rat_type_enum gsm_rat; // detail 3gpp rat |
| c2k_rat_type_enum c2k_rat; // detail c2k rat |
| |
| /* 3GPP cell info */ |
| nas_ps_reg_status_enum nas_ps_reg_status; |
| kal_bool is_roaming; |
| kal_uint8 plmn[MAX_PLMN_LEN + 1]; /* in string format, from +EOPS */ |
| kal_uint64 cell_id; |
| kal_uint32 area_code; /* lac or tac */ |
| cell_service_enum service_state; /* +EIMSINFO */ |
| // TBD: kal_bool is_emc_supported; |
| |
| /* C2K cell info */ |
| kal_uint16 sid; |
| kal_uint16 nid; |
| kal_uint8 pzid; |
| kal_uint16 base_id; |
| kal_uint32 sector_id[4]; |
| kal_uint8 subnet_length; |
| kal_uint8 carrier_id[7]; |
| domain_id_enum c2k_domain; //c2k domain |
| c2k_cell_service_enum c2k_service_state; /* +EC2KREG */ |
| /*ecall over IMS*/ |
| #ifdef __NG_ECALL_SUPPORT__ |
| imcf_bool support_ecl; /*network support ecall over ims or not*/ |
| #endif |
| } ims_cell_info_t; |
| |
| typedef struct { |
| kal_bool sms; |
| kal_bool voice; |
| kal_bool video; |
| } ims_ft_tag_onwifi_t; |
| |
| typedef struct { |
| kal_bool sms; |
| ims_cap_rat_enum voice; |
| ims_cap_rat_enum video; |
| } ims_ft_tag_oncell_t; |
| |
| typedef struct { |
| ims_ft_tag_oncell_t oncell; |
| ims_ft_tag_onwifi_t onwifi; |
| } ims_ft_tags_t; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_bool ims_enable; |
| ims_active_status_enum allow_active; |
| kal_uint32 not_allow_cause; //bitmap, indicate the ims not allow cause |
| ims_ft_tags_t ft_tags; |
| ims_cell_info_t ims_cell_info; |
| } imc_iwlan_ims_cap_info_ind_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 call_id; |
| voip_codec_enum audio_codec; |
| imc_iwlan_media_state_enum media_state; |
| } imc_iwlan_call_media_info_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| kal_uint8 hplmn_voice_capability;// 0:disable,1:enable,0xFF:not seted by NW |
| kal_uint8 hplmn_video_capability;// 0:disable,1:enable,0xFF:not seted by NW |
| kal_uint8 vplmn_voice_capability;// 0:disable,1:enable,0xFF:not seted by NW |
| kal_uint8 vplmn_video_capability;// 0:disable,1:enable,0xFF:not seted by NW |
| } imc_iwlan_mo_config_ind_struct; |
| |
| typedef struct |
| { |
| LOCAL_PARA_HDR |
| } imc_iwlan_wifi_service_fail_req_struct; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| srvcc_status_enum srvcc_status; |
| } imc_iwlan_srvcc_status_update_req_struct; |
| |
| typedef enum { |
| REG_CAUSE_NONE = 0, |
| REG_SIP_NO_RSP, |
| REG_SIP403_ROAMING, |
| REG_SIP403_3, |
| REG_PCSCF_ERR, |
| PRIO_CAUSE_CNT, |
| } imc_iwlan_prio_cause_e; |
| |
| typedef enum { |
| IMC_IWLAN_RAN_PRIO_NONE = 0, |
| IMC_IWLAN_RAN_PRIO_LOW, |
| IMC_IWLAN_RAN_PRIO_BLOCK, |
| IMC_IWLAN_RAN_PRIO_OP_CNT, |
| } imc_iwlan_ran_prio_e; |
| |
| typedef enum { |
| IMC_IWLAN_WIFI_RE_ASOC = (1), |
| IMC_IWLAN_VOWIFI_ON_OFF = (1<<1), |
| IMC_IWLAN_LOCAEN_ON_OFF = (1<<2), |
| IMC_IWLAN_CELL_REGHOME = (1<<3), |
| } imc_iwlan_reset_event_e; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| ims_state_enum ran; |
| imc_iwlan_prio_cause_e cause; |
| imc_iwlan_ran_prio_e prio; |
| kal_uint32 reset_event; |
| } imc_iwlan_reg_ran_prio_update_req_struct; |
| |
| typedef enum |
| { |
| IMC_IWLAN_HO_UNSPEC = 0, |
| IMC_IWLAN_HO_W2L, |
| IMC_IWLAN_HO_L2W, |
| IMC_IWLAN_HO_CNT, |
| }imc_iwlan_ho_action_enum; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| imc_iwlan_ho_action_enum ho_action; |
| } imc_iwlan_ims_ecc_ho_req_struct; |
| |
| typedef enum |
| { |
| IMC_IWLAN_HO_NONE = 0, |
| IMC_IWLAN_HO_TRIG, |
| IMC_IWLAN_HO_NO_DEST, |
| IMC_IWLAN_HO_END, |
| }imc_iwlan_ho_result_enum; |
| |
| typedef struct { |
| LOCAL_PARA_HDR |
| imc_iwlan_ho_result_enum result; |
| } imc_iwlan_ims_ecc_ho_rsp_struct; |
| |
| #endif /* _IMC_IWLAN_STRUCT_H */ |