blob: 32398058dedfdd3110506831b686781e81c25404 [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) 2013
*
* 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).
*
*****************************************************************************/
/*****************************************************************************
* Filename:
* ------------
* sdm_imcsms_struct.h
*
* Project:
* ------------
* MOLY
*
* Description:
* ------------
* This file defines the interface messages between SDM and IMC SMS.
*
* Author:
* -----------
* -------
*
*===========================================================
* $Log$
*
* 05 20 2020 chen-wei.lan
* [MOLY00523592] Support for MT SMS in 3GPP2 format over IMS domain in CDMA less project.
* 3gpp2 sms in cdma less project
*
* 09 25 2019 chen-wei.lan
* [MOLY00443561] [Gen97] SCBM
* SCBM
*
* 07 12 2019 chen-wei.lan
* [MOLY00346647] [MT6297][VDM/L4] changes for 97
*
* [SDM patch back]7342306
*
* 04 24 2019 ian-yw.chen
* [MOLY00401131] [Gen97] porting from 95
*
* [porting from UMOLYE][to_20181230]
* SDM part
* (MPD)
*
* 04 24 2019 ian-yw.chen
* [MOLY00401131] [Gen97] porting from 95
*
* [porting from UMOLYE][to_20181230]
* SDM part
* (MPD)
*
* 04 05 2017 hsuanchang.chen
* [MOLY00237411] [6293][PreIT] UTK/STK SMS Flow Merge
*
* . interface
*
* 03 20 2017 hsuanchang.chen
* [MOLY00228407] [SDM] Internal Re-arch
*
* . remove tab and un-used code
*
* 09 26 2016 hsuanchang.chen
* [MOLY00203894] [SDM] UMOLYA.PS.DEV merge back UMOLYA
*
* .
*
* 06 07 2016 ya.li
* [MOLY00175415] [CMCC VoLTE Spec 2.0 New Requirement][IMCSMS][IMCSMS MO retry for 202 receive or not](CR3,interface part)
*
* .
*
* 03 15 2016 ian-yw.chen
* [MOLY00169015] [COPY CR][VzW][MT6735][Pre-LC][AT command][2.51] case fail at AT+CMSS=1, shows error
* SDM part
*
* 03 02 2016 ian-yw.chen
* [MOLY00163894] [SMS][TC01] 3GPP2 SMS over IMS
* [MT/PP download/STK] interface
*
* 03 02 2016 ian-yw.chen
* [MOLY00163894] [SMS][TC01] 3GPP2 SMS over IMS
* [MO] interfaces
*
* 03 01 2016 ian-yw.chen
* [MOLY00147454] VZW 3GPP2 SMS over IMS
* SDM and interfaces
*
* 11 04 2015 ian-yw.chen
* [MOLY00129787] [Copy CR]SMS over IMS implementation
* (TC01) IMCSMS-interfaces part
*
* 05 08 2015 chinte.chen
* [MOLY00110919] [SAT] Support STK SMS over IP
* .
*
* 12 01 2014 chinte.chen
* [MOLY00086104] [SDM][Revise] remove redundant src_id from IMSP/SDM/IMCSMS
* .
*
* 09 03 2014 chinte.chen
* [MOLY00077889] [WW FT][2014 TMO US][MT6752][VoLTE/SRVCC][Seattle][ASSERT][Fatal error(buff)] err_code1:2083 err_code2:32MD offender
* .
*****************************************************************************/
#ifndef SDM_IMCSMS_STRUCT_H
#define SDM_IMCSMS_STRUCT_H
#include "ps_public_struct.h"
#include "sim_public_enum.h"
#include "ims_common_def.h"
#include "sdm_imcsms_enums.h"
typedef struct{
LOCAL_PARA_HDR
kal_uint8 error_type; /* cp or rp error*/
kal_uint16 error_cause;
#ifdef __TC01_IMS_SUPPORT__
kal_uint8 retry_after;
#endif
kal_bool need_retry_in_cs;
} imcsms_err_info_struct;
/* MSG_ID_SDM_IMCSMS_SUBMIT */
typedef struct{
LOCAL_PARA_HDR
ims_access_rat_enum rat;
kal_bool is_emergency_sms;
} sdm_imcsms_submit_struct, sdm_imcsms_command_struct;
/* MSG_ID_SDM_IMCSMS_C2K_SUBMIT */
typedef struct{
LOCAL_PARA_HDR
/*Add destination address here for SIP header*/
kal_bool is_da_valid;
kal_bool is_international;
kal_uint8 da[MAX_C2K_SMS_DA];
ims_access_rat_enum rat;
kal_bool is_emergency_sms;
} sdm_imcsms_c2k_submit_struct, sdm_imcsms_utk_submit_struct;
/* MSG_ID_SDM_IMCSMS_STK_SUBMIT */
typedef struct{
LOCAL_PARA_HDR
ims_access_rat_enum rat;
kal_bool is_emergency_sms;
} sdm_imcsms_stk_submit_struct;
/* MSG_ID_SDM_IMCSMS_STK_SUBMIT_REPORT_ACK */
typedef struct{
LOCAL_PARA_HDR
sat_terminal_res_enum tr;
} sdm_imcsms_stk_submit_report_ack_struct;
/* MSG_ID_SDM_IMCSMS_STK_SUBMIT_REPORT_NACK */
typedef struct{
LOCAL_PARA_HDR
sat_terminal_res_enum tr;
kal_bool addition_info_present;
kal_uint8 addition_info;
imcsms_err_info_struct err_info;
} sdm_imcsms_stk_submit_report_nack_struct;
/* MSG_ID_SDM_IMCSMS_C2K_SUBMIT_REPORT_ACK / MSG_ID_SDM_IMCSMS_UTK_SUBMIT_REPORT_ACK */
typedef struct{
LOCAL_PARA_HDR
} sdm_imcsms_c2k_submit_report_ack_struct, sdm_imcsms_utk_submit_report_ack_struct;
/* MSG_ID_SDM_IMCSMS_C2K_SUBMIT_REPORT_NACK / MSG_ID_SDM_IMCSMS_UTK_SUBMIT_REPORT_NACK */
typedef struct{
LOCAL_PARA_HDR
kal_uint8 error_class;
kal_uint16 cause_code;
} sdm_imcsms_c2k_submit_report_nack_struct, sdm_imcsms_utk_submit_report_nack_struct;
/* MSG_ID_SDM_IMCSMS_SUBMIT_REPORT_ACK */
typedef struct{
LOCAL_PARA_HDR
kal_uint8 mr;
} sdm_imcsms_submit_report_ack_struct;
/* MSG_ID_SDM_IMCSMS_SUBMIT_REPORT_NACK */
typedef struct{
LOCAL_PARA_HDR
imcsms_err_info_struct err_info;
} sdm_imcsms_submit_report_nack_struct;
/* MSG_ID_SDM_IMCSMS_DELIVER */
typedef struct{
LOCAL_PARA_HDR
kal_uint8 smi;
sms_addr_struct sc_addr;
kal_uint8 psi[128];
} sdm_imcsms_deliver_struct, sdm_imcsms_status_report_struct;
/* MSG_ID_SDM_IMCSMS_DELIVERY_REPORT_ACK */
typedef struct{
LOCAL_PARA_HDR
kal_uint8 smi;
} sdm_imcsms_deliver_report_ack_struct;
/* MSG_ID_SDM_IMCSMS_DELIVERY_REPORT_NACK */
typedef struct{
LOCAL_PARA_HDR
kal_uint8 smi;
} sdm_imcsms_deliver_report_nack_struct;
/* MSG_ID_SDM_IMCSMS_C2K_DELIVER */
typedef struct{
LOCAL_PARA_HDR
} sdm_imcsms_c2k_deliver_struct;
/* MSG_ID_SDM_IMCSMS_C2K_ACKNOWLEDGE */
typedef struct{
LOCAL_PARA_HDR
} sdm_imcsms_c2k_acknowledge_struct;
#ifdef __SUPPORT_C2K_SMS_OVER_IMS_CDMA_LESS__
/* MSG_ID_SDM_IMCSMS_CDMA_LESS_C2K_DELIVER */
typedef struct{
LOCAL_PARA_HDR
kal_bool is_emergency_sms;
} sdm_imcsms_cdma_less_c2k_deliver_struct;
#endif
/* MSG_ID_SDM_IMCSMS_MEM_AVL_NOTIF */
typedef struct{
LOCAL_PARA_HDR
kal_uint8 req_type; /* 0: IMCSMS_SMMA_REQ, 1: IMCSMS_SMMA_ABORT */
} sdm_imcsms_mem_avl_notif_struct;
/* MSG_ID_SDM_IMCSMS_MEM_AVL_NOTIF_CNF */
typedef struct{
LOCAL_PARA_HDR
kal_bool result;
} sdm_imcsms_mem_avl_notif_cnf_struct;
/* MSG_ID_SDM_IMCSMS_IS_CS_ALLOWED_REQ */
typedef struct{
LOCAL_PARA_HDR
imcsms_sdm_sms_type_enum sms_type;
kal_uint32 accound_id; //specific for different kind of IMS registration (for IMS UA usage)
kal_uint8 seq_id; //to identify the SMS (for IMS UA usage)
} sdm_imcsms_is_cs_allowed_req_struct;
/* MSG_ID_SDM_IMCSMS_IS_CS_ALLOWED_CNF */
typedef struct{
LOCAL_PARA_HDR
imcsms_sdm_sms_type_enum sms_type;
kal_uint32 accound_id;
kal_uint8 seq_id;
kal_bool result;
} sdm_imcsms_is_cs_allowed_cnf_struct;
#ifdef __TC01_IMS_SUPPORT__
/* MSG_ID_SDM_IMCSMS_RCV_MSG_IND */
typedef struct{
LOCAL_PARA_HDR
kal_uint16 msg_id;
kal_uint8 error_class;
esmsoims_type_enum direction;
kal_uint16 length;
kal_uint8 data[MAX_SMS_PDU_LEN];
} sdm_imcsms_rcv_msg_ind_struct;
#endif
typedef enum{
MO_IMS_TEMP_FAILURE = 2,
MO_IMS_PERM_FAILURE ,
MO_IMS_OTHER_FAILURE
}sdm_imcsms_error_cause_enum;
typedef struct{
LOCAL_PARA_HDR
kal_uint8 msg_ref;
sms_addr_struct sca;
ims_access_rat_enum rat;
kal_bool is_emergency_sms;
}
sdm_imcsms_cmss_submit_struct;
typedef struct{
LOCAL_PARA_HDR
kal_uint8 mr;
}
sdm_imcsms_cmss_submit_report_ack_struct;
typedef struct{
LOCAL_PARA_HDR
imcsms_err_info_struct err_info;
}
sdm_imcsms_cmss_submit_report_nack_struct;
extern kal_bool sdm_get_imcsms_retry_for_202_rev(void);
#endif // SDM_IMCSMS_STRUCT_H