blob: 29afb3c1ee42499cc843ea0e9338a13c800ae2db [file] [log] [blame]
/*****************************************************************************
* 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