⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cms_prol_interface.h

📁 主要用于彩信的开发
💻 H
字号:


#ifndef _MMSPROL_INTERFACE_H
#define _MMSPROL_INTERFACE_H


#include "sysTypes.h"

/****************************************************
*					macro  define                   *
*****************************************************/

/* status value  */
#define MMS_EXPIRED 		0x80
#define MMS_RETRIEVED		0x81
#define MMS_REJECTED		0x82
#define MMS_DEFERRED		0x83
#define MMS_UNRECOGNISED	0x84

#define MMS_ABSOLUTE_TOKEN		0x80	/* Time flag:Absolute-token */
#define MMS_RELATIVE_TOKEN		0x81	/* Time flag:Relative-token */

/* Priority-value  */
#define MMS_PRIORITY_LOW		0x80	
#define MMS_PRIORITY_NORMAL		0x81	
#define MMS_PRIORITY_HIGN		0x82

/* message struct type define  */
#define MMS_STRUCT_MMS_SEND_REQUEST		1
#define MMS_STRUCT_MMS_SEND_CONF		2
#define MMS_STRUCT_MMS_NOTIFICATION_IND	3
#define MMS_STRUCT_MMS_RETRIEVE_CONF	4
#define MMS_STRUCT_MMS_DELIVERY_IND		5
#define MMS_STRUCT_MMS_NOTIFYRESP_IND	6
#define MMS_STRUCT_MMS_ACKNOWLEDGE_IND	7


/* Send mms Response-status   */
#define MMS_SEND_RESPONSE_OK								0
#define MMS_SEND_RESPONSE_ERROR_UNSPECIFIED					1
#define MMS_SEND_RESPONSE_ERROR_SERVICE_DENIED				2
#define MMS_SEND_RESPONSE_ERROR_MESSAGE_FORMAT_CORRUPT		3
#define MMS_SEND_RESPONSE_ERROR_SENDING_ADDRESS_UNRESOLVED	4
#define MMS_SEND_RESPONSE_ERROR_MESSAGE_NOT_FOUND			5
#define MMS_SEND_RESPONSE_ERROR_NETWORK_PROBLEM				6
#define MMS_SEND_RESPONSE_ERROR_CONTENT_NOT_ACCEPTED		7
#define MMS_SEND_RESPONSE_ERROR_UNSUPPORTED_MESSAGE			8
#define MMS_SEND_RESPONSE_ERROR_UNKNOW						9
#define MMS_SEND_RESPONSE_ERROR_FUNCTION_ERROR				10


/* Error Number  */
#define MMS_SUCCESS									0
#define MMS_ERROR_MALLOC_FAIL						-1
#define MMS_LOAD_REQUEST_ERROR						-2
#define MMS_RECEIVE_CONTENT_FAIL 					-3
#define MMS_RECEIVED_PARSE_ERROR					-4
#define MMS_SEND_ERROR								-5
#define MMS_SEND_ACK_FAIL							-6
#define MMS_RECEIVED_HTTP_ERROR						-7
#define MMS_RECEIVED_HTTP_CANNOT_FOUND 				-8
#define MMS_RECEIVED_HTTP_BAD_REQUEST				-9
#define MMS_RECEIVED_HTTP_INTERNAL_SERVER_ERROR		-10
#define MMS_RECEIVED_HTTP_BAD_GATEWAY				-11
#define MMS_RECEIVED_HTTP_GATEWAY_TIMEOUT			-12
#define MMS_HTTP_OPERATION_FORBIDDEN				-13
#define MMS_SEND_NOTIFY_RESPONSE_FAIL				-14
#define MMS_SEND_CONF_STATUS_ERROR					-15
#define MMS_PARAMETERS_ERROR						-20
#define MMS_WAP_IS_BUSY								-21


