diff -r 238255e8b033 -r 84d9eb65b26f messagingappbase/smsmtm/clientmtm/inc/SMUTSET.H --- a/messagingappbase/smsmtm/clientmtm/inc/SMUTSET.H Fri Apr 16 14:56:15 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,761 +0,0 @@ -// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// SMUTSET.H -// -/** - * @file - * @publishedAll - * @released - */ -#ifndef __SMUTSET_H__ -#define __SMUTSET_H__ - -#include -#include -#include -#include - -class CSmsServiceCenter; -class CSmsEmailFields; - -// Both the recipient's number and SC number (TP-Destination-Address and RP-Destination-Address) -// can be 12 octets which means that there can be 21 characters (including + sign) in the number string. - -/** -The maximum length of recipient's number. - -The number returned by CSmsNumber::Address() and CSmsServiceCenter::Address() is limited this maximum length. - -@see CSmsNumber::Address -@see CSmsServiceCenter::Address - -@publishedAll -@released -*/ -const TInt KSmcmSmsNumberMaxNumberLength = 21; - -/** -The maximum length of recipient's name. - -The number returned by CSmsNumber::Name() and CSmsServiceCenter::Name() is limited this maximum length. - -@see CSmsNumber::Name -@see CSmsServiceCenter::Name - -@publishedAll -@released -*/ -const TInt KSmcmSmsNumberMaxNameLength = 256; - -/** -Defines the possible forms in which an SMS message should be delivered to the -recipient by the service centre. - -The specified format may or may not actually be supported by the service centre. -Note that the format of the recipient address(es) may need to be different -to a normal telephone number if the conversion is set to any other value than -ESmsConvPIDNone, ESmsConvFax, ESmsConvPaging or ESmsConvErmes. - -@publishedAll -@released -*/ -enum TSmsPIDConversion - { -/** -No conversion (i.e. use SMS itself). -*/ - ESmsConvPIDNone = TSmsProtocolIdentifier::ESmsNoTelematicDevice, -/** -Convert to fax. -*/ - ESmsConvFax = TSmsProtocolIdentifier::ESmsGroup3TeleFax, -/** -Convert to X.400. -*/ - ESmsConvX400 = TSmsProtocolIdentifier::ESmsX400MessageHandlingSystem, -/** -Convert to pager message. -*/ - ESmsConvPaging = TSmsProtocolIdentifier::ESmsNationalPagingSystem, -/** -Convert to Internet email. -*/ - ESmsConvMail = TSmsProtocolIdentifier::ESmsInternetElectronicMail, -/** -Convert to ERMES paging. -*/ - ESmsConvErmes = TSmsProtocolIdentifier::ESmsERMES, -/** -Convert to sppech. -*/ - ESmsConvSpeech = TSmsProtocolIdentifier::ESmsVoiceTelephone - }; - -/** -Defines the set of possible validity periods for mobile originated messages. - -Mobile originated messages have a PDU type of SMS-SUBMIT. - -@publishedAll -@released -*/ -enum TSmcmValidityPeriod - { -/** -Validity period of an hour. -*/ - ESmsVPHour = TSmsValidityPeriod::EHalfHourUnitInMinutes*2, -/** -Validity period of six hours. -*/ - ESmsVPSixHours = TSmsValidityPeriod::EHalfHourUnitInMinutes*12, -/** -Validity period of 24 hours. -*/ - ESmsVP24Hours = TSmsValidityPeriod::EOneDayUnitInMinutes, -/** -Validity period of a week. -*/ - ESmsVPWeek = TSmsValidityPeriod::EOneWeekUnitInMinutes, -/** -The maximum validity period - currently set as 63 weeks. -*/ - ESmsVPMaximum = TSmsValidityPeriod::EOneWeekUnitInMinutes*63, -/** -An enum that specifies that a validity period is not supported. -*/ - ESmsVPNotSupported = KErrNotSupported, -/** -The default validy period - currently set to a week. -*/ - ESmsVPDefault = ESmsVPWeek - }; - -/** -Defines options for the preferred default sending schedule type of a new message -created using the SMS client MTM. - -The option has no direct effect on the SMS MTM. When it is sending an SMS -message it automatically appends other SMS messages in the outbox whose send -states are marked as KMsvSendStatewaiting or KMsvSendSateUnknown. - -Therefore it is the responsibility of the messaging client to set the correct -send state of new SMS messages correctly given the preferred sending schedule. - -@publishedAll -@released -*/ -enum TSmsDelivery - { -/** -Send message immediately. The message send state should be set to KMsvSendStateWaiting. -*/ - ESmsDeliveryImmediately, -/** -Send message when client requests. The message send state should be set to KMsvSendStateUponRequest. -*/ - ESmsDeliveryUponRequest, -/** -Send message at scheduled time. The message send state should be set to KMsvSendStateScheduled. -*/ - ESmsDeliveryScheduled - }; - -/** -Defines the flags and masks for some of the message settings. - -The settings classes CSmsMessageSettings and CSmsSettings use these flags to -store the specified information. - -@publishedAll -@released -*/ -enum TSmsSettingsFlags - { -/** -Mask that resets the flags. -*/ - ESmsSettingsNoFlags =0x00000000, -/** -Flag that indicates if messages can be concatenated. - -If true, the UI should pass a long message in one piece to the MTM. If false, -it should split the message manually into 140 byte parts. The value of this -flag does not affect the behaviour of the SMS MTM. -*/ - ESmsSettingsCanConcatenate =0x00000001, -/** -Flag that indicates whether the original message should be included in relpy -messages. - -If true, the received message should be quoted at the beginning of the reply -message. If false, reply messages should be initially empty. -*/ - ESmsSettingsReplyQuoted =0x00000002, -/** -Flag that indicates whether duplicate messages should be rejected. -*/ - ESmsSettingsRejectDuplicate =0x00000004, -/** -Flag that indicates if a status report (TP-SRR in GSM spec 03.40) should be -requested from the Service Centre. -*/ - ESmsSettingsDeliveryReport =0x00000008, -/** -Flag that indicates if the reply path (Service Centre address) should be included -in the delivered message (TP-RP in GSM spec 03.40). -*/ - ESmsSettingsReplyPathRequested =0x00000010, -/** -Flag that indicates if a status report (TP-SRR in GSM spec 03.40) for the last segment -should be requested from the Service Centre. -*/ - ESmsSettingsLastSegmentDeliveryReport =0x00000020 , - -/** -Flag that indicates if a status report (TP-SRR in GSM spec 03.40) for the last segment -is not requested from the Service Centre. -*/ - ENoSmsSettingsLastSegmentDeliveryReport =0x00000040, -/** -Flag that indicates that the service center time stamp should be used for the date -field in any TMsvEntry that corresponds to a SMS message. -*/ - ESmsSettingsUseServiceCenterTimeStamp =0x00000080, -/** -Flag that indicates if message received from unknown port, -discard the message without indicating the user. -*/ - ESmsSettingsDiscardUnknownPortMsgs =0x00000100, -/** -Mask for the set of flags defined. -*/ - ESmsSettingsMask =0x000000FF, - }; - - -/** -Defines the types of acknowledgements that can be received from recipients. -*/ -enum TSmsAckType - { -/** -Acknowlwdgement of delivery to a recipient. -*/ - ESmsAckTypeDelivery =0 - }; - -/** -Progress information for SMS MTM operations. - -This information is returned by CMsvOperation::ProgressL() in a TSmsProgressBuf -package. - -@see CMsvOperation::ProgressL - -@publishedAll -@released -*/ -class TSmsProgress - { -public: -/** -Defines type of operation for which progress information is being given. - -These types correspond to the commands defined in TSmsMtmCommand. - -@see TSmsMtmCommand -*/ - enum TSmsProgressType - { -/** -The default operation type - no operation. -*/ - ESmsProgressTypeDefault, -/** -Reading SIM parameters. - -Pre v7.0, this was named ESmsProgressTypeReadingServiceCenterAddress. -*/ - ESmsProgressTypeReadSimParams, -/** -Writing SIM parameters. - -Pre v7.0 this was named ESmsProgressTypeWritingServiceCenterAddress. -*/ - ESmsProgressTypeWriteSimParams, -/** -Sending messages. -*/ - ESmsProgressTypeSending, -/** -Scheduling sending messages. -*/ - ESmsProgressTypeScheduling, -/** -Enumerating phone stores. - -Pre v7.0, this was named ESmsProgressTypeEnumeratingSim. -*/ - ESmsProgressTypeEnumeratingPhoneStores, -/** -Copying messages from phone stores. - -Pre v7.0, this was named ESmsProgressTypeCopyFromSim. -*/ - ESmsProgressTypeCopyFromPhoneStore, -/** -Moving messages from phone stores. - -Pre v7.0, this was named ESmsProgressTypeMoveFromSim. -*/ - ESmsProgressTypeMoveFromPhoneStore, -/** -Deleting messages from phone stores. - -Pre v7.0, this was named ESmsProgressTypeDeleteFromSim. -*/ - ESmsProgressTypeDeleteFromPhoneStore, -/** -Removing all messages from the task scheduler list. -*/ - ESmsProgressTypeDeleteSchedule, -/** -Checking the current scheduled status of the messages. -*/ - ESmsProgressTypeCheckSchedule, -/** -Recursively deleting messages. -*/ - ESmsProgressTypeDeleteAll, -/** -Copying messages to a phone store. - -Pre v7.0, this was named ESmsProgressTypeCopyToSim. -*/ - ESmsProgressTypeCopyToPhoneStore, -/** -Moving messages to a phone store. - -Pre v7.0, this was named ESmsProgressTypeMoveToSim. -*/ - ESmsProgressTypeMoveToPhoneStore, -/** -Moving message entries. - -This is the second part of ESmsProgressTypeMoveFromPhoneStore. The first part -deletes the messages from the phone storageSIM. This second part moves the -messages from the folder that represents the phone storage to the specified -destination. -*/ - ESmsProgressTypeMovingEntries - }; - - inline TSmsProgress(TSmsProgressType aType = ESmsProgressTypeDefault); - -public: - -/** -The error code. -*/ - TInt iError; -/** -The type of operation. - -@see TSmsProgress::TSmsProgressType -*/ - TSmsProgressType iType; -/** -The state of the operation. -*/ - TInt iState; -/** -The number of recipients processed so far for the current message. -*/ - TInt iRcpDone; -/** -The total number of recipients in the current message. -*/ - TInt iRcpCount; -/** -The nmber of messages processed so far for the current operation. -*/ - TInt iMsgDone; -/** -The total number of messages for the current operation. -*/ - TInt iMsgCount; -/** -The Service Centre address. - -This is set by the command ESmsMtmCommandReadServiceCenter. - -@removed -This is no longer used since v7.0. -*/ - TBuf<14> iServiceCenterAddress; -/** -The invisible folder that contains the messages read from the SIM by the command -ESmsMtmCommandEnumeratePhoneStores. -*/ - TMsvId iEnumerateFolder; - }; - -/** -Package buffer for TSmsProgress. - -@see TSmsProgress - -@publishedAll -@released -*/ -typedef TPckgBuf TSmsProgressBuf; - - -/** -The SMS settings that are relevant on a per message basis. - -Each SMS message has its own settings. Initially they have a default set of -values derived from the SMS service settings. They can be changed on an -individual message basis. For instance, a messaging application may allow a -user to specify/not specify status reports individually for each message. - -These settings are only relevant to mobile originated messages - those of -SMS-SUBMIT type. - -@publishedAll -@released -*/ -class CSmsMessageSettings : public CBase - { -public: - IMPORT_C virtual void InternalizeL(RReadStream& aReadStream); - IMPORT_C virtual void ExternalizeL(RWriteStream& aWriteStream) const; - - inline const TTimeIntervalMinutes& ValidityPeriod() const; - inline void SetValidityPeriod(TTimeIntervalMinutes); - - inline void SetValidityPeriodFormat(TSmsFirstOctet::TSmsValidityPeriodFormat aValidityPeriodFormat); - inline const TSmsFirstOctet::TSmsValidityPeriodFormat ValidityPeriodFormat() const; - - inline TBool RejectDuplicate() const; - inline void SetRejectDuplicate(TBool); - - inline TBool DeliveryReport() const; - inline void SetDeliveryReport(TBool); - - inline TBool ReplyPath() const; - inline void SetReplyPath(TBool); - - inline TSmsPIDConversion MessageConversion() const; - inline void SetMessageConversion(TSmsPIDConversion); - - inline TBool CanConcatenate() const; - inline void SetCanConcatenate(TBool); - - inline enum TSmsDataCodingScheme::TSmsAlphabet CharacterSet() const; - inline void SetCharacterSet(TSmsDataCodingScheme::TSmsAlphabet); - - IMPORT_C virtual void CopyL(const CSmsMessageSettings& aSettings); - - TUint32 MessageFlags() const; - void SetMessageFlags(TUint32 aMsgFlags); - inline TBool LastSegmentDeliveryReport() const; - inline void SetLastSegmentDeliveryReport(TBool); - - inline void SetUseServiceCenterTimeStampForDate(TBool aUseServiceCenterTimestamp); - inline TBool UseServiceCenterTimeStampForDate() const; - -protected: - - CSmsMessageSettings(); - -private: - - TUint32 iMsgFlags; - TSmsPIDConversion iMessageConversion; - TSmsDataCodingScheme::TSmsAlphabet iAlphabet; - TTimeIntervalMinutes iValidityPeriod; - TSmsFirstOctet::TSmsValidityPeriodFormat iValidityPeriodFormat; - }; - -/** -The SMS Service settings. - -An SMS service entry stores an object of this type in its message store. These -settings define the default settings for mobile originated messages (SMS-SUBMIT -type messages). They also provide some global settings that are applied to all -messages, both outward going and received messages. - -The SMS service also uses this class to store the set of avilable Servive Centre -numbers. The default Service Centre is defined from this set. - -@publishedAll -@released -*/ -class CSmsSettings : public CSmsMessageSettings - { -public: - -/** -Defines the ways in which status reports that are received by the watcher may -be handled. - -This can be applied to both SMS-STATUS-REPORT type messages and Special Messages -(e.g. Voice Mail Indication messages). -*/ - enum TSmsReportHandling - { -/** -The reports are put in the inbox and made invisible. -*/ - EMoveReportToInboxInvisible, -/** -The reports are put in the inbox and made visible. -*/ - EMoveReportToInboxVisible, -/** -The reports are deleted. -*/ - EDiscardReport, -/** -Not supported. -*/ - EDoNotWatchForReport, -/** -Reports are put in the inbox and made invisible. The status report -is matched against the sent mesasge and its summary info updated. -*/ - EMoveReportToInboxInvisibleAndMatch, -/** -Reports are put in the inbox and made visible. The status report -is matched against the sent mesasge and its summary info updated. -*/ - EMoveReportToInboxVisibleAndMatch, -/** -Reports are deleted. The status report is matched against the sent -mesasge and its summary info updated. -*/ - EDiscardReportAndMatch - }; - -/** -Sets whether the service settings should be used to update the communications -database. - -If the update is specified, it is done when the Service settings are stored into -the message store. -*/ - enum TSmsSettingsCommDbAction - { -/** -The comms database should not be updated. -*/ - ENone, -/** -Use the Service settings to update the comms datebase. -*/ - EStoreToCommDb - }; - -/** Defines the SMS bearer. -Modes: GSM */ -enum TMobileSmsBearer - { - /** SMS messages will only be sent over a packet-switched (GPRS) network. */ - ESmsBearerPacketOnly, - /** SMS messages will only be sent over a circuit-switched (GSM) network. */ - ESmsBearerCircuitOnly, - /** SMS messages will be sent over the packet-switched (GPRS) network if possible, - otherwise over circuit-switched (GSM) network. */ - ESmsBearerPacketPreferred, - /** SMS messages will be sent over the circuit-switched (GSM) network if possible, - otherwise over packet-switched (GPRS) network. */ - ESmsBearerCircuitPreferred - }; - -public: - - IMPORT_C static CSmsSettings* NewL(); - IMPORT_C static CSmsSettings* NewLC(); - IMPORT_C virtual ~CSmsSettings(); - - IMPORT_C TInt ServiceCenterCount() const; - IMPORT_C CSmsServiceCenter& GetServiceCenter(TInt aIndex) const; - IMPORT_C void AddServiceCenterL(const TDesC& aName,const TDesC& aNumber); - IMPORT_C void RemoveServiceCenter(TInt aIndex); - IMPORT_C TInt DefaultServiceCenter() const; - IMPORT_C void SetDefaultServiceCenter(TInt aDefaultSC); - inline TSmsDelivery Delivery() const; - inline void SetDelivery(TSmsDelivery); - - inline TBool ReplyQuoted() const; - inline void SetReplyQuoted(TBool); - - IMPORT_C void CopyL(const CSmsSettings& aSmsSettings); - - inline TSmsReportHandling StatusReportHandling() const; - inline void SetStatusReportHandling(TSmsReportHandling aStatusReportHandling); - inline TSmsReportHandling SpecialMessageHandling() const; - inline void SetSpecialMessageHandling(TSmsReportHandling aSpecialMessageHandling); - - inline void SetCommDbAction(TSmsSettingsCommDbAction aCommDbAction); - inline TSmsSettingsCommDbAction CommDbAction() const; - - inline void SetSmsBearerAction(TSmsSettingsCommDbAction aSmsBearerAction); - inline TSmsSettingsCommDbAction SmsBearerAction() const; - - inline void SetSmsBearer(TMobileSmsBearer aSmsBearer); - inline TMobileSmsBearer SmsBearer() const; - - inline void SetClass2Folder(TMsvId aId); - inline TMsvId Class2Folder() const; - - inline void SetDescriptionLength(TInt aLength); - inline TInt DescriptionLength() const; - - inline TBool DiscardUnknownPortMessage() const; - inline void SetDiscardUnknownPortMessage(TBool aDeleteMessage); - TUint32 SettingsFlags() const; - void SetSettingsFlags(TUint32 aSetFlags); - - void RemoveSCAddresses(); - void StoreToCommDbL() const; - -private: - - CSmsSettings(); - void ConstructL(); - -private: - - TUint32 iSetFlags; - CArrayPtrFlat *iServiceCenters; - TSmsDelivery iDelivery; - TInt iDefaultSC; - TSmsReportHandling iStatusReportHandling; - TSmsReportHandling iSpecialMessageHandling; - TSmsSettingsCommDbAction iCommDbAction; - TSmsSettingsCommDbAction iSmsBearerAction; - TMobileSmsBearer iSmsBearer; - TMsvId iClass2Folder; - TInt iDescriptionLength; - }; - -/** -Recipient information for an SMS message. - -A SMS-SUBMIT message may have several recipients - -@publishedAll -@released -*/ -class CSmsNumber : public CMsvRecipient - { -public: - -/** -Defines the status of an acknowledgement for a recipient. -*/ - enum TSmsAckStatus - { -/** -An acknowledgement for this recipient has not been requested. -*/ - ENoAckRequested = 0, -/** -The delivery status for this recipient has been requested, but the status report -has not yet been received. -*/ - EPendingAck, -/** -A successful acknowledgement for this recipient has been received. -*/ - EAckSuccessful, -/** -A failed acknowledgement for this recipient has been received. -*/ - EAckError - }; - -public: - - IMPORT_C static CSmsNumber* NewL(); - IMPORT_C static CSmsNumber* NewL(const CSmsNumber& aSmsNumber); - IMPORT_C virtual ~CSmsNumber(); - - IMPORT_C void InternalizeL(RReadStream& aStream); - IMPORT_C void ExternalizeL(RWriteStream& aStream) const; - - IMPORT_C TPtrC Address() const; - IMPORT_C void SetAddressL(const TDesC& aAddress); - void SetEmailAddressL(const TDesC& aAddress, CSmsEmailFields* aEmailFields, const TDesC& aAlias); - - IMPORT_C TPtrC Name() const; - IMPORT_C void SetNameL(const TDesC& aName); - - inline TLogId LogId() const; - inline void SetLogId(TLogId aLogId); - - IMPORT_C CSmsNumber& CopyL(const CSmsNumber& aSmsNumber); - - IMPORT_C TSmsAckStatus AckStatus(TSmsAckType aAckType) const; - IMPORT_C void SetAckStatus(TSmsAckType aAckType, TSmsAckStatus aAckStatus); - -private: - - CSmsNumber(); - TPtrC LimitStringSize(const TPtrC& aString, TInt aMaxLength) const; - -private: - - HBufC* iNumber; - HBufC* iName; - TLogId iLogId; - TSmsAckStatus iDeliveryStatus; - }; - -/** -Used to store Service Centre numbers and their associated name. - -@publishedAll -@released -*/ -NONSHARABLE_CLASS (CSmsServiceCenter) : public CBase - { -public: - IMPORT_C static CSmsServiceCenter* NewL(); - IMPORT_C static CSmsServiceCenter* NewL(const CSmsServiceCenter& aSmsSC); - IMPORT_C ~CSmsServiceCenter(); - - IMPORT_C TPtrC Address() const; - IMPORT_C void SetAddressL(const TDesC& aAddress); - - IMPORT_C TPtrC Name() const; - IMPORT_C void SetNameL(const TDesC& aName); - - IMPORT_C CSmsServiceCenter& CopyL(const CSmsServiceCenter& aSmsSc); - -private: - CSmsServiceCenter(); - TPtrC LimitStringSize(const TPtrC& aString, TInt aMaxLength) const; - -private: - HBufC* iNumber; - HBufC* iName; - }; - -#include - -#endif // __SMUTSET_H__