williamr@2: /* williamr@2: * Copyright (c) 2002-2006 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@4: * under the terms of "Eclipse Public License v1.0" williamr@2: * which accompanies this distribution, and is available williamr@4: * at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: williamr@2: * Miscellaneous constants needed by MmsEngine and its clients williamr@2: * (e.g. MCE and DeviceManagement) williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: williamr@2: #ifndef MMSCONST_H williamr@2: #define MMSCONST_H williamr@2: williamr@2: // INCLUDES williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: williamr@2: // CONSTANTS williamr@2: williamr@2: // NOTE: January = 0! 1st day of month = 0! williamr@2: _LIT( KMmsYear1970String, "19700000:000000.000000" ); williamr@2: williamr@2: // williamr@2: // This is the resource file that contains factory values williamr@2: // for error actions (for scheduled sending and receiving) williamr@2: _LIT(KMmsResourceDriveAndFile, "mmsserver.rsc"); williamr@2: // williamr@2: williamr@2: _LIT(KMMSNotificationFolder, "MMSNotifications"); williamr@2: _LIT(KMmsMmboxFolder, "MmsMmbox"); williamr@2: williamr@2: // constant for conversion between seconds and microseconds williamr@2: const TInt KMmsMillion = 1000000; williamr@2: williamr@2: const TInt KMmsDateBufferLength = 30; williamr@2: williamr@2: // williamr@2: // Image size definitions - Not used by MMS engine williamr@2: // anyone who needs image size constants, should define their own williamr@2: // williamr@2: // williamr@2: // williamr@2: // 160*120 williamr@2: const TInt KMmsImageSmallWidth = 160; williamr@2: const TInt KMmsImageSmallHeight = 120; williamr@2: // 640*480 williamr@2: const TInt KMmsImageLargeWidth = 640; williamr@2: const TInt KMmsImageLargeHeight = 480; williamr@2: // Original williamr@2: const TInt KMmsImageOriginalWidth = KMaxTInt; williamr@2: const TInt KMmsImageOriginalHeight = KMaxTInt; williamr@2: // williamr@2: williamr@2: // This is the extra amount of disk space that will be taken williamr@2: // up by the index entry when creating new message entries. williamr@2: // This is a crude estimate. It is defined here as a constant williamr@2: // to allow it to be made more accurate by changing the value williamr@2: // in only one place. williamr@2: const TInt KMmsIndexEntryExtra = 80; williamr@2: williamr@2: // This is the safety margin for fetching MMS messages. williamr@2: // There should be at least this much extra disk space williamr@2: // before a message can be fetched. A new message takes williamr@2: // more disk space than the amount indicated in the williamr@2: // notification. williamr@2: const TInt KMmsDiskSafetyMargin = 25000; williamr@2: williamr@2: // williamr@2: // DLL UIDs that might be needed williamr@2: // williamr@2: const TUid KUidMmsServerMtm={0x100058DB}; williamr@2: const TUid KUidMmsClientMtm={0x100058DC}; williamr@2: const TUid KUidMmsClientUIMtm={0x100058DD}; williamr@2: const TUid KUidMmsClientUIDataMtm={0x100058DD}; williamr@2: // editor and viewer williamr@2: const TInt KUidMsgMmsEditor={0x100058DE}; williamr@2: const TInt KUidMsgMmsViewer={0x100058DF}; williamr@2: williamr@2: // message types williamr@2: const TUid KUidMsgTypeMultimedia={0x100058E1}; williamr@2: const TUid KUidMsvTechnologyGroupMMS={0x100058E2}; williamr@2: const TUid KUidMsgMMSNotification={0x100059C8}; williamr@2: williamr@2: // message subtypes williamr@2: const TUid KUidMsgSubTypeMmsUpload={0x102072CD}; williamr@2: const TUid KUidMsgSubTypeMmsPostcard={0x102072CE}; williamr@2: const TUid KUidMsgSubTypeMmsAudioMsg={0x1020744F}; williamr@2: williamr@2: // williamr@2: // Stream UIDs williamr@2: // williamr@2: // Globally unique values have been allocated to all streams williamr@2: // MMS headers williamr@2: const TUid KUidMmsHeaderStream={0x101FB0ED}; williamr@2: // recipient scheduling info williamr@2: const TUid KUidMmsRecipientStream={0x101FB0EE}; williamr@2: // Notification or delivery report in binary format williamr@2: const TUid KUidBinaryNotificationStream={0x101FB0EF}; williamr@2: // element descriptor info, only in notification williamr@2: const TUid KUidMMsElementDescriptorStream = {0x101FB0F0}; williamr@2: // MMBox headers that can be present in several message PDUs williamr@2: const TUid KUidMMsMMBoxMessageHeaderStream = {0x101FB0F1}; williamr@2: // MMBox headers that are present in MMBox view request and confirmation only williamr@2: const TUid KUidMMsMMBoxViewHeadersStream = {0x101FB0F2}; williamr@2: // Extra info (message text) present in extended notification. williamr@2: const TUid KUidMMsExtendedNotificationStream = {0x101FB0F3}; williamr@2: // Attributes for UI use williamr@2: const TUid KUidMmsAttributeStream = {0x101FB0F4}; williamr@2: // Application id and return-to application id williamr@2: const TUid KUidMmsApplicationInfoStream = {0x101FB0F5}; williamr@2: // Reserved for internal use williamr@2: // This stream contains all kinds of unusual information that is rarely present williamr@2: // These are not part of an actual message, but control the transactions. williamr@2: // - recommended retrieval mode williamr@2: // - recommended retrieval mode text williamr@2: // - replace or cancel id williamr@2: // - cancel status williamr@2: const TUid KUidMmsReserved = {0x101FB0F6}; williamr@2: williamr@2: // williamr@2: // Log entry event type uid (used unless Symbian allocates an id instead) williamr@2: // williamr@2: const TUid KLogMmsEventTypeUid = {0x1000595e}; williamr@2: williamr@2: //----------------------------------------------- williamr@2: // Flag bits in iMtmData1 williamr@2: // The default value for all bits is 0 williamr@2: //----------------------------------------------- williamr@2: // Message types stored in iMtmData1 williamr@2: // The message types defined are those that could actually be found williamr@2: // in message store. Values for transient types are not defined. williamr@2: const TUint32 KMmsMessageTypeMask = 0x0000000F; williamr@2: const TUint32 KMmsMessageMSendReq = 0x00000001; williamr@2: // reserved for future use 0x00000002; williamr@2: const TUint32 KMmsMessageMNotificationInd = 0x00000003; williamr@2: // reserved for future use 0x00000004; williamr@2: const TUint32 KMmsMessageMRetrieveConf = 0x00000005; williamr@2: // reserved for future use 0x00000006; williamr@2: const TUint32 KMmsMessageDeliveryInd = 0x00000007; williamr@2: const TUint32 KMmsMessageReadRecInd = 0x00000008; williamr@2: const TUint32 KMmsMessageReadOrigInd = 0x00000009; williamr@2: const TUint32 KMmsMessageForwardReq = 0x0000000A; williamr@2: // reserved for future use 0x0000000B; williamr@2: // reserved for future use 0x0000000C; williamr@2: // reserved for future use 0x0000000D; williamr@2: // reserved for future use 0x0000000E; williamr@2: // This must be the last one to allow some expansion for known types williamr@2: const TUint32 KMmsMessageUnrecognized = 0x0000000F; williamr@2: williamr@2: // Message state stored in iMtmData1 williamr@2: const TUint32 KMmsMessageEncrypted = 0x00000010; williamr@2: const TUint32 KMmsMessageSigned = 0x00000020; williamr@2: const TUint32 KMmsMessageForwarded = 0x00000040; williamr@2: const TUint32 KMmsMessageMobileTerminated = 0x00000080; williamr@2: const TUint32 KMmsMessageEditorOriented = 0x00000100; williamr@2: williamr@2: // bit to indicate that attribute stream is present in entry williamr@2: const TUint32 KMmsAttributeStreamPresent = 0x00000200; williamr@2: williamr@2: // reserved for future use williamr@2: // 0x00000400 williamr@2: // 0x00000800 williamr@2: williamr@2: // Message type flags williamr@2: // 1 byte reserved (0x0000F000) williamr@2: // If no flag is set, message is personal (default) williamr@2: const TUint32 KMmsMessageClassMask = 0x0000F000; williamr@2: const TUint32 KMmsMessageAdvertisement = 0x00001000; williamr@2: const TUint32 KMmsMessageInformational = 0x00002000; williamr@2: // two message types can be added (0x00004000 and 0x00008000) williamr@2: williamr@2: // Some free bits here... williamr@2: const TUint32 KMmsReservedMtmData1 = 0x00FF0000; williamr@2: williamr@2: // Bit that indicates if the message contains non-conformant content. williamr@2: // Default value is 0. williamr@2: // 0 = Message is conformant, or the content is unknown (created by legacy software) williamr@2: // 1 = Message is known to contain non-conformant content. williamr@2: const TUint32 KMmsNonConformantMessage = 0x01000000; williamr@2: williamr@2: // DRM Status in iMtmData1 williamr@2: // A DRM attachment is corrupted and removed williamr@2: const TUint32 EMmsDrmCorruptedAttachment = 0x02000000; williamr@2: williamr@2: // Here is still a gap here: bits 0x0C000000 are free. williamr@2: // (flags 0x04000000 and 0x08000000) williamr@2: // Should be reserved for future DRM needs. williamr@2: williamr@2: // williamr@2: // Range of bits that indicates that the message has some special content williamr@2: // that needs some non-standard handling williamr@2: const TUint32 KMmsSpecialContentMask = 0xF0000000; williamr@2: // undefined special content reserved for future use: 0x10000000 williamr@2: // Special content is "postcard" williamr@2: const TUint32 KMmsPostcard = 0x20000000; williamr@2: // Special content is "upload" williamr@2: const TUint32 KMmsUpload = 0x40000000; williamr@2: // undefined special content reserved for future use: 0x80000000 williamr@2: // williamr@2: williamr@2: williamr@2: //----------------------------------------------- williamr@2: // Flag bits in iMtmData2 williamr@2: // The default value for all bits is 0 williamr@2: //----------------------------------------------- williamr@2: williamr@2: // Message notification stuff stored in iMtmData2 williamr@2: // Response already sent to MMSC williamr@2: // or MMBox item for which notify response will not be sent. williamr@2: // (fetch acknowledged with M-Acknowledge.ind PDU) williamr@2: const TUint32 KMmsNotifyResponseSent = 0x00000001; williamr@2: // undecoded (binary) notification williamr@2: const TUint32 KMmsNotificationBinary = 0x00000002; williamr@2: williamr@2: // The following flags are related to notifications that are stored in inbox williamr@2: // to allow the messages to be fetched manually (not automatically) williamr@2: // has the message corresponding to this notification expired williamr@2: williamr@2: // Message corresponding to this notification has expired williamr@2: // 0 = Message has not expired, 1 = Message has expired williamr@2: const TUint32 KMmsMessageExpired = 0x00000004; williamr@2: williamr@2: // williamr@2: const TUint32 KMmsDeleteAtExpiration = 0x00000008; williamr@2: // williamr@2: williamr@2: // Operation mask. The next bits tell which operation is currently in progress. williamr@2: // When a message is being forwarded or fetched, another simulataneous operation williamr@2: // is not allowed. williamr@2: // 0 = no operation williamr@2: const TUint32 KMmsOperationIdentifier = 0x00000070; williamr@2: williamr@2: // fetch operation in progress williamr@2: const TUint32 KMmsOperationFetch = 0x00000010; williamr@2: // forward operation in progress or finished williamr@2: const TUint32 KMmsOperationForward = 0x00000020; williamr@2: // delete operation in progress or finished williamr@2: const TUint32 KMmsOperationDelete = 0x00000030; williamr@2: // 0x00000040 - 0x00000070 reserved for future operations williamr@2: williamr@2: // Operation progress bits (4 bits) williamr@2: williamr@2: // Is new operation allowed for this notification williamr@2: // 0 = new operation allowed williamr@2: // 1 = new operation forbidden williamr@2: const TUint32 KMmsNewOperationForbidden = 0x00000080; williamr@2: // Is operation currently ongoing williamr@2: // 0 = no operation williamr@2: // 1 = operation ongoing williamr@2: const TUint32 KMmsOperationOngoing = 0x00000100; williamr@2: // Has operation finished (and is result available) williamr@2: // 0 = operation has not finished williamr@2: // 1 = operation has finished williamr@2: const TUint32 KMmsOperationFinished = 0x00000200; williamr@2: // Operation result (if operation has finished) williamr@2: // 0 = OK williamr@2: // 1 = error williamr@2: const TUint32 KMmsOperationResult = 0x00000400; williamr@2: williamr@2: // Has message been stored to MMBox as result of some operation williamr@2: // or was it in MMBox originally williamr@2: // 0 = Message not in MMBox williamr@2: // 1 = Message stored in MMBox williamr@2: const TUint32 KMmsStoredInMMBox = 0x00000800; williamr@2: williamr@2: // 0 = Not applicable williamr@2: // 1 = Notification received in deferred mode, but response williamr@2: // sending was not allowed, and therefore notify-response williamr@2: // has not been sent to MMSC williamr@2: const TUint32 KMmsDeferredButResponseNotSent = 0x00001000; williamr@2: williamr@2: // This is some special notification that should never be williamr@2: // moved to inbox in manual mode even if fetching fails. williamr@2: // 0 = May be moved if needed williamr@2: // 1 = Do not move to inbox williamr@2: const TUint32 KMmsDoNotMoveToInbox = 0x00002000; williamr@2: williamr@2: // The message was addressed to an application williamr@2: // The message has been successfully fetched and routed to the application williamr@2: // Even if notification remains in inbox, no operations are allowed except williamr@2: // delete from phone. williamr@2: const TUint32 KMmsMessageRoutedToApplication = 0x00004000; williamr@2: williamr@2: // The following flags are for all message types williamr@2: williamr@2: // bits reserved for future use williamr@2: const TUint32 KMmsReservedMtmData2 = 0x000F8000; williamr@2: williamr@2: // Delivery status bytes, valid only for sent messages williamr@2: // that have been moved to "Sent" folder. williamr@2: // If the message has been copied or moved to another folder, williamr@2: // there is no guarantee that these bits are valid anymore. williamr@2: williamr@2: const TUint32 KMmsDeliveryStatusMask = 0x00F00000; williamr@2: // Delivery report was not requested williamr@2: // If the user specifies that no delivery reports are wanted, williamr@2: // the message stays in this state forever. williamr@2: // This status means that no delivery data is available. williamr@2: const TUint32 KMmsDeliveryStatusNotRequested = 0x00000000; williamr@2: williamr@2: // If Delivery reports have been requested, the number of williamr@2: // recipients and received delivery reports is stored in williamr@2: // iMtmData3 williamr@2: williamr@2: // Delivery status is "pending" when the delivery status of all williamr@2: // recipients is "pending". williamr@2: const TUint32 KMmsDeliveryStatusPending = 0x00100000; williamr@2: // delivery status is "partial" when delivery raport about williamr@2: // successful delivery has been received from at least one recipient. williamr@2: const TUint32 KMmsDeliveryStatusPartial = 0x00200000; williamr@2: // delivery status is "failed" if sending has failed for at least williamr@2: // one recipient williamr@2: const TUint32 KMmsDeliveryStatysFailed = 0x00400000; williamr@2: // delivery status is "delivered" if the status of all williamr@2: // recipients is delivered williamr@2: const TUint32 KMmsDeliveryStatysDelivered = 0x00800000; williamr@2: williamr@2: williamr@2: // bits reserved for UI usage williamr@2: // MMS engine will not change these bits. williamr@2: // The default value for these bits will be 0. williamr@2: const TUint32 KMmsReservedForUI = 0xFF000000; williamr@2: williamr@2: //----------------------------------------------- williamr@2: // Flag bits in iMtmData3 williamr@2: // The default value for all bits is 0 williamr@2: //----------------------------------------------- williamr@2: williamr@2: // These are mask values for ranges of bits to be used as counters williamr@2: // The shift constants indicate how much the value must be shifted williamr@2: // right to be used as a number, and how much the number must be williamr@2: // shifted to left before being stored. williamr@2: williamr@2: // To examine the value use: williamr@2: // number = ( iMtmData3 & mask ) >> shift; williamr@2: // To set the value use: williamr@2: // iMtmData3 &= ~mask; williamr@2: // iMtmData3 |= number << shift; williamr@2: williamr@2: // Retry count mask ( for automatic retries ) williamr@2: // max 15 retries counted williamr@2: const TUint32 KMmsRetryCountMask = 0x0000000F; williamr@2: // no shift needed for automatic retry count williamr@2: williamr@2: // Retry count mask ( for manual retries ) williamr@2: // This is reserved for UI usage. williamr@2: // max 15 retries counted williamr@2: const TUint32 KMmsManualRetryCountMask = 0x000000F0; williamr@2: const TInt KMmsManualRetryCountShift = 4; williamr@2: williamr@2: // The following three areas are used to keep track of delivery status williamr@2: // of several recipients. These fields are valid only for messages williamr@2: // that have been sent and have been moved to sent folder. williamr@2: // The values are not valid in any other context as it is impossible williamr@2: // to prevent applications from copying messages behind MMS engine's back. williamr@2: // MMS engine tries to clear these bits in other places, but there is no williamr@2: // guarantee of that. williamr@2: williamr@2: // Total number of recipients williamr@2: // Max 255 recipients williamr@2: const TUint32 KMmsSentItemTotalRecipientsMask = 0x0000FF00; williamr@2: const TInt KMmsSentItemTotalRecipientsShift = 8; williamr@2: williamr@2: // Number of delivery reports with status "delivered" williamr@2: // Max 255 delivery reports williamr@2: const TUint32 KMmsSentItemSuccessfullyDeliveredMask = 0x00FF0000; williamr@2: const TInt KMmsSentItemSuccessfullyDeliveredShift = 16; williamr@2: williamr@2: // Number of delivery reports with status "failed" williamr@2: // Max 255 delivery reports williamr@2: const TUint32 KMmsSentItemFailedDeliveryMask = 0xFF000000; williamr@2: const TInt KMmsSentItemFailedDeliveryShift = 24; williamr@2: williamr@2: williamr@2: // End of MtmData bit definitions williamr@2: // ------------------------------------------------------ williamr@2: williamr@2: // Unicode BOM williamr@2: const TUint16 KMmsByteOrderMark = 0xFEFF; williamr@2: const TUint16 KMmsReversedByteOrderMark = 0xFFFE; williamr@2: williamr@2: // Maximum iDescription read from text/plain file in terms of characters. williamr@2: const TInt KMmsMaxDescription = 128; williamr@2: williamr@2: // WSP assigned numbers williamr@2: const TInt8 KUidMmsWSPMultiPartMixed = 0x23; williamr@2: const TInt8 KUidMmsWSPMultiPartRelated = 0x33; williamr@2: williamr@2: // MMS specific field assignments williamr@2: // same values used for enum values in internal storage williamr@2: const TUint8 KMmsMessageClassPersonal = 128; williamr@2: const TUint8 KMmsMessageClassAdvertisement = 129; williamr@2: const TUint8 KMmsMessageClassInformational = 130; williamr@2: const TUint8 KMmsMessageClassAuto = 131; williamr@2: williamr@2: // X-Mms-Message-Type field williamr@2: // message types since encaps 1.0 williamr@2: const TUint8 KMmsMessageTypeMSendReq = 128; williamr@2: const TUint8 KMmsMessageTypeMSendConf = 129; williamr@2: const TUint8 KMmsMessageTypeMNotificationInd = 130; williamr@2: const TUint8 KMmsMessageTypeMNotifyRespInd = 131; williamr@2: const TUint8 KMmsMessageTypeMRetrieveConf = 132; williamr@2: const TUint8 KMmsMessageTypeAcknowledgeInd = 133; williamr@2: const TUint8 KMmsMessageTypeDeliveryInd = 134; williamr@2: // message types since encaps 1.1 williamr@2: const TUint8 KMmsMessageTypeReadRecInd = 135; williamr@2: const TUint8 KMmsMessageTypeReadOrigInd = 136; williamr@2: const TUint8 KMmsMessageTypeForwardReq = 137; williamr@2: const TUint8 KMmsMessageTypeForwardConf = 138; williamr@2: // message types since encaps 1.2 williamr@2: const TUint8 KMmsMessageTypeMboxStoreReq = 139; williamr@2: const TUint8 KMmsMessageTypeMboxStoreConf = 140; williamr@2: const TUint8 KMmsMessageTypeMboxViewReq = 141; williamr@2: const TUint8 KMmsMessageTypeMboxViewConf = 142; williamr@2: const TUint8 KMmsMessageTypeMBoxUploadReq = 143; williamr@2: const TUint8 KMmsMessageTypeMBoxUploadConf = 144; williamr@2: const TUint8 KMmsMessageTypeMBoxDeleteReq = 145; williamr@2: const TUint8 KMmsMessageTypeMBoxDeleteConf = 146; williamr@2: const TUint8 KMmsMessageTypeMBoxDescr = 147; williamr@2: // message types since encaps 1.3 williamr@2: const TUint8 KMmsMessageTypeDeleteReq = 148; williamr@2: const TUint8 KMmsMessageTypeDeleteConf = 149; williamr@2: const TUint8 KMmsMessageTypeCancelReq = 150; williamr@2: const TUint8 KMmsMessageTypeCancelConf = 151; williamr@2: williamr@2: williamr@2: // X-Mms-Priority field williamr@2: const TUint8 KMmsPriorityLow = 128; williamr@2: const TUint8 KMmsPriorityNormal = 129; williamr@2: const TUint8 KMmsPriorityHigh = 130; williamr@2: williamr@2: // All fields with Yes/No value williamr@2: const TUint8 KMmsYes = 128; williamr@2: const TUint8 KMmsNo = 129; williamr@2: williamr@2: // X-Mms-Sender-Visibility field williamr@2: const TUint8 KMmsSenderHide = 128; williamr@2: const TUint8 KMmsSenderShow = 129; williamr@2: williamr@2: // X-Mms-Status field williamr@2: const TUint8 KMmsMessageStatusExpired = 128; williamr@2: const TUint8 KMmsMessageStatusRetrieved = 129; williamr@2: const TUint8 KMmsMessageStatusRejected = 130; williamr@2: const TUint8 KMmsMessageStatusDeferred = 131; williamr@2: const TUint8 KMmsMessageStatusUnrecognized = 132; williamr@2: const TUint8 KMmsMessageStatusIndeterminate = 133; williamr@2: const TUint8 KMmsMessageStatusForwarded = 134; williamr@2: const TUint8 KMmsMessageStatusUnreachable = 135; williamr@2: williamr@2: // X-Mms-Read-Status field williamr@2: const TUint8 KMmsReadStatusRead = 128; williamr@2: const TUint8 KMmsReadStatusDeletedWithoutBeingRead = 129; williamr@2: williamr@2: // X-Mms-Reply-Charging field williamr@2: const TUint8 KMmsReplyChargingRequested = 128; williamr@2: const TUint8 KMmsReplyChargingRequestedTextOnly = 129; williamr@2: const TUint8 KMmsReplyChargingAccepted = 130; williamr@2: const TUint8 KMmsReplyChargingAcceptedTextOnly = 131; williamr@2: williamr@2: // field assignments since MMS encapsulation 1.2 williamr@2: williamr@2: // X-Mms-Mbox-Quotas field & // X-Mms-MBox-Totals field williamr@2: const TUint8 KMmsMessageCountToken = 128; williamr@2: const TUint8 KMmsMessageSizeToken = 129; williamr@2: williamr@2: // X-Mms-MM-Flags field williamr@2: const TUint8 KMmsAddToken = 128; williamr@2: const TUint8 KMmsRemoveToken = 129; williamr@2: const TUint8 KMmsFilterToken = 130; williamr@2: williamr@2: // X-Mms-MM-State field williamr@2: const TUint8 KMmsDraft = 128; williamr@2: const TUint8 KMmsSent = 129; williamr@2: const TUint8 KMmsNew = 130; williamr@2: const TUint8 KMmsRetrieved = 131; williamr@2: const TUint8 KMmsForwarded = 132; williamr@2: williamr@2: // Response status or Retrieve status OK williamr@2: const TInt KMmsResponseStatusOK = 128; williamr@2: williamr@2: // field assignments since MMS encapsulation 1.3 williamr@2: // These will be needed when 1.3 version is supported (not yet) williamr@2: williamr@2: // X-Mms-Cancel-Status field williamr@2: const TUint8 KMmsCancelRequestSuccessfullyReceived = 128; williamr@2: const TUint8 KMmsCancelRequestCorrupted = 129; williamr@2: williamr@2: // X-Mms-Content-Class field williamr@2: const TUint8 KMmsContentClassText = 128; williamr@2: const TUint8 KMmsContentClassImageBasic = 129; williamr@2: const TUint8 KMmsContentClassImageRich = 130; williamr@2: const TUint8 KMmsContentClassVideoBasic = 131; williamr@2: const TUint8 KMmsContentClassVideoRich = 132; williamr@2: const TUint8 KMmsContentClassMegaPixel = 133; williamr@2: const TUint8 KMmsContentClassContentBasic = 134; williamr@2: const TUint8 KMmsContentClassContentRich = 135; williamr@2: williamr@2: // X-Mms-Recommended-Retrieval-mode field williamr@2: const TUint8 KMmsRecommendedRetrievalModeManual = 128; williamr@2: williamr@2: // end of field assignments williamr@2: williamr@2: // All content type strings are in KContentTypeTable williamr@2: // some are defined here to be used separately williamr@2: _LIT8( KMmsAny, "*/*" ); williamr@2: _LIT8( KMmsTextPlain, "text/plain" ); williamr@2: _LIT8( KMmsApplicationSmil, "application/smil" ); williamr@2: _LIT8( KMmsUnknownType, "application/octet-stream" ); williamr@2: _LIT8( KMmsMultipartReport, "multipart/report" ); williamr@2: williamr@2: // DRM Content subtypes. CMsvMimeHeaders class saves type and subtype separately williamr@2: _LIT8( KMmsDrmMessageCT, "vnd.oma.drm.message" ); // DRM Message williamr@2: _LIT8( KMmsDrmContentCT, "vnd.oma.drm.content" ); // DRM Content williamr@2: _LIT8( KMmsDrmRightsTFCT, "vnd.oma.drm.rights+xml" ); // DRM Rights in textual format williamr@2: _LIT8( KMmsDrmRightsBFCT, "vnd.oma.drm.rights+wbxml" ); // DRM Rights in binary format williamr@2: _LIT8( KMmsDrmDcfCT, "vnd.oma.drm.dcf" ); // DRM Content format for discrete media williamr@2: williamr@2: // Content type parameters used by Java WMA to specify application id williamr@2: _LIT8( KMmsJavaApplicationId, "Application-ID" ); williamr@2: _LIT8( KMmsJavaReplyApplicationId, "Reply-To-Application-ID" ); williamr@2: williamr@2: // Assigned numbers for content types williamr@2: // If new assignments are needed, check numbers from KContentTypeTable williamr@2: const TUint8 KMmsAssignedAny = 0x00; williamr@2: const TUint8 KMmsAssignedText = 0x01; williamr@2: const TUint8 KMmsAssignedTextPlain = 0x03; williamr@2: const TUint8 KMmsAssignedApplicationVndWapMultipart = 0x22; williamr@2: const TUint8 KMmsAssignedApplicationVndWapMultipartMixed = 0x23; williamr@2: const TUint8 KMmsAssignedApplicationVndWapMultipartAlternative = 0x26; williamr@2: const TUint8 KMmsAssignedApplicationXml = 0x27; williamr@2: const TUint8 KMmsAssignedApplicationVndWapWbxml = 0x29; williamr@2: const TUint8 KMmsAssignedApplicationVndWapMultipartRelated = 0x33; williamr@2: williamr@2: // IANA / WSP numbers for character sets williamr@2: const TUint8 KMmsUtf8 = 0x6A; williamr@2: const TUint8 KMmsUsAscii = 0x03; williamr@2: const TUint KMmsIso10646Ucs2 = 0x03E8; // 1000 williamr@2: const TUint KMmsUTF16 = 0x03F7; // 1015 williamr@2: const TUint KMmsUTF16BE = 0x03F5; // 1013 williamr@2: const TUint KMmsUTF16LE = 0x03F6; // 1014 williamr@2: const TUint KMmsUtf7 = 0x03F4; // 1012 williamr@2: williamr@2: // CR/LF definitions for removal... williamr@2: _LIT ( KLf16, "\x00A" ); // 16 bit line feed williamr@2: _LIT ( KCr16, "\x00D" ); // 16 bit carriage return williamr@2: _LIT ( KSpace16, " " ); // 16 bit space williamr@2: _LIT ( KEqualsQuestion16, "=?" ); // MIME encoding starter williamr@2: _LIT ( KQuote16, "\x022" ); // 16 bit quote williamr@2: _LIT ( KMmsUnicodeLineSeparator, "\x2028"); williamr@2: _LIT ( KMmsUnicodeParagraphSeparator, "\x2029"); williamr@2: _LIT ( KMmsIdeographicSpace, "\x3000"); williamr@2: _LIT8 ( KLf8, "\x00A" ); // 8 bit line feed williamr@2: _LIT8 ( KCr8, "\x00D" ); // 8 bit carriage return williamr@2: _LIT8 ( KSpace8, " " ); // 8 bit space williamr@2: _LIT8 ( KSemicolon8, ";" ); // 8 bit semicolon williamr@2: _LIT8 ( KEquals8, "=" ); // 8 bit equal williamr@2: _LIT8 ( KMmsSlash8, "/"); // 8 bit slash williamr@2: _LIT8 ( KMmsLeftAngle, "<"); // 8 bit angle bracket williamr@2: _LIT8 ( KMmsRightAngle, ">"); // 8 bit angle bracket williamr@2: williamr@2: // MACROS williamr@2: williamr@2: // DATA TYPES williamr@2: williamr@2: // Possible address types williamr@2: enum TMmsAddressType williamr@2: { williamr@2: EMmsAddressTypeUnknown = 0, williamr@2: EMmsAddressTypeMobile, williamr@2: EMmsAddressTypeEmail, williamr@2: EMmsAddressTypeIpv4, williamr@2: EMmsAddressTypeIpv6 williamr@2: }; williamr@2: williamr@2: // These panics should only be used in ASSERT_DEBUGs williamr@2: // (The user should not see these) williamr@2: enum TMmsPanic // MMS error codes williamr@2: { williamr@2: EMmsBadMtmTypeUid = KErrNone+1, williamr@2: EMmsNoCMsvEntrySet, williamr@2: EMmsEntryTypeNotSupported, williamr@2: EMmsHeadersNotFound, williamr@2: EMmsAlreadyBusy, williamr@2: EMmsUnknownState, williamr@2: EMmsActiveInFinalProgress, williamr@2: EMmsFinalProgressFailed, williamr@2: EMmsNotAMessageEntry williamr@2: }; williamr@2: williamr@2: williamr@2: // Values for recipient types williamr@2: // williamr@2: // old TMmsRecipients type values should not be used any more! williamr@2: // instead use TMsvRecipientType values by Symbian! williamr@2: typedef TMsvRecipientType TMmsRecipients; williamr@2: #define EMmsTo EMsvRecipientTo williamr@2: #define EMmsCc EMsvRecipientCc williamr@2: #define EMmsBcc EMsvRecipientBcc williamr@2: // williamr@2: williamr@2: enum TMmsYesNo williamr@2: { williamr@2: EMmsYes = KMmsYes, williamr@2: EMmsNo = KMmsNo williamr@2: }; williamr@2: williamr@2: // Values for message Delivery-Report williamr@2: typedef TMmsYesNo TMmsMessageDeliveryReport; williamr@2: // Values for Delivery-Report allowed williamr@2: typedef TMmsYesNo TMmsSettingsDeliveryReportAllowed; williamr@2: // Values for message Read-Reply williamr@2: typedef TMmsYesNo TMmsMessageReadReply; williamr@2: // Values for Read-Reply sending allowed williamr@2: typedef TMmsYesNo TMmsSettingsReadReplyAllowed; williamr@2: williamr@2: // williamr@2: // use EMmsYes and EMmsNo instead williamr@2: #define EMmsDeliveryReportYes EMmsYes williamr@2: #define EMmsDeliveryReportNo EMmsNo williamr@2: williamr@2: #define EMmsDeliveryReportAllowedYes EMmsYes williamr@2: #define EMmsDeliveryReportAllowedNo EMmsNo williamr@2: williamr@2: #define EMmsReadReplyYes EMmsYes williamr@2: #define EMmsReadreplyNo EMmsNo williamr@2: williamr@2: #define EMmsReadReplyAllowedYes EMmsYes williamr@2: #define EMmsReadReplyAllowedNo EMmsNo williamr@2: // williamr@2: williamr@2: // Values for message class williamr@2: enum TMmsMessageClass williamr@2: { williamr@2: EMmsMimimumMessageClass = KMmsMessageClassPersonal, williamr@2: EMmsClassPersonal = KMmsMessageClassPersonal, williamr@2: EMmsClassAdvertisement = KMmsMessageClassAdvertisement, williamr@2: EMmsClassInformational = KMmsMessageClassInformational, williamr@2: EMmsClassAuto = KMmsMessageClassAuto, williamr@2: // change following if new message classes are added williamr@2: EMmsMaximumMessageClass = KMmsMessageClassAuto williamr@2: }; williamr@2: williamr@2: // Values for message priority williamr@2: enum TMmsMessagePriority williamr@2: { williamr@2: EMmsMinimumPriority = KMmsPriorityLow, williamr@2: EMmsPriorityLow = KMmsPriorityLow, williamr@2: EMmsPriorityNormal = KMmsPriorityNormal, williamr@2: EMmsPriorityHigh = KMmsPriorityHigh, williamr@2: // change following if new priorities added williamr@2: EMmsMaximumPriority = KMmsPriorityHigh williamr@2: }; williamr@2: williamr@2: // Values for message Sender-Visibility williamr@2: enum TMmsMessageSenderVisibility williamr@2: { williamr@2: EMmsSenderVisibilityDefault = 0, williamr@2: EMmsMinimumSenderVisibility = KMmsSenderHide, // always minimum williamr@2: EMmsSenderVisibilityHide = KMmsSenderHide, williamr@2: EMmsSenderVisibilityShow = KMmsSenderShow, williamr@2: EMmsMaximumSenderVisibility = KMmsSenderShow // change if new values added williamr@2: }; williamr@2: williamr@2: williamr@2: // Values for MMS Creation mode williamr@2: enum TMmsCreationMode williamr@2: { williamr@2: EMmsCreationModeRestricted = 0, williamr@2: EMmsCreationModeWarning = 1, williamr@2: EMmsCreationModeFree = 2 williamr@2: }; williamr@2: williamr@2: // williamr@2: // Values for Message-Type field williamr@2: // correspond to binary encoding! williamr@2: // Message type cannot be set using Client MTM williamr@2: // Use KMms constants instead. williamr@2: enum TMmsMessageType williamr@2: { williamr@2: EMmsMSendReq = KMmsMessageTypeMSendReq, williamr@2: EMmsMSendConf = KMmsMessageTypeMSendConf, williamr@2: EMmsNotificationInd = KMmsMessageTypeMNotificationInd, williamr@2: EMmsNotifyRespInd = KMmsMessageTypeMNotifyRespInd, williamr@2: EMmsRetrieveConf = KMmsMessageTypeMRetrieveConf, williamr@2: EMmsAcknowledgeInd = KMmsMessageTypeAcknowledgeInd, williamr@2: EMmsDeliveryInd = KMmsMessageTypeDeliveryInd, williamr@2: EMmsReadRecInd = KMmsMessageTypeReadRecInd, williamr@2: EMmsReadOrigInd = KMmsMessageTypeReadOrigInd, williamr@2: EMmsForwardReq = KMmsMessageTypeForwardReq, williamr@2: EMmsForwardConf = KMmsMessageTypeForwardConf williamr@2: }; williamr@2: // williamr@2: williamr@2: williamr@2: // williamr@2: // Values for Status field williamr@2: // correspond to binary encoding! williamr@2: // Use KMms constants instead. williamr@2: enum TMmsMessageStatus williamr@2: { williamr@2: EMmsStatusExpired = KMmsMessageStatusExpired, williamr@2: EMmsStatusRetrieved = KMmsMessageStatusRetrieved, williamr@2: EMmsStatusRejected = KMmsMessageStatusRejected, williamr@2: EMmsStatusDeferred = KMmsMessageStatusDeferred, williamr@2: EMmsStatusUnrecognized = KMmsMessageStatusUnrecognized, williamr@2: EMmsStatusIndeterminate = KMmsMessageStatusIndeterminate, williamr@2: EMmsStatusForwarded = KMmsMessageStatusForwarded, williamr@2: EMmsStatusUnreachable = KMmsMessageStatusUnreachable williamr@2: }; williamr@2: // williamr@2: williamr@2: // Values for read status williamr@2: // correspond to binary encoding! williamr@2: enum TMmsReadStatus williamr@2: { williamr@2: EMmsReadStatusRead = KMmsReadStatusRead, williamr@2: EMmsReadStatusDeletedWithoutBeingRead = KMmsReadStatusDeletedWithoutBeingRead williamr@2: }; williamr@2: williamr@2: enum TMmsReplyCharging williamr@2: { williamr@2: EMmsReplyChargingRequested = KMmsReplyChargingRequested, williamr@2: EMmsReplyChargingRequestedTextOnly = KMmsReplyChargingRequestedTextOnly, williamr@2: EMmsReplyChargingAccepted = KMmsReplyChargingAccepted, williamr@2: EMmsReplyChargingAcceptedTextOnly = KMmsReplyChargingAcceptedTextOnly williamr@2: }; williamr@2: williamr@2: // mms receiving mode williamr@2: enum TMmsReceivingMode williamr@2: { williamr@2: EMmsReceivingMin = 1, williamr@2: EMmsReceivingAutomatic = EMmsReceivingMin, williamr@2: EMmsReceivingManual = EMmsReceivingMin + 1, williamr@2: EMmsReceivingPostpone = EMmsReceivingManual + 1, williamr@2: EMmsReceivingReject = EMmsReceivingPostpone + 1, williamr@2: EMmsReceivingMax = EMmsReceivingReject williamr@2: }; williamr@2: williamr@2: // Factory settings williamr@2: enum TMmsFactorySettingsLevel williamr@2: { williamr@2: EMmsFactorySettingsLevelNormal = 0x0, williamr@2: EMmsFactorySettingsLevelDeep williamr@2: }; williamr@2: williamr@2: // Type of the Delete operation williamr@2: enum TMmsDeleteOperationType williamr@2: { williamr@2: EMmsDeleteNotificationOnly, williamr@2: EMmsDeleteMMBoxOnly, williamr@2: EMmsDeleteBoth williamr@2: }; williamr@2: williamr@2: #endif // MMSCONST_H williamr@2: williamr@2: // End of File