Merge from master.
[framework/messaging/msg-service.git] / plugin / mms_plugin / include / MmsPluginCodecTypes.h
1 /*
2 * Copyright 2012-2013  Samsung Electronics Co., Ltd
3 *
4 * Licensed under the Flora License, Version 1.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *    http://floralicense.org
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17 #ifndef MMS_PLUGIN_CODEC_TYPE_H
18 #define MMS_PLUGIN_CODEC_TYPE_H
19
20 #include "MmsPluginTypes.h"
21
22 #define MMS_MAJOR_VERSION                       1
23
24 #if defined(MMS_V1_1)
25 #define MMS_MINOR_VERSION                       1
26 #define MMS_VERSION                                     0x91
27
28 #elif defined(MMS_V1_2)
29 #define MMS_MINOR_VERSION                       2
30 #define MMS_VERSION                                     0x92
31
32 #else
33 #define MMS_MINOR_VERSION                       0
34 #define MMS_VERSION                                     0x90
35 #endif
36
37 #define MSG_MMS_ENCODE_BUFFER_MAX       (2 * 1024)
38 #define MSG_MMS_DECODE_BUFFER_MAX       (2 * 1024)
39 #define MSB                                                             0x80
40 #define QUOTE                                                   0x7F
41 #define MARK                                                    0x22    // "
42 #define LENGTH_QUOTE                                    0x1F
43 #define MSG_STDSTR_LONG                         0xFF
44 #define INVALID_VALUE                                   -1
45
46 #define MMS_CONTENT_ID_LEN                              100
47 #define MSG_DATE_LEN                                            50
48 #define MSG_SUBJ_LEN                                            40
49 #define MSG_LOCALE_SUBJ_LEN                             (3 * MSG_SUBJ_LEN)
50 #define MSG_LOCAL_TEMP_BUF_SIZE 1024
51 #define MSG_ADDR_LEN                                            MAX_ADDRESS_VAL_LEN
52 #define MMS_LOCALE_RESP_TEXT_LEN                90
53 #define MSG_LOCALE_ADDR_LEN                             (3 * MAX_ADDRESS_VAL_LEN)
54 #define MSG_BOUNDARY_LEN                                        70
55 #define MSG_LOCALE_NAME_LEN                             150
56 #define MSG_LOCALE_FILENAME_LEN_MAX             (3 * MSG_FILENAME_LEN_MAX)
57 #define MMS_READ_REPORT_STRING_READ             "Read:"
58 #define MMS_READ_REPORT_STRING_DELETED  "Deleted:"
59
60 #define MSG_ATTACH_MAX          20
61 #define MSG_STR_ADDR_DELIMETER                  ";"
62
63 #define MMS_TEXT_LEN 2000
64 #define MSG_CH_ADDR_DELIMETER ';'
65 #define MSG_MMS_STR_ADDR_DELIMETER      MSG_STR_ADDR_DELIMETER
66 #define MSG_MMS_CH_ADDR_DELIMETER       MSG_CH_ADDR_DELIMETER
67
68
69 typedef unsigned int                    UINT;
70 typedef unsigned long int               UINT32;
71 typedef unsigned char                   UINT8;
72 typedef unsigned short int              UINT16;
73 typedef unsigned long                   ULONG;
74 typedef unsigned char                   UCHAR;
75 typedef unsigned short                  MCHAR;
76 typedef unsigned short                  USHORT;
77
78 typedef struct _MsgAddress              MsgAddress;
79 typedef struct _MsgBody                 MsgBody;
80 typedef struct _MsgMultipart    MsgMultipart;
81 typedef struct _MsgMessage              MsgMessage;
82
83 typedef enum {
84         MMS_CODE_BCC,
85         MMS_CODE_CC,
86         MMS_CODE_CONTENTLOCATION,
87         MMS_CODE_CONTENTTYPE,
88         MMS_CODE_DATE,
89         MMS_CODE_DELIVERYREPORT,
90         MMS_CODE_DELIVERYTIME,
91         MMS_CODE_EXPIRYTIME,
92         MMS_CODE_FROM,
93         MMS_CODE_MSGCLASS,
94         MMS_CODE_MSGID,
95         MMS_CODE_MSGTYPE,
96         MMS_CODE_VERSION,
97         MMS_CODE_MSGSIZE,
98         MMS_CODE_PRIORITY,
99         MMS_CODE_READREPLY,
100         MMS_CODE_REPORTALLOWED,
101         MMS_CODE_RESPONSESTATUS,
102         MMS_CODE_RETRIEVESTATUS,                /* Add by MMSENC v1.1 */
103         MMS_CODE_RESPONSETEXT,
104         MMS_CODE_RETRIEVETEXT,                  /* Add by MMSENC v1.1 */
105         MMS_CODE_SENDERVISIBILLITY,
106         MMS_CODE_MSGSTATUS,
107         MMS_CODE_SUBJECT,
108         MMS_CODE_TO,
109         MMS_CODE_TRID,
110
111         /* Add by MMSENC v1.1 */
112         MMS_CODE_READSTATUS,
113         MMS_CODE_REPLYCHARGING,
114         MMS_CODE_REPLYCHARGINGDEADLINE,
115         MMS_CODE_REPLYCHARGINGID,
116         MMS_CODE_REPLYCHARGINGSIZE,
117         MMS_CODE_PREVIOUSLYSENTBY,
118         MMS_CODE_PREVIOUSLYSENTDATE,
119
120         MMS_CODE_TRANSFERENCODING,
121         MMS_CODE_DISPOSITION,
122         MMS_CODE_CONTENT_ID
123 } MmsFieldCode;
124
125 enum {
126         MMS_BODYHDR_TRANSFERENCODING,
127         MMS_BODYHDR_DISPOSITION,
128         MMS_BODYHDR_CONTENTID,
129         MMS_BODYHDR_CONTENTLOCATION,
130         MMS_BODYHDR_X_OMA_DRM_SEPARATE_DELIVERY,        // DRM RO WAITING
131 };
132
133 typedef enum {
134         //code
135         MmsCodeFieldCode,
136         MmsCodeParameterCode,
137         MmsCodeMsgBodyHeaderCode,
138
139         //Data
140         MmsCodeMsgType,
141         MmsCodeDeliveryReport,
142         MmsCodeTimeType,
143         MmsCodeMsgClass,
144         MmsCodePriority,
145         MmsCodeResponseStatus,
146         MmsCodeRetrieveStatus,
147         MmsCodeReadReply,
148         MmsCodeReportAllowed,
149         MmsCodeSenderVisibility,
150         MmsCodeMsgStatus,
151         MmsCodeReadStatus,
152         MmsCodeAddressType,
153         MmsCodeCharSet,
154         MmsCodeReplyCharging,
155
156         MmsCodeContentType,
157
158         MmsCodeMsgDisposition,
159         MmsCodeContentTransferEncoding
160 } MmsCode;
161
162 typedef enum {
163         MMS_DATATYPE_NONE = -1,
164         MMS_DATATYPE_READ = 0,
165         MMS_DATATYPE_SENT = 1,
166         MMS_DATATYPE_NOTIFY = 2,
167         MMS_DATATYPE_UNSENT = 3,
168         MMS_DATATYPE_DRAFT = 4,
169         MMS_DATATYPE_SENDING = 6,
170         MMS_DATATYPE_RETRIEVING = 7,
171         MMS_DATATYPE_UNRETV = 8,
172         MMS_DATATYPE_TEMPLATE = 9,
173         MMS_DATATYPE_DRM_RO_WAITING = 10        // DRM RO WAITING
174 } MmsDataType;
175
176 typedef enum {
177         MMS_MSGTYPE_ERROR = -1, // error return in Get method
178         MMS_MSGTYPE_SEND_REQ = 0,       // default
179         MMS_MSGTYPE_SEND_CONF = 1,
180         MMS_MSGTYPE_NOTIFICATION_IND = 2,
181         MMS_MSGTYPE_NOTIFYRESP_IND = 3,
182         MMS_MSGTYPE_RETRIEVE_CONF = 4,
183         MMS_MSGTYPE_ACKNOWLEDGE_IND = 5,
184         MMS_MSGTYPE_DELIVERY_IND = 6,
185         MMS_MSGTYPE_READREC_IND = 7,
186         MMS_MSGTYPE_READORG_IND = 8,
187         MMS_MSGTYPE_FORWARD_REQ = 9,
188         MMS_MSGTYPE_FORWARD_CONF = 10,
189         MMS_MSGTYPE_READ_REPLY = 11,    // for internal use
190         MMS_MSGTYPE_MAX
191 } MmsMsgType;
192
193 typedef enum {
194         MMS_PRIORITY_ERROR = -1,                        // error return in Get method
195         MMS_PRIORITY_LOW = 0,                   // default
196         MMS_PRIORITY_NORMAL = 1,
197         MMS_PRIORITY_HIGH = 2
198 } MmsPriority;
199
200 typedef enum {
201         MMS_SENDER_VISIBLE_ERROR = -1,  // error return in Get method
202         MMS_SENDER_SHOW = 0,
203         MMS_SENDER_HIDE = 1
204 } MmsSenderVisible;
205
206 typedef enum {
207         MMS_REPORT_ERROR = -1,  // error return in Get method
208         MMS_REPORT_YES = 0,
209         MMS_REPORT_NO = 1
210 } MmsReport;
211
212 typedef enum {
213         MMS_REPORTALLOWED_ERROR = -1,   // error return in Get method
214         MMS_REPORTALLOWED_YES = 0,
215         MMS_REPORTALLOWED_NO = 1
216 } MmsReportAllowed;
217
218 typedef enum {
219         MMS_RECEIVE_READ_REPORT_ALLOWED,
220         MMS_RECEIVE_READ_REPORT_PROMPT,
221         MMS_RECEIVE_READ_REPORT_NOT_ALLOWED,
222 } MmsRecvReadReportType ;
223
224 typedef enum {
225         MMS_MSGSTATUS_NONE = -1,        // backward compatibility
226         MMS_MSGSTATUS_ERROR = -1,       // error return in Get method
227         MMS_MSGSTATUS_EXPIRED = 0,      // This value SHOULD not be used in the M-NotifyResp.ind PDU.
228         MMS_MSGSTATUS_RETRIEVED = 1,
229         MMS_MSGSTATUS_REJECTED = 2,
230         MMS_MSGSTATUS_DEFERRED = 3,
231         MMS_MSGSTATUS_UNRECOGNISED = 4, // This value SHALL not be used in the M-Delivery.ind PDU.
232         MMS_MSGSTATUS_INDETERMINATE = 5,
233         MMS_MSGSTATUS_FORWARDED = 6,
234         MMS_MSGSTATUS_UNREACHABLE = 7
235 } MmsMsgStatus;
236
237 typedef enum {
238         MMS_READSTATUS_NONE = -1,                       // no touch status
239         MMS_IS_READ = 0,
240         MMS_IS_DELETED = 1      // Deleted without being read
241 } MmsReadStatus;
242
243 typedef enum {
244         MMS_ADDRESS_PRESENT_TOKEN,
245         MMS_INSERT_ADDRESS_TOKEN
246 } MmsAddressType;
247
248 typedef enum {
249         MSG_PARAM_REPORT_TYPE_DELIVERY_STATUS,
250         MSG_PARAM_REPORT_TYPE_NUM,
251         MSG_PARAM_REPORT_TYPE_UNKNOWN,
252 } MsgParamReportType;
253
254 /* Response status */
255 typedef enum {
256         MMS_RESPSTATUS_ERROR = -1,      // error return in Get method
257         MMS_RESPSTATUS_OK = 0,  // default value
258         MMS_RESPSTAUTS_ERROR_UNSPECIFIED = 1,
259         MMS_RESPSTAUTS_ERROR_SERVICEDENIED = 2,
260         MMS_RESPSTAUTS_ERROR_MESSAGEFORMATCORRUPT = 3,
261         MMS_RESPSTAUTS_ERROR_SENDINGADDRESSUNRESOLVED = 4,
262         MMS_RESPSTAUTS_ERROR_MESSAGENOTFOUND = 5,
263         MMS_RESPSTAUTS_ERROR_NETWORKPROBLEM = 6,
264         MMS_RESPSTAUTS_ERROR_CONTENTNOTACCEPTED = 7,
265         MMS_RESPSTAUTS_ERROR_UNSUPPORTEDMESSAGE = 8,
266
267         MMS_RESPSTAUTS_ERROR_TRANSIENT_FAILURE = 9,
268         MMS_RESPSTAUTS_ERROR_TRANSIENT_SENDING_ADDRESS_UNRESOLVED = 10,
269         MMS_RESPSTAUTS_ERROR_TRANSIENT_MESSAGE_NOT_FOUND = 11,
270         MMS_RESPSTAUTS_ERROR_TRANSIENT_NETWORK_PROBLEM = 12,
271
272         MMS_RESPSTAUTS_ERROR_PERMANENT_FAILURE = 13,
273         MMS_RESPSTAUTS_ERROR_PERMANENT_SERVICE_DENIED = 14,
274         MMS_RESPSTAUTS_ERROR_PERMANENT_MESSAGE_FORMAT_CORRUPT = 15,
275         MMS_RESPSTAUTS_ERROR_PERMANENT_SENDING_ADDRESS_UNRESOLVED = 16,
276         MMS_RESPSTAUTS_ERROR_PERMANENT_MESSAGE_NOT_FOUND = 17,
277         MMS_RESPSTAUTS_ERROR_PERMANENT_CONTENT_NOT_ACCEPTED = 18,
278         MMS_RESPSTAUTS_ERROR_PERMANENT_REPLY_CHARGING_LIMITATIONS_NOT_MET = 19,
279         MMS_RESPSTAUTS_ERROR_PERMANENT_REPLY_CHARGING_REQUEST_NOT_ACCEPTED = 20,
280         MMS_RESPSTAUTS_ERROR_PERMANENT_REPLY_CHARGING_FORWARDING_DENIED = 21,
281         MMS_RESPSTAUTS_ERROR_PERMANENT_REPLY_CHARGING_NOT_SUPPORTED = 22
282 } MmsResponseStatus;
283
284 typedef enum {
285         MMS_RETRSTATUS_ERROR = -1,      // error return in Get method
286         MMS_RETRSTATUS_OK = 0,
287         MMS_RETRSTATUS_TRANSIENT_FAILURE = 1,
288         MMS_RETRSTATUS_TRANSIENT_MESSAGE_NOT_FOUND = 2,
289         MMS_RETRSTATUS_TRANSIENT_NETWORK_PROBLEM = 3,
290         MMS_RETRSTATUS_PERMANENT_FAILURE = 4,
291         MMS_RETRSTATUS_PERMANENT_SERVICE_DENIED = 5,
292         MMS_RETRSTATUS_PERMANENT_MESSAGE_NOT_FOUND = 6,
293         MMS_RETRSTATUS_PERMANENT_CONTENT_UNSUPPORT = 7
294 } MmsRetrieveStatus;
295
296 typedef enum {
297         MMS_REPLY_NONE = -1,    // error return in Get method
298         MMS_REPLY_REQUESTED = 0,
299         MMS_REPLY_REQUESTED_TEXT_ONLY = 1,
300         MMS_REPLY_ACCEPTED = 2,
301         MMS_REPLY_ACCEPTED_TEXT_ONLY = 3
302 } MmsReplyChargeType;
303
304 typedef enum {
305         MMS_STATUS_ERROR = -1,  // error return in Get method
306         MMS_STATUS_INITIAL = 0,
307         MMS_STATUS_REQUESTING = 1,
308         MMS_STATUS_SUCCESS = 2,
309         MMS_STATUS_FAIL = 3,
310         MMS_STATUS_NUM = 4,
311 } MmsDataStatus;
312
313 typedef enum {
314         MMS_EDIT_STYLE_THIS_PAGE = 0,
315         MMS_EDIT_STYLE_ALL_PAGE,
316 } MmsEditStyleMode;
317
318 typedef enum {
319         MMS_SPECIAL_MSG_TYPE_NONE = 0,
320         MMS_SPECIAL_MSG_TYPE_SYSTEM_TEMPLATE,   // system template .
321         MMS_SPECIAL_MSG_TYPE_VOICE_MESSAGE,             //voice message service
322
323         MMS_SPECIAL_MSG_TYPE_VDF_POSTCARD,              //postcard service, or Generic Postcard Service
324         MMS_SPECIAL_MSG_TYPE_POSTCARD_EXT1,     //Stickers Service
325         MMS_SPECIAL_MSG_TYPE_POSTCARD_EXT2,     //Photo 10x15
326         MMS_SPECIAL_MSG_TYPE_POSTCARD_EXT3,     //8 Photos
327         MMS_SPECIAL_MSG_TYPE_POSTCARD_EXT4,     // 4 Photos
328 } MmsSpecialMsgType;
329
330 typedef enum {
331         MMS_MM_CLASS_TEXT,
332         MMS_MM_CLASS_IMAGE_BASIC,
333         MMS_MM_CLASS_IMAGE_RICH,
334         MMS_MM_CLASS_VIDEO_BASIC,
335         MMS_MM_CLASS_VIDEO_RICH,
336         MMS_MM_CLASS_MEGAPIXEL,
337         MMS_MM_CLASS_CONTENT_BASIC,
338         MMS_MM_CLASS_CONTENT_RICH,
339         MMS_MM_CLASS_OTHER
340 } MmsUiMmClass;
341
342 typedef enum {
343         MMS_MSGCLASS_ERROR = -1,        // error return in Get method
344         MMS_MSGCLASS_PERSONAL = 0,      // default
345         MMS_MSGCLASS_ADVERTISEMENT = 1,
346         MMS_MSGCLASS_INFORMATIONAL = 2,
347         MMS_MSGCLASS_AUTO = 3
348 } MmsMsgClass;
349
350
351 /*==================================================================================================
352                                                         Structures
353 ==================================================================================================*/
354
355 typedef struct {
356         MmsReplyChargeType chargeType;
357         MmsTimeStruct deadLine;
358         int chargeSize;
359         char szChargeID[MMS_MSG_ID_LEN + 1];
360 } MmsReplyCharge;
361
362 typedef struct _MmsMsgMultiStatus {
363         char szTo[MAX_ADDRESS_VAL_LEN + 1];
364         bool bDeliveryReportIsRead;
365         bool bDeliveyrReportIsLast;
366         msg_delivery_report_status_t msgStatus;
367         UINT32 handledTime;
368         bool bReadReplyIsRead;
369         bool bReadReplyIsLast;
370         msg_read_report_status_t readStatus;
371         UINT32 readTime;
372
373         struct _MmsMsgMultiStatus *pNext;
374 } MmsMsgMultiStatus;
375
376 typedef struct _MMS_ATTRIB_S {
377         MimeType contentType;
378         MmsMsgType msgType;
379         MmsDataType dataType;
380         UINT32 date;
381         UINT8 version;
382
383         char szFrom[MSG_LOCALE_ADDR_LEN + 11];          //"/TYPE=PLMN", /"TYPE=IPv4", "/TYPE=IPv6"
384         char szSubject[MSG_LOCALE_SUBJ_LEN + 1];
385         char *szTo;
386         char *szCc;
387         char *szBcc;
388
389         MmsPriority priority;
390
391         MmsReplyCharge replyCharge;
392         bool bChargingMsgReplied;
393
394         bool bHideAddress;
395         bool bAskDeliveryReport;
396         bool bReportAllowed;
397         MmsRecvReadReportType readReportAllowedType;
398
399         bool bAskReadReply;
400         bool bRead;
401
402         MmsRecvReadReportSendStatus readReportSendStatus;
403
404         bool bReadReportSent;
405
406         bool bLeaveCopy;
407         bool bUseExpiryCustomTime;              // for expiry custom time
408         bool bUseDeliveryCustomTime;    // for expiry custom time
409         MmsEditStyleMode editStyleMode;                 //editStyle on All Page
410
411         MmsSpecialMsgType specialMsgType;                       // instead of bPostcard
412
413 #ifdef __SUPPORT_DRM__
414         MsgDrmType drmType;
415         int roWaitingTimerMax;          // DRM RO WAITING
416         char *pszDrmData;                       // DRM Data to draw mailbox icon
417 #endif
418
419         int msgSize;
420         MmsMsgClass msgClass;
421         MmsTimeStruct expiryTime;
422         MmsTimeStruct expiryCustomTime;
423         MmsTimeStruct deliveryTime;
424         MmsTimeStruct deliveryCustomTime;
425
426         //for ReadMsg, When Sending notifyResp.ind
427         msg_delivery_report_status_t msgStatus;
428
429         MmsResponseStatus responseStatus;
430         MmsRetrieveStatus retrieveStatus;
431         char szResponseText[MMS_LOCALE_RESP_TEXT_LEN + 1];
432         char szRetrieveText[MMS_LOCALE_RESP_TEXT_LEN + 1];
433
434         MmsMsgMultiStatus *pMultiStatus;
435         bool bRetrieveNow;
436 } MmsAttrib;
437
438 typedef struct _MsgContentParam {
439         int charset;
440         char szBoundary[MSG_BOUNDARY_LEN + 1];
441         char szFileName[MSG_FILENAME_LEN_MAX + 1];
442         char szName[MSG_LOCALE_FILENAME_LEN_MAX + 1];
443
444 #ifdef FEATURE_JAVA_MMS
445         char *szApplicationID;
446         char *szReplyToApplicationID;
447 #endif
448
449         int type;
450         void *pPresentation;
451         char szStart[MSG_MSG_ID_LEN + 1];
452         char szStartInfo[MSG_MSG_ID_LEN + 1];
453
454         MsgParamReportType reportType; //only used as parameter of Content-Type: multipart/report; report-type=delivery-status;
455 } MsgContentParam;
456
457 #ifdef __SUPPORT_DRM__
458 typedef struct _MsgDRMInfo {
459         MsgDrmType drmType;
460         MimeType contentType;
461         char *szContentURI;
462         char *szContentName;
463         char *szContentDescription;
464         char *szContentVendor;
465         char *szRightIssuer;
466         char *szDrm2FullPath;
467         int roWaitingTimerMax;          // DRM RO WAITING
468         bool bFwdLock;
469         char *pszContentType;
470         bool bNoRingTone;
471         bool bNoScreen;
472 } MsgDRMInfo;
473 #endif
474
475 typedef struct _MsgType {
476         int offset;
477         int size;
478         int contentSize;
479         int section;
480         int type;
481 #ifdef __SUPPORT_DRM__
482         MsgDRMInfo drmInfo;
483 #endif
484         int encoding;
485         int disposition;
486         char szContentID[MSG_MSG_ID_LEN + 1];
487         char szContentLocation[MSG_MSG_ID_LEN + 1];
488         char szOrgFilePath[MSG_FILEPATH_LEN_MAX];
489
490         char szContentRepPos[30];
491         char szContentRepSize[30];
492         char szContentRepIndex[8];
493 #ifdef __SUPPORT_DRM__
494         int nDrmConvertedStatus;
495 #endif
496
497         MsgContentParam param;
498 } MsgType;
499
500 struct _MsgAddress {
501         int type;                                       //MSG_ADDR_TYPE_PHONE/EMAIL/IPV4/IPV6
502         int recipientType;                      // TO, CC, BCC
503         char szName[MSG_LOCALE_NAME_LEN + 1];
504         char szAddr[MSG_ADDR_LEN + 1];
505         MsgAddress *pNext;
506         bool bDoNotShow;                                // temporary clip
507
508         // sorting
509         ULONG uLastRecentTime;          // last recent time save item
510         ULONG uMostUseCount;                    // most use count item.
511         int index;                                      // index sorting..
512 };
513
514 typedef struct _MsgHeader {
515         MsgAddress *pFrom;
516         MsgAddress *pTo;
517         MsgAddress *pCC;
518         char szReturnPath[MSG_ADDR_LEN + 1];
519         char szDate[MSG_DATE_LEN];
520         char szSubject[MSG_LOCALE_SUBJ_LEN + 1];
521         char szMsgID[MSG_MSG_ID_LEN + 1];
522 } MsgHeader;
523
524 struct _MsgBody {
525         int offset;
526         int size;
527         char szOrgFilePath[MSG_FILEPATH_LEN_MAX];
528         MsgType presentationType;
529         MsgBody *pPresentationBody;
530
531         union {
532                 char *pText;
533                 void *pBinary;
534                 MsgMultipart *pMultipart;
535                 MsgMessage *pMessage;
536         } body;
537 };
538
539 struct _MsgMultipart {
540         MsgType type;
541         MsgBody *pBody;
542         MsgMultipart *pNext;
543 };
544
545 struct _MsgMessage {
546         MsgHeader header;
547         MsgType type;
548         MsgBody *pBody;
549 };
550
551 typedef struct _MMS_MESSAGE_S {
552         MmsAttrib mmsAttrib;
553         msg_message_id_t msgID;
554         int mailbox;            // mailbox type,MMS_MAILBOX_XXX
555         char szFileName[MSG_FILENAME_LEN_MAX];
556         char szTrID[MMS_TR_ID_LEN + 1];
557         char szMsgID[MMS_MSG_ID_LEN + 1];
558         char szForwardMsgID[MMS_MSG_ID_LEN + 1];
559         char szContentLocation[MMS_LOCATION_LEN + 1];
560         int nPartCount;
561         MsgType msgType;
562         MsgBody msgBody;
563 } MmsMsg;
564
565 #endif //MMS_PLUGIN_CODEC_TYPE_H