cms_Prol_Interface.h
上传用户:fuyouda
上传日期:2021-12-23
资源大小:164k
文件大小:10k
开发平台:

C/C++

  1. #ifndef _MMSPROL_INTERFACE_H
  2. #define _MMSPROL_INTERFACE_H
  3. #include "sysTypes.h"
  4. /****************************************************
  5. * macro  define                   *
  6. *****************************************************/
  7. /* status value  */
  8. #define MMS_EXPIRED  0x80
  9. #define MMS_RETRIEVED 0x81
  10. #define MMS_REJECTED 0x82
  11. #define MMS_DEFERRED 0x83
  12. #define MMS_UNRECOGNISED 0x84
  13. #define MMS_ABSOLUTE_TOKEN 0x80 /* Time flag:Absolute-token */
  14. #define MMS_RELATIVE_TOKEN 0x81 /* Time flag:Relative-token */
  15. /* Priority-value  */
  16. #define MMS_PRIORITY_LOW 0x80
  17. #define MMS_PRIORITY_NORMAL 0x81
  18. #define MMS_PRIORITY_HIGN 0x82
  19. /* message struct type define  */
  20. #define MMS_STRUCT_MMS_SEND_REQUEST 1
  21. #define MMS_STRUCT_MMS_SEND_CONF 2
  22. #define MMS_STRUCT_MMS_NOTIFICATION_IND 3
  23. #define MMS_STRUCT_MMS_RETRIEVE_CONF 4
  24. #define MMS_STRUCT_MMS_DELIVERY_IND 5
  25. #define MMS_STRUCT_MMS_NOTIFYRESP_IND 6
  26. #define MMS_STRUCT_MMS_ACKNOWLEDGE_IND 7
  27. /* Send mms Response-status   */
  28. #define MMS_SEND_RESPONSE_OK 0
  29. #define MMS_SEND_RESPONSE_ERROR_UNSPECIFIED 1
  30. #define MMS_SEND_RESPONSE_ERROR_SERVICE_DENIED 2
  31. #define MMS_SEND_RESPONSE_ERROR_MESSAGE_FORMAT_CORRUPT 3
  32. #define MMS_SEND_RESPONSE_ERROR_SENDING_ADDRESS_UNRESOLVED 4
  33. #define MMS_SEND_RESPONSE_ERROR_MESSAGE_NOT_FOUND 5
  34. #define MMS_SEND_RESPONSE_ERROR_NETWORK_PROBLEM 6
  35. #define MMS_SEND_RESPONSE_ERROR_CONTENT_NOT_ACCEPTED 7
  36. #define MMS_SEND_RESPONSE_ERROR_UNSUPPORTED_MESSAGE 8
  37. #define MMS_SEND_RESPONSE_ERROR_UNKNOW 9
  38. #define MMS_SEND_RESPONSE_ERROR_FUNCTION_ERROR 10
  39. /* Error Number  */
  40. #define MMS_SUCCESS 0
  41. #define MMS_ERROR_MALLOC_FAIL -1
  42. #define MMS_LOAD_REQUEST_ERROR -2
  43. #define MMS_RECEIVE_CONTENT_FAIL  -3
  44. #define MMS_RECEIVED_PARSE_ERROR -4
  45. #define MMS_SEND_ERROR -5
  46. #define MMS_SEND_ACK_FAIL -6
  47. #define MMS_RECEIVED_HTTP_ERROR -7
  48. #define MMS_RECEIVED_HTTP_CANNOT_FOUND  -8
  49. #define MMS_RECEIVED_HTTP_BAD_REQUEST -9
  50. #define MMS_RECEIVED_HTTP_INTERNAL_SERVER_ERROR -10
  51. #define MMS_RECEIVED_HTTP_BAD_GATEWAY -11
  52. #define MMS_RECEIVED_HTTP_GATEWAY_TIMEOUT -12
  53. #define MMS_HTTP_OPERATION_FORBIDDEN -13
  54. #define MMS_SEND_NOTIFY_RESPONSE_FAIL -14
  55. #define MMS_SEND_CONF_STATUS_ERROR -15
  56. #define MMS_PARAMETERS_ERROR -20
  57. #define MMS_WAP_IS_BUSY -21
  58. #ifdef __cplusplus
  59. T_EXTERN "C"{
  60. #endif
  61. /* M_Send.req message struct */
  62. typedef struct T_MMS_Send_Request
  63. {
  64. T_BOOL  Delivery_Report;
  65. T_BOOL  Read_Reply;
  66. T_BOOL  Sender_Visibility;
  67. T_BYTE *Transaction_Id;
  68. T_BYTE *To;
  69. T_BYTE *Cc;
  70. T_BYTE *Bcc;
  71. T_BYTE *Subject;
  72. T_UBYTE *ContentTypeAndBody;
  73. T_WORD  MMS_Expiry; /* expiry time,default use Relative-token value */
  74. T_WORD  MMS_Delivery_Time; /*Delivery time,default use Relative-token value  */
  75. T_WORD MMS_Priority;
  76. T_WORD ContentTypeAndBody_Len;
  77. }T_MMS_Send_Request;
  78. /* M_Notificaton.ind message struct */
  79. typedef struct T_MMS_Notification_Ind
  80. {
  81. T_UBYTE  Message_Class;
  82. T_UBYTE MMS_Expiry_TimeType;
  83. T_WORD Message_Size;
  84. T_WORD  MMS_Expiry;
  85. T_BYTE *Transaction_Id;
  86. T_BYTE *From;
  87. T_BYTE *Subject;
  88. T_BYTE *Content_Location;
  89. }T_MMS_Notification_Ind;
  90. typedef struct T_MMS_Retrieve_Conf
  91. {
  92. T_BOOL  Delivery_Report;
  93. T_BOOL  Read_Reply;
  94. T_UBYTE  Message_Class;
  95. T_UBYTE  MMS_Prioity;
  96. T_UBYTE Boundary[2];   /*字节对齐 补充位 */
  97. T_WORD Date;
  98. T_WORD Content_Size;
  99. T_UBYTE *ContentTypeAndBody;
  100. T_BYTE *Transaction_Id;
  101. T_BYTE *Message_Id;
  102. T_BYTE *From;
  103. T_BYTE *To;
  104. T_BYTE *Cc;
  105. T_BYTE *Subject;
  106. }T_MMS_Retrieve_Conf;
  107. /* M_Delivery.ind message struct */
  108. typedef struct T_MMS_Delivery_Ind
  109. {
  110. T_UBYTE MMS_Status;
  111. T_UBYTE Boundary[3]; /* 字节对齐 补充位 */
  112. T_BYTE *Message_Id;
  113. T_BYTE *To;
  114. T_WORD Date;
  115. }T_MMS_Delivery_Ind;
  116. /**************************************************
  117. * API  define                   *
  118. ***************************************************/
  119. /**************************************************************
  120.  * FUNCTION: fnMMS_MakeSendMessagePdu
  121.  *
  122.  * PURPOST: encode the send message pdu.
  123.  *
  124.  * PARAMETER
  125.  *  InPut :  
  126.  * T_BYTE *Uri--the uri of the Proxy-Relay.
  127.  * T_MMS_Send_Request *Msg--the MM's struct of m-send.req.
  128.  * OutPut: 
  129.  * T_WORD *length -- the length of the pdu.
  130.  * InOut : 
  131.  * Return Value:return the pdu buffer's pointer. 
  132.  *
  133.  * Reentrant: none
  134.  **************************************************************/
  135. T_UBYTE* fnMMS_MakeSendMessagePdu(T_MMS_Send_Request *Msg,int *length);
  136. /**************************************************************
  137.  * FUNCTION: fnMMS_AllocMessageMem
  138.  *
  139.  * PURPOST: According to the message struct type to alloc mem for
  140.  *          the message.
  141.  *
  142.  * PARAMETER
  143.  *  InPut :  
  144.  * T_BYTE Type--the struct type value.
  145.  * OutPut: none
  146.  * InOut : none
  147.  *
  148.  * Return Value: the address of the struct .
  149.  *
  150.  * Reentrant: none
  151.  **************************************************************/
  152. T_VOID *fnMMS_AllocMessageMem(T_UBYTE Type);
  153. /**************************************************************
  154.  * FUNCTION: fnMMS_FreeMessageMem
  155.  *
  156.  * PURPOST: According to the message struct type to free the  mem used by
  157.  *          the message struct .
  158.  *
  159.  * PARAMETER
  160.  *  InPut :  
  161.  * T_BYTE Type--the struct type value.
  162.  * T_VOID *pAddr-- the address of the mem which will be freed.
  163.  * OutPut: none
  164.  * InOut : none
  165.  *
  166.  * Return Value:none.
  167.  *
  168.  * Reentrant: none
  169.  **************************************************************/
  170. T_VOID  fnMMS_FreeMessageMem(T_VOID *pAddr ,T_UBYTE Type);
  171. /**************************************************************
  172.  * FUNCTION: fnMMS_ParseNotificationInd
  173.  *
  174.  * PURPOST: receive the Notification information  from the proxy relay .
  175.  *
  176.  * PARAMETER
  177.  *  InPut :  
  178.  * T_UBYTE* Buf -- the push content data  pointer.
  179.  * T_WORD Content_len -- the buf's length.
  180.  * OutPut:none 
  181.  * InOut : none
  182.  *
  183.  * Return Value: the notificaiton ind struct pointer.
  184.  *
  185.  * Reentrant: none
  186.  **************************************************************/
  187. T_MMS_Notification_Ind* fnMMS_ParseNotificationInd(T_UBYTE *Buf,T_WORD Content_len);
  188. /**************************************************************
  189.  * FUNCTION: fnMMS_ParseRetrieveConf
  190.  *
  191.  * PURPOST: parse the MM encode content .
  192.  *
  193.  * PARAMETER
  194.  *  InPut :  
  195.  * T_UBYTE *Buf -- the encode MM data content's pointer.
  196.  *
  197.  * OutPut:none
  198.  * InOut : none
  199.  *
  200.  * Return Value: the retrieve.conf struct pointer.
  201.  *
  202.  * Reentrant: none
  203.  **************************************************************/
  204. T_MMS_Retrieve_Conf * fnMMS_ParseRetrieveConf(T_UBYTE *Buf,T_WORD Content_len);
  205. /**************************************************************
  206.  * FUNCTION: fnMMS_ParseDeliveryInd
  207.  *
  208.  * PURPOST: receive the delivery Indication from the proxy relay .
  209.  *
  210.  * PARAMETER
  211.  *  InPut :  
  212.  * T_UBYTE* Buf -- the push content data filed's pointer.
  213.  *
  214.  * OutPut: none
  215.  * InOut : none
  216.  *
  217.  * Return Value: the deliver ind struct pointer.
  218.  *
  219.  * Reentrant: none
  220.  **************************************************************/
  221. T_MMS_Delivery_Ind * fnMMS_ParseDeliveryInd(T_UBYTE *Buf,T_WORD Content_len);
  222. /**************************************************************
  223.  * FUNCTION: fnMMS_MakeNotifyRespPdu
  224.  *
  225.  * PURPOST: encode the notify response pdu.
  226.  *
  227.  * PARAMETER
  228.  *  InPut : 
  229.  * T_BYTE *Trans_ID --the Id of notificaiton .
  230.  * T_BOOL SendDevRep -- if send the delivery ind.
  231.  * T_BYTE Status -- the status of the mms.
  232.  * OutPut: 
  233.  * T_WORD *len -- the length of the pdu.
  234.  * InOut : 
  235.  *
  236.  * Return Value: the pdu's buffer pointer.
  237.  *
  238.  * Reentrant: none
  239.  **************************************************************/
  240. T_UBYTE* fnMMS_MakeNotifyRespPdu(T_BYTE *Trans_ID,T_BOOL SendDevRep,T_UBYTE Status,T_WORD *len);
  241. /**************************************************************
  242.  * FUNCTION: fnMMS_MakeAcknowledgePdu
  243.  *
  244.  * PURPOST: encode the acknowledge pdu.
  245.  *
  246.  * PARAMETER
  247.  *  InPut :  
  248.  * T_BYTE *Trans_ID --the Id of notificaiton .
  249.  * T_BOOL SendDevRep -- if send the delivery ind.
  250.  * OutPut: none.
  251.  * T_WORD *len -- the length of the pdu.
  252.  * InOut : none.
  253.  *
  254.  * Return Value: the pdu buffer's pointer.
  255.  *
  256.  * Reentrant: none
  257.  **************************************************************/
  258. T_UBYTE* fnMMS_MakeAcknowledgePdu(T_BYTE *Trans_Id,T_BOOL SendDevRep,T_WORD *len);
  259. /**************************************************************
  260.  * FUNCTION: fnMMS_MakeReadReportPdu
  261.  *
  262.  * PURPOST: encode the acknowledge pdu.
  263.  *
  264.  * PARAMETER
  265.  *  InPut :  
  266.  * T_BYTE *Trans_ID --the Id of new mm .
  267.  * T_CHAR *From -- the sender of the received mm .
  268.  * T_CHAR *Subject -- the subject of the received mm.
  269.  * OutPut: none.
  270.  * InOut : none.
  271.  *
  272.  * Return Value: the read report pdu buffer's pointer.
  273.  *
  274.  * Reentrant: none
  275.  **************************************************************/
  276. T_UBYTE* fnMMS_MakeReadReportPdu(T_BYTE *Trans_Id,T_CHAR *From,T_CHAR *Subject,T_WORD *len);
  277. /**************************************************************
  278.  * FUNCTION: fnMMS_FreeMadeMsgPduBuf
  279.  *
  280.  * PURPOST: free the pdu buffer which get from fnMMS_Make* Api,these
  281.  *          pdu buffer is malloc in protocol module.
  282.  *
  283.  * PARAMETER
  284.  *  InPut :  
  285.  * T_VOID *pMsgPdu -- the message pdu's buffer.
  286.  * OutPut: none.
  287.  * InOut : none.
  288.  *
  289.  * Return Value: none.
  290.  *
  291.  * Reentrant: none
  292.  **************************************************************/
  293. T_VOID fnMMS_FreeMadeMsgPduBuf(T_VOID *pMsgPdu);
  294. /**************************************************************
  295.  * FUNCTION: fnMMS_RecvSendConfData
  296.  *
  297.  * PURPOST: to deal with the send response data.
  298.  *
  299.  * PARAMETER
  300.  *  InPut :  
  301.  * pData -- the received data buffer.
  302.  * Size -- the buffer's size.
  303.  * OutPut : none
  304.  * InOut : none
  305.  *
  306.  * Return Value: the send response's status value.
  307.  *
  308.  * Reentrant: none
  309.  **************************************************************/
  310. T_HWORD fnMMS_RecvSendConfData(T_UBYTE*pData,T_WORD Size);
  311. #ifdef __cplusplus
  312. }
  313. #endif
  314. #endif