2 * Copyright (c) 2002-2006 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * under the terms of "Eclipse Public License v1.0"
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
15 * Miscellaneous constants needed by MmsEngine and its clients
16 * (e.g. MCE and DeviceManagement)
29 #include <cmsvrecipientlist.h>
33 // NOTE: January = 0! 1st day of month = 0!
34 _LIT( KMmsYear1970String, "19700000:000000.000000" );
37 // This is the resource file that contains factory values
38 // for error actions (for scheduled sending and receiving)
39 _LIT(KMmsResourceDriveAndFile, "mmsserver.rsc");
42 _LIT(KMMSNotificationFolder, "MMSNotifications");
43 _LIT(KMmsMmboxFolder, "MmsMmbox");
45 // constant for conversion between seconds and microseconds
46 const TInt KMmsMillion = 1000000;
48 const TInt KMmsDateBufferLength = 30;
51 // Image size definitions - Not used by MMS engine
52 // anyone who needs image size constants, should define their own
57 const TInt KMmsImageSmallWidth = 160;
58 const TInt KMmsImageSmallHeight = 120;
60 const TInt KMmsImageLargeWidth = 640;
61 const TInt KMmsImageLargeHeight = 480;
63 const TInt KMmsImageOriginalWidth = KMaxTInt;
64 const TInt KMmsImageOriginalHeight = KMaxTInt;
67 // This is the extra amount of disk space that will be taken
68 // up by the index entry when creating new message entries.
69 // This is a crude estimate. It is defined here as a constant
70 // to allow it to be made more accurate by changing the value
72 const TInt KMmsIndexEntryExtra = 80;
74 // This is the safety margin for fetching MMS messages.
75 // There should be at least this much extra disk space
76 // before a message can be fetched. A new message takes
77 // more disk space than the amount indicated in the
79 const TInt KMmsDiskSafetyMargin = 25000;
82 // DLL UIDs that might be needed
84 const TUid KUidMmsServerMtm={0x100058DB};
85 const TUid KUidMmsClientMtm={0x100058DC};
86 const TUid KUidMmsClientUIMtm={0x100058DD};
87 const TUid KUidMmsClientUIDataMtm={0x100058DD};
89 const TInt KUidMsgMmsEditor={0x100058DE};
90 const TInt KUidMsgMmsViewer={0x100058DF};
93 const TUid KUidMsgTypeMultimedia={0x100058E1};
94 const TUid KUidMsvTechnologyGroupMMS={0x100058E2};
95 const TUid KUidMsgMMSNotification={0x100059C8};
98 const TUid KUidMsgSubTypeMmsUpload={0x102072CD};
99 const TUid KUidMsgSubTypeMmsPostcard={0x102072CE};
100 const TUid KUidMsgSubTypeMmsAudioMsg={0x1020744F};
105 // Globally unique values have been allocated to all streams
107 const TUid KUidMmsHeaderStream={0x101FB0ED};
108 // recipient scheduling info
109 const TUid KUidMmsRecipientStream={0x101FB0EE};
110 // Notification or delivery report in binary format
111 const TUid KUidBinaryNotificationStream={0x101FB0EF};
112 // element descriptor info, only in notification
113 const TUid KUidMMsElementDescriptorStream = {0x101FB0F0};
114 // MMBox headers that can be present in several message PDUs
115 const TUid KUidMMsMMBoxMessageHeaderStream = {0x101FB0F1};
116 // MMBox headers that are present in MMBox view request and confirmation only
117 const TUid KUidMMsMMBoxViewHeadersStream = {0x101FB0F2};
118 // Extra info (message text) present in extended notification.
119 const TUid KUidMMsExtendedNotificationStream = {0x101FB0F3};
120 // Attributes for UI use
121 const TUid KUidMmsAttributeStream = {0x101FB0F4};
122 // Application id and return-to application id
123 const TUid KUidMmsApplicationInfoStream = {0x101FB0F5};
124 // Reserved for internal use
125 // This stream contains all kinds of unusual information that is rarely present
126 // These are not part of an actual message, but control the transactions.
127 // - recommended retrieval mode
128 // - recommended retrieval mode text
129 // - replace or cancel id
131 const TUid KUidMmsReserved = {0x101FB0F6};
134 // Log entry event type uid (used unless Symbian allocates an id instead)
136 const TUid KLogMmsEventTypeUid = {0x1000595e};
138 //-----------------------------------------------
139 // Flag bits in iMtmData1
140 // The default value for all bits is 0
141 //-----------------------------------------------
142 // Message types stored in iMtmData1
143 // The message types defined are those that could actually be found
144 // in message store. Values for transient types are not defined.
145 const TUint32 KMmsMessageTypeMask = 0x0000000F;
146 const TUint32 KMmsMessageMSendReq = 0x00000001;
147 // reserved for future use 0x00000002;
148 const TUint32 KMmsMessageMNotificationInd = 0x00000003;
149 // reserved for future use 0x00000004;
150 const TUint32 KMmsMessageMRetrieveConf = 0x00000005;
151 // reserved for future use 0x00000006;
152 const TUint32 KMmsMessageDeliveryInd = 0x00000007;
153 const TUint32 KMmsMessageReadRecInd = 0x00000008;
154 const TUint32 KMmsMessageReadOrigInd = 0x00000009;
155 const TUint32 KMmsMessageForwardReq = 0x0000000A;
156 // reserved for future use 0x0000000B;
157 // reserved for future use 0x0000000C;
158 // reserved for future use 0x0000000D;
159 // reserved for future use 0x0000000E;
160 // This must be the last one to allow some expansion for known types
161 const TUint32 KMmsMessageUnrecognized = 0x0000000F;
163 // Message state stored in iMtmData1
164 const TUint32 KMmsMessageEncrypted = 0x00000010;
165 const TUint32 KMmsMessageSigned = 0x00000020;
166 const TUint32 KMmsMessageForwarded = 0x00000040;
167 const TUint32 KMmsMessageMobileTerminated = 0x00000080;
168 const TUint32 KMmsMessageEditorOriented = 0x00000100;
170 // bit to indicate that attribute stream is present in entry
171 const TUint32 KMmsAttributeStreamPresent = 0x00000200;
173 // reserved for future use
177 // Message type flags
178 // 1 byte reserved (0x0000F000)
179 // If no flag is set, message is personal (default)
180 const TUint32 KMmsMessageClassMask = 0x0000F000;
181 const TUint32 KMmsMessageAdvertisement = 0x00001000;
182 const TUint32 KMmsMessageInformational = 0x00002000;
183 // two message types can be added (0x00004000 and 0x00008000)
185 // Some free bits here...
186 const TUint32 KMmsReservedMtmData1 = 0x00FF0000;
188 // Bit that indicates if the message contains non-conformant content.
189 // Default value is 0.
190 // 0 = Message is conformant, or the content is unknown (created by legacy software)
191 // 1 = Message is known to contain non-conformant content.
192 const TUint32 KMmsNonConformantMessage = 0x01000000;
194 // DRM Status in iMtmData1
195 // A DRM attachment is corrupted and removed
196 const TUint32 EMmsDrmCorruptedAttachment = 0x02000000;
198 // Here is still a gap here: bits 0x0C000000 are free.
199 // (flags 0x04000000 and 0x08000000)
200 // Should be reserved for future DRM needs.
203 // Range of bits that indicates that the message has some special content
204 // that needs some non-standard handling
205 const TUint32 KMmsSpecialContentMask = 0xF0000000;
206 // undefined special content reserved for future use: 0x10000000
207 // Special content is "postcard"
208 const TUint32 KMmsPostcard = 0x20000000;
209 // Special content is "upload"
210 const TUint32 KMmsUpload = 0x40000000;
211 // undefined special content reserved for future use: 0x80000000
215 //-----------------------------------------------
216 // Flag bits in iMtmData2
217 // The default value for all bits is 0
218 //-----------------------------------------------
220 // Message notification stuff stored in iMtmData2
221 // Response already sent to MMSC
222 // or MMBox item for which notify response will not be sent.
223 // (fetch acknowledged with M-Acknowledge.ind PDU)
224 const TUint32 KMmsNotifyResponseSent = 0x00000001;
225 // undecoded (binary) notification
226 const TUint32 KMmsNotificationBinary = 0x00000002;
228 // The following flags are related to notifications that are stored in inbox
229 // to allow the messages to be fetched manually (not automatically)
230 // has the message corresponding to this notification expired
232 // Message corresponding to this notification has expired
233 // 0 = Message has not expired, 1 = Message has expired
234 const TUint32 KMmsMessageExpired = 0x00000004;
237 const TUint32 KMmsDeleteAtExpiration = 0x00000008;
240 // Operation mask. The next bits tell which operation is currently in progress.
241 // When a message is being forwarded or fetched, another simulataneous operation
244 const TUint32 KMmsOperationIdentifier = 0x00000070;
246 // fetch operation in progress
247 const TUint32 KMmsOperationFetch = 0x00000010;
248 // forward operation in progress or finished
249 const TUint32 KMmsOperationForward = 0x00000020;
250 // delete operation in progress or finished
251 const TUint32 KMmsOperationDelete = 0x00000030;
252 // 0x00000040 - 0x00000070 reserved for future operations
254 // Operation progress bits (4 bits)
256 // Is new operation allowed for this notification
257 // 0 = new operation allowed
258 // 1 = new operation forbidden
259 const TUint32 KMmsNewOperationForbidden = 0x00000080;
260 // Is operation currently ongoing
262 // 1 = operation ongoing
263 const TUint32 KMmsOperationOngoing = 0x00000100;
264 // Has operation finished (and is result available)
265 // 0 = operation has not finished
266 // 1 = operation has finished
267 const TUint32 KMmsOperationFinished = 0x00000200;
268 // Operation result (if operation has finished)
271 const TUint32 KMmsOperationResult = 0x00000400;
273 // Has message been stored to MMBox as result of some operation
274 // or was it in MMBox originally
275 // 0 = Message not in MMBox
276 // 1 = Message stored in MMBox
277 const TUint32 KMmsStoredInMMBox = 0x00000800;
279 // 0 = Not applicable
280 // 1 = Notification received in deferred mode, but response
281 // sending was not allowed, and therefore notify-response
282 // has not been sent to MMSC
283 const TUint32 KMmsDeferredButResponseNotSent = 0x00001000;
285 // This is some special notification that should never be
286 // moved to inbox in manual mode even if fetching fails.
287 // 0 = May be moved if needed
288 // 1 = Do not move to inbox
289 const TUint32 KMmsDoNotMoveToInbox = 0x00002000;
291 // The message was addressed to an application
292 // The message has been successfully fetched and routed to the application
293 // Even if notification remains in inbox, no operations are allowed except
294 // delete from phone.
295 const TUint32 KMmsMessageRoutedToApplication = 0x00004000;
297 // The following flags are for all message types
299 // bits reserved for future use
300 const TUint32 KMmsReservedMtmData2 = 0x000F8000;
302 // Delivery status bytes, valid only for sent messages
303 // that have been moved to "Sent" folder.
304 // If the message has been copied or moved to another folder,
305 // there is no guarantee that these bits are valid anymore.
307 const TUint32 KMmsDeliveryStatusMask = 0x00F00000;
308 // Delivery report was not requested
309 // If the user specifies that no delivery reports are wanted,
310 // the message stays in this state forever.
311 // This status means that no delivery data is available.
312 const TUint32 KMmsDeliveryStatusNotRequested = 0x00000000;
314 // If Delivery reports have been requested, the number of
315 // recipients and received delivery reports is stored in
318 // Delivery status is "pending" when the delivery status of all
319 // recipients is "pending".
320 const TUint32 KMmsDeliveryStatusPending = 0x00100000;
321 // delivery status is "partial" when delivery raport about
322 // successful delivery has been received from at least one recipient.
323 const TUint32 KMmsDeliveryStatusPartial = 0x00200000;
324 // delivery status is "failed" if sending has failed for at least
326 const TUint32 KMmsDeliveryStatysFailed = 0x00400000;
327 // delivery status is "delivered" if the status of all
328 // recipients is delivered
329 const TUint32 KMmsDeliveryStatysDelivered = 0x00800000;
332 // bits reserved for UI usage
333 // MMS engine will not change these bits.
334 // The default value for these bits will be 0.
335 const TUint32 KMmsReservedForUI = 0xFF000000;
337 //-----------------------------------------------
338 // Flag bits in iMtmData3
339 // The default value for all bits is 0
340 //-----------------------------------------------
342 // These are mask values for ranges of bits to be used as counters
343 // The shift constants indicate how much the value must be shifted
344 // right to be used as a number, and how much the number must be
345 // shifted to left before being stored.
347 // To examine the value use:
348 // number = ( iMtmData3 & mask ) >> shift;
349 // To set the value use:
350 // iMtmData3 &= ~mask;
351 // iMtmData3 |= number << shift;
353 // Retry count mask ( for automatic retries )
354 // max 15 retries counted
355 const TUint32 KMmsRetryCountMask = 0x0000000F;
356 // no shift needed for automatic retry count
358 // Retry count mask ( for manual retries )
359 // This is reserved for UI usage.
360 // max 15 retries counted
361 const TUint32 KMmsManualRetryCountMask = 0x000000F0;
362 const TInt KMmsManualRetryCountShift = 4;
364 // The following three areas are used to keep track of delivery status
365 // of several recipients. These fields are valid only for messages
366 // that have been sent and have been moved to sent folder.
367 // The values are not valid in any other context as it is impossible
368 // to prevent applications from copying messages behind MMS engine's back.
369 // MMS engine tries to clear these bits in other places, but there is no
370 // guarantee of that.
372 // Total number of recipients
373 // Max 255 recipients
374 const TUint32 KMmsSentItemTotalRecipientsMask = 0x0000FF00;
375 const TInt KMmsSentItemTotalRecipientsShift = 8;
377 // Number of delivery reports with status "delivered"
378 // Max 255 delivery reports
379 const TUint32 KMmsSentItemSuccessfullyDeliveredMask = 0x00FF0000;
380 const TInt KMmsSentItemSuccessfullyDeliveredShift = 16;
382 // Number of delivery reports with status "failed"
383 // Max 255 delivery reports
384 const TUint32 KMmsSentItemFailedDeliveryMask = 0xFF000000;
385 const TInt KMmsSentItemFailedDeliveryShift = 24;
388 // End of MtmData bit definitions
389 // ------------------------------------------------------
392 const TUint16 KMmsByteOrderMark = 0xFEFF;
393 const TUint16 KMmsReversedByteOrderMark = 0xFFFE;
395 // Maximum iDescription read from text/plain file in terms of characters.
396 const TInt KMmsMaxDescription = 128;
398 // WSP assigned numbers
399 const TInt8 KUidMmsWSPMultiPartMixed = 0x23;
400 const TInt8 KUidMmsWSPMultiPartRelated = 0x33;
402 // MMS specific field assignments
403 // same values used for enum values in internal storage
404 const TUint8 KMmsMessageClassPersonal = 128;
405 const TUint8 KMmsMessageClassAdvertisement = 129;
406 const TUint8 KMmsMessageClassInformational = 130;
407 const TUint8 KMmsMessageClassAuto = 131;
409 // X-Mms-Message-Type field
410 // message types since encaps 1.0
411 const TUint8 KMmsMessageTypeMSendReq = 128;
412 const TUint8 KMmsMessageTypeMSendConf = 129;
413 const TUint8 KMmsMessageTypeMNotificationInd = 130;
414 const TUint8 KMmsMessageTypeMNotifyRespInd = 131;
415 const TUint8 KMmsMessageTypeMRetrieveConf = 132;
416 const TUint8 KMmsMessageTypeAcknowledgeInd = 133;
417 const TUint8 KMmsMessageTypeDeliveryInd = 134;
418 // message types since encaps 1.1
419 const TUint8 KMmsMessageTypeReadRecInd = 135;
420 const TUint8 KMmsMessageTypeReadOrigInd = 136;
421 const TUint8 KMmsMessageTypeForwardReq = 137;
422 const TUint8 KMmsMessageTypeForwardConf = 138;
423 // message types since encaps 1.2
424 const TUint8 KMmsMessageTypeMboxStoreReq = 139;
425 const TUint8 KMmsMessageTypeMboxStoreConf = 140;
426 const TUint8 KMmsMessageTypeMboxViewReq = 141;
427 const TUint8 KMmsMessageTypeMboxViewConf = 142;
428 const TUint8 KMmsMessageTypeMBoxUploadReq = 143;
429 const TUint8 KMmsMessageTypeMBoxUploadConf = 144;
430 const TUint8 KMmsMessageTypeMBoxDeleteReq = 145;
431 const TUint8 KMmsMessageTypeMBoxDeleteConf = 146;
432 const TUint8 KMmsMessageTypeMBoxDescr = 147;
433 // message types since encaps 1.3
434 const TUint8 KMmsMessageTypeDeleteReq = 148;
435 const TUint8 KMmsMessageTypeDeleteConf = 149;
436 const TUint8 KMmsMessageTypeCancelReq = 150;
437 const TUint8 KMmsMessageTypeCancelConf = 151;
440 // X-Mms-Priority field
441 const TUint8 KMmsPriorityLow = 128;
442 const TUint8 KMmsPriorityNormal = 129;
443 const TUint8 KMmsPriorityHigh = 130;
445 // All fields with Yes/No value
446 const TUint8 KMmsYes = 128;
447 const TUint8 KMmsNo = 129;
449 // X-Mms-Sender-Visibility field
450 const TUint8 KMmsSenderHide = 128;
451 const TUint8 KMmsSenderShow = 129;
453 // X-Mms-Status field
454 const TUint8 KMmsMessageStatusExpired = 128;
455 const TUint8 KMmsMessageStatusRetrieved = 129;
456 const TUint8 KMmsMessageStatusRejected = 130;
457 const TUint8 KMmsMessageStatusDeferred = 131;
458 const TUint8 KMmsMessageStatusUnrecognized = 132;
459 const TUint8 KMmsMessageStatusIndeterminate = 133;
460 const TUint8 KMmsMessageStatusForwarded = 134;
461 const TUint8 KMmsMessageStatusUnreachable = 135;
463 // X-Mms-Read-Status field
464 const TUint8 KMmsReadStatusRead = 128;
465 const TUint8 KMmsReadStatusDeletedWithoutBeingRead = 129;
467 // X-Mms-Reply-Charging field
468 const TUint8 KMmsReplyChargingRequested = 128;
469 const TUint8 KMmsReplyChargingRequestedTextOnly = 129;
470 const TUint8 KMmsReplyChargingAccepted = 130;
471 const TUint8 KMmsReplyChargingAcceptedTextOnly = 131;
473 // field assignments since MMS encapsulation 1.2
475 // X-Mms-Mbox-Quotas field & // X-Mms-MBox-Totals field
476 const TUint8 KMmsMessageCountToken = 128;
477 const TUint8 KMmsMessageSizeToken = 129;
479 // X-Mms-MM-Flags field
480 const TUint8 KMmsAddToken = 128;
481 const TUint8 KMmsRemoveToken = 129;
482 const TUint8 KMmsFilterToken = 130;
484 // X-Mms-MM-State field
485 const TUint8 KMmsDraft = 128;
486 const TUint8 KMmsSent = 129;
487 const TUint8 KMmsNew = 130;
488 const TUint8 KMmsRetrieved = 131;
489 const TUint8 KMmsForwarded = 132;
491 // Response status or Retrieve status OK
492 const TInt KMmsResponseStatusOK = 128;
494 // field assignments since MMS encapsulation 1.3
495 // These will be needed when 1.3 version is supported (not yet)
497 // X-Mms-Cancel-Status field
498 const TUint8 KMmsCancelRequestSuccessfullyReceived = 128;
499 const TUint8 KMmsCancelRequestCorrupted = 129;
501 // X-Mms-Content-Class field
502 const TUint8 KMmsContentClassText = 128;
503 const TUint8 KMmsContentClassImageBasic = 129;
504 const TUint8 KMmsContentClassImageRich = 130;
505 const TUint8 KMmsContentClassVideoBasic = 131;
506 const TUint8 KMmsContentClassVideoRich = 132;
507 const TUint8 KMmsContentClassMegaPixel = 133;
508 const TUint8 KMmsContentClassContentBasic = 134;
509 const TUint8 KMmsContentClassContentRich = 135;
511 // X-Mms-Recommended-Retrieval-mode field
512 const TUint8 KMmsRecommendedRetrievalModeManual = 128;
514 // end of field assignments
516 // All content type strings are in KContentTypeTable
517 // some are defined here to be used separately
518 _LIT8( KMmsAny, "*/*" );
519 _LIT8( KMmsTextPlain, "text/plain" );
520 _LIT8( KMmsApplicationSmil, "application/smil" );
521 _LIT8( KMmsUnknownType, "application/octet-stream" );
522 _LIT8( KMmsMultipartReport, "multipart/report" );
524 // DRM Content subtypes. CMsvMimeHeaders class saves type and subtype separately
525 _LIT8( KMmsDrmMessageCT, "vnd.oma.drm.message" ); // DRM Message
526 _LIT8( KMmsDrmContentCT, "vnd.oma.drm.content" ); // DRM Content
527 _LIT8( KMmsDrmRightsTFCT, "vnd.oma.drm.rights+xml" ); // DRM Rights in textual format
528 _LIT8( KMmsDrmRightsBFCT, "vnd.oma.drm.rights+wbxml" ); // DRM Rights in binary format
529 _LIT8( KMmsDrmDcfCT, "vnd.oma.drm.dcf" ); // DRM Content format for discrete media
531 // Content type parameters used by Java WMA to specify application id
532 _LIT8( KMmsJavaApplicationId, "Application-ID" );
533 _LIT8( KMmsJavaReplyApplicationId, "Reply-To-Application-ID" );
535 // Assigned numbers for content types
536 // If new assignments are needed, check numbers from KContentTypeTable
537 const TUint8 KMmsAssignedAny = 0x00;
538 const TUint8 KMmsAssignedText = 0x01;
539 const TUint8 KMmsAssignedTextPlain = 0x03;
540 const TUint8 KMmsAssignedApplicationVndWapMultipart = 0x22;
541 const TUint8 KMmsAssignedApplicationVndWapMultipartMixed = 0x23;
542 const TUint8 KMmsAssignedApplicationVndWapMultipartAlternative = 0x26;
543 const TUint8 KMmsAssignedApplicationXml = 0x27;
544 const TUint8 KMmsAssignedApplicationVndWapWbxml = 0x29;
545 const TUint8 KMmsAssignedApplicationVndWapMultipartRelated = 0x33;
547 // IANA / WSP numbers for character sets
548 const TUint8 KMmsUtf8 = 0x6A;
549 const TUint8 KMmsUsAscii = 0x03;
550 const TUint KMmsIso10646Ucs2 = 0x03E8; // 1000
551 const TUint KMmsUTF16 = 0x03F7; // 1015
552 const TUint KMmsUTF16BE = 0x03F5; // 1013
553 const TUint KMmsUTF16LE = 0x03F6; // 1014
554 const TUint KMmsUtf7 = 0x03F4; // 1012
556 // CR/LF definitions for removal...
557 _LIT ( KLf16, "\x00A" ); // 16 bit line feed
558 _LIT ( KCr16, "\x00D" ); // 16 bit carriage return
559 _LIT ( KSpace16, " " ); // 16 bit space
560 _LIT ( KEqualsQuestion16, "=?" ); // MIME encoding starter
561 _LIT ( KQuote16, "\x022" ); // 16 bit quote
562 _LIT ( KMmsUnicodeLineSeparator, "\x2028");
563 _LIT ( KMmsUnicodeParagraphSeparator, "\x2029");
564 _LIT ( KMmsIdeographicSpace, "\x3000");
565 _LIT8 ( KLf8, "\x00A" ); // 8 bit line feed
566 _LIT8 ( KCr8, "\x00D" ); // 8 bit carriage return
567 _LIT8 ( KSpace8, " " ); // 8 bit space
568 _LIT8 ( KSemicolon8, ";" ); // 8 bit semicolon
569 _LIT8 ( KEquals8, "=" ); // 8 bit equal
570 _LIT8 ( KMmsSlash8, "/"); // 8 bit slash
571 _LIT8 ( KMmsLeftAngle, "<"); // 8 bit angle bracket
572 _LIT8 ( KMmsRightAngle, ">"); // 8 bit angle bracket
578 // Possible address types
581 EMmsAddressTypeUnknown = 0,
582 EMmsAddressTypeMobile,
583 EMmsAddressTypeEmail,
588 // These panics should only be used in ASSERT_DEBUGs
589 // (The user should not see these)
590 enum TMmsPanic // MMS error codes
592 EMmsBadMtmTypeUid = KErrNone+1,
594 EMmsEntryTypeNotSupported,
598 EMmsActiveInFinalProgress,
599 EMmsFinalProgressFailed,
604 // Values for recipient types
606 // old TMmsRecipients type values should not be used any more!
607 // instead use TMsvRecipientType values by Symbian!
608 typedef TMsvRecipientType TMmsRecipients;
609 #define EMmsTo EMsvRecipientTo
610 #define EMmsCc EMsvRecipientCc
611 #define EMmsBcc EMsvRecipientBcc
620 // Values for message Delivery-Report
621 typedef TMmsYesNo TMmsMessageDeliveryReport;
622 // Values for Delivery-Report allowed
623 typedef TMmsYesNo TMmsSettingsDeliveryReportAllowed;
624 // Values for message Read-Reply
625 typedef TMmsYesNo TMmsMessageReadReply;
626 // Values for Read-Reply sending allowed
627 typedef TMmsYesNo TMmsSettingsReadReplyAllowed;
630 // use EMmsYes and EMmsNo instead
631 #define EMmsDeliveryReportYes EMmsYes
632 #define EMmsDeliveryReportNo EMmsNo
634 #define EMmsDeliveryReportAllowedYes EMmsYes
635 #define EMmsDeliveryReportAllowedNo EMmsNo
637 #define EMmsReadReplyYes EMmsYes
638 #define EMmsReadreplyNo EMmsNo
640 #define EMmsReadReplyAllowedYes EMmsYes
641 #define EMmsReadReplyAllowedNo EMmsNo
644 // Values for message class
645 enum TMmsMessageClass
647 EMmsMimimumMessageClass = KMmsMessageClassPersonal,
648 EMmsClassPersonal = KMmsMessageClassPersonal,
649 EMmsClassAdvertisement = KMmsMessageClassAdvertisement,
650 EMmsClassInformational = KMmsMessageClassInformational,
651 EMmsClassAuto = KMmsMessageClassAuto,
652 // change following if new message classes are added
653 EMmsMaximumMessageClass = KMmsMessageClassAuto
656 // Values for message priority
657 enum TMmsMessagePriority
659 EMmsMinimumPriority = KMmsPriorityLow,
660 EMmsPriorityLow = KMmsPriorityLow,
661 EMmsPriorityNormal = KMmsPriorityNormal,
662 EMmsPriorityHigh = KMmsPriorityHigh,
663 // change following if new priorities added
664 EMmsMaximumPriority = KMmsPriorityHigh
667 // Values for message Sender-Visibility
668 enum TMmsMessageSenderVisibility
670 EMmsSenderVisibilityDefault = 0,
671 EMmsMinimumSenderVisibility = KMmsSenderHide, // always minimum
672 EMmsSenderVisibilityHide = KMmsSenderHide,
673 EMmsSenderVisibilityShow = KMmsSenderShow,
674 EMmsMaximumSenderVisibility = KMmsSenderShow // change if new values added
678 // Values for MMS Creation mode
679 enum TMmsCreationMode
681 EMmsCreationModeRestricted = 0,
682 EMmsCreationModeWarning = 1,
683 EMmsCreationModeFree = 2
687 // Values for Message-Type field
688 // correspond to binary encoding!
689 // Message type cannot be set using Client MTM
690 // Use KMms constants instead.
693 EMmsMSendReq = KMmsMessageTypeMSendReq,
694 EMmsMSendConf = KMmsMessageTypeMSendConf,
695 EMmsNotificationInd = KMmsMessageTypeMNotificationInd,
696 EMmsNotifyRespInd = KMmsMessageTypeMNotifyRespInd,
697 EMmsRetrieveConf = KMmsMessageTypeMRetrieveConf,
698 EMmsAcknowledgeInd = KMmsMessageTypeAcknowledgeInd,
699 EMmsDeliveryInd = KMmsMessageTypeDeliveryInd,
700 EMmsReadRecInd = KMmsMessageTypeReadRecInd,
701 EMmsReadOrigInd = KMmsMessageTypeReadOrigInd,
702 EMmsForwardReq = KMmsMessageTypeForwardReq,
703 EMmsForwardConf = KMmsMessageTypeForwardConf
709 // Values for Status field
710 // correspond to binary encoding!
711 // Use KMms constants instead.
712 enum TMmsMessageStatus
714 EMmsStatusExpired = KMmsMessageStatusExpired,
715 EMmsStatusRetrieved = KMmsMessageStatusRetrieved,
716 EMmsStatusRejected = KMmsMessageStatusRejected,
717 EMmsStatusDeferred = KMmsMessageStatusDeferred,
718 EMmsStatusUnrecognized = KMmsMessageStatusUnrecognized,
719 EMmsStatusIndeterminate = KMmsMessageStatusIndeterminate,
720 EMmsStatusForwarded = KMmsMessageStatusForwarded,
721 EMmsStatusUnreachable = KMmsMessageStatusUnreachable
725 // Values for read status
726 // correspond to binary encoding!
729 EMmsReadStatusRead = KMmsReadStatusRead,
730 EMmsReadStatusDeletedWithoutBeingRead = KMmsReadStatusDeletedWithoutBeingRead
733 enum TMmsReplyCharging
735 EMmsReplyChargingRequested = KMmsReplyChargingRequested,
736 EMmsReplyChargingRequestedTextOnly = KMmsReplyChargingRequestedTextOnly,
737 EMmsReplyChargingAccepted = KMmsReplyChargingAccepted,
738 EMmsReplyChargingAcceptedTextOnly = KMmsReplyChargingAcceptedTextOnly
741 // mms receiving mode
742 enum TMmsReceivingMode
744 EMmsReceivingMin = 1,
745 EMmsReceivingAutomatic = EMmsReceivingMin,
746 EMmsReceivingManual = EMmsReceivingMin + 1,
747 EMmsReceivingPostpone = EMmsReceivingManual + 1,
748 EMmsReceivingReject = EMmsReceivingPostpone + 1,
749 EMmsReceivingMax = EMmsReceivingReject
753 enum TMmsFactorySettingsLevel
755 EMmsFactorySettingsLevelNormal = 0x0,
756 EMmsFactorySettingsLevelDeep
759 // Type of the Delete operation
760 enum TMmsDeleteOperationType
762 EMmsDeleteNotificationOnly,