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