telephonyserverplugins/common_tsy/commontsy/inc/mmsms/cmmsmstsy.h
changeset 0 3553901f7fa8
child 5 7ef16719d8cb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserverplugins/common_tsy/commontsy/inc/mmsms/cmmsmstsy.h	Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,1009 @@
+/*
+* Copyright (c) 2006-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:
+*
+*/
+
+
+
+#ifndef CMMSMSTSY_H
+#define CMMSMSTSY_H
+
+// INCLUDES
+#include <etelmm.h>
+#include <et_phone.h>          
+#include "MmTsy_timeoutdefs.h" 
+#include <ctsy/serviceapi/mctsysatservice.h>
+
+//  FORWARD DECLARATIONS
+class CMmSmsStorageTsy;
+class CMmPhoneTsy;
+class CMessStore;
+class CMmSmsExtInterface;
+class CMmSmsStorageTsy;
+class CMmDataPackage;
+class CSmsSendRequest;
+class CListReadAllAttempt;
+class CMmTsyReqHandleStore;
+struct TSmsMsg;
+struct TSmsParameters;
+
+// CLASS DECLARATION
+
+/**
+*  CMmSmsTsy contains extended sms functionality that is mode-independent 
+*  Extension request handles and parameters are stored as attributes
+*/
+NONSHARABLE_CLASS( CMmSmsTsy ) : public CSubSessionExtBase,
+    public MCtsySatService
+    {
+    public:
+
+        enum TSmsRequestTypes
+            {     
+            EMultimodeSmsReqHandleUnknown,          //0
+            //SMS specific requests
+            EMultimodeSmsReceiveMessage,
+            EMultimodeSmsSetReceiveMode,
+            EMultimodeSmsAckStored,
+            EMultimodeSmsNackStored,
+            EMultimodeSmsResumeReception,
+            EMultimodeSmsSendMessage,
+            EMultimodeSmsSendMessageNoFdnCheck,
+            EMultimodeSmsSendSatMessage,
+            EMultimodeSmsGetMessageStoreInfo,
+            EMultimodeSmsReadSmspListPhase1,
+            EMultimodeSmsStoreSmspList, 
+            EMultimodeSmsNotifyReceiveModeChange,   
+            EMultimodeSmsNotifyMoSmsBearerChange,
+            EMultimodeSmsSetMoSmsBearer,
+            EMultimodeSmsNotifySmspListChange, 
+            //SMS storage specific requests
+            EMultimodeSmsGetInfo,
+            EMultimodeSimStSmsReadSms, 
+            EMultimodeSimStSmsWriteSms,            
+            EMultimodeSimStSmsEraseSms,
+            EMultimodeSimStSmsEraseAllSms,
+            EMultimodeSimSmsNotifyStoreEvent,
+            EMultimodeSimStSmsReadAllSms, 
+            EMultimodeSimStSmsGetNumOfLoc,
+
+            EMultimodeSmsMaxNumOfRequests 
+            };
+
+    private:
+
+        /** SMS routing activity */
+        enum TSmsRoutingActivity
+            {
+            ERoutingNotActivated,
+            ERoutingActivating,
+            ERoutingActivated
+            };
+
+    public:
+
+        /**
+         * Two-phased constructor.
+         * @param aMmPhone Pointer to the MmPhone
+         * @return Pointer to the created CMmSmsTsy object
+         */
+        static CMmSmsTsy* NewL( CMmPhoneTsy* aMmPhone );
+
+        /**
+         * Destructor
+         */
+        ~CMmSmsTsy();
+
+        /** 
+         * Initialisation method that is called from ETel Server
+         *          
+         * 
+         */
+        virtual void Init();
+
+        /**
+         * New instances are created by given name
+         *          
+         * 
+         * @param aName Name of the object to be created
+         * @return Pointer to created object casted to CTelObject*
+         */
+        virtual CTelObject* OpenNewObjectByNameL( const TDesC& aName ); 
+
+        /**
+         * New instances are created by given name
+         * 
+         * 
+         * @param aNewName Name of the object to be created
+         * @return Pointer to created object casted to CTelObject*
+         */
+        virtual CTelObject* OpenNewObjectL( TDes& aNewName ); 
+        
+        /** 
+         * Handles extended client requests by calling ExtFunc method
+         *           
+         * 
+         * @param aTsyReqHandle Request handle
+         * @param aIpc IPC number of request
+         * @param aPackage Parameters for request
+         * @return Error value
+         */
+        virtual TInt ExtFunc( const TTsyReqHandle aTsyReqHandle, 
+            const TInt aIpc, 
+            const TDataPackage& aPackage );
+
+        /** 
+         * When the ETel server receives an "extension" client request, 
+         * it will pass the IPC request number down to the TSY in order to find
+         * out what type of request it is
+         *          
+         * 
+         * @param aIpc IPC number of request
+         * @return Request mode for given IPC
+         */
+        virtual CTelObject::TReqMode ReqModeL( const TInt aIpc );
+
+        /**
+         * Returns number of slots to be used for given IPC
+         *          
+         * 
+         * @param aIpc IPC number of request
+         * @return Number of slots
+         */
+        virtual TInt NumberOfSlotsL( const TInt aIpc );
+
+        /**
+         * Cancels request that's IPC number and request handle are given in 
+         * parameters
+         *          
+         * 
+         * @param aIpc IPC number of request
+         * @param aTsyReqHandle Request handle
+         * @return Error value
+         */
+        virtual TInt CancelService( const TInt aIpc, 
+            const TTsyReqHandle aTsyReqHandle );
+
+        /** 
+         * Register given notification
+         *          
+         * 
+         * @param aIpc Number of slots
+         * @return Error value
+         */
+        virtual TInt RegisterNotification( const TInt aIpc );
+
+        /**
+         * Deregister given notification
+         *          
+         * 
+         * @param aIpc IPC number of request
+         * @return Error value
+         */
+        virtual TInt DeregisterNotification( const TInt aIpc );
+
+        /**
+         * Return pointer to the SMS Storage sub-session
+         *          
+         * 
+         * @return Pointer to SMS Storage sub-session
+         */
+        virtual CMmSmsStorageTsy* GetSmsStorageTsy();
+
+        /**
+         * Activate SMS routing
+         *          
+         * 
+         */
+        virtual void ActivateSmsRoutingL();
+
+        /**
+         * This method completes reception of incoming unstored SMS
+         *          
+         * 
+         * @param aError Error code
+         * @param aDataPackage A data package containing TBool (indicates if 
+         * some errors have occured while handling or acknowledging incoming Sms) 
+         * and a TSmsMsg* (pointer to Sms message)
+         */
+        virtual void CompleteReceiveMessage( TInt aError, 
+            CMmDataPackage* aDataPackage );
+
+        /**
+         * Handle internally response for ActivateSmsRouting
+         *          
+         * 
+         * @param aError Error code
+         * @param aDataPackage Package data containing TUint8, 
+         * status of the routing (active or not)
+         */
+        virtual void CompleteActivateSmsRouting( TInt aError, 
+            CMmDataPackage* aDataPackage );
+
+        /** 
+         * Complete AckSmsStored request
+         *          
+         * 
+         * @param aError Error code
+         */
+        virtual void CompleteAckSmsStored( TInt aError );
+
+        /** 
+         * Complete NackSmsStored request
+         *          
+         * 
+         * @param aError Error code
+         */
+        virtual void CompleteNackSmsStored( TInt aError );
+
+        /** 
+         * Complete CompleteSendMessage request
+         *          
+         * 
+         * @param aError Error code
+         * @param aDataPackage
+         */
+        virtual void CompleteSendMessage( TInt aError, 
+            CMmDataPackage* aDataPackage );
+
+        /** 
+         * Complete CompleteSendMessageNoFdnCheck request
+         *          
+         *
+         * @param aError Error code
+         * @param aDataPackage
+         */
+        virtual void CompleteSendMessageNoFdnCheck( TInt aError, 
+            CMmDataPackage* aDataPackage );
+
+        /**
+         * From MCtsySatService
+         * Send SAT SMS message to the network
+         *          
+         * 
+         * @param aStkTsySatService Pointer to SAT service interface
+         * @param aSmsTpdu Pointer to Sms TPDU
+         * @param aScAddress Pointer to service address
+         * @param aMobileTON Pointer to type of number
+         * @param aMobileNPI Pointer to number plan
+         * @param aMoreToSend True if there is more to send
+         * @param aTsyReqHandle Request handle
+         * @return KErrNone 
+         */
+        virtual TInt SendSatMessage( 
+            MStkTsySatService& aStkTsySatService, 
+            TDes8* aSmsTpdu, 
+            TDes16* aScAddress, 
+            RMobilePhone::TMobileTON* aMobileTON, 
+            RMobilePhone::TMobileNPI* aMobileNPI, 
+            TBool aMoreToSend, 
+            TTsyReqHandle aTsyReqHandle );
+
+        /**
+         * Complete SendSatMessage request
+         *          
+         * 
+         * @param aError Error code
+         */
+        virtual void CompleteSendSatMessage( TInt aError );
+
+        /**
+         * Complete ResumeSmsReception request
+         *          
+         * 
+         * @param aError Error code
+         */
+        virtual void CompleteResumeSmsReception( TInt aError );
+
+        /**
+         * Complete get sms message store info
+         *          
+         * 
+         * @param aError Error code
+         * @param aDataPackage
+         */
+        virtual void CompleteGetMessageStoreInfo( TInt aError, 
+            CMmDataPackage* aDataPackage );
+
+        /**
+         * Complete first phase of read all SMSP sets
+         *          
+         * 
+         * @param aError Error code
+         * @param aDataPackage
+         */
+        virtual void CompleteReadAllSmspPhase1( TInt aError, 
+            CMmDataPackage* aDataPackage );
+
+        /**
+         * Handle internally SMS servers response to SMS Parameter update          
+         * request (Store SMSP list)
+         *          
+         * 
+         * @param aError Error code
+         */
+        virtual void InternalStoreSmspList( TInt aError );
+
+        /**
+         * Set SMS Storage TSY
+         *          
+         * 
+         * @param aNewPointer Pointer to Storage Tsy
+         */
+        virtual void SetSmsStorageTsy( CMmSmsStorageTsy* aNewPointer );
+
+        /**
+         * Return number of SMS location on SIM card 
+         *          
+         * 
+         * @return Number of SMS location on SIM card
+         */
+        virtual TInt16 GetSmsNumOfLoc();
+
+        /**
+         * Set Sms Number of Location on SIM Card
+         *          
+         * 
+         * @param aSmsNumOfUsedEntries Number of SMS location
+         */
+        virtual void SetSmsNumOfLoc( TInt aSmsNumOfUsedEntries );
+
+        /**
+         * This method set Sms Send Attributes values for sending MMSAT 
+         * message
+         *          
+         * 
+         * @param aMmPhone
+         * @param aSmsTpdu Pointer to Sms TPDU
+         * @param aScAddress Pointer to service address
+         * @param aMobileTON Pointer to type of number
+         * @param aMobileNPI Pointer to number plan
+         * @param aMoreToSend True if there is more to send
+         * @return Error code
+         */
+        virtual TInt SendSatMessageL( 
+            CMmPhoneTsy* aMmPhone,
+            TDes8* aSmsTpdu,
+            TDes16* aScAddress,
+            RMobilePhone::TMobileTON* aMobileTON,
+            RMobilePhone::TMobileNPI* aMobileNPI,
+            TBool aMoreToSend );
+
+        /**
+         * Set the information about the CS hardware status: True if off-line, 
+         * false if on-line
+         *          
+         * 
+         * @param aIsOffline
+         */
+        void SetOffline( TBool aIsOffline );
+
+        /**
+         * Complete set bearer type for sending SMS messages 
+         *          
+         *
+         * @param aResult Error value
+         */
+        void CompleteSetMoSmsBearer( TInt aResult );
+
+#ifdef REQHANDLE_TIMER
+        /**
+         * Chooses the type of response, automatic or common
+         *          
+         * 
+         * @param aReqHandleType Req handle type
+         * @param aTsyReqHandle Req handle to be stored
+         */
+        void SetTypeOfResponse( const TInt aReqHandleType, 
+            const TTsyReqHandle aTsyReqHandle );
+
+        /**
+         * Complete request because of timer expiration
+         *          
+         * 
+         * @param aReqHandleType Request handle type
+         * @param aError Error value
+         */    
+        virtual void Complete( TInt aReqHandleType, 
+            TInt aError );
+#endif // REQHANDLE_TIMER
+
+    private:
+
+        /**
+         * C++ default constructor.
+         */
+        CMmSmsTsy();
+
+        /**
+         * By default Symbian 2nd phase constructor is private.
+         */
+        void ConstructL();
+
+        /**
+         * Resend an unsent message
+         *          
+         * 
+         */
+        void ResendSms();
+
+        /** 
+         * Handles extended client requests
+         *          
+         * 
+         * @param aTsyReqHandle Request handle
+         * @param aIpc IPC number of request
+         * @param aPackage Data Package
+         * @return Error value
+         */
+        TInt DoExtFuncL( const TTsyReqHandle aTsyReqHandle, 
+            const TInt aIpc, 
+            const TDataPackage& aPackage );
+
+        /**
+         * Get SMS messaging capabilities
+         *          
+         * 
+         * @param aTsyReqHandle Request handle
+         * @param aCaps Pointer to the messaging capabilities
+         * @return KErrNone 
+         */
+        TInt GetCaps( const TTsyReqHandle aTsyReqHandle, 
+            TDes8* aCaps );
+
+        /**
+         * Get receive mode
+         *          
+         * 
+         * @param aTsyReqHandle Request handle
+         * @param aReceiveMode Pointer to receive mode
+         * @return KErrNone 
+         */
+        TInt GetReceiveMode( const TTsyReqHandle aTsyReqHandle, 
+            RMobileSmsMessaging::TMobileSmsReceiveMode* aReceiveMode );
+
+        /**
+         * Set receive mode
+         *          
+         * 
+         * @param aTsyReqHandle Request handle
+         * @param aReceiveMode Pointer to receive mode
+         * @return KErrNone 
+         */
+        TInt SetReceiveMode( const TTsyReqHandle aTsyReqHandle, 
+            RMobileSmsMessaging::TMobileSmsReceiveMode const* aReceiveMode );
+
+        /**
+         * Set receive mode cancel
+         *          
+         * 
+         * @param aTsyReqHandle Request handle
+         * @return KErrNone 
+         */
+        TInt SetReceiveModeCancel( const TTsyReqHandle aTsyReqHandle );
+
+        /**
+         * Notify from receive mode changes
+         *          
+         * 
+         * @param aReceiveMode Pointer to receive mode
+         * @return KErrNone 
+         */
+        TInt NotifyReceiveModeChange( 
+            RMobileSmsMessaging::TMobileSmsReceiveMode* aReceiveMode );
+
+        /**
+         * Cancel notify reveice mode change request
+         *          
+         * 
+         * @param aTsyReqHandle Request handle
+         * @return KErrNone 
+         */
+        TInt NotifyReceiveModeChangeCancel( 
+            const TTsyReqHandle aTsyReqHandle );
+
+        /**
+         * Complete notify reveice mode change request
+         *          
+         * 
+         */
+        void CompleteNotifyReceiveModeChange();
+
+        /**
+         * This method starts the reception of incoming unstored SMS
+         *          
+         * 
+         * @param aTsyReqHandle Request handle
+         * @param aMsgData Message data
+         * @param aMsgAttributes Message attributes
+         * @return Error value
+         */
+        TInt ReceiveMessageL( const TTsyReqHandle aTsyReqHandle,
+            TDes8* aMsgData, 
+            TDes8* aMsgAttributes );
+
+        /**
+         * Wait for next incoming unstored message cancel
+         *          
+         * 
+         * @param aTsyReqHandle Request handle
+         * @return Error value
+         */
+        TInt ReceiveMessageCancel( const TTsyReqHandle aTsyReqHandle );
+
+        /**
+         * Store Class 2 message in TSY's internal memory
+         *          
+         * 
+         * @param aSmsMsg Pointer to TSmsMsg struct
+         */
+        void StoreClass2MessageL( TSmsMsg const* aSmsMsg );
+
+        /**
+         * Deliver Stored Class 2 message to the SMS stack
+         * 
+         */
+        void DeliverClass2ToSmsStack();
+
+        /**
+         * Ack message
+         *          
+         * 
+         * @param aTsyReqHandle Request handle
+         * @param aMsgData SMS PDU
+         * @param aMemoryFull Is SMS stack's memory now full
+         * @return Error value
+         */
+        TInt AckSmsStoredL( const TTsyReqHandle aTsyReqHandle, 
+            const TDesC8* aMsgData, 
+            TBool const* aMemoryFull );
+
+        /**
+         * Route RP-Error request to messagehandler
+         *          
+         * 
+         * @param aTsyReqHandle Request handle
+         * @param aMsgData Pointer to message data
+         * @param aRpCause Pointer to RP cause value
+         * @return Error value
+         */
+        TInt NackSmsStoredL( const TTsyReqHandle aTsyReqHandle, 
+            const TDesC8* aMsgData, 
+            TInt* aRpCause );
+
+        /**
+         * Resume sms message reception
+         *          
+         * 
+         * @param aTsyReqHandle Request handle
+         * @return Error value
+         */
+        TInt ResumeSmsReceptionL( const TTsyReqHandle aTsyReqHandle );
+
+        /**
+         * Retrieve the current setting for the bearer type used 
+         * for sending SMS messages 
+         *          
+         * 
+         * @param aTsyReqHandle Request handle
+         * @param aBearer Pointer to bearer
+         * @return KErrNone
+         */
+        TInt GetMoSmsBearer( const TTsyReqHandle aTsyReqHandle, 
+            RMobileSmsMessaging::TMobileSmsBearer* aBearer );
+
+        /**
+         * Set the bearer type for sending SMS messages 
+         *          
+         * 
+         * @param aTsyReqHandle Request handle
+         * @param aBearer Pointer to bearer
+         * @return KErrNone
+         */
+        TInt SetMoSmsBearer( const TTsyReqHandle aTsyReqHandle, 
+            RMobileSmsMessaging::TMobileSmsBearer* aBearer );
+
+        /**
+         * Set the bearer type cancel
+         *          
+         * 
+         * @param aTsyReqHandle Request handle
+         * @return KErrNone
+         */
+        TInt SetMoSmsBearerCancel( const TTsyReqHandle aTsyReqHandle );
+
+        /**
+         * Notify from SMS bearer change
+         *          
+         * 
+         * @param aBearer Pointer to bearer
+         * @return KErrNone
+         */
+        TInt NotifyMoSmsBearerChange( 
+            RMobileSmsMessaging::TMobileSmsBearer* aBearer );
+
+        /**
+         * Notify from SMS bearer change cancel
+         *          
+         * 
+         * @param aTsyReqHandle Request handle
+         * @return KErrNone
+         */
+        TInt NotifyMoSmsBearerChangeCancel( 
+            const TTsyReqHandle aTsyReqHandle );
+
+        /**
+         * Send message
+         *          
+         * 
+         * @param aTsyReqHandle Request handle
+         * @param aMsgData Pointer to Message Data
+         * @param aMsgAttributes Pointer to Message Attributes
+         * @return Error value
+         */
+        TInt SendMessageL( const TTsyReqHandle aTsyReqHandle, 
+            TDes8* aMsgData, 
+            TDes8* aMsgAttributes );
+            
+        /** 
+         * Cancels an outstanding SendMessageNoFdnCheck request
+         *          
+         * 
+         * @param aTsyReqHandle Request handle
+         * @return Error value
+         */
+        TInt SendMessageNoFdnCheckCancel( const TTsyReqHandle aTsyReqHandle );
+               
+        /** 
+         * Send sat message
+         *          
+         * 
+         * @param aSmsTpdu Pointer to SMS PDU
+         * @param aScAddress Pointer to SC address
+         * @param aMobileTON Type of number
+         * @param aMobileNPI Numberin plan identific
+         * @param aTsyReqHandle Request handle
+         */
+        void DoSendSatMessageL( TDes8* aSmsTpdu, 
+            TDes16* aScAddress,                    
+            RMobilePhone::TMobileTON* aMobileTON, 
+            RMobilePhone::TMobileNPI* aMobileNPI, 
+            TBool aMoreToSend,
+            TTsyReqHandle aTsyReqHandle );
+
+        /** 
+         * Enumerate sms message stores
+         *          
+         * 
+         * @param aTsyReqHandle Request handle
+         * @param aCount Pointer to message count
+         * @return KErrNone    
+         */
+        TInt EnumerateMessageStores( const TTsyReqHandle aTsyReqHandle, 
+            TInt* aCount );
+
+        /**
+         * Get sms message store info
+         *          
+         * 
+         * @param aTsyReqHandle Request handle
+         * @param aIndex Index
+         * @param aInfo Information
+         * @return Error value
+         */
+        TInt GetMessageStoreInfoL( const TTsyReqHandle aTsyReqHandle, 
+            TInt const* aIndex, 
+            TDes8* aInfo );
+
+        /**
+         * Get sms message store info cancel
+         *          
+         * 
+         * @param aTsyReqHandle Request handle
+         * @return KErrNone
+         */
+        TInt GetMessageStoreInfoCancel( const TTsyReqHandle aTsyReqHandle );
+
+        /**
+         * Read SMSP list phase 1
+         *          
+         * 
+         * @param aTsyReqHandle Request handle
+         * @param aId Pointer to client id
+         * @param aBufSize Pointer to buffer size
+         * @return Error value
+         */
+        TInt ReadSmspListPhase1L( const TTsyReqHandle aTsyReqHandle, 
+            RMobilePhone::TClientId const* aId, 
+            TInt* aBufSize );
+
+        /**
+         * Read SMSP list phase 2
+         *          
+         * 
+         * @param aTsyReqHandle Request handle
+         * @param aId Pointer to client id
+         * @param aBuffer Pointer to buffer
+         * @return KErrNone
+         */
+        TInt ReadSmspListPhase2( TTsyReqHandle aTsyReqHandle, 
+            RMobilePhone::TClientId const* aId, 
+            TDes8* aBuffer );
+
+        /**
+         * Cancel read SMSP list
+         *          
+         * 
+         * @param aTsyReqHandle Request handle
+         * @return KErrNone
+         */
+        TInt ReadAllSmspCancel( const TTsyReqHandle aTsyReqHandle );
+
+        /**
+         * Create SMSP list from read entries
+         *          
+         * 
+         * @param aSmspList List of SMSP entries
+         */
+        void CreateSmspListL( CArrayPtrFlat<TSmsParameters>& aSmspList );
+
+        /**
+         * Store SMSP list
+         *          
+         * 
+         * @param aTsyReqHandle Request handle
+         * @param aBuffer Pointer to buffer
+         * @return KErrNone
+         */
+        TInt StoreSmspList( const TTsyReqHandle aTsyReqHandle, 
+            TDes8* aBuffer );
+
+        /**
+         * This method trap and calls ProcessStoreSmspListL-method
+         *          
+         * 
+         */
+        void CallProcessStoreSmspList();
+
+        /**
+         * Call CompleteStoreSmspList-method or make new SMS parameter update
+         * request to DOS
+         *          
+         * 
+         */
+        void ProcessStoreSmspListL();
+
+        /**
+         * Complete StoreAllSmsp request to the client
+         *          
+         * 
+         * @param aError Cause value that is used while completing request
+         */
+        void CompleteStoreSmspList( TInt aError );
+
+        /**
+         * Notify SMSP list change
+         *          
+         * 
+         * @return KErrNone
+         */
+        TInt NotifySmspListChange();
+
+        /**
+         * Notify SMSP list change cancel
+         *          
+         * 
+         * @param aTsyReqHandle Request handle
+         * @return KErrNone
+         */
+        TInt NotifySmspListChangeCancel( const TTsyReqHandle aTsyReqHandle );
+
+        /**
+         * Complete notify SMSP list
+         *          
+         * 
+         */
+        void CompleteNotifySmspListChange();
+    
+        /** 
+         * Reset all class attributes
+         *          
+         * 
+         */
+        void ResetVariables();
+
+        /**
+         * Checks wether or not a ETel request can be performed while 
+         * offline mode is enabled
+         *          
+         * 
+         * @param aIpc Ipc number of the request
+         * @return TBool 
+         */
+        TBool IsRequestPossibleInOffline( TInt aIpc ) const;
+
+    private:
+
+        /**
+         * A pointer to the Phone TSY
+         * Not own.         
+         */
+        CMmPhoneTsy* iMmPhone;
+
+        /**
+         * A pointer to the SMS extension
+         * Own.         
+         */
+        CMmSmsExtInterface* iMmSmsExtInterface;
+
+        /**
+         * A pointer to the SMS storage sub-session
+         * Not own.         
+         */
+        CMmSmsStorageTsy* iMmSmsStorageTsy;
+
+        /**
+         * A pointer to the SAT service interface provided by the SAT
+         * TSY.
+         * Not own.
+         */
+        MStkTsySatService* iTsySatMessaging;
+
+        /**
+         * Routing activity
+         */
+        TSmsRoutingActivity iServerRoutingActivity;
+
+        /**
+         * Receive mode
+         */
+        RMobileSmsMessaging::TMobileSmsReceiveMode iMobileSmsReceiveMode;
+
+        /**
+         * Notify receive mode pointer
+         * Not own.         
+         */
+        RMobileSmsMessaging::TMobileSmsReceiveMode* iNotifyReceiveModeChangePtr;
+
+        /**
+         * Wait for unstored message pointer
+         * Not own.         
+         */
+        TAny* iReceiveMessageParamsPtr;
+
+        /**
+         * Wait for unstored message pointer
+         * Not own.         
+         */
+        TDes8* iReceiveMessagePduPtr;
+
+        /**
+         * Notify SMS bearer pointer
+         * Not own.         
+         */
+        RMobileSmsMessaging::TMobileSmsBearer* iNotifySmsBearerPtr;
+
+        /**
+         * A pointer to send message attributes
+         * Not own.         
+         */
+        TDes8* iSendMessageMsgAttrPckgPtr;
+
+        /**
+         * A pointer to get message store info
+         * Not own.         
+         */
+        TDes8* iGetMessageStoreInfoPtr;
+
+        /**
+         * Store all parameter sets buffer
+         * Not own.         
+         */
+        TDes8* iStoreSmspBufferPtr;
+
+        /**
+         * Store all parameter sets index         
+         */
+        TInt iStoreSmspIndex;
+         
+        /**
+         * Request handle type         
+         */
+        TSmsRequestTypes iReqHandleType;
+
+        /**
+         * Pointer to TSY request handle store
+         * Own.                  
+         */
+        CMmTsyReqHandleStore* iTsyReqHandleStore;
+
+        /**
+         * A table for Sms request handles                  
+         */
+        TTsyReqHandle iSmsReqHandles[EMultimodeSmsMaxNumOfRequests];
+
+        /**
+         * SMSP list, in streamed format, for two phased list retrieval
+         * Not own.                  
+         */
+        CBufBase* iSMSPList;
+
+        /**
+         * SMSP size buffer, for two phased list retrieval                
+         */        
+        TInt* iRetSMSPSize;
+        
+        /**
+         * SMSP client id for two phased list retrieval                
+         */             
+        RMobilePhone::TClientId* iSMSPClientId;
+
+        /**
+         * SMS message array for incoming messages that are waiting
+         * acknowledging from SMS stack     
+         * Own.                               
+         */
+        CArrayPtrFlat<TSmsMsg>* iSmsMsgArray;
+
+        /**
+         * Flag that indicates if client storage is full                  
+         */        
+        TBool iClientStorageFull;
+
+        /**
+         * Number of SMS Locations on Sim Card                  
+         */
+        TUint8 iSmsNumOfLoc;
+
+        /**
+         * SMS send request
+         * stores the last sent message for possible re-send attempts
+         * Own.                                    
+         */
+        CSmsSendRequest* iSmsSendReq;
+
+        /**
+         * On-line/off-line status of CS hardware.
+         * At this moment, only needed for method ResumeSmsReception                           
+         */
+        TBool iIsOffline;
+
+        /**
+         * true if a ResumeSmsReception request has come during off-line
+         * mode. See method ResumeSmsReception                           
+         */
+        TBool iResumeSmsReceptionPending;
+
+        /** 
+         * Indicating status of NoFdnCheck
+         */ 
+        enum TSmsNoFdnCheckStatus
+            {
+            ESmsNoFdnCheckUnknown, 
+            ESmsNoFdnCheckUsed,
+            ESmsNoFdnCheckNotUsed                      
+            }; 
+            
+        /** 
+         * Indicating if send message no fdn check request is ongoing
+         */ 
+        TSmsNoFdnCheckStatus iSmsNoFdnCheckFlag;          
+
+        TInt iExpectAckOrNack;
+        
+};
+#endif // CMMSMSTSY_H
+
+//  End of File