epoc32/include/app/mmsconst.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
parent 2 2fe1408b6811
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
     1 /*
     2 * Copyright (c) 2002-2006 Nokia Corporation and/or its subsidiary(-ies).
     3 * All rights reserved.
     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".
     8 *
     9 * Initial Contributors:
    10 * Nokia Corporation - initial contribution.
    11 *
    12 * Contributors:
    13 *
    14 * Description:  
    15 *     Miscellaneous constants needed by MmsEngine and its clients
    16 *     (e.g. MCE and DeviceManagement)
    17 *
    18 */
    19 
    20 
    21 
    22 #ifndef MMSCONST_H
    23 #define MMSCONST_H
    24 
    25 //  INCLUDES
    26 #include <msvuids.h>
    27 #include <msvstd.hrh>
    28 #include <e32std.h>
    29 #include <cmsvrecipientlist.h>
    30 
    31 // CONSTANTS
    32 
    33 // NOTE: January = 0! 1st day of month = 0!
    34 _LIT( KMmsYear1970String, "19700000:000000.000000" );
    35 
    36 // <DEPRECATED>
    37 // This is the resource file that contains factory values
    38 // for error actions (for scheduled sending and receiving)
    39 _LIT(KMmsResourceDriveAndFile, "mmsserver.rsc");
    40 // </DEPRECATED>
    41 
    42 _LIT(KMMSNotificationFolder, "MMSNotifications");
    43 _LIT(KMmsMmboxFolder, "MmsMmbox");
    44 
    45 // constant for conversion between seconds and microseconds
    46 const TInt KMmsMillion = 1000000;
    47 
    48 const TInt KMmsDateBufferLength = 30;
    49 
    50 //
    51 // Image size definitions - Not used by MMS engine
    52 // anyone who needs image size constants, should define their own
    53 //
    54 //
    55 // <DEPRECATED>
    56 // 160*120
    57 const TInt KMmsImageSmallWidth = 160;
    58 const TInt KMmsImageSmallHeight = 120;
    59 // 640*480
    60 const TInt KMmsImageLargeWidth = 640;
    61 const TInt KMmsImageLargeHeight = 480;
    62 // Original
    63 const TInt KMmsImageOriginalWidth = KMaxTInt;
    64 const TInt KMmsImageOriginalHeight = KMaxTInt;
    65 // </DEPRECATED>
    66 
    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
    71 // in only one place.
    72 const TInt KMmsIndexEntryExtra = 80;
    73 
    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
    78 // notification.
    79 const TInt KMmsDiskSafetyMargin = 25000;
    80 
    81 //
    82 // DLL UIDs that might be needed
    83 //
    84 const TUid KUidMmsServerMtm={0x100058DB};
    85 const TUid KUidMmsClientMtm={0x100058DC};
    86 const TUid KUidMmsClientUIMtm={0x100058DD};
    87 const TUid KUidMmsClientUIDataMtm={0x100058DD};
    88 // editor and viewer
    89 const TInt KUidMsgMmsEditor={0x100058DE};
    90 const TInt KUidMsgMmsViewer={0x100058DF};
    91 
    92 // message types
    93 const TUid KUidMsgTypeMultimedia={0x100058E1};
    94 const TUid KUidMsvTechnologyGroupMMS={0x100058E2};
    95 const TUid KUidMsgMMSNotification={0x100059C8};
    96 
    97 // message subtypes
    98 const TUid KUidMsgSubTypeMmsUpload={0x102072CD};
    99 const TUid KUidMsgSubTypeMmsPostcard={0x102072CE};
   100 const TUid KUidMsgSubTypeMmsAudioMsg={0x1020744F};
   101 
   102 //
   103 // Stream UIDs
   104 //
   105 // Globally unique values have been allocated to all streams
   106 // MMS headers
   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
   130 // - cancel status
   131 const TUid KUidMmsReserved = {0x101FB0F6};
   132 
   133 //
   134 // Log entry event type uid (used unless Symbian allocates an id instead)
   135 //
   136 const TUid KLogMmsEventTypeUid = {0x1000595e};
   137 
   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;
   162 
   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;
   169 
   170 // bit to indicate that attribute stream is present in entry
   171 const TUint32 KMmsAttributeStreamPresent =  0x00000200;
   172 
   173 // reserved for future use
   174 // 0x00000400
   175 // 0x00000800
   176 
   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)
   184 
   185 // Some free bits here...
   186 const TUint32 KMmsReservedMtmData1 = 0x00FF0000;
   187 
   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;
   193 
   194 // DRM Status in iMtmData1
   195 // A DRM attachment is corrupted and removed
   196 const TUint32 EMmsDrmCorruptedAttachment =		0x02000000;
   197 
   198 // Here is still a gap here: bits 0x0C000000 are free.
   199 // (flags 0x04000000 and 0x08000000)
   200 // Should be reserved for future DRM needs.
   201 
   202 // <DEPRECATED>
   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
   212 // </DEPRECATED>
   213 
   214 
   215 //-----------------------------------------------
   216 // Flag bits in iMtmData2
   217 // The default value for all bits is 0
   218 //-----------------------------------------------
   219 
   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;
   227 
   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
   231 
   232 // Message corresponding to this notification has expired
   233 // 0 = Message has not expired, 1 = Message has expired
   234 const TUint32 KMmsMessageExpired =     0x00000004;
   235 
   236 // <DEPRECATED>
   237 const TUint32 KMmsDeleteAtExpiration = 0x00000008;
   238 // </DEPRECATED>
   239 
   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
   242 // is not allowed.
   243 // 0 = no operation
   244 const TUint32 KMmsOperationIdentifier = 0x00000070;
   245 
   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
   253 
   254 // Operation progress bits (4 bits)
   255 
   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
   261 // 0 = no operation
   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)
   269 // 0 = OK
   270 // 1 = error
   271 const TUint32 KMmsOperationResult =       0x00000400;
   272 
   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;
   278 
   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;
   284 
   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;
   290 
   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;
   296 
   297 // The following flags are for all message types
   298 
   299 // bits reserved for future use
   300 const TUint32 KMmsReservedMtmData2 =      0x000F8000;
   301 
   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.
   306 
   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;
   313 
   314 // If Delivery reports have been requested, the number of
   315 // recipients and received delivery reports is stored in
   316 // iMtmData3
   317 
   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
   325 // one recipient
   326 const TUint32 KMmsDeliveryStatysFailed = 0x00400000;
   327 // delivery status is "delivered" if the status of all
   328 // recipients is delivered
   329 const TUint32 KMmsDeliveryStatysDelivered = 0x00800000;
   330 
   331 
   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;
   336 
   337 //-----------------------------------------------
   338 // Flag bits in iMtmData3
   339 // The default value for all bits is 0
   340 //-----------------------------------------------
   341 
   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.
   346 
   347 // To examine the value use:
   348 // number = ( iMtmData3 & mask ) >> shift;
   349 // To set the value use:
   350 // iMtmData3 &= ~mask;
   351 // iMtmData3 |= number << shift;
   352 
   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
   357 
   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;
   363 
   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.
   371 
   372 // Total number of recipients
   373 // Max 255 recipients
   374 const TUint32 KMmsSentItemTotalRecipientsMask = 0x0000FF00;
   375 const TInt KMmsSentItemTotalRecipientsShift = 8;
   376 
   377 // Number of delivery reports with status "delivered"
   378 // Max 255 delivery reports
   379 const TUint32 KMmsSentItemSuccessfullyDeliveredMask = 0x00FF0000;
   380 const TInt KMmsSentItemSuccessfullyDeliveredShift = 16;
   381 
   382 // Number of delivery reports with status "failed"
   383 // Max 255 delivery reports
   384 const TUint32 KMmsSentItemFailedDeliveryMask = 0xFF000000;
   385 const TInt KMmsSentItemFailedDeliveryShift = 24;
   386 
   387 
   388 // End of MtmData bit definitions
   389 // ------------------------------------------------------
   390 
   391 // Unicode BOM
   392 const TUint16 KMmsByteOrderMark = 0xFEFF;
   393 const TUint16 KMmsReversedByteOrderMark = 0xFFFE;
   394 
   395 // Maximum iDescription read from text/plain file in terms of characters.
   396 const TInt KMmsMaxDescription = 128;
   397 
   398 // WSP assigned numbers
   399 const TInt8 KUidMmsWSPMultiPartMixed = 0x23;
   400 const TInt8 KUidMmsWSPMultiPartRelated = 0x33;
   401 
   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;
   408 
   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;
   438 
   439 
   440 // X-Mms-Priority field
   441 const TUint8 KMmsPriorityLow = 128;
   442 const TUint8 KMmsPriorityNormal = 129;
   443 const TUint8 KMmsPriorityHigh = 130;
   444 
   445 // All fields with Yes/No value
   446 const TUint8 KMmsYes = 128;
   447 const TUint8 KMmsNo = 129;
   448 
   449 // X-Mms-Sender-Visibility field
   450 const TUint8 KMmsSenderHide = 128;
   451 const TUint8 KMmsSenderShow = 129;
   452 
   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;
   462 
   463 // X-Mms-Read-Status field
   464 const TUint8 KMmsReadStatusRead = 128;
   465 const TUint8 KMmsReadStatusDeletedWithoutBeingRead = 129;
   466 
   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;
   472 
   473 // field assignments since MMS encapsulation 1.2
   474 
   475 // X-Mms-Mbox-Quotas field & // X-Mms-MBox-Totals field
   476 const TUint8 KMmsMessageCountToken = 128;
   477 const TUint8 KMmsMessageSizeToken = 129;
   478 
   479 // X-Mms-MM-Flags field
   480 const TUint8 KMmsAddToken = 128;
   481 const TUint8 KMmsRemoveToken = 129;
   482 const TUint8 KMmsFilterToken = 130;
   483 
   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;
   490 
   491 // Response status or Retrieve status OK
   492 const TInt KMmsResponseStatusOK = 128;
   493 
   494 // field assignments since MMS encapsulation 1.3
   495 // These will be needed when 1.3 version is supported (not yet)
   496 
   497 // X-Mms-Cancel-Status field
   498 const TUint8 KMmsCancelRequestSuccessfullyReceived = 128;
   499 const TUint8 KMmsCancelRequestCorrupted = 129;
   500 
   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;
   510 
   511 // X-Mms-Recommended-Retrieval-mode field
   512 const TUint8 KMmsRecommendedRetrievalModeManual = 128;
   513 
   514 // end of field assignments
   515 
   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" );
   523 
   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
   530 
   531 // Content type parameters used by Java WMA to specify application id
   532 _LIT8( KMmsJavaApplicationId, "Application-ID" );
   533 _LIT8( KMmsJavaReplyApplicationId, "Reply-To-Application-ID" );
   534 
   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;
   546 
   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
   555 
   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
   573 
   574 // MACROS
   575 
   576 // DATA TYPES
   577 
   578 // Possible address types
   579 enum TMmsAddressType
   580     {
   581     EMmsAddressTypeUnknown = 0,
   582     EMmsAddressTypeMobile,
   583     EMmsAddressTypeEmail,
   584     EMmsAddressTypeIpv4,
   585     EMmsAddressTypeIpv6
   586     };
   587 
   588 // These panics should only be used in ASSERT_DEBUGs
   589 // (The user should not see these)
   590 enum TMmsPanic // MMS error codes
   591     {
   592     EMmsBadMtmTypeUid = KErrNone+1,
   593     EMmsNoCMsvEntrySet,
   594     EMmsEntryTypeNotSupported,
   595     EMmsHeadersNotFound,
   596     EMmsAlreadyBusy,
   597     EMmsUnknownState,
   598     EMmsActiveInFinalProgress,
   599     EMmsFinalProgressFailed,
   600     EMmsNotAMessageEntry
   601     };
   602 
   603 
   604 // Values for recipient types
   605 // <DEPRECATED>
   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
   612 // </DEPRECATED>
   613 
   614 enum TMmsYesNo
   615     {
   616     EMmsYes = KMmsYes,
   617     EMmsNo = KMmsNo
   618     };
   619 
   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;
   628 
   629 // <DEPRECATED>
   630 // use EMmsYes and EMmsNo instead
   631 #define EMmsDeliveryReportYes EMmsYes
   632 #define EMmsDeliveryReportNo EMmsNo
   633 
   634 #define EMmsDeliveryReportAllowedYes EMmsYes
   635 #define EMmsDeliveryReportAllowedNo EMmsNo
   636 
   637 #define EMmsReadReplyYes EMmsYes
   638 #define EMmsReadreplyNo EMmsNo
   639 
   640 #define EMmsReadReplyAllowedYes EMmsYes
   641 #define EMmsReadReplyAllowedNo EMmsNo
   642 // </DEPRECATED>
   643 
   644 // Values for message class
   645 enum TMmsMessageClass
   646     {
   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
   654     };
   655 
   656 // Values for message priority
   657 enum TMmsMessagePriority
   658     {
   659     EMmsMinimumPriority = KMmsPriorityLow,
   660     EMmsPriorityLow = KMmsPriorityLow,
   661     EMmsPriorityNormal = KMmsPriorityNormal,
   662     EMmsPriorityHigh = KMmsPriorityHigh,
   663     // change following if new priorities added
   664     EMmsMaximumPriority = KMmsPriorityHigh
   665     };
   666 
   667 // Values for message Sender-Visibility
   668 enum TMmsMessageSenderVisibility
   669     {
   670     EMmsSenderVisibilityDefault = 0,
   671     EMmsMinimumSenderVisibility = KMmsSenderHide, // always minimum
   672     EMmsSenderVisibilityHide = KMmsSenderHide,
   673     EMmsSenderVisibilityShow = KMmsSenderShow,
   674     EMmsMaximumSenderVisibility = KMmsSenderShow // change if new values added
   675     };
   676 
   677 
   678 // Values for MMS Creation mode
   679 enum TMmsCreationMode
   680     {
   681     EMmsCreationModeRestricted = 0,
   682     EMmsCreationModeWarning = 1,
   683     EMmsCreationModeFree = 2
   684     };
   685 
   686 // <DEPRECATED>
   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.
   691 enum TMmsMessageType
   692     {
   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
   704     };
   705 // </DEPRECATED>
   706 
   707 
   708 // <DEPRECATED>
   709 // Values for Status field
   710 // correspond to binary encoding!
   711 // Use KMms constants instead.
   712 enum TMmsMessageStatus
   713     {
   714     EMmsStatusExpired = KMmsMessageStatusExpired,
   715     EMmsStatusRetrieved = KMmsMessageStatusRetrieved,
   716     EMmsStatusRejected = KMmsMessageStatusRejected,
   717     EMmsStatusDeferred = KMmsMessageStatusDeferred,
   718     EMmsStatusUnrecognized = KMmsMessageStatusUnrecognized,
   719     EMmsStatusIndeterminate = KMmsMessageStatusIndeterminate,
   720     EMmsStatusForwarded = KMmsMessageStatusForwarded,
   721     EMmsStatusUnreachable = KMmsMessageStatusUnreachable
   722     };
   723 // </DEPRECATED>
   724 
   725 // Values for read status
   726 // correspond to binary encoding!
   727 enum TMmsReadStatus
   728     {
   729     EMmsReadStatusRead = KMmsReadStatusRead,
   730     EMmsReadStatusDeletedWithoutBeingRead = KMmsReadStatusDeletedWithoutBeingRead
   731     };
   732 
   733 enum TMmsReplyCharging
   734     {
   735     EMmsReplyChargingRequested = KMmsReplyChargingRequested,
   736     EMmsReplyChargingRequestedTextOnly = KMmsReplyChargingRequestedTextOnly,
   737     EMmsReplyChargingAccepted = KMmsReplyChargingAccepted,
   738     EMmsReplyChargingAcceptedTextOnly = KMmsReplyChargingAcceptedTextOnly
   739     };
   740 
   741 // mms receiving mode
   742 enum TMmsReceivingMode
   743     {
   744     EMmsReceivingMin = 1,
   745     EMmsReceivingAutomatic = EMmsReceivingMin,
   746     EMmsReceivingManual = EMmsReceivingMin + 1,
   747     EMmsReceivingPostpone = EMmsReceivingManual + 1,
   748     EMmsReceivingReject = EMmsReceivingPostpone + 1,
   749     EMmsReceivingMax = EMmsReceivingReject
   750     };
   751 
   752 // Factory settings
   753 enum TMmsFactorySettingsLevel
   754     {
   755     EMmsFactorySettingsLevelNormal = 0x0,
   756     EMmsFactorySettingsLevelDeep
   757     };
   758 
   759 // Type of the Delete operation
   760 enum TMmsDeleteOperationType
   761     {
   762     EMmsDeleteNotificationOnly,
   763     EMmsDeleteMMBoxOnly,
   764     EMmsDeleteBoth
   765     };
   766 
   767 #endif      // MMSCONST_H
   768 
   769 // End of File