#ifdef __cplusplus
T_EXTERN "C"{
#endif




/*	M_Send.req message struct */
typedef struct T_MMS_Send_Request
{
	T_BOOL  Delivery_Report;
	T_BOOL  Read_Reply;
	T_BOOL  Sender_Visibility;
	T_BYTE *Transaction_Id;
	T_BYTE *To;
	T_BYTE *Cc;
	T_BYTE *Bcc;
	T_BYTE *Subject;
	T_UBYTE *ContentTypeAndBody;
	T_WORD  MMS_Expiry; /* expiry time,default use Relative-token value */
	T_WORD  MMS_Delivery_Time; /*Delivery time,default use Relative-token value  */
	T_WORD MMS_Priority;
	T_WORD ContentTypeAndBody_Len;
}T_MMS_Send_Request;


/* M_Notificaton.ind message struct */
typedef struct T_MMS_Notification_Ind
{
	T_UBYTE  Message_Class;
	T_UBYTE MMS_Expiry_TimeType;
	T_WORD Message_Size;
	T_WORD  MMS_Expiry;
	T_BYTE *Transaction_Id;
	T_BYTE *From;
	T_BYTE *Subject;
	T_BYTE *Content_Location;
}T_MMS_Notification_Ind;

typedef struct T_MMS_Retrieve_Conf
{
	T_BOOL  Delivery_Report;
	T_BOOL  Read_Reply;
	T_UBYTE  Message_Class;
	T_UBYTE  MMS_Prioity;
	T_UBYTE Boundary[2];   /*字节对齐 补充位 */
	T_WORD Date;
	T_WORD Content_Size;
	T_UBYTE *ContentTypeAndBody;
	T_BYTE *Transaction_Id;
	T_BYTE *Message_Id;
	T_BYTE *From;
	T_BYTE *To;
	T_BYTE *Cc;
	T_BYTE *Subject;
}T_MMS_Retrieve_Conf;

/* M_Delivery.ind message struct */
typedef struct T_MMS_Delivery_Ind
{
	T_UBYTE MMS_Status;
	T_UBYTE Boundary[3];	/* 字节对齐 补充位 */
	T_BYTE *Message_Id;
	T_BYTE *To;
	T_WORD Date;
}T_MMS_Delivery_Ind;










	/**************************************************
*					API  define                   *
***************************************************/

/**************************************************************
 * FUNCTION: fnMMS_MakeSendMessagePdu
 *
 * PURPOST: encode the send message pdu.
 *
 * PARAMETER
 * 		InPut :  
 *			T_BYTE *Uri--the uri of the Proxy-Relay.
 *			T_MMS_Send_Request *Msg--the MM's struct of m-send.req.
 *		OutPut: 
 *			T_WORD *length -- the length of the pdu.
 *		InOut : 
 * Return Value:return the pdu buffer's pointer. 
 *
 * Reentrant: none
 **************************************************************/
T_UBYTE* fnMMS_MakeSendMessagePdu(T_MMS_Send_Request *Msg,int *length);




/**************************************************************
 * FUNCTION: fnMMS_AllocMessageMem
 *
 * PURPOST: According to the message struct type to alloc mem for
 *          the message.
 *
 * PARAMETER
 * 		InPut :  
 *			T_BYTE Type--the struct type value.
 *		OutPut: none
 *		InOut : none
 *
 * Return Value: the address of the struct .
 *
 * Reentrant: none
 **************************************************************/
T_VOID *fnMMS_AllocMessageMem(T_UBYTE Type);
/**************************************************************
 * FUNCTION: fnMMS_FreeMessageMem
 *
 * PURPOST: According to the message struct type to free the  mem used by
 *          the message struct .
 *
 * PARAMETER
 * 		InPut :  
 *			T_BYTE Type--the struct type value.
 *			T_VOID *pAddr-- the address of the mem which will be freed.
 *		OutPut: none
 *		InOut : none
 *
 * Return Value:none.
 *
 * Reentrant: none
 **************************************************************/
T_VOID  fnMMS_FreeMessageMem(T_VOID *pAddr ,T_UBYTE Type);


/**************************************************************
 * FUNCTION: fnMMS_ParseNotificationInd
 *
 * PURPOST: receive the Notification information  from the proxy relay .
 *
 * PARAMETER
 * 		InPut :  
 *			T_UBYTE* Buf -- the push content data  pointer.
 *			T_WORD Content_len -- the buf's length.
 *		OutPut:none 
 *		InOut : none
 *
 * Return Value: the notificaiton ind struct pointer.
 *
 * Reentrant: none
 **************************************************************/
T_MMS_Notification_Ind* fnMMS_ParseNotificationInd(T_UBYTE *Buf,T_WORD Content_len);


/**************************************************************
 * FUNCTION: fnMMS_ParseRetrieveConf
 *
 * PURPOST: parse the MM encode content .
 *
 * PARAMETER
 * 		InPut :  
 *			T_UBYTE *Buf -- the encode MM data content's pointer.
 *			
 *		OutPut:none
 *		InOut : none
 *
 * Return Value: the retrieve.conf struct pointer.
 *
 * Reentrant: none
 **************************************************************/
T_MMS_Retrieve_Conf * fnMMS_ParseRetrieveConf(T_UBYTE *Buf,T_WORD Content_len);

/**************************************************************
 * FUNCTION: fnMMS_ParseDeliveryInd
 *
 * PURPOST: receive the delivery Indication from the proxy relay .
 *
 * PARAMETER
 * 		InPut :  
 *			T_UBYTE* Buf -- the push content data filed's pointer.
 *			
 *		OutPut: none
 *		InOut : none
 *
 * Return Value: the deliver ind struct pointer.
 *
 * Reentrant: none
 **************************************************************/
T_MMS_Delivery_Ind * fnMMS_ParseDeliveryInd(T_UBYTE *Buf,T_WORD Content_len);


/**************************************************************
 * FUNCTION: fnMMS_MakeNotifyRespPdu
 *
 * PURPOST: encode the notify response pdu.
 *
 * PARAMETER
 * 		InPut : 
 *			T_BYTE *Trans_ID --the Id of notificaiton .
 *			T_BOOL SendDevRep -- if send the delivery ind.
 *			T_BYTE Status -- the status of the mms.
 *		OutPut: 
 *			T_WORD *len -- the length of the pdu.
 *		InOut : 
 *
 * Return Value: the pdu's buffer pointer.
 *
 * Reentrant: none
 **************************************************************/		
T_UBYTE* fnMMS_MakeNotifyRespPdu(T_BYTE *Trans_ID,T_BOOL SendDevRep,T_UBYTE Status,T_WORD *len);

/**************************************************************
 * FUNCTION: fnMMS_MakeAcknowledgePdu
 *
 * PURPOST: encode the acknowledge pdu.
 *
 * PARAMETER
 * 		InPut :  
 *			T_BYTE *Trans_ID --the Id of notificaiton .
 *			T_BOOL SendDevRep -- if send the delivery ind.
 *		OutPut: none.
 *			T_WORD *len -- the length of the pdu.
 *		InOut : none.
 *
 * Return Value: the pdu buffer's pointer.
 *
 * Reentrant: none
 **************************************************************/
T_UBYTE* fnMMS_MakeAcknowledgePdu(T_BYTE *Trans_Id,T_BOOL SendDevRep,T_WORD *len);


/**************************************************************
 * FUNCTION: fnMMS_MakeReadReportPdu
 *
 * PURPOST: encode the acknowledge pdu.
 *
 * PARAMETER
 * 		InPut :  
 *			T_BYTE *Trans_ID --the Id of new mm .
 *			T_CHAR *From -- the sender of the received mm .
 *			T_CHAR *Subject -- the subject of the received mm.
 *		OutPut: none.
 *		InOut : none.
 *
 * Return Value: the read report pdu buffer's pointer.
 *
 * Reentrant: none
 **************************************************************/
T_UBYTE* fnMMS_MakeReadReportPdu(T_BYTE *Trans_Id,T_CHAR *From,T_CHAR *Subject,T_WORD *len);


/**************************************************************
 * FUNCTION: fnMMS_FreeMadeMsgPduBuf
 *
 * PURPOST: free the pdu buffer which get from fnMMS_Make* Api,these
 *          pdu buffer is malloc in protocol module.
 *
 * PARAMETER
 * 		InPut :  
 *			T_VOID *pMsgPdu -- the message pdu's buffer.
 *		OutPut: none.
 *		InOut : none.
 *
 * Return Value: none.
 *
 * Reentrant: none
 **************************************************************/
T_VOID fnMMS_FreeMadeMsgPduBuf(T_VOID *pMsgPdu);


/**************************************************************
 * FUNCTION: fnMMS_RecvSendConfData
 *
 * PURPOST: to deal with the send response data.
 *
 * PARAMETER
 * 		InPut :  
 *			pData -- the received data buffer.
 *			Size -- the buffer's size.
 *		OutPut : none
 *		InOut : none
 *
 * Return Value: the send response's status value.
 *
 * Reentrant: none
 **************************************************************/
T_HWORD fnMMS_RecvSendConfData(T_UBYTE*pData,T_WORD Size);




#ifdef __cplusplus
}
#endif

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -