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

C/C++

  1. /*=====================================================================
  2.  Copyright (c) 2001-2002 MobileSoft Corporation
  3.     All Rights Reserved.
  4.     $Logfile: "Cms_MMSProvide.h"
  5.     $Revision:
  6.     $vision:       1.00
  7.     $Date:         05/23/2003
  8.     $Author:       Shawn Pan
  9. $Declare: 
  10. This document contains information proprietary to MobileSoft  
  11.  Technology (Nanjing),  Corp.    Transmittal, receipt, or possession 
  12.  of this document does not express, license, or imply any rights to 
  13.  use, sell, design, or manufacture from this information. No reproduction, 
  14.  publication, or disclosure of this information, in whole or in part, 
  15.  shall be made without prior written authorization from an officer of 
  16.  MobileSoft Technology (NanJing), Corp.
  17. Abstract:
  18. Modified By: 
  19. Environment: 
  20. Revision History:
  21. =====================================================================*/
  22. #ifndef     _CMS_MMS_PROVIDE_H
  23. #define     _CMS_MMS_PROVIDE_H
  24. #include "Cms_callback.h"//  Modified by TIPrj[2005/7/14]  
  25. #include "Cms_MMSGlobal.h"
  26. #include "Cms_MMSDoc.h"
  27. #ifndef     MMSHANDLE
  28. #define MMSHANDLE void*
  29. #endif
  30. #ifndef     bool
  31. #define     bool            int
  32. #endif
  33. #ifndef WTP_PACKET_SIZE
  34. #define WTP_PACKET_SIZE  1395//1020
  35. #endif
  36. //#define CECW_RECV_MRU  WTP_PACKET_SIZE+10   
  37. /* define document type */
  38. #ifndef     DOCUMENT_TYPE_WML
  39. #define DOCUMENT_TYPE_WML 1
  40. #endif
  41. #ifndef     DOCUMENT_TYPE_SMIL
  42. #define DOCUMENT_TYPE_SMIL 2
  43. #endif
  44. #ifndef     DOCUMENT_TYPE_MMS
  45. #define DOCUMENT_TYPE_MMS 3
  46. #endif
  47. /*------------------------------------------------------------------------
  48.  *
  49.  *
  50.  *
  51.  *               the size of variable in a struct should be times of 4 bytes 
  52.  *           this is padding
  53.  *
  54.  *
  55. ------------------------------------------------------------------------*/
  56. /*------------------------------------------------------------------------
  57.  *
  58.  *
  59.  *
  60.  *          use this to  malloc space
  61.  *           
  62.  *
  63.  *
  64. ------------------------------------------------------------------------*/
  65. #ifndef WTP_MTU
  66. #define WTP_MTU                         1500
  67. #endif
  68. #ifndef WTP_RECV_MAXSPACE
  69. #define WTP_RECV_MAXSPACE               WTP_MTU+100
  70. #endif
  71. /*----------------------------------------------------------------------*/
  72.  
  73. /*------------------------------------------------------------------------
  74.  *
  75.  *
  76.  *
  77.  *                 MMS head field definition
  78.  *
  79.  *
  80.  *
  81. ------------------------------------------------------------------------*/
  82. #ifndef     MMS_BCC
  83. #define MMS_BCC 0x01
  84. #endif
  85. #ifndef MMS_CC
  86. #define MMS_CC 0x02
  87. #endif
  88. #ifndef MMS_CONTENT_LOCATION
  89. #define MMS_CONTENT_LOCATION 0x03
  90. #endif
  91. #ifndef MMS_CONTENT_TYPE
  92. #define MMS_CONTENT_TYPE 0x04
  93. #endif
  94. #ifndef MMS_DATE
  95. #define MMS_DATE 0x05
  96. #endif
  97. #ifndef MMS_DELIVERY_REPORT
  98. #define MMS_DELIVERY_REPORT 0x06
  99. #endif
  100. #ifndef MMS_DELIVERY_TIME
  101. #define MMS_DELIVERY_TIME 0x07
  102. #endif
  103. #ifndef MMS_EXPIRY
  104. #define MMS_EXPIRY 0x08
  105. #endif
  106. #ifndef MMS_FROM
  107. #define MMS_FROM 0x09
  108. #endif
  109. #ifndef MMS_MESSAGE_CLASS
  110. #define MMS_MESSAGE_CLASS 0x0a
  111. #endif
  112. #ifndef MMS_MESSAGE_ID
  113. #define MMS_MESSAGE_ID 0x0b
  114. #endif
  115. #ifndef MMS_MESSAGE_TYPE
  116. #define MMS_MESSAGE_TYPE 0x0c
  117. #endif
  118. #ifndef MMS_MMS_VERSION
  119. #define MMS_MMS_VERSION 0x0d
  120. #endif
  121. #ifndef MMS_MESSAGE_SIZE
  122. #define MMS_MESSAGE_SIZE 0x0e
  123. #endif
  124. #ifndef MMS_PRIORITY
  125. #define MMS_PRIORITY 0x0f
  126. #endif
  127. #ifndef MMS_READ_REPORT
  128. #define MMS_READ_REPORT 0x10
  129. #endif
  130. #ifndef MMS_REPORT_ALLOWED
  131. #define MMS_REPORT_ALLOWED 0x11
  132. #endif
  133. #ifndef MMS_RESPONSE_STATUS
  134. #define MMS_RESPONSE_STATUS 0x12
  135. #endif
  136. #ifndef MMS_RESPONSE_TEXT
  137. #define MMS_RESPONSE_TEXT 0x13
  138. #endif
  139. #ifndef MMS_SENDER_VISIBILITY
  140. #define MMS_SENDER_VISIBILITY 0x14
  141. #endif
  142. #ifndef MMS_STATUS
  143. #define MMS_STATUS 0x15
  144. #endif
  145. #ifndef MMS_SUBJECT
  146. #define MMS_SUBJECT 0x16
  147. #endif
  148. #ifndef MMS_TO
  149. #define MMS_TO 0x17
  150. #endif
  151. #ifndef MMS_TRANSACTION_ID
  152. #define MMS_TRANSACTION_ID 0x18
  153. #endif
  154. #ifndef MMS_READ_STATUS
  155. #define MMS_READ_STATUS 0x1b
  156. #endif
  157. /*------------------------------------------------------------------------
  158.  *
  159.  *
  160.  *
  161.  *                 MMS message type value definition
  162.  *
  163.  *
  164.  *
  165. ------------------------------------------------------------------------*/
  166. #ifndef MMS_MESSAGE_TYPE_SEND_REQ
  167. #define MMS_MESSAGE_TYPE_SEND_REQ 128
  168. #endif
  169. #ifndef     MMS_MESSAGE_TYPE_SEND_CONF
  170. #define MMS_MESSAGE_TYPE_SEND_CONF 129
  171. #endif
  172. #ifndef     MMS_MESSAGE_TYPE_NOTIFICATION_IND
  173. #define MMS_MESSAGE_TYPE_NOTIFICATION_IND 130
  174. #endif
  175. #ifndef     MMS_MESSAGE_TYPE_NOTIFYRESP_IND
  176. #define MMS_MESSAGE_TYPE_NOTIFYRESP_IND 131
  177. #endif
  178. #ifndef     MMS_MESSAGE_TYPE_RETRIVE_CONF
  179. #define MMS_MESSAGE_TYPE_RETRIVE_CONF 132
  180. #endif
  181. #ifndef     MMS_MESSAGE_TYPE_ACKNOWLEDGE_IND
  182. #define MMS_MESSAGE_TYPE_ACKNOWLEDGE_IND 133
  183. #endif
  184. #ifndef     MMS_MESSAGE_TYPE_DELIVERY_IND
  185. #define MMS_MESSAGE_TYPE_DELIVERY_IND 134
  186. #endif
  187. #ifndef     MMS_MESSAGE_TYPE_READREC_IND
  188. #define MMS_MESSAGE_TYPE_READREC_IND 135
  189. #endif
  190. #ifndef     MMS_MESSAGE_TYPE_READORIG_IND
  191. #define MMS_MESSAGE_TYPE_READORIG_IND 136
  192. #endif
  193. /*------------------------------------------------------------------------
  194.  *
  195.  *
  196.  *
  197.  *                 MMS head field macro definition
  198.  *
  199.  *
  200.  *
  201. ------------------------------------------------------------------------*/
  202. /* define address type */
  203. #ifndef ADDRESS_TYPE_UNKNOWN
  204. #define ADDRESS_TYPE_UNKNOWN 0
  205. #endif
  206. #ifndef ADDRESS_TYPE_PLMN
  207. #define ADDRESS_TYPE_PLMN 1
  208. #endif
  209. #ifndef ADDRESS_TYPE_IPV4
  210. #define ADDRESS_TYPE_IPV4 2
  211. #endif
  212. #ifndef ADDRESS_TYPE_IPV6
  213. #define ADDRESS_TYPE_IPV6 3
  214. #endif
  215. #ifndef ADDRESS_TYPE_EMAIL
  216. #define ADDRESS_TYPE_EMAIL 4
  217. #endif
  218. /* Well-known Parameter Assignments */
  219. #ifndef MMS_TYPE_PA_TYPE
  220. #define MMS_TYPE_PA_TYPE 0x09
  221. #endif
  222. #ifndef MMS_TYPE_PA_START
  223. #define MMS_TYPE_PA_START 0x0A
  224. #endif
  225. /* macro define of deffrient mms bool field value */
  226. #ifndef MMS_FIELD_VALUE_YES
  227. #define MMS_FIELD_VALUE_YES 128
  228. #endif
  229. #ifndef MMS_FIELD_VALUE_NO
  230. #define MMS_FIELD_VALUE_NO 129
  231. #endif
  232. /* macro define of deffrient time field type value */
  233. #ifndef MMS_TIME_TYPE_ABCOLUTE
  234. #define MMS_TIME_TYPE_ABCOLUTE 128
  235. #endif
  236. #ifndef MMS_TIME_TYPE_RELATIVE
  237. #define MMS_TIME_TYPE_RELATIVE 129
  238. #endif
  239. /* macro define of from field value type value */
  240. #ifndef MMS_FROM_VALUE_TYPE_ADDRESS
  241. #define MMS_FROM_VALUE_TYPE_ADDRESS 128
  242. #endif
  243. #ifndef MMS_FROM_VALUE_TYPE_INSERT
  244. #define MMS_FROM_VALUE_TYPE_INSERT 129
  245. #endif
  246. /* macro define of from message class type value */
  247. #ifndef MMS_MESSAGE_CLASS_TYPE_PERSONAL
  248. #define MMS_MESSAGE_CLASS_TYPE_PERSONAL 128
  249. #endif
  250. #ifndef MMS_MESSAGE_CLASS_TYPE_ADVERTISEMENT
  251. #define MMS_MESSAGE_CLASS_TYPE_ADVERTISEMENT 129
  252. #endif
  253. #ifndef MMS_MESSAGE_CLASS_TYPE_INFORMATIONAL
  254. #define MMS_MESSAGE_CLASS_TYPE_INFORMATIONAL 130
  255. #endif
  256. #ifndef MMS_MESSAGE_CLASS_TYPE_AUTO
  257. #define MMS_MESSAGE_CLASS_TYPE_AUTO 131
  258. #endif
  259. #ifndef MMS_DELIVERY_REPORT_YES                
  260. #define MMS_DELIVERY_REPORT_YES                   1
  261. #endif
  262. #ifndef MMS_DELIVERY_REPORT_NO                
  263. #define MMS_DELIVERY_REPORT_NO                   0
  264. #endif
  265. #ifndef MMS_READ_REPORT_YES                
  266. #define MMS_READ_REPORT_YES                   1
  267. #endif
  268. #ifndef MMS_READ_REPORT_NO                
  269. #define MMS_READ_REPORT_NO                   0
  270. #endif
  271. /* macro define of message priority value */
  272. #ifndef MMS_PRIORITY_VALUE_LOW
  273. #define MMS_PRIORITY_VALUE_LOW 128
  274. #endif
  275. #ifndef MMS_PRIORITY_VALUE_NORMAL
  276. #define MMS_PRIORITY_VALUE_NORMAL 129
  277. #endif
  278. #ifndef MMS_PRIORITY_VALUE_HIGH
  279. #define MMS_PRIORITY_VALUE_HIGH 130
  280. #endif
  281. /* macro define of send visibility value */
  282. #define MMS_SENDER_VISIBILITY_HIDE 128
  283. #define MMS_SENDER_VISIBILITY_SHOW 129
  284. /* macro define of status value */
  285. #define MMS_STATUS_VALUE_EXPIRED 128
  286. #define MMS_STATUS_VALUE_RETRIVED 129
  287. #define MMS_STATUS_VALUE_REJECTED 130
  288. #define MMS_STATUS_VALUE_DEFERRED 131
  289. #define MMS_STATUS_VALUE_UNRECOGNISED 132
  290. #if 0 //  Modified by TIPrj[2005/7/13]
  291. /*------------------------------------------------------------------------
  292.  *
  293.  *
  294.  *
  295.  *                 MMS bottom message funcion param definition
  296.  *
  297.  *
  298.  *
  299. ------------------------------------------------------------------------*/
  300. typedef enum
  301. {
  302. NETLINK_RETURN = 0,
  303. SENDDATA_RETURN,
  304. DATAARRIVED,
  305. NETCLOSELINK_RETURN,
  306. FILEOPRATE_RETURN,
  307. DIR_OPREATE_RETURN,
  308. //CECW_TIMER_MSG,//timout 
  309. WTP_TIMEROUT_MSG
  310. }CenMsgType;
  311. typedef enum
  312. {
  313. NETLINK_FAILED,
  314. NETLINK_SUCCESS
  315. }NETLINK_RETURN_VALUE;//after netlink
  316. typedef enum
  317. {
  318. SENDDATA_FAILED,
  319. SENDDATA_SUCCESS
  320. }SENDDATA_RETURN_VALUE;
  321. typedef enum
  322. {
  323. MMSNETLINKING,
  324. MMSNETLINK_SUCCESS,
  325. WAPCONNECT_SUCCESS,
  326. MMS_RECEIVING,
  327. MMS_SENDING,
  328. MMSNETLINK_FAILED,
  329. MMSWAPCONNECT_FAILED,
  330. //MMSSEND_FAILED,
  331. //MMSSEND_SUCCESS,
  332. MMSRECV_FAILED,
  333. MMSRECV_FAILED_BY_NOT_FOUND,
  334. MMSRECV_FINISHED,
  335. MMSRECV_SUCCESS,
  336. MMSOPR_CANCEL,
  337. MMSWAP_DISCONNECTED,
  338. MMSSYSTEM_ERROR,
  339. MMSUNKNOWN_ERROR,
  340. MMSNET_DISCONNECTED,
  341. MMSNET_DISCONNECTING,
  342. /* macro define of Response status value */
  343. MMS_RESPONSE_STATUS_VALUE_OK =128,
  344. MMS_RESPONSE_STATUS_VALUE_E_UNSPECIFIED =129,
  345. MMS_RESPONSE_STATUS_VALUE_E_SERVICE_DENIED =130,
  346. MMS_RESPONSE_STATUS_VALUE_E_FORMAT_CORRUPT =131,
  347. MMS_RESPONSE_STATUS_VALUE_E_ADDRESS_UNRESOLVED =132,
  348. MMS_RESPONSE_STATUS_VALUE_E_MESSAGE_NOT_FOUND =133,
  349. MMS_RESPONSE_STATUS_VALUE_E_NETWORK_PROBLEM =134,
  350. MMS_RESPONSE_STATUS_VALUE_E_NOT_ACCEPTED =135,
  351. MMS_RESPONSE_STATUS_VALUE_E_UNSUPORTED_MESSAGE =136,
  352. MMS_RESPONSE_STATUS_VALUE_E_UNKNOW_ERROR        =999,
  353. }MMS_LIBSTATUS_VALUE;
  354. typedef enum
  355. {
  356. SMS_TYPE_DELIVERY_IND,             
  357. SMS_TYPE_NOTIFICATION_IND,  
  358. SMS_TYPE_READORIG_IND,
  359. SMS_TYPE_UNKNOW,
  360. }SMS_HANDLE_STATUS;
  361. typedef enum mmsliberrcode{
  362. MMS_NO_ERROR = 0,                             //没有错误
  363. MMSMEMORY_ERROR,
  364. MMSSEND_ABORT,
  365. MMSRECV_ABORT,
  366. MMSTEXT_TOOLARGE,
  367. MMSIMAGEAUDIO_TOOLARGE,
  368. MMSMSG_TOOLARGE,
  369. }MMSLIBERRCODE;
  370. /*------------------------------------------------------------------------
  371.  *
  372.  *
  373.  *
  374.  *                 some data stucture set before sending
  375.  *
  376.  *
  377.  *
  378. ------------------------------------------------------------------------*/
  379. typedef struct tag_send_setting
  380. {
  381. char *send_vfilename;
  382. char *conf_vfilename;
  383. }MMS_SEND_SETTING;
  384. typedef struct tag_recv_setting
  385. {
  386. char *get_url;
  387. char *recv_vfilename;
  388. bool immediate_recv;   //if receiving immediately,1 means receiving imediately;0,the opposite.
  389. int recv_msgsize;
  390. }MMS_RECV_SETTING;
  391. typedef struct tag_mmsconfig_setting
  392. {
  393. unsigned char *wap_gateway;  //gateway address,China Mobile provide it as "10.0.0.172"  2003.11.03
  394. char *mms_centery;  //mms centry,China Mobile provide as "Http://mmsc.monternet.com/"
  395. int   wap_port;     //wap wtp port  9201
  396. }MMS_CONFIG_SETTING;
  397. /*------------------------------------------------------------------------
  398.  *
  399.  *
  400.  *
  401.  *                 display some subject as phone to the upper
  402.  *
  403.  *
  404.  *
  405. ------------------------------------------------------------------------*/
  406. typedef struct tag_sms_msg
  407. {
  408. int  msgsize;                      //消息大小
  409. long de_date;    //delivery report date
  410. int  de_status;                    //delivery report status
  411. char *de_msgid;                    //delivery report message id
  412. char *de_to;                        //delivery report receiver
  413.     char *mms_url;                     //MMS所在的URL
  414.     char *phone_number;                //发件人的电话
  415.     char *subject;                     //MMS主题
  416. char *tid;                          //transaction ID
  417. }NOTIFICATION_IND_SMS_MSG;
  418. #endif //  Modified by TIPrj[2005/7/13]
  419. /*------------------------------------------------------------------------
  420.  *
  421.  *
  422.  *
  423.  *                     MMS callback mmsproc
  424.  * report the status to upper
  425.  *
  426.  *
  427. ------------------------------------------------------------------------*/
  428. /*
  429. typedef enum
  430. {
  431. LIB_STATUS_SENDRETURN,                  
  432. LIB_STATUS_RECVRETURN,                 
  433. LIB_STATUS_NORMAL_STATUS,               
  434. LIB_STATUS_TOTAL_BYTES,
  435. LIB_STATUS_SENDED_BYTES,
  436. LIB_STATUS_RECVED_BYTES
  437. }MMS_LIBSTATUS;  
  438. */
  439. /*------------------------------------------------------------------------
  440.  *                 MMS文档结构定义
  441.  *
  442.  *
  443.  *
  444. ------------------------------------------------------------------------*/
  445. #ifndef MAX_VERSION_LENGTH
  446. #define MAX_VERSION_LENGTH 16
  447. #endif
  448. #ifndef MAX_MESSAGEID_LENGTH
  449. #define MAX_MESSAGEID_LENGTH 40
  450. #endif
  451. #ifndef MAX_CONTENTLOCATON_LENGTH
  452. #define MAX_CONTENTLOCATON_LENGTH 100
  453. #endif
  454. #ifndef MAX_RESPONSETEXT_LENGTH
  455. #define MAX_RESPONSETEXT_LENGTH 30
  456. #endif
  457. #ifndef MAX_NAME_LENGTH
  458. #define MAX_NAME_LENGTH 90/*128*//*64*/
  459. #endif
  460. #ifndef MAX_BOUNDARY_STR_LENGTH
  461. #define MAX_BOUNDARY_STR_LENGTH   40
  462. #endif
  463. #ifndef MAX_CONTENT_LENGTH
  464. #define MAX_CONTENT_LENGTH 128
  465. #endif
  466. #ifndef MAX_SUBJECT_LENGTH
  467. #define MAX_SUBJECT_LENGTH 60
  468. #endif
  469. #ifndef MAX_URL_LENGTH
  470. #define MAX_URL_LENGTH 256
  471. #endif
  472. #ifndef MAX_LENGTH
  473. #define MAX_LENGTH 256
  474. #endif
  475. #ifndef FILE_BLOCK_LENGTH
  476. #define FILE_BLOCK_LENGTH 2048
  477. #endif
  478. /* 
  479. * Added by longqiangl 
  480. * 2003-07-01 
  481. * MMS client should process correctly multi-recepient information
  482. * tag_MMS_RECEPIENT is defined for this consideration
  483. * The MMS recepient information , including To/CC/BCC  
  484. */
  485. typedef struct tag_MMS_RECEPIENT
  486. {
  487. struct tag_MMS_RECEPIENT  *p_next;
  488. /* Address of the recipient. */
  489. char m_address[MAX_NAME_LENGTH];
  490. }MMS_RECEPIENT;
  491. typedef MMS_RECEPIENT* p_MMS_RECEPIENT;
  492. typedef struct _CmsMMSHead
  493. {
  494. /* Internal Flags */
  495. int flagMultipartRelated;
  496. /* Header Fields Flags */
  497.     int flagBccAvailable;
  498.     int flagCcAvailable;
  499.     int flagContentTypeAvailable;
  500.     int flagDateAvailable;
  501.     int flagDeliveryReportAvailable;
  502.     int flagDeliveryTimeAvailable;
  503.     int flagDeliveryTimeAbsolute;
  504.     int flagExpiryAvailable;
  505.     int flagExpiryAbsolute;
  506.     int flagFromAvailable;
  507.     int flagMessageClassAvailable;
  508.     int flagMessageIdAvailable;
  509.     int flagMessageTypeAvailable;
  510.     int flagMMSVersionAvailable;
  511.     int flagPriorityAvailable;
  512.     int flagReadReportAvailable;
  513.     int flagSenderVisibilityAvailable;
  514.     int flagStatusAvailable;
  515. int flagReadStatusAvailable;
  516.     int flagSubjectAvailable;
  517.     int flagToAvailable;
  518.     int flagTransactionIdAvailable;
  519. /* hulf add */
  520.     int flagContentLocationAvailable;
  521.     int flagReportAllowedAvailable;
  522.     int flagResponseStatusAvailable;
  523.     int flagResponseTextAvailable;
  524.     int flagMessageSizeAvailable;
  525. /* head flied value */
  526. /* 
  527. * Revised by longqiangl 
  528. * 2003-07-01 
  529. */
  530. //char Mms_bcc[MAX_NAME_LENGTH];/* Address of the recipient. */
  531. //char Mms_cc[MAX_NAME_LENGTH]; /* Address of the recipient. */
  532. p_MMS_RECEPIENT p_bcc_head;
  533. p_MMS_RECEPIENT p_cc_head;
  534. char Mms_content_location[MAX_CONTENTLOCATON_LENGTH];
  535. /* This field defines the location of the message. */
  536. char Mms_content_type[MAX_CONTENT_LENGTH];
  537. /* The content type of the message. */
  538. int Mms_date; /* Arrival time of the message at MMSProxy -Relay. 
  539. MMS Proxy -Relaywill generate this field when 
  540. not supplied by terminal. */
  541. int Mms_delivery_time; /* default: immediate.
  542. Time of desired delivery. Indicates the earliest 
  543. possible delivery of the message to the recipient. 
  544. The field has two formats, either absolute or 
  545. CMS_MMS_S32erval. */
  546. int Mms_expiry; /* default: maximum.
  547. Length of time the message will be stored in MMS
  548. Proxy-Relayor time to delete the message. The field has
  549. two formats, either absolute or CMS_MMS_S32erval. */
  550. char Mms_from[MAX_NAME_LENGTH];
  551. /* Address of the sender. If hiding the address of the sender
  552. from the recipient is supported, the MMS Proxy -Relay
  553. will not add this field to a message header. */
  554. char Mms_message_ID[MAX_MESSAGEID_LENGTH];
  555. /* This is an unique reference assigned to message. This ID
  556. SHALL always be present when the originator client
  557. requested a read reply.
  558. The ID enables a client to match read reports with */
  559. /* Encoded as in email address as per [RFC822]. 
  560. The characters "<" and ">" are not included. */
  561. char Mms_message_class; /* Class of the message. */  //xuelianb modify [2005-12-26]
  562. unsigned char Mms_delivery_report; /* Default determined when service is ordered.
  563. Specifies whether the user wants a delivery 
  564. report from each recipient. When Message-Class 
  565. is Auto, the field SHALL always be present and 
  566. the value SHALL be No. */
  567. unsigned char Mms_message_type; /* Specifies the message type. */
  568. unsigned char Mms_mms_version; /* The MMS version number. According to this
  569. specification, the version is 1.0. */
  570. /* The three most significant bits of the Short-CMS_MMS_S32eger are 
  571. CMS_MMS_S32erpreted to encode a major version number in the range 1-7,
  572. and the four least significant bits contain a minor version 
  573. number in the range 0-14. If there is only a major version
  574. number, this is encoded by placing the value 15 in the four 
  575. least significant bits [WAPWSP]. */
  576. long Mms_message_size; /* Full size of message in octets. */
  577. unsigned char Mms_priority; /* Default: Normal.
  578. Priority of the message for the recipient. */
  579. char Mms_read_report; /* Specifies whether the user wants a read report from each
  580. recipient as a new message. When Message-Class is
  581. Auto, the field SHALL always be present and the value
  582. SHALL be No. */  //xuelianb modify [2005-12-26]
  583. unsigned char Mms_report_allowed; /* Default: Yes.
  584. Sending of delivery report allowed to the user or not. */
  585. unsigned char Mms_response_status; /* MMS specific status. */
  586. char Mms_response_text[MAX_RESPONSETEXT_LENGTH];
  587. /* Description which qualifies the response status value. */
  588. char Mms_subj[MAX_SUBJECT_LENGTH+12];
  589. /* Subject of the message. */
  590. /* 
  591. * Revised by longqiangl 
  592. * 2003-07-01 
  593. */
  594. //char Mms_to[MAX_NAME_LENGTH];
  595. /* Address of the recipient. */
  596. p_MMS_RECEPIENT p_to_head;
  597. /* Address of the recipient. */
  598. char Mms_transaction_ID[MAX_NAME_LENGTH];
  599. unsigned char Mms_sender_visibility; /* Default: show address/phone number of the
  600. sender to the recipient unless the sender has a secret
  601. number/address.
  602. Hide = don't show any address. Show = show even secret
  603. address. */
  604. unsigned char Mms_status; /* Message status. The status Retrieved SHALL be used
  605. only after successful retrieval of multimedia message. */
  606. /* This transaction ID identifies the M-Send.conf and the
  607. corresponding request only. */
  608. char                Mms_read_status;//xuelianb add [2005-12-26]
  609. //CENT_FILL_FIELD2
  610. } CmsMMSHead;
  611. /* struct define: MMSContentHead
  612.  * define data block head information in rfc2387 mutipart/related
  613.  */
  614. /*
  615. typedef struct _MMSContentHead
  616. {
  617. CMS_MMS_S8 Charset[30];
  618. CMS_MMS_S8 Type[30];
  619. CMS_MMS_S8 Encoding[30];
  620. } MMSContentHead;
  621. */
  622. /* struct define: MMSContentList
  623.  * define data block list in MMS PDU body
  624.  */
  625. typedef struct _MMSContentList
  626. {
  627. int start; /* start poCMS_MMS_S32 of this data block */
  628. int length; /* length of this data block */
  629. char type[MAX_CONTENT_LENGTH]; /* format type of this block */
  630. char id[MAX_NAME_LENGTH]; /* id value or filename of this block */
  631. char filename[MAX_NAME_LENGTH]; /* file name of this block */
  632. struct _MMSContentList *firstchild; /* first child of this data block */
  633. struct _MMSContentList *next; /* next of this data block */
  634. }MMSContentList;
  635. /* struct define: CmsMMSDocument
  636.  *  CmsMMSDocument describe a mms pdu
  637.  */
  638. typedef struct _CmsMMSDocument
  639. {
  640. char mmsfile[MAX_NAME_LENGTH]; /* filename of mm */
  641. char mmsstart[MAX_NAME_LENGTH]; /* smil or wml document id(filename) */
  642. char mmstype[MAX_NAME_LENGTH]; /* document type */
  643. MMSContentList  *ccontent; /* current content in body */
  644. CmsMMSHead *mmshead; /* head of mm */
  645. MMSContentList  *content; /* content list in body */
  646. int     mms_totalsize;  //2003.11.03
  647. }CmsMMSDocument;
  648. typedef CmsMMSDocument *P_MMS_DOCUMENT;
  649. /*------------------------------------------------------------------------
  650.  *
  651.  *
  652.  *
  653.  *                 the Interface of CECW &MMS lib 
  654.  *                 about the bottom message handle
  655.  *
  656.  *
  657. ------------------------------------------------------------------------*/
  658. void mmsEventPostEvent(CenMsgType type,unsigned int param1,void* param2);
  659. void mmsEventProcessEvent(void);
  660. /*------------------------------------------------------------------------
  661.  *
  662.  *
  663.  *
  664.  *                 MMs init,send receive SMS handle interface
  665.  *
  666.  *
  667.  *
  668. ------------------------------------------------------------------------*/
  669. void WAP_GlobalV_Init(void);
  670. void MMS_GlobalV_Init(void);
  671. int MMS_Init(void);
  672. int MMS_SetMaxSize(int send_maxsize,int recv_maxsize);
  673. void MMS_Close(void);
  674. bool MMS_Machine_Config(MMS_CONFIG_SETTING *p_cfgset);
  675. MMSHANDLE MMS_NewMms(void);
  676. int MMS_DeleteMms(MMSHANDLE mmsdoc);
  677. int MMS_SetDefault(MMSHANDLE mmsdoc, int mmstype);
  678. void MmsSetReadReportDefault(MMSHANDLE mmsdoc,char* messageId);
  679. int MMS_SetMmsFile(MMSHANDLE mmsdoc, char *mmsfile);
  680. int MMS_GetMmsFile(MMSHANDLE mmsdoc, char *mmsfile);
  681. int MMS_SetMmsHeadField(MMSHANDLE mmsdoc, int field, long ivalue, char *svalue);
  682. int MMS_GetMmsHeadField(MMSHANDLE mmsdoc, int field, long *ivalue, char *svalue);
  683. int MMS_ClearMmsHeadField(MMSHANDLE mmsdoc, int field);
  684. //void mms_storecontent(MMSHANDLE mmsdoc);
  685. void MMS_SetContentID_SUPPORT(int y_n);
  686. int MMS_EncodeMms(MMSHANDLE mmsdoc);
  687. int MMS_DecodeMms(MMSHANDLE mmsdoc);
  688. CmsMMSHead *MMS_Decode_Header(char *filename);
  689. void MMS_DeleteHead(CmsMMSHead* mmshead);
  690. int MmsDecodeHead(MMSHANDLE mmsdoc);
  691. int MMS_SendMms(MMS_SEND_SETTING *send_setting,mmsproc proc);
  692. int MMS_ReceiveMms(MMS_RECV_SETTING *recv_setting,mmsproc proc);
  693. int MMS_DeferMms(NOTIFICATION_IND_SMS_MSG *p_msg,MMS_CONFIG_SETTING *p_cfgset);
  694. void MMS_SendRecvCancel(void);
  695. int MMS_sms_onpushmessage(unsigned char *sms_userdata,int sms_userdata_len,int flag_userdata_head,smsproc proc);
  696. /*P_MMS_DOUCMENT 和pMMS_EDocument struct converter*/
  697. int cms_parse_mms(char * filename, pMMS_EDocument theDocument);
  698. MMSHANDLE cms_integrate_mms(pMMS_EDocument pMms_edoc);
  699. //int cms_mms_saveasmodu(pMMS_EDocument pMms_edoc,char * mmsfile);
  700. void timer_thread(void);
  701. MMSLIBERRCODE MMS_GetLastError(void);
  702. #undef bool
  703. #endif  /*#ifndef     _CMS_MMS_PROVIDE_H*/