150 lines
4.8 KiB
C
150 lines
4.8 KiB
C
|
/*******************************************************************************
|
||
|
Copyright: - 2023- Copyrights of EigenComm Ltd.
|
||
|
File name: - imisms.h
|
||
|
Description: - Declare the SMS API for IMI
|
||
|
History: - 2023/04/10, Original created
|
||
|
******************************************************************************/
|
||
|
#ifndef IMI_SMS_H
|
||
|
#define IMI_SMS_H
|
||
|
|
||
|
#include "imicomm.h"
|
||
|
|
||
|
/******************************************************************************
|
||
|
*****************************************************************************
|
||
|
* IMI enum
|
||
|
*****************************************************************************
|
||
|
******************************************************************************/
|
||
|
typedef enum IMI_SMS_PRIM_ID_TAG
|
||
|
{
|
||
|
IMI_SMS_PRIM_BASE = 0,
|
||
|
|
||
|
IMI_SMS_SEND_MESSAGE_REQ, /* ImiSmsSendMessageReq */
|
||
|
IMI_SMS_SEND_MESSAGE_CNF, /* ImiSmsSendMessageCnf */
|
||
|
|
||
|
IMI_SMS_SEND_SMMA_REQ, /* ImiSmsSendSmmaReq */
|
||
|
IMI_SMS_SEND_SMMA_CNF, /* ImiSmsSendSmmaCnf */
|
||
|
|
||
|
IMI_SMS_SEND_MESSAGE_ABORT_REQ, /* ImiSmsSendMessageAbortReq */
|
||
|
IMI_SMS_SEND_MESSAGE_ABORT_CNF, /* ImiSmsSendMessageAbortCnf */
|
||
|
|
||
|
IMI_SMS_PRIM_END = 0x0fff
|
||
|
}IMI_SMS_PRIM_ID;
|
||
|
|
||
|
/******************************************************************************
|
||
|
*****************************************************************************
|
||
|
* STRUCT
|
||
|
*****************************************************************************
|
||
|
******************************************************************************/
|
||
|
|
||
|
/**
|
||
|
* IMI_SMS_SEND_MESSAGE_REQ
|
||
|
*/
|
||
|
#define IMI_SMS_MAX_PDU_SIZE 180
|
||
|
#define IMI_SMS_MAX_LENGTH_OF_ADDRESS_VALUE 40
|
||
|
|
||
|
typedef struct ImiSmsSendMessageReqTag
|
||
|
{
|
||
|
UINT8 smsId; /* SMS ID */
|
||
|
UINT8 smscLength; /* Destination Service Centre address */
|
||
|
UINT8 smscTypeOfNumber; /* TypeOfNumber */
|
||
|
UINT8 smscNumberPlanId; /* NumberingPlanId */
|
||
|
|
||
|
UINT8 smscAddressValue[IMI_SMS_MAX_LENGTH_OF_ADDRESS_VALUE];
|
||
|
|
||
|
UINT8 smsRef;
|
||
|
UINT8 reserved0;
|
||
|
UINT16 pduLength;
|
||
|
|
||
|
UINT8 pduData[IMI_SMS_MAX_PDU_SIZE];
|
||
|
}ImiSmsSendMessageReq;
|
||
|
|
||
|
typedef struct ImiSmsRpCauseElement_Tag
|
||
|
{
|
||
|
UINT8 cause; /* RpCause */
|
||
|
UINT8 diagnostic;
|
||
|
UINT16 reserved0;
|
||
|
}ImiSmsRpCauseElement;
|
||
|
|
||
|
typedef struct ImiSmsRpUserData_Tag
|
||
|
{
|
||
|
UINT16 length;
|
||
|
UINT16 reserved0;
|
||
|
UINT8 *rpUserData;
|
||
|
}ImiSmsRpUserData;
|
||
|
|
||
|
/**
|
||
|
* IMI_SMS_SEND_MESSAGE_CNF
|
||
|
*/
|
||
|
#define IMI_SMS_RETRY_OVER_SGS 0
|
||
|
#define IMI_SMS_RETRY_OVER_IP 1
|
||
|
#define IMI_SMS_RETRY_SMMA_OVER_SGS 2
|
||
|
#define IMI_SMS_RETRY_SMMA_OVER_IP 3
|
||
|
#define IMI_SMS_NO_RETRY 4
|
||
|
|
||
|
typedef struct ImiSmsSendMessageCnfTag
|
||
|
{
|
||
|
UINT8 shortMsgId;
|
||
|
UINT8 smsRef; /* Message Reference */
|
||
|
UINT8 statusOfReport; /* SmsStatusOfReport */
|
||
|
UINT8 tpCause; /* TpCause */
|
||
|
ImiSmsRpCauseElement rpCause; /* RpCause */
|
||
|
ImiSmsRpUserData rpUserData;
|
||
|
UINT16 tpduRawDatLen;
|
||
|
UINT8 retryType;
|
||
|
UINT8 reserved0;
|
||
|
UINT8 *tpduRawDat;
|
||
|
}ImiSmsSendMessageCnf;
|
||
|
|
||
|
/**
|
||
|
* IMI_SMS_SEND_SMMA_REQ
|
||
|
*/
|
||
|
typedef struct ImiSmsSendSmmaReq_Tag
|
||
|
{
|
||
|
UINT8 smsId; /* SMS ID */
|
||
|
UINT8 smscLength; /* Destination Service Centre address */
|
||
|
UINT8 smscTypeOfNumber; /* TypeOfNumber */
|
||
|
UINT8 smscNumberPlanId; /* NumberingPlanId */
|
||
|
|
||
|
UINT8 smscAddressValue[IMI_SMS_MAX_LENGTH_OF_ADDRESS_VALUE];
|
||
|
|
||
|
UINT8 smsRef;
|
||
|
UINT8 reserved0[3];
|
||
|
}ImiSmsSendSmmaReq;
|
||
|
|
||
|
/**
|
||
|
* IMI_SMS_SEND_SMMA_CNF
|
||
|
*/
|
||
|
typedef ImiSmsSendMessageCnf ImiSmsSendSmmaCnf;
|
||
|
|
||
|
/**
|
||
|
* IMI_SMS_SEND_MESSAGE_ABORT_REQ
|
||
|
*/
|
||
|
typedef struct ImiSmsSendMessageAbortReqTag
|
||
|
{
|
||
|
UINT8 smsId; /* SMS ID */
|
||
|
UINT8 reserved0[3];
|
||
|
}ImiSmsSendMessageAbortReq;
|
||
|
|
||
|
/**
|
||
|
* IMI_SMS_SEND_MESSAGE_ABORT_CNF
|
||
|
*/
|
||
|
typedef struct ImiSmsSendMessageAbortCnfTag
|
||
|
{
|
||
|
UINT8 smsId; /* SMS ID */
|
||
|
UINT8 reserved0[3];
|
||
|
}ImiSmsSendMessageAbortCnf;
|
||
|
|
||
|
/******************************************************************************
|
||
|
******************************************************************************
|
||
|
* extern function
|
||
|
******************************************************************************
|
||
|
******************************************************************************/
|
||
|
|
||
|
void ImaSmsImiSendMessageCnfFunc(ImiSmsSendMessageCnf *pSmsSendMessageCnf);
|
||
|
void ImaSmsImiSendMessageAbortCnfFunc(ImiSmsSendMessageAbortCnf *pSmsSendMessageAbortCnf);
|
||
|
void ImaSmsImiSendSmmaCnfFunc(ImiSmsSendSmmaCnf *pSmsSendSmmaCnf);
|
||
|
|
||
|
#endif
|
||
|
|
||
|
|