telephonyserverplugins/common_tsy/commontsy/inc/mmtsy/cmmphonetsy.h
changeset 0 3553901f7fa8
child 14 7ef16719d8cb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserverplugins/common_tsy/commontsy/inc/mmtsy/cmmphonetsy.h	Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,2716 @@
+/*
+* 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 CMMPHONETSY_H
+#define CMMPHONETSY_H
+
+//  INCLUDES
+#include <etelmm.h>
+#include <et_phone.h>
+#include <mmretrieve.h>
+#include <pcktcs.h>
+#include <e32property.h>
+#include <centralrepository.h>
+#include <ctsy/mltsyfactorybase.h>
+#include "cmmmessagemanagerbase.h"
+#include "MmTsy_timeoutdefs.h"
+#include <ctsy/serviceapi/mmtsy_defaults.h>
+#include <ctsy/tflogger.h>
+#include "CMmPrivateUtility.h"
+#include <ctsy/serviceapi/ctsydomainpskeys.h>
+#include <ctsy/serviceapi/mctsysatservice.h>
+#include <ctsy/pluginapi/mtelephonyaudiocontrolcallback.h>
+#include <hwrmpower.h>
+#include "BatteryInfoObserver.h"
+#include "ChargingStatusObserver.h"
+
+// FORWARD DECLARATIONS
+#ifdef REQHANDLE_TIMER
+class CResponseTimer;
+class CResponseTimerStore;
+#endif
+class CMmConferenceCallTsy;
+class CMmSmsTsy;
+class CMmBroadcastTsy;
+class CMmONStoreTsy;
+class CMmENStoreTsy;
+class CMmPhoneBookStoreTsy;
+class CStorageInfoData;
+class CTsySatMessagingBase;
+class CMmUssdTsy;
+class CMmCustomTsy;
+class CMmPacketServiceTsy;
+
+class CMmPhoneExtInterface;
+class CMmTsyReqHandleStore;
+class CMmCallList;
+class CMmLineList;
+class CMmPBList;
+
+class CMmCallTsy;
+class CHeartbeatRunner;
+class CMmNetTsy;
+class CMmDtmfTsy;
+class CMmSupplServTsy;
+class CMmSecurityTsy;
+class CMmCustomSecurityTsy;
+
+class CMmPhoneFactoryTsy;
+class CMmDataPackage;
+
+class MTelephonyAudioControl;
+
+// CLASS DECLARATION
+
+/**
+ *  CMmPhoneTsy contains mode-independent phone functionality.
+ *  Extension request handles and parameters are stored as attributes.
+ */
+ 
+NONSHARABLE_CLASS( CMmPhoneTsy ) : public CPhoneBase,
+                                   public MTelephonyAudioControlCallback,
+                                   public MBatteryInfoNotifier,
+                                   public MChargingStatusNotifier
+    {
+    
+    public: // Friend classes
+
+        /** Classes which also implement RMobilePhone functionality
+            are declared as friends */
+            
+        friend class CMmNetTsy;
+        friend class CMmDtmfTsy;
+        friend class CMmSupplServTsy;
+        friend class CMmSecurityTsy;
+        
+    public: // Enumerations
+
+        /** Phone request types*/
+        
+        enum TPhoneRequestTypes
+            {
+            EMultimodePhoneReqHandleUnknown, //0
+            EMultimodePhoneNotifyModemDetected,
+            EMultimodePhoneCapsChangeNotification,
+            EMultimodePhoneNotifyDTMFCaps,
+            EMultimodePhoneSendDTMFTones,
+            EMultimodePhoneStartDTMFTone, //5
+            EMultimodePhoneStopDTMFTone,
+            EMultimodePhoneSendNetworkServiceRequest,
+            EMultimodePhoneGetDetectedNetworksPhase1, 
+            EMultimodePhoneNotifyNetworkRegistrationStatusChange, 
+            EMultimodePhoneNotifyModeChange, //10
+            EMultimodePhoneNotifyCurrentNetworkChange, 
+            EMultimodePhoneNotifySignalStrengthChange, 
+            EMultimodePhoneNotifyNetworkTimeInfoChange, 
+            EMultimodePhoneNotifyNWSelectionSettingChange, 
+            EMultimodePhoneNotifyNWTimeInfoChange, //15
+            EMultimodePhoneSelectNetwork, 
+            EMultimodePhoneSetNWSelectionSetting, 
+            EMultimodePhoneSetCallForwardingStatus, 
+            EMultimodePhoneGetIdentityServiceStatus,
+            EMultimodePhoneSetCallBarringStatus, //20
+            EMultimodePhoneSetSSPassword,
+            EMultimodePhoneSetCallWaitingStatus,
+            EMultimodePhoneSetFdnSetting,
+            EMultimodePhoneGetFdnStatus,
+            EMultimodePhoneNotifyCallForwardingStatusChange,
+            EMultimodePhoneNotifyCallBarringStatusChange,
+            EMultimodePhoneNotifyCallWaitingStatusChange,
+            EMultimodePhoneNotifyAlsLineChange, 
+            EMultimodePhoneNotifyFdnStatusChange, 
+            EMultimodePhoneGetCallForwardingStatusPhase1,
+            EMultimodePhoneGetCallBarringStatusPhase1,
+            EMultimodePhoneGetCallWaitingStatusPhase1, 
+            EMultimodePhoneNotifySecurityCapsChange,
+            EMultimodePhoneGetLockInfo, 
+            EMultimodePhoneNotifyLockInfoChange,
+            EMultimodePhoneSetLockSetting,
+            EMultimodePhoneChangeSecurityCode,
+            EMultimodePhoneNotifySecurityEvent,
+            EMultimodePhoneVerifySecurityCode,
+            EMultimodePhoneAbortSecurityCode,
+            EMultimodePhoneNotifyBatteryInfoChange,
+            EMultimodePhoneNotifyStopInDTMFString,
+            EMultimodePhoneNotifyCallServiceCapsChange,
+            EMultimodePhoneNotifyCallForwardingActive,
+            EMultimodePhoneNotifyIccAccessCapsChange,
+            EMultimodePhoneGetCustomerServiceProfile,
+            EMultimodePhoneGetServiceTable, 
+            EMultimodePhoneGetPhoneStoreInfo, 
+            EMultimodePhoneOutOfMemory, 
+            EMultimodePhoneGetAlsLine,
+            EMultimodePhoneSetAlsLine,
+            EMultimodePhoneGetNITZInfo,
+            EMultimodePhoneGetCellInfo,
+            EMultimodePhoneNotifyCellInfoChange,
+            EMultimodePhoneGetServiceProviderName,
+            EMultimodePhoneGetNetworkRegistrationStatus,
+            EMultimodePhoneGetSubscriberId,
+            EMultimodePhoneNotifyNetworkSecurityLevelChange,
+            EMultimodePhoneGetCipheringIndicatorStatus,
+            EMultimodePhoneGetBatteryInfo,
+            EMultimodePhoneGetPhoneId,
+            EMultimodePhoneNotifyCurrentNetworkNoLocationChange, 
+            EMultimodePhoneNotifyIndicatorChange,
+            EMultimodePhoneGetAuthorizationInfoPhase1,
+            EMultimodePhoneIMSAuthenticate,
+            EMultimodePhoneGetMailboxNumbers,
+            EMultimodePhoneEnumerateAPNEntries,
+            EMultimodePhoneGetAPNname,    
+            EMultimodePhoneGetIccMessageWaitingIndicators,
+            EMultimodePhoneSetIccMessageWaitingIndicators,
+            EMultimodePhoneNotifyIccMessageWaitingIndicatorsChange,
+            EMultimodePhoneGetSecurityCodeInfoPin1,
+            EMultimodePhoneGetSecurityCodeInfoPin2,
+            EMultimodePhoneGetSecurityCodeInfoPuk1,
+            EMultimodePhoneGetSecurityCodeInfoPuk2,
+            EMultimodePhoneGetSecurityCodeInfoPhonePassword,
+            EMultimodePhoneGetSecurityCodeInfoSPC,
+            EMultimodePhoneGetSecurityCodeInfoPhonebookHiddenKey,
+            EMultimodePhoneGetSecurityCodeInfoUSIMAppPin,
+            EMultimodePhoneGetSecurityCodeInfoSecondUSIMAppPin,
+            EMultimodePhoneGetSecurityCodeInfoUniversalPin,
+            EMultimodePhoneGetSecurityCodeInfoUniversalPuk,
+            EMultimodePhoneNotifySecurityCodeInfoChange,
+            EMultimodePhoneAppendAPNName,
+            EMultimodePhoneDeleteAPNName,
+            EMultimodePhoneNotifyAPNListChange,
+            EMultimodePhoneSetAPNControlListServiceStatus,
+            EMultimodePhoneGetAPNControlListServiceStatus,
+            EMultimodePhoneNotifyAPNControlListServiceStatusChange,
+            EMultimodePhoneSendNetworkServiceRequestNoFdnCheck,
+            EMultimodePhoneNotifySendNetworkServiceRequest,
+            EMultimodePhoneNotifyAllSendNetworkServiceRequest,
+            EMultimodePhoneGetCurrentActiveUSimApplication,             
+            EMultimodePhoneTerminateAllCalls,
+            EMultimodePhoneNotifyDtmfEvent, 
+            // ATTENTION:: Declare constant for those requests that need
+            // own request handle record in iTsyReqHandleStore above the
+            // following!
+            EMultimodePhoneMaxNumOfRequests
+            };
+
+        class CNosBootState : public CBase
+            {
+            public:
+                TBool iSIMReady;
+                TBool iADNReady;
+                TBool iSecReady;
+                TBool iCachingActive;
+            };
+            
+        /**
+        * Every KLifeTimeUpdateInterval sec of the call, life time duration param is updated
+        */
+        enum { KLifeTimeUpdateInterval = 10	};                    
+  
+     public: // From MTelephonyAudioControlCallback
+    
+        /**
+         * Informs errors from the Telephony Audio Control
+         *
+         * @param aCallName Call where the error happened
+         * @param aError The error code
+         */
+        void NotifyTelephonyAudioControlError( const TName& aCallName, 
+                                               const TInt& aError );
+        
+        /**
+         * This method returns the information when modem status is ready
+         *
+         * @return ETrue if the modem is ready
+         */
+         TBool IsModemStatusReady() const;
+         
+    private:
+		  /** used for queuing GetServiceTable requests */
+		  struct TServiceTableRequests
+		      {
+		      /** ETel request handle */
+		      TTsyReqHandle iReqHandle;
+		      /** Table to be cached */ 
+		      RMobilePhone::TMobilePhoneServiceTable* iTable;
+		      /** Table to be cached */
+		      RMobilePhone::TMobilePhoneServiceTableV1* iTableData;	
+		      };
+		
+          /** used for queuing GetSubscriberId requests */
+          struct TSubscriberIdRequest
+               {
+               /** ETel request handle */
+               TTsyReqHandle iReqHandle; 
+               /** pointer to client-side    data*/
+               RMobilePhone::TMobilePhoneSubscriberId* iRetSubscrId; 
+               };
+          
+          /** used for queuing GetPhoneId requests */
+          struct TGetPhoneIdRequest
+               {
+               /** ETel request handle */
+               TTsyReqHandle iReqHandle; 
+               /** pointer to client-side    data*/
+               RMobilePhone::TMobilePhoneIdentityV1* iRetPhoneId; 
+               };
+               
+          /**Used for queing GetServiceProviderName requests */       
+          struct TServiceProviderNameRequest
+               {
+               /** ETel request handle */
+               TTsyReqHandle iReqHandle;
+               /** pointer to client side data */
+               RMobilePhone::TMobilePhoneServiceProviderNameV2*
+                   iServiceProviderName;     
+               };
+
+          /** Service table request types */
+          enum TServiceTableRequest
+               {
+               ENoRequest,
+               ESIMRequest,
+               EUSIMRequest
+               };
+
+          struct TCustomerServiceProfileIdRequest
+               {
+               /** ETel request handle */
+               TTsyReqHandle iReqHandle; 
+               /** pointer to client-side    data */
+               RMobilePhone::TMobilePhoneCspFileV1* iRetCspFile; 
+               };
+            
+          struct TGetServiceTableRequest
+               {
+               /** ETel request handle */
+               TTsyReqHandle iReqHandle;
+               /** Table to be cached */ 
+               RMobilePhone::TMobilePhoneServiceTable* iTable;
+               /** Table to be cached */
+               RMobilePhone::TMobilePhoneServiceTableV1* iTableData; 
+               //** Cache done for this req*/
+               TBool iCaching;
+               };
+               
+          struct TGetAlsLineRequest
+               {
+               /** ETel request handle */
+               TTsyReqHandle iReqHandle; 
+               /** pointer to client-side    data */
+               RMobilePhone::TMobilePhoneALSLine* iALSLine; 
+               };
+
+    public:  // Constructors and destructor
+
+        /**
+         * Two-phased constructor.
+         *          
+         *
+         * @param aMessageManager: Pointer to the message manager. The returned 
+         * 		CMmPhoneTsy takes ownership of this parameter.
+         * @param aMmPhoneFactoryTsy Pointer to the phone factory (which is needed
+         * 		for Sim Atk TSY creation). The returned CMmPhoneTsy does not take
+         * 		ownership of this parameter. 
+         * @param aFactory Pointer Ltsy factory base. The returned CMmPhoneTsy
+         * 		takes ownership of this parameter.
+         * return created phone object 
+         */
+        IMPORT_C static CMmPhoneTsy* NewL(         
+            CMmMessageManagerBase* aMessageManager,
+            CMmPhoneFactoryTsy* aMmPhoneFactoryTsy,
+            MLtsyFactoryBase* aFactory );
+
+        /**
+         * Destructor.
+         */
+        virtual ~CMmPhoneTsy();
+
+        // New functions
+
+        /**
+         * Initialisation method that is called from ETel Server.
+         *          
+         *
+         */
+        virtual void Init();
+
+        /**
+         * Creates new object by name and returns a pointer to it.
+         *          
+         *
+         * @param aNewName 
+         * return pointer to the created object
+         */
+        virtual CTelObject* OpenNewObjectByNameL( const TDesC& aName );
+    
+        /**
+         * Creates new Line object and returns a pointer to it. All 
+         * objects opened from the phone are opened by name, hence 
+         * this method is NOT SUPPORTED.
+         *          
+         *
+         * @param aNewName 
+         * return pointer to the created object
+         */
+        virtual CTelObject* OpenNewObjectL( TDes& aNewName );
+
+        /**
+         * Dispatches multimode API functions calls
+         *          
+         *
+         * @param aTsyReqHandle TSY request handle
+         * @param aIpc request IPC number
+         * @param aPackage packaged request parameters
+         * @return result of the request
+         */
+        virtual TInt ExtFunc( const TTsyReqHandle aTsyReqHandle, 
+            const TInt aIpc, 
+            const TDataPackage& aPackage );
+
+        /**
+         * Returns request mode for given IPC.
+         *          
+         *
+         * @param aIpc IPC number
+         * @return request mode
+         */
+        virtual CTelObject::TReqMode ReqModeL( const TInt aIpc );
+    
+        /**
+         * Returns number of slots to be used for given IPC
+         *          
+         *
+         * @param aIpc request IPC number
+         * @return result of the request
+         */
+        virtual TInt NumberOfSlotsL( const TInt aIpc );
+
+        /**
+         * Cancels request that's IPC number and request handle are given in
+         * parameters
+         *          
+         *
+         * @param aIpc request IPC number
+         * @param aTsyReqHandle TSY request handle
+         * @return result of the request
+         */
+        virtual TInt CancelService( const TInt aIpc, 
+            const TTsyReqHandle aTsyReqHandle );
+    
+        /**
+         * Fills the given pointer with phone information (core)
+         *          
+         *
+         * @param aTsyReqHandle TSY request handle
+         * @param aPhoneInfo phone information
+         * @return Return value to the ETel Server
+         */
+        virtual TInt GetInfo( const TTsyReqHandle aTsyReqHandle, 
+            RPhone::TPhoneInfo* aPhoneInfo );
+    
+        /**
+         * Request for caps change notifications
+         *          
+         *
+         * @param aTsyReqHandle TSY request handle
+         * @param aCaps phone caps
+         * @return Return value to the ETel Server
+         */
+        virtual TInt NotifyCapsChange( const TTsyReqHandle aTsyReqHandle, 
+            RPhone::TCaps* aCaps );
+    
+        /**
+         * Cancels caps change notifications
+         *          
+         *
+         * @param aTsyReqHandle TSY request handle
+         * @return Return value to the ETel Server
+         */
+        virtual TInt NotifyCapsChangeCancel( 
+            const TTsyReqHandle aTsyReqHandle );
+    
+        /**
+         * Controlled initialisation
+         *          
+         *
+         * @param aTsyReqHandle TSY request handle
+         * @return Return value to the ETel Server
+         */
+        virtual TInt ControlledInitialisation( 
+            const TTsyReqHandle aTsyReqHandle );
+    
+        /**
+         * Cancels controlled initialisation
+         *          
+         *
+         * @param aTsyReqHandle TSY request handle
+         * @return Return value to the ETel Server
+         */
+        virtual TInt ControlledInitialisationCancel( 
+            const TTsyReqHandle aTsyReqHandle );
+    
+        /**
+         * Request for modem detected notifications.
+         *          
+         *
+         * @param aTsyReqHandle Request handle
+         * @param aDetection Ptr to TModemDetection 
+         * object
+         * @return KErrNone
+         */
+        virtual TInt NotifyModemDetected( const TTsyReqHandle aTsyReqHandle, 
+            RPhone::TModemDetection* aDetection );
+        
+        /**
+         * Cancels modem detected notifications.
+         *          
+         *
+         * @param aTsyReqHandle Request handle
+         * @return KErrNone
+         */
+        virtual TInt NotifyModemDetectedCancel( 
+            const TTsyReqHandle aTsyReqHandle );
+        
+        /**
+         * Fills the given pointer with phone capabilities (core)
+         *          
+         *
+         * @param aTsyReqHandle TSY request handle
+         * @param aCaps phone capabities
+         * @return Return value to the ETel Server
+         */
+        virtual TInt GetCaps( const TTsyReqHandle aTsyReqHandle, 
+            RPhone::TCaps *aCaps );
+
+        /**
+         * Fills the given pointer with phone status (core)
+         *          
+         *
+         * @param aTsyReqHandle TSY request handle
+         * @param aStatus phone status
+         * @return Return value to the ETel Server
+         */
+        virtual TInt GetStatus( const TTsyReqHandle aTsyReqHandle, 
+            RPhone::TStatus *aStatus );
+    
+        /**
+         * Fills the given pointer with maximum number of supported lines
+         *          
+         *
+         * @param aTsyReqHandle TSY request handle
+         * @param aCount line count
+         * @return Return value to the ETel Server
+         */
+        virtual TInt EnumerateLines( const TTsyReqHandle aTsyReqHandle, 
+            TInt *aCount );
+    
+        /**
+         * Fills the given pointer with line information
+         *          
+         *
+         * @param aTsyReqHandle: TSY request handle
+         * @param aLineInfo: line information
+         * @return TInt: Return value to the ETel Server
+         */
+        virtual TInt GetLineInfo(  const TTsyReqHandle aTsyReqHandle, 
+          TLineInfoIndex *aLineInfo );
+
+        /**
+         * Register given notification
+         *          
+         *
+         * @param aIpc IPC number
+         * @return Return value to the ETel Server
+         */
+        virtual TInt RegisterNotification( const TInt aIpc );
+    
+        /**
+         * Deregister given notification
+         *          
+         *
+         * @param aIpc IPC number
+         * @return Return value to the ETel Server
+         */
+        virtual TInt DeregisterNotification( const TInt aIpc );
+        
+        /**
+         * Completes caps change notification
+         *          
+         *
+         * @param None
+         */
+        void CompleteNotifyCapsChange();
+
+        /**
+         * Complete the client request when modem has been detected.
+         *          
+         *
+         * @param aModemStatus Modem status
+         */
+        virtual void CompleteNotifyModemDetected( 
+            RPhone::TStatus aModemStatus );
+
+        /**
+         * Returns the active phone extension
+         *          
+         *
+         * @return pointer to the active phone extension
+         */
+        virtual CMmPhoneExtInterface* GetActivePhoneExtension();
+
+        /**
+         * Returns a pointer to the call list
+         *          
+         *
+         * @return pointer to call list
+         */
+        virtual CMmCallList* CallList();
+
+        /**
+         * Returns a pointer to the line list
+         *          
+         *
+         * @return pointer to line list
+         */
+        virtual CMmLineList* LineList();
+
+        /**
+         * Returns a pointer to the line list
+         * 
+         *                  
+         * @return pointer to phonebook list
+         */
+        virtual CMmPBList* PBList();
+
+        /**
+         * Sets pointer to the conference call
+         *          
+         *
+         * @param aMmConferenceCallTsy pointer to CC object
+         */
+        virtual void SetConferenceCall(
+            CMmConferenceCallTsy* aMmConferenceCallTsy );
+
+        /**
+         * Returns pointer to the conference call
+         *          
+         *
+         * @return pointer to conference call
+         */
+        virtual CMmConferenceCallTsy* ConferenceCall();
+       
+        /**
+         * Notifies client about ALS line change
+         *          
+         *
+         */
+        virtual void CompleteNotifyALSLineChange( );
+
+        /**
+         * Completes the fdn setting request
+         *          
+         *
+         * @param aErrorCode error/success code
+         */
+        virtual void CompleteSetFdnSettingL( TInt aErrorCode );
+        
+        /**
+         * Notifies client about fdn status change
+         *          
+         *
+         */
+        virtual void CompleteNotifyFdnStatusChange( );
+
+        /**
+         * Completes the fdn status request
+         *          
+         *
+         * @param aErrorCode error/success code
+         */
+        virtual void CompleteGetFdnStatus( CMmDataPackage* aDataPackage,
+            TInt aErrorCode );
+
+        /**
+         * Completes client GetSubcriberId request
+         *          
+         *
+         * @param aImsiData IMSI code
+         * @param aError error/success code
+         */
+        virtual void CompleteGetSubscriberIdL( 
+            TBuf8<RMobilePhone::KIMSISize> aImsiData,
+            TInt aError );
+
+        /**
+         * Completes initialization of the phone
+         *          
+         *
+         */
+        virtual void CompleteNotifyModemStatusReady();
+
+        /**
+         * Initializes SIM dependent parts
+         *          
+         *
+         */
+        virtual void CompleteNotifySimStatusReadyL();
+
+        /**
+         * Sets the boot security flag iSecReady to ETrue
+         *          
+         *
+         */
+        void CompleteNotifySecurityReady();
+
+        /**
+         * Initializes Phonebook caching, this happens after SIM is ready
+         *          
+         *
+         */
+        void StartPBCachingL();
+
+        /**
+         * Returns current DOS bootstate
+         *          
+         *
+         * @return DOS boot state
+         */
+        virtual CMmPhoneTsy::CNosBootState* NosBootState();
+
+        /**
+         * Returns current Phonebook state
+         *          
+         *
+         * @return pointer to pb state -class
+         */
+        virtual CStorageInfoData* PhoneBookState();
+
+        /**
+         * Sets new DOS bootstate
+         *          
+         *
+         * @param aNewState new state
+         */
+        virtual void SetNosBootState( CMmPhoneTsy::CNosBootState* aNewState );
+
+        /**
+         * Returns a pointer to active phone extension.
+         *          
+         *
+         * @return pointer to requested object
+         */
+        CMmPhoneExtInterface* PhoneExtInterface();
+
+        /**
+         * Sets iPhoneIdentitys iSerialNumber
+         *          
+         *
+         * @param aSerialData serial number
+         * @param aError error code
+         */
+        virtual void CompleteGetPhoneId( 
+            TBuf8<KSerialNumberLength> aSerialData, 
+            TInt aError );
+            
+        /**
+         * Cancels get phone id request 
+         *          
+         *
+         * @param aTsyReqHandle TSY request handle
+         * @return Result of the request
+         */
+        TInt MobilePhoneGetPhoneIdCancel( const TTsyReqHandle aTsyReqHandle );            
+
+        /**
+         * Returns pointer to the message manager
+         *          
+         *
+         * @return pointer to the requested object
+         */
+        virtual CMmMessageManagerBase* MessageManager();
+
+        /**
+         * Returns pointer to the SMS session
+         *          
+         *
+         * @param None
+         * @return pointer to the SmsSession
+         */
+        virtual CMmSmsTsy* SmsSession();
+
+        /**
+         * Returns pointer to the SMS service as a MCtsySatService.
+         *          
+         *
+         * @return pointer to the SmsService
+         */
+        virtual MCtsySatService& SmsService();
+        
+        /**
+         * Set SMS session
+         *          
+         *
+         * @param aMmSmsTsy
+         */
+        virtual void SetSmsSession( CMmSmsTsy* aMmSmsTsy );
+
+        /**
+         * Returns pointer to the Packet Data session
+         *          
+         *
+         * @param None
+         * @return pointer to the Packet Data session
+         */
+        virtual CMmPacketServiceTsy* PacketDataSession();
+
+        /**
+         * Sets Packet Data pointer to NULL
+         *          
+         *
+         * @param None
+         */
+        virtual void ResetPacketDataSession();
+
+        /**
+         * Returns pointer to the SmsTsy
+         *          
+         *
+         * @return pointer to the SmsTsy
+         */
+        virtual CMmSmsTsy* GetSmsTsy();
+        
+        /**
+         * Returns pointer to the CustomTsy
+         *          
+         *
+         * @return pointer to the CustomTsy
+         */
+        virtual CMmCustomTsy* GetCustomTsy();
+
+        /**
+         * Set pointer to the CustomTsy
+         *          
+         *
+         * @param aMmCustomTsy
+         */
+        virtual void SetCustomTsy( CMmCustomTsy* aMmCustomTsy );
+
+        /**
+         * Complete notify ICC access capabilities change
+         *          
+         *
+         * @param TInt aErrorCode Error code
+         */
+        virtual void CompleteNotifyIccAccessCapsChange();
+
+        /**
+         * Complete Get Customer Service Profile
+         *          
+         *
+         * @param aCspFile CSP result from SIM
+         * @param aErrorCode error code
+         */
+        virtual void CompleteGetCustomerServiceProfile( 
+            RMobilePhone::TMobilePhoneCspFileV1 aCspFile,
+            TInt aErrorCode );
+
+        /**
+         * This function cancels an outstanding ICC caps change 
+         * notification request
+         *          
+         *
+         * @param aTsyReqHandle Request handle
+         * @return KErrNone
+         */
+        TInt NotifyIccAccessCapsChangeCancel( 
+            const TTsyReqHandle aTsyReqHandle );
+
+        /**
+         * Complete Get Service Table
+         *          
+         *
+         * @param aTableData result from SIM
+         * @param aErrorCode error code
+         */
+        virtual void CompleteGetServiceTableL( 
+            RMobilePhone::TMobilePhoneServiceTableV1 aTableData,
+            TInt aErrorCode );
+
+        /**
+         * Complete Get Phone Store Info
+         *          
+         *
+         * @param aPhoneStoreInfo Result from SIM
+         * @param aErrorCode error code
+         */
+        virtual void CompleteGetPhoneStoreInfo( 
+            RMobilePhoneStore::TMobilePhoneStoreInfoV1 aPhoneStoreInfo, 
+            TInt aErrorCode );
+        
+        /**
+         * This function completes battery informations.
+         *          
+         *
+         * @param aDataPackage data package
+         * @param aErrorCode error code      
+         */
+        void CompleteNotifyBatteryInfoChange(
+            CMmDataPackage* aDataPackage,
+            TInt aErrorCode );
+
+        /**
+         * Complete Get ServiceProvider Name
+         *          
+         *
+         * @param aDataPackage
+         * @param aErrorCode error code
+         */
+        virtual void CompleteGetServiceProviderName(
+            CMmDataPackage* aDataPackage, TInt aErrorCode );
+
+        /**
+         * This method can be used to find out what protocol mode is
+         * currently active.
+         *          
+         *         
+         * @param aMode Mode
+         */
+        virtual void GetStaticExtensionMode( 
+            RMobilePhone::TMobilePhoneNetworkMode* aMode );
+
+        /**
+         * Removes a line form LineList and recalculates phone capabilities.
+         * Checks the mode from all 
+         * lines and then defines the capabilities.
+         *          
+         *
+         * @param aLineName
+         */
+        void RemoveLine( const TName &aLineName );
+
+        /**
+         * Sets pointer to call object wishing to answer incoming data call.
+         *          
+         *
+         * @param aMmCall
+         * @return Call object
+         */
+        void SetWaitingCallForData( CMmCallTsy* aMmCall );
+
+        /**
+         * Returns pointer to call object wishing to answer incoming data call
+         *          
+         *
+         * @param None
+         * @return Call object
+         */
+        CMmCallTsy* WaitingCallForData();
+
+#ifdef REQHANDLE_TIMER
+        /**
+         * Called when the timer expires and a request must be completed
+         * automatically
+         *          
+         *
+         * @param aReqHandleType req handle type.
+         * @param aObject object that should handle this
+         * @param aIPC
+         */
+        virtual void TimerExpired( CTelObject *aObject, TInt aReqHandleType, 
+            TInt aIPC );
+       
+        /**
+         * Calls the needed complete method due timer expiration
+         *          
+         *
+         * @param aReqHandleType req handle type.
+         * @param aError error value
+         */
+        void Complete( TInt aReqHandleType, TInt aError );
+
+        /**
+         * Gets the pointer to the private member attribute iTimeStampStore
+         *          
+         *
+         * @return pointer to the time stamp store
+         */
+        virtual CResponseTimerStore* GetTimeStampStore();
+
+        /**
+         * gets the pointer to the member private attribute iReqHandleTimer
+         *          
+         *
+         * @return pointer to the the iReqHandleTimer
+         */
+        virtual CResponseTimer* GetTimer();
+#endif
+
+        /**
+         * Completes GetAlsLine
+         *          
+         *
+         * @param aAlsStatus ALS line status
+         * @param aErrorCode Symbian OS error code
+         */
+        virtual void CompleteGetAlsLine( 
+            RMobilePhone::TMobilePhoneALSLine aAlsStatus, TInt aErrorCode );
+        /**
+         * Completes SetAlsLine
+         *          
+         *
+         * @param aErrorCode Symbian OS error code
+         */
+        virtual void CompleteSetAlsLine( TInt aErrorCode );
+
+        /**
+         * Cancels an outstanding GetAlsLine request
+         *          
+         *
+         */
+        virtual TInt GetAlsLineCancel ( const TTsyReqHandle aTsyReqHandle );
+
+        /**
+         * Starts the air time duration timer
+         *          
+         *
+         */
+        virtual void AirTimeTimerCheckStart();
+
+        /**
+         * Starts the air time duration timer
+         *          
+         *
+         */
+        virtual void AirTimeTimerCheckStop();
+
+        /**
+         * Gets the value of the air time duration timer
+         *          
+         *
+         * @param aTime value of the air time duration
+         */
+        virtual void GetAirTimeDuration( TTimeIntervalSeconds& aTime );
+
+        /**
+         * Returns pointer to the SAT messaging
+         *          
+         *
+         * @return pointer to SAT messaging
+         */
+        virtual MStkTsySatService* GetSatMessaging();
+
+        /**
+         * Get State Info
+         *          
+         *
+         * @return TRfStateInfo state info
+         */
+        virtual TRfStateInfo GetRfStateInfo();
+
+        /**
+         * Set State Info
+         *          
+         *
+         * @param aStateInfo state info
+         */
+        virtual void SetRfStateInfo( TRfStateInfo aStateInfo );
+
+        /**
+         * Set Rf Status
+         *          
+         *
+         * @param aRfStatus rf status
+         */
+        virtual void SetRfStatus( TRfStatus aRfStatus );
+
+        /**
+         * Get Rf Status
+         *          
+         *
+         * @return iRfStatusFlag rf status
+         */
+        virtual TRfStatus GetRfStatus();
+
+        /**
+         * Registers SIM files for refresh
+         *          
+         *
+         * @return Error value
+         */
+        TInt SimRefreshRegisterL();
+        
+        /**
+         * Completes the SIM refresh register
+         *          
+         *
+         * @param aErrorCode Symbian OS error code
+         */
+        void CompleteSimRefreshRegister( TInt aErrorCode );
+        
+        /**
+         * Completes update life timer request
+         *          
+         *
+         * @param aErrorCode Symbian OS error code
+         */
+        void CompleteUpdateLifeTimer( TInt aErrorCode );                
+
+        /*
+         * Returns true if refresh called (caching initiated from SIM)
+         *          
+         *
+         * @return ETrue if refresh initiated from SIM, otherwise EFalse
+         */
+        TBool IsRefreshOngoing();
+
+        /**
+         * Completes the refresh now -indication, sets refresh flag to ETrue 
+         * and initiates the SIM file caching
+         *          
+         *
+         * @param aFilesToRefresh SIM file types that need to be refreshed 
+         */
+        void CompleteSimRefreshNowL( TUint16 aFilesToRefresh );
+
+        /**
+         * Starts caching the next SIM file in queue
+         * const TCacheFileTypes aFileType SIM file type to be refreshed
+         *          
+         *
+         * @return EFalse if no files in queue, otherwise ETrue
+         */
+        TBool CacheNextL();
+
+        /**
+         * Removes SIM file(s) from caching queue and calls complete for 
+         * RefreshNow if no more files in queue
+         *          
+         *
+         * @param aFileType SIM filetypes to be removed from the queue
+         * @param aReadError Error value for reading the cache
+         */
+        void CompleteCacheSimL( const TUint8 aFileType, 
+            TInt aReadError );
+
+        /**
+         * Completes the refresh by notifying server for completion
+         * TBool aReadError: If error occured when reading files: ETrue, 
+         * otherwise EFalse
+         *          
+         *
+         * @param aReadError
+         */
+        void NotifySimRefreshCompletionL( TBool aReadError );
+
+        /**
+         * Completes ims authentication request
+         *          
+         *
+         * @param aDataPackage Holds authentication data from sim
+         * @param aResult Error value
+         */
+        void CompleteImsAuthentication( 
+            CMmDataPackage* aDataPackage,
+            TInt aResult );
+            
+        /**
+         * Completes the NotifyIndicatorChange if indicator state
+         * has changed.
+         *          
+         *
+         */
+        void CompleteNotifyIndicatorChange();
+
+        /**
+         * Completes GetMailboxNumbers request
+         *          
+         *
+         */
+        void CompleteGetMailboxNumbers(  
+            CMmDataPackage* aDataPackage, 
+            TInt aResult );
+    
+#ifdef TF_LOGGING_ENABLED        
+        /**
+         * Overloads original ReqCompleted for logging pourpouses
+         *          
+         *
+         * @param aTsyReqHandle
+         * @param  aError
+         */
+        virtual void ReqCompleted(
+            const TTsyReqHandle aTsyReqHandle,
+            const TInt aError );
+#endif
+
+        /**
+         * Get pointer to Net Tsy
+         *          
+         *
+         */
+        CMmNetTsy* GetNetTsy();
+
+        /**
+         * Get pointer to Security Tsy
+         *          
+         *
+         */
+        virtual CMmSecurityTsy* GetSecurityTsy();
+
+        /**
+         * Get pointer to ONStoreTsy
+         *          
+         *
+         * @return pointer to ONStoreTsy
+         */
+        CMmONStoreTsy* GetONStoreTsy();
+
+        /** 
+         * Get pointer to DTMF Tsy
+         *          
+         *
+         */
+        virtual CMmDtmfTsy* GetDtmfTsy();
+
+        /** 
+         * Get pointer to Supplementary Services Tsy
+         *          
+         *
+         */
+        virtual CMmSupplServTsy* GetSupplServTsy();
+
+        /**
+         * Returns req handle type
+         *          
+         *
+         * @return ReqHandleType
+         */
+        CMmPhoneTsy::TPhoneRequestTypes HandleType();
+
+        /**
+         * Sets the message manager pointer
+         *          
+         *
+         * @param aMessageManager Message manager
+         */
+        void SetMessageManager( 
+            CMmMessageManagerBase* aMessageManager );
+        /**
+         * Completes get call forwarding number request
+         *          
+         *
+         * @param aError error value from 
+         * @param aPackage includes data needed
+         */
+        void CompleteGetCallForwardingNumber( TInt aError, 
+            const CMmDataPackage* aPackage );
+
+        /**
+         * Complete enumerate APN entries request
+         *          
+         *
+         * @param aDataPackage Datapackage
+         * @param aErrorCode Error value
+         */
+        void CompleteEnumerateAPNEntries( CMmDataPackage* aDataPackage, 
+            TInt aErrorCode );
+        
+        /**
+         * Complete Get APN name request
+         *          
+         *
+         * @param aDataPackage Datapackage
+         * @param aErrorCode Error value
+         */
+        void CompleteGetAPNname( CMmDataPackage* aDataPackage, 
+            TInt aErrorCode );
+            
+        /**
+         * Sets ALS Line service status by sim
+         *          
+         *
+         * @param aState boolean for sim based ALS
+         */
+        void SetAlsState( TBool aState );
+        
+        /**
+         * Maps ALS line info value
+         *          
+         *
+         * @param aAlsLineInfo
+         */        
+        RMobilePhone::TMobilePhoneALSLine MapMEALSLine( TInt aAlsLineInfo );
+        
+        /**
+         * Resets ME ALS info from CentRep.
+         *          
+         *
+         */
+        void ResetMEAlsInfo();
+        
+        /**
+         * Returns sim refresh registration status 
+         *          
+         *
+         */    
+        TBool GetSimRefreshRegister(); 
+    
+        /**
+         * Starts new cache when PB read is called and sim refresh registration 
+         * is failed 
+         *          
+         *
+         * @param aPhoneBookType phonebook to be cached
+         * @return error value
+         */  
+        TInt StartNewCacheL( TUint8 aPhoneBookType );
+        
+        /**
+         * Returns pointer to public CentRep
+         *          
+         *
+         */
+        CRepository* GetCfisCenRep();
+        
+        /**
+         * Returns pointer to public CentRep:
+         *          
+         *
+         */
+        CRepository* GetMwisCenRep();
+
+        /**
+         * Returns pointer to private CentRep:
+         *          
+         *
+         */
+        CRepository* GetCfisPRCenRep();
+
+        /**
+         * Complete Append APN name request
+         * 
+         *
+         * @param aErrorCode Error value
+         */
+        void CompleteAppendAPNName( TInt aErrorCode );
+        
+        /**
+         * Complete delete APN entry
+         * 
+         *
+         * @param aErrorCode Error value
+         */
+        void CompleteDeleteAPNName( TInt aErrorCode );
+        
+        /**
+         * Complete notification request
+         *          
+         *
+         * @param aErrorCode Error value
+         */
+        void CompleteNotifyAPNListChanged( TInt aErrorCode );
+
+        /**
+         * Complete Set APN service status
+         * 
+         *
+         * @param aErrorCode Error value
+         */
+        void CompleteSetAPNControlListServiceStatus( TInt aErrorCode );
+        
+        /**
+         * Complete Get APN service status
+         * 
+         *
+         * @param aDataPackage Datapackage
+         * @param aErrorCode Error value
+         */
+        void CompleteGetAPNControlListServiceStatus( CMmDataPackage* 
+            aDataPackage, TInt aErrorCode );
+        
+        /**
+         * Complete service status notification
+         *          
+         *
+         * @param aDataPackage Datapackage
+         * @param aErrorCode Error value
+         */
+        void CompleteNotifyAPNControlListServiceStatusChange( 
+            CMmDataPackage* aDataPackage, TInt aErrorCode );
+            
+        /**
+         * Returns current nr of active calls
+         *
+         */
+        TInt NumberOfActiveCalls() const { return iAmountOfActiveCalls; }
+        
+        /**
+         * Complete call duration change notification
+         *          
+         *
+         */
+        void CompleteNotifyCallDurationChange();                    
+            
+        /**
+         * SetAlsQueryInBoot request
+         *
+         * @param aInBoot bootupflag if als is asked during boot
+         */
+        void SetAlsQueryInBoot( TBool aInBoot );
+            
+        /**
+         * GetAlsQueryInBoot request
+         *
+         * @return TBool
+         */
+        TBool GetAlsQueryInBoot();
+        
+        /**
+         * If HomeZoneParams has been asked
+         *
+         * @return TBool
+         */
+		TBool GetHomeZoneParamsChecked();
+		
+		/**
+         * Set HomeZoneParams status
+         *
+         * @param aHomeZoneChecked
+         */
+		void SetHomeZoneParamsChecked( TBool aHomeZoneChecked );      
+        
+		/**
+	     * This method set the initialization status of the phonebook
+	     *
+		 * @param aIsInitializationActive is initialization active or not
+		 */
+		void SetPBInitActiveStatus( TBool aIsInitializationActive );
+		
+		/**
+		 * This method returns the initialization status of the phonebook
+		 *
+		 * @return Phonebook init status
+		 */
+		 TBool IsPBInitActive();
+        
+		
+        /**
+		 * Complete TerminateAllCalls request
+		 * 
+		 * @param aErrorCode The result of the request
+		 */
+        void CompleteTerminateAllCallsReq(TInt aErrorCode);
+        
+        /**
+        * Notify change of battery info
+        *          
+        * @param aErrorCode error code
+        * @param aBatteryData data structure used to retreive data from a call
+        *  to GetBatteryInfo
+        */
+        void NotifyBatteryInfo( TInt aErrorCode, 
+            CHWRMPower::TBatteryConsumptionData aBatteryData );
+        
+        /**
+        * Notify change of charging status
+        *          
+        * @param aErrorCode error code
+        * @param aBatteryInfo package containing power and battery status
+        */
+        void NotifyChargingStatus( TInt aErrorCode, 
+            RMobilePhone::TMobilePhoneBatteryInfoV1 aBatteryInfo );
+#ifdef USING_CTSY_DISPATCHER
+        /**
+         * Sets iPhoneIdentity
+         * This is for when the LTSY can return the entire TMobilePhoneIdentityV1           
+         *
+         * @param aPhoneId The phone identity
+         * @param aError error code
+         */
+        virtual void CompleteGetPhoneId(
+        	const RMobilePhone::TMobilePhoneIdentityV1& aPhoneId,
+            TInt aError );
+#endif //USING_CTSY_DISPATCHER
+        
+        /**
+         * This method returns whether SIM is ready or not.
+         *
+         * @return SIM status
+         */
+        TBool IsSIMReady();
+	
+        /*
+		 * This method saves FDN details in case of FDN Phonebook not created
+         *
+         * @since S60 v3.2
+         * @param  aErrorCode Error value
+         * @param  aDataPackage DataPackage
+         */
+        void SaveFdnInfoDetails(TInt aErrorCode, CMmDataPackage* aDataPackage );
+
+    private:
+    
+        /**
+         * C++ default constructor.
+         */
+        CMmPhoneTsy();
+
+        /**
+         * By default Symbian 2nd phase constructor is private.
+         */
+        void ConstructL();
+
+        /**
+         * Initialises transaction handler, TSY req handle store, 
+         * and object lists
+         *          
+         *
+         */
+        void InitStoresAndListsL();
+
+        /**
+         * Initialises extension modules
+         *          
+         *
+         */
+        void InitExtensionModulesL();
+
+        /**
+         * Initialise miscellaneous internal attributes
+         *          
+         *
+         */
+        void InitInternalAttributes();
+
+        /**
+         * Handles extended client requests. Uses TRAP to ensure functioning on
+         * memory allocation failure
+         *          
+         *
+         * @param aTsyReqHandle TSY request handle
+         * @param aIpc request IPC number
+         * @param aPackage packaged request parameters
+         * @return result of the request
+         */
+        TInt DoExtFuncL( const TTsyReqHandle aTsyReqHandle, 
+            const TInt aIpc, 
+            const TDataPackage& aPackage );
+
+        /**
+         * Handles cancel methods that cause message sending to DOS.
+         *          
+         *
+         * @param aIpc request IPC number
+         * @param aTsyReqHandle TSY request handle
+         * @return result of the request
+         */
+        TInt CancelToPhonetL( const TInt aIpc, 
+                const TTsyReqHandle aTsyReqHandle );
+
+        /**
+         * Traped Initialisation method
+         *          
+         *
+         */
+        void InitL();
+
+        /**
+         * Get ICC Access Capabilities
+         *          
+         *
+         * @param aTsyReqHandle
+         * @param aCaps
+         * @return error value
+         */
+        TInt GetIccAccessCaps( const TTsyReqHandle aTsyReqHandle, 
+            TUint32* aCaps );
+
+        /**
+         * Notify Change of ICC Access Caps
+         *          
+         *
+         * @param aCaps
+         * @return error value
+         */
+        TInt NotifyIccAccessCapsChange( TUint32* aCaps );
+        
+        /**
+         * Get Service Table and check validity of client parameters
+         *          
+         *
+         * @param aTsyReqHandle TSY request handle
+         * @param aTable Service Table specifier
+         * @param aTableData Service Table file contents
+         * @return KErrNone or system wide error
+         */
+        TInt GetServiceTableCheckParametersL( 
+            const TTsyReqHandle aTsyReqHandle, 
+            RMobilePhone::TMobilePhoneServiceTable* aTable,
+            TDes8* aTableData );        
+
+        /**
+         * Get Service Table
+         *          
+         *
+         * @param aTsyReqHandle TSY request handle
+         * @param aTable Service Table specifier
+         * @param aTableData Service Table file contents
+         * @return status
+         */
+        TInt GetServiceTableL( const TTsyReqHandle aTsyReqHandle, 
+            RMobilePhone::TMobilePhoneServiceTable* aTable,
+            RMobilePhone::TMobilePhoneServiceTableV1* aTableData );
+
+        /**
+         * This function cancels GetServiceTable request
+         *          
+         *
+         * @param aTsyReqHandle TSY request handle
+         * @return status
+         */
+        TInt GetServiceTableCancel ( const TTsyReqHandle aTsyReqHandle );
+        
+        /**
+         * Get Phone Store Info
+         *          
+         *
+         * @param aInfo pointer to ETel server phone store info data
+         * @param aStoreName name of the store
+         * @return error value
+         */
+        TInt GetPhoneStoreInfoL( TDes8* aInfo,
+            const RMobilePhone::TMobileName* aStoreName );
+
+        /**
+         * This function cancels GetPhoneStoreInfo request
+         *          
+         *
+         * @param aTsyReqHandle TSY request handle
+         * @return status
+         */
+        TInt GetPhoneStoreInfoCancel( const TTsyReqHandle aTsyReqHandle );
+
+        /**
+         * This function returns phone ID.
+         *          
+         *
+         * @param aTsyReqHandle request handle
+         * @param aId aId pointer
+         * @return KErrNone
+         */
+        TInt GetPhoneIdL( const TTsyReqHandle aTsyReqHandle, 
+            RMobilePhone::TMobilePhoneIdentityV1* aId );
+
+        /**
+         * This is a helper function for GetPhoneIdL.
+         *          
+         *
+         * @param aTsyReqHandle request handle
+         * @param aId aId pointer
+         */        
+        void DoGetPhoneIdL(const TTsyReqHandle aTsyReqHandle,
+        		RMobilePhone::TMobilePhoneIdentityV1* aId);
+
+        /**
+         * This function returns subscriber ID.
+         *          
+         *
+         * @param aTsyReqHandle request handle
+         * @param aId aId pointer
+         * @return KErrNone
+         */
+        TInt GetSubscriberIdL( const TTsyReqHandle aTsyReqHandle, 
+            RMobilePhone::TMobilePhoneSubscriberId* aId );
+
+        /**
+         * This function cancels GetSubscriberId request
+         *          
+         * 
+         * @param aTsyReqHandle request handle
+         * @return KErrNone
+         */
+        TInt GetSubscriberIdCancel( const TTsyReqHandle aTsyReqHandle );
+
+        /**
+         * This request function returns Phone Indicator state to the client.
+         *          
+         *
+         * @param aTsyReqHandle request handle
+         * @param aIndicators indicator pointer
+         * @return KErrNone, or KErrGeneral, if the input pointer is NULL
+         */
+        TInt GetIndicators( const TTsyReqHandle aTsyReqHandle,    
+             TUint32* aIndicators);
+        
+        /**
+         * Returns multimode capabilities
+         *          
+         *
+         * @param aTsyReqHandle TSY request handle
+         * @param aCaps multimode capabilities
+         * @return Return value to the ETel Server
+         */
+        TInt GetMultimodeCaps( const TTsyReqHandle aTsyReqHandle, 
+            TUint32* aCaps );
+
+        /**
+         * This function returns signal capabilities
+         *          
+         *
+         * @param aTsyReqHandle Tsy request handle
+         * @param aCaps Capabilities
+         * @return KErrNone
+         */
+        TInt GetSignalCaps( const TTsyReqHandle aTsyReqHandle, 
+            TUint32* aCaps );
+
+        /**
+         * This function returns identity capabilities
+         *          
+         *
+         * @param aTsyReqHandle request handle
+         * @param TaCaps pointer to aCaps
+         * @return KErrNone
+         */
+        TInt GetIdentityCaps( const TTsyReqHandle aTsyReqHandle, 
+            TUint32* aCaps );
+
+        /**
+         * This function returns network capabilities
+         *          
+         *
+         * @param aTsyReqHandle Request handle
+         * @param aCaps Capabilities
+         * @return KErrNone
+         */
+        TInt GetNetworkCaps( const TTsyReqHandle aTsyReqHandle, 
+            TUint32* aCaps );
+
+        /**
+         * This function returns phone indicator capabilities
+         *          
+         *
+         * @param aTsyReqHandle Request handle
+         * @param aActCaps: Action Capabilities (get, notify)
+         * using a RMobilePhone::TMobilePhoneIndicatorCaps -type bitmasks
+         * @param aIndCaps: the kind of indicators can be given
+         * using a RMobilePhone::TMobilePhoneIndicators -type bitmasks
+         * @return KErrNone, or KErrGeneral if any of the input 
+         *              pointers are NULL
+         */
+        TInt GetIndicatorCaps( const TTsyReqHandle aTsyReqHandle,    
+            TUint32* aActCaps,                        
+            TUint32* aIndCaps );
+        
+        /**
+         * Get Customer Service Profile
+         *          
+         *
+         * @param aTsyReqHandle Tsy request handle
+         * @param aCspFile Customer Service Profile file
+         * @return status
+         */
+        TInt GetCustomerServiceProfileL( const TTsyReqHandle aTsyReqHandle, 
+            TDes8* aCspFile );
+ 
+        /**
+         * This function cancels an outstanding get customer service profile
+         * request
+         *         
+         * @param aTsyReqHandle Request handle
+         * @return KErrNone
+         */
+        TInt GetCustomerServiceProfileCancel(
+                const TTsyReqHandle aTsyReqHandle );
+        
+        /**
+         * This function returns battery capabilities.
+         *          
+         *
+         * @param aTsyReqHandle request handle
+         * @param aCaps pointer to aCaps
+         * @return KErrNone
+         */
+        TInt GetBatteryCaps( 
+            const TTsyReqHandle aTsyReqHandle, 
+            TUint32* aCaps );
+
+        /**
+         * This function returns battery informations.
+         *          
+         *
+         * @param aTsyReqHandle request handle
+         * @param aInfo aInfo pointer
+         * @return KErrNone
+         */
+        TInt GetBatteryInfoL( 
+            const TTsyReqHandle aTsyReqHandle, 
+            RMobilePhone::TMobilePhoneBatteryInfoV1* aInfo );
+
+        /**
+         * This function is used to request battery info change notifications.
+         *          
+         *
+         * @param aInfo battery info
+         * @return KErrNone
+         */
+        TInt NotifyBatteryInfoChange( 
+            RMobilePhone::TMobilePhoneBatteryInfoV1* aInfo );
+
+        /**
+         * This function cancels an outstanding battery info change notification
+         * request
+         *          
+         *
+         * @param aTsyReqHandle Request handle
+         * @return KErrNone
+         */
+        TInt NotifyBatteryInfoChangeCancel( 
+            const TTsyReqHandle aTsyReqHandle );
+
+
+        /**
+         * This function is used to request indicator change notifications.
+         *          
+         *
+         * @param aIndicatorState indicator state
+         * @return KErrNone
+         */
+        TInt NotifyIndicatorChange( TUint32* aIndicatorState );
+
+        /**
+         * Cancels NotifyIndicatorChange
+         *          
+         *
+         * @param aTsyReqHandle TSY request handle
+         * @return result of the request
+         *
+         */
+        TInt NotifyIndicatorChangeCancel( const TTsyReqHandle aTsyReqHandle );
+
+        /**
+         * Get service provider name from Sim
+         *          
+         *
+         * @param aTsyReqHandle Tsy request handle
+         * @param aName Service provider name info
+         * @return KErrNone or system wide error code
+         */
+        TInt GetServiceProviderNameL( const TTsyReqHandle aTsyReqHandle, 
+            TDes8* aName );
+
+        /** This function cancels the service provider name retrieving.
+         *        
+         *
+         * @param aTsyReqHandle request handle
+         * @return KErrNone
+         */
+        TInt GetServiceProviderNameCancel( const TTsyReqHandle aTsyReqHandle );
+
+        /**
+         * This method allows a client to find out which voice line 
+         * is currently selected as the active ALS line for outgoing 
+         * voice calls.
+         *          
+         * 
+         * @param aALSLine Selected line
+         * @return KErrNone
+         */
+        TInt GetALSLineL( const TTsyReqHandle aTsyReqHandle,
+            RMobilePhone::TMobilePhoneALSLine* aALSLine );
+        
+        /**
+         * This method allows a client to set which voice line is currently 
+         * selected as the active ALS line for outgoing voice calls
+         *          
+         *
+         * @param aALSLine line selection
+         * @return KErrNone
+         */
+        TInt SetALSLineL( const TTsyReqHandle aTsyReqHandle, 
+            RMobilePhone::TMobilePhoneALSLine* aALSLine );
+        
+        /**
+         * This method allows a client to be notified if the currently selected 
+         * ALS line changes
+         *          
+         *
+         * @param aALSLine new active line 
+         * @return KErrNone
+         */
+        TInt NotifyALSLineChange( 
+            RMobilePhone::TMobilePhoneALSLine* aALSLine );
+
+        /**
+         * This method cancels order to notify if ALS line changes
+         *          
+         *
+         * @param aTsyReqHandle request handle
+         * @return KErrNone
+         */
+        TInt NotifyALSLineChangeCancel( const TTsyReqHandle aTsyReqHandle );
+
+        /**
+         * This method retrieves the current status of the Fixed Dialling 
+         * Numbers service
+         *          
+         *
+         * @param aTsyReqHandle request handle
+         * @param aStatus current status
+         * @return KErrNone
+         */
+        TInt GetFdnStatusL( const TTsyReqHandle aTsyReqHandle,
+            RMobilePhone::TMobilePhoneFdnStatus* aFdnStatus );
+        
+        /**
+         * This method cancels Fixed Dialling Numbers service request
+         *
+         *
+         * @param aTsyReqHandle request handle
+         * @return KErrNone
+         */
+        TInt GetFdnStatusCancel( const TTsyReqHandle aTsyReqHandle );
+
+        /**
+         * This method activates (ON) or deactivates (OFF) the Fixed 
+         * Dialling Numbers (FDN) service. 
+         *          
+         *
+         * @param aTsyReqHandle request handle
+         * @param aFdnsetting new setting
+         * @return KErrNone
+         */
+        TInt SetFdnSettingL( const TTsyReqHandle aTsyReqHandle,
+            const TDataPackage& aPackage );
+
+        /**
+         * This request allows a client to be notified when the status of the 
+         * FDN service has changed
+         *          
+         *
+         * @param aStatus status
+         * @return KErrNone
+         */
+        TInt NotifyFdnStatusChange( 
+            RMobilePhone::TMobilePhoneFdnStatus* aStatus );
+
+        /**
+         * This request cancels order to notify if status changes
+         *          
+         *
+         * @param aTsyReqHandle request handle
+         * @return KErrNone
+         */
+        TInt NotifyFdnStatusChangeCancel( const TTsyReqHandle aTsyReqHandle );
+
+        /**
+         * Returns current indicator state according to batteryInfo,
+         * networkStatus and call state
+         *          
+         *
+         * @return bit mask of enabled features using
+         * RMobilePhone::TMobilePhoneIndicators
+         */
+        TUint32 GetIndicatorState();
+
+        /**
+         * Get current subscriber ID (IMSI) for TSY internal use
+         *          
+         *
+         */
+        void GetSubscriberIdForTSYL();
+
+#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 ); 
+        
+#endif
+ 
+        /**
+         * Checks wether or not a ETel request can be performed
+         * while offline mode is enabled
+         *          
+         *
+         * @param aIpc Ipc number of the request
+         * @return Boolean indicating if request is possible in offline
+         */
+        TBool IsRequestPossibleInOffline( TInt aIpc );
+        
+        /**
+         * Authenticates with data provided by client
+         * @param aAuthenticationData Pointer to IMS authentication data.
+         * @return TInt KErrNone
+         */
+        TInt ImsAuthenticationL( TDes8* aAuthenticationData );
+
+        /**
+         * Cancels sim authenticaiton request
+         *          
+         *
+         * @return KErrNone
+         */
+        TInt ImsAuthenticationCancel();
+        
+        /**
+         * Caches Service Tables
+         *          
+         *
+         * @return KErrNone
+         */
+        void CacheServiceTablesL();
+        
+        /**
+         * Completes caching of Service Tables
+         *          
+         *
+         * @return TInt KErrNone
+         */
+        void CompleteCacheServiceTablesL(const TInt aError);
+        
+        /**
+         * Requests mailbox numbers identifier information
+         * @param aMailBox mailbox data.
+         *          
+         *
+         * @return KErrNone
+         */
+        TInt GetMailboxNumbersL( TDes8* aMailBox );
+        
+        /**
+         * Cancels get mailbox numbers  request
+         *          
+         *
+         * @return KErrNone
+         */
+        TInt GetMailboxNumbersCancel();
+            
+        /**
+         * Enumerates number of APN entries in ACL
+         *          
+         *
+         * @param aTsyReqHandle Request Handle
+         * @param aIndex Pointer to index
+         * @return Error value
+         */
+        TInt EnumerateAPNEntriesL( const TTsyReqHandle aTsyReqHandle, 
+            TUint32* aIndex );
+        
+        /**
+         * Cancel enumerate APN entries request
+         *          
+         *
+         * @return Error value
+         */
+        TInt EnumerateAPNEntriesCancel();
+        
+        /**
+         * Get APN name
+         *          
+         *
+         * @param aTsyReqHandle Request handle
+         * @param aIndex Index of requested APN
+         * @param aAPN APN name
+         * @return Error value
+         */
+        TInt GetAPNnameL( const TTsyReqHandle aTsyReqHandle, TUint32* aIndex, 
+            TDes8* aAPN );
+        
+        /**
+         * Cancel get APN name request
+         *          
+         *
+         * @return Error value
+         */
+        TInt GetAPNnameCancel();
+
+        /**
+         * Append an entry to the access point name (APN) control list
+         * 
+         *
+         * @param aAPNEntry APN Entry
+         * @return Error value
+         */
+        TInt AppendAPNNameL( RMobilePhone::TAPNEntryV3* aAPNEntry );
+        
+        /**
+         * Cancel AppendAPNName
+         * 
+         *
+         * @return KErrNone
+         */
+        TInt AppendAPNNameCancel();
+
+        /**
+         * Delete an entry from the access point name (APN) control list
+         * 
+         *
+         * @param aTsyReqHandle TSY req handle
+         * @param aIndex Deleted index
+         * @return Error value
+         */
+        TInt DeleteAPNNameL( const TTsyReqHandle aTsyReqHandle, 
+            TUint32* aIndex );
+        
+        /**
+         * Cancel DeleteAPNName
+         * 
+         *
+         * @return KErrNone
+         */
+        TInt DeleteAPNNameCancel();
+        
+        /**
+         * This function is used to request to receive notification of when 
+         * the APN control list changes.
+         *          
+         *
+         * @return KErrNone
+         */
+        TInt NotifyAPNListChanged();
+
+        /**
+         * This function cancels an outstanding access point name (APN) 
+         * control list change notification request.
+         *          
+         *
+         * @return KErrNone
+         */
+        TInt NotifyAPNListChangedCancel();
+
+        /**
+         * Enabling and disabling the access point name (APN) 
+         * control list service
+         * 
+         * @param aTsyReqHandle TSY req handle
+         * @param aAPNControlListServiceStatus ACL status
+         * @return Error value
+         */
+        TInt SetAPNControlListServiceStatusL( 
+            const TTsyReqHandle aTsyReqHandle, 
+            RMobilePhone::TAPNControlListServiceStatus* 
+            aAPNControlListServiceStatus );
+        
+        /**
+         * Cancel the request to set ACL status
+         * 
+         *
+         * @return KErrNone
+         */
+        TInt SetAPNControlListServiceStatusCancel();
+        
+        /**
+         * Get the status of the access point name (APN) control list service
+         * 
+         *
+         * @param aTsyReqHandle TSY req handle
+         * @param aAPNControlListServiceStatus ACL status
+         * @return Error value
+         */
+        TInt GetAPNControlListServiceStatusL( 
+            const TTsyReqHandle aTsyReqHandle, 
+            RMobilePhone::TAPNControlListServiceStatus* 
+            aAPNControlListServiceStatus );
+        
+        /**
+         * Cancel the request to get ACL status
+         * 
+         *
+         * @return KErrNone
+         */
+        TInt GetAPNControlListServiceStatusCancel();
+
+        /**
+         * This function is used to request to receive notification of when 
+         * the status of the APN control list service changes.
+         *          
+         *
+         * @param aAPNControlListServiceStatus
+         * @return KErrNone
+         */
+        TInt NotifyAPNControlListServiceStatusChange( 
+            RMobilePhone::TAPNControlListServiceStatus* 
+            aAPNControlListServiceStatus );
+
+        /**
+         * This function cancels an outstanding access point name (APN) 
+         * control list service status change notification request.
+         *          
+         *
+         * @return KErrNone
+         */
+        TInt NotifyAPNControlListServiceStatusChangeCancel();
+        
+        /**
+          * Terminate all calls simultaneously
+          * 
+          * @param aTsyReqHandle TSY req handle
+          * @return Error value
+          */
+        TInt TerminateAllCallsL(const TTsyReqHandle aTsyReqHandle);
+
+        /*
+         * This function return availability of Hareware Resource Manager in the current ROM
+         * 
+         * @return TTrue indicate HWRM is available. TFalse indicate it is unavailable
+         */
+        TBool IsHWRMSupported();
+
+#ifdef REQHANDLE_TIMER
+        /**
+         * Sets the security code when the request completes due to timer expiration
+         * and then it calls the completion function to handle the timeout event.         
+         *
+         * @param aReqHandleType req handle type.
+         * @param aError: error code.
+         */
+        void TimeoutGetSecurityCodeInfo(const TInt aReqHandleType, const TInt aError);
+#endif
+
+    private:    // Data
+        
+        /**
+         * Property for call forwarding number
+         */          
+        RProperty iEmergencyCallInfoProperty;
+    
+        /**
+         * Buffer for call forwarding number
+         */             
+        TBuf<40> iCallForwardingNumber;
+
+        /**
+         * A pointer to the Phone factory
+         * Own.
+         */                  
+        CMmPhoneFactoryTsy* iMmPhoneFactory;
+
+        /**
+         * A pointer to the active phone extension
+         * Own.
+         */                  
+        CMmPhoneExtInterface* iMmPhoneExtInterface;
+
+        /**
+         * A pointer to the call list
+         * Own.
+         */                  
+        CMmCallList* iCallList;
+
+        /** 
+         * A pointer to the line list
+         * Own         
+         */         
+        CMmLineList* iLineList;
+
+        /**
+         * A pointer to the phonebook list
+         * own.
+         */                   
+        CMmPBList* iPBList;
+
+        /**
+         * A pointer to the conference call object'
+         */                  
+        CMmConferenceCallTsy* iMmConferenceCall; 
+        
+        /**
+         * A pointer to the SAT object       
+         */                  
+        CTsySatMessagingBase* iTsySatMessaging;
+
+        /**
+         * A pointer to the USSD object         
+         */                  
+        CMmUssdTsy* iMmUssdTsy;
+
+        /** 
+         * A pointer to the onstore object
+         * Own.         
+         */                  
+        CMmONStoreTsy* iMmONStoreTsy;
+
+        /**
+         * A pointer to the enstore object
+         * Own.         
+         */                  
+        CMmENStoreTsy* iMmENStoreTsy;
+
+        /**
+         * A pointer to the phonebookstore object
+         * Own.         
+         */                  
+        CMmPhoneBookStoreTsy* iMmPhoneBookStoreTsy;
+
+        /**
+         * A pointer to the Custom TSY                 
+         */         
+        CMmCustomTsy* iMmCustomTsy;
+
+        /** 
+         * A pointer to the multimode messaging object
+         */         
+        CMmSmsTsy* iMmSmsTsy;
+
+        /**
+         * a pointer to the Packet Data object
+         */         
+        CMmPacketServiceTsy* iMmPacketServiceTsy;
+
+        /**
+         * Transaction id
+         */         
+        TUint8 iTransId;
+
+        /**
+         * Phone capabilities
+         */         
+        RPhone::TCaps iPhoneCaps;
+
+        /**
+         * Phone's modem status
+         */         
+        RPhone::TStatus iPhoneStatus;
+
+        /** 
+         * Phone version information
+         */         
+        RMobilePhone::TMobilePhoneIdentityV1 iPhoneIdentity;
+        
+        /** 
+         * Phone version information
+         */
+        RMobilePhone::TMobilePhoneIdentityV1* iRetPhoneIdentity;
+
+        /**
+         * Subscriber ID (IMSI)
+         */         
+        RMobilePhone::TMobilePhoneSubscriberId iSubscriberId;
+
+        /**
+         * Pointers to client address space
+         */         
+        RPhone::TCaps* iRetCaps;
+
+        /*
+         * Pointer to client side for modem detection changes
+         */         
+        RPhone::TModemDetection* iRetModemDetection;
+
+        /**
+         * Flag for refresh; set to true when "refresh now" -indication 
+         * received and to false when all registered files cached
+         */         
+        TBool iRefreshOngoing;
+
+        /**
+         * For keeping list of SIM files left to be cached
+         */         
+        TUint16 iSimCacheQueue;        
+
+        /** 
+         * notify fixed dialing number status
+         */         
+        RMobilePhone::TMobilePhoneFdnStatus* iRetNotifyFdnStatus;
+
+        /**
+         * notify als line
+         */         
+        RMobilePhone::TMobilePhoneALSLine* iRetNotifyALSLine;
+
+        /**
+         * ICC capabolities
+         */         
+        TUint32* iICCCaps;
+
+        /**
+         * Battery info
+         */         
+        RMobilePhone::TMobilePhoneBatteryInfoV1 iBatteryInfo;
+        
+        /**
+         * Battery info
+         */
+        RMobilePhone::TMobilePhoneBatteryInfoV1* iRetBatteryInfo;
+
+        /**
+         * Phone store info (return pointer to client)
+         */         
+        RMobilePhoneStore::TMobilePhoneStoreInfoV1* iRetPhoneStoreInfo;
+
+        /**
+         * Service Table (return pointer to client)
+         */         
+        RMobilePhone::TMobilePhoneServiceTableV1* iRetTableData;
+        
+        /**
+         * Service Table (SIM )(return pointer to client)
+         */         
+        RMobilePhone::TMobilePhoneServiceTableV1* iServiceTableDataCache;
+        
+        /**
+         * Service Table (USIM) (return pointer to client)
+         */         
+        RMobilePhone::TMobilePhoneServiceTableV1* iServiceTableUSIMDataCache;
+        
+        /**
+         * Pending Service Table cache request
+         */         
+        TServiceTableRequest iPendingServiceTableCacheReq;
+        
+        /** 
+         * Pending Service Table request
+         */         
+        TServiceTableRequest iPendingServiceTableReq;
+        
+        /**
+         * A table for phone request handles
+         */         
+        TTsyReqHandle iPhoneReqHandles[EMultimodePhoneMaxNumOfRequests];
+
+        /**
+         * Pointer to CMmMessageManagerBase
+         */                  
+        CMmMessageManagerBase* iMessageManager;
+
+        /**
+         * a Pointer to the broadcast object
+         */         
+        CMmBroadcastTsy* iMmBroadcastTsy;
+
+        /** 
+         * new fdn setting
+         */         
+        RMobilePhone::TMobilePhoneFdnSetting* iRetFdnSetting;
+
+        /**
+         * TSY req handle store
+         * Own.
+         */                  
+        CMmTsyReqHandleStore* iTsyReqHandleStore;
+        
+        /**
+         * TSY request type
+         */         
+        TPhoneRequestTypes iReqHandleType;
+
+        /**
+         * A pointer to call object waiting for incoming call
+         */         
+        CMmCallTsy* iMmWaitingDataCall; 
+
+        /**
+         * Als Line status
+         */         
+        RMobilePhone::TMobilePhoneALSLine iAlsLine;
+
+        /**
+         * Temporary Als Line status, for set operation
+         */         
+        RMobilePhone::TMobilePhoneALSLine iTempAlsLine;
+
+        /**
+         * DOS BootState
+         */         
+        CNosBootState iBootState;
+
+        /**
+         * Phonebook state
+         */         
+        CStorageInfoData* iPhoneBookState;
+
+
+#ifdef REQHANDLE_TIMER
+
+        /**
+         * Timer
+         * Own.         
+         */         
+        CResponseTimer *iReqHandleTimer;
+        
+        /**
+         * Time store
+         * Own.         
+         */         
+        CResponseTimerStore *iTimeStampStore;
+
+#endif
+        /**
+         * timer for air time duration monitoring
+         * Own.
+         */                  
+        CHeartbeatRunner* iAirTimeDurationTimer;
+
+        /**
+         * Amount of active calls for air time duration calculation
+         */         
+        TInt iAmountOfActiveCalls;
+
+        /**
+         * Offline
+         */         
+        TRfStateInfo iStateInfo;
+        TRfStatus iRfStatusFlag;
+
+        /**
+         * Pointer to the NetTsy class
+         * Own.
+         */                  
+        CMmNetTsy* iMmNetTsy;
+
+        /**
+         * Pointer to the DtmfTsy class
+         * Own.
+         */                  
+        CMmDtmfTsy* iMmDtmfTsy;
+
+        /**
+         * Pointer to the SupplServTsy class
+         * Own.         
+         */         
+        CMmSupplServTsy* iMmSupplServTsy;
+        
+        /**
+         * Pointer to the SecurityTsy class
+         * Own.         
+         */ 
+        CMmSecurityTsy* iMmSecurityTsy;
+        
+        /**
+         * Fdn Status
+         */                 
+        RMobilePhone::TMobilePhoneFdnStatus* iRetGetFdnStatus;
+		
+		/**
+		 * Pointer to struct for storing get servicetable parameters
+		 */
+		RPointerArray< TServiceTableRequests > iServiceTableRequests;
+		        
+        /**
+         * state of phone indicator
+         */         
+        RPointerArray< TSubscriberIdRequest > iSubscriberIdRequests;
+
+        /**
+         * Array for buffering Phone Id requests
+         */         
+        RPointerArray< TGetPhoneIdRequest > iGetPhoneIdRequests;
+        
+        /**
+         * Array for buffering Customer service profile requests
+         */             
+        RPointerArray< TCustomerServiceProfileIdRequest > 
+            iCustomerServiceProfileRequests;
+        
+        /**
+         * Array for buffering Get Als Line requests
+         */             
+        RPointerArray< TGetAlsLineRequest > iGetAlsLineRequests;
+        
+        /**
+         * Indicator state
+         */                         
+        TUint32 iIndicatorState;
+
+        /**
+         * Indicator state
+         */ 
+        TUint32* iRetIndicatorState;
+        
+        /**
+         * Pointer to the IMS authentication data
+         */         
+        TDes8* iIMSAuthenticationData; 
+        
+        /** 
+         * Pointer to the Mailbox dialling numbers data
+         */             
+        TDes8* iMailBoxData;
+        
+        /** 
+         * Number of APNs in ACL (return pointer to client)
+         * Not Own.
+         */
+        TUint32* iRetAPNEntries;
+        
+        /**
+         * APN name (return pointer to client)
+         * Not Own.
+         */
+        TDes8* iRetAPNname;
+        
+        /**
+         * Sim support for ALS
+         */
+        TBool iAlsSupportedBySim;
+        
+        /**
+         * Pointer to Central Repository
+         * Own.
+         */
+        CRepository* iCentRep;
+        
+        /**
+         * Indicates about sim refresh registration status
+         */ 
+        TBool iSimRefreshRegisterOk;
+        
+        /**
+         * Indicates that GetServiceTableL method is called
+         */
+        TBool iCalledOnGet;
+        
+        /** 
+         * Pointer to struct for storing get servicetable parameters 
+         * Own.
+         */
+        TGetServiceTableRequest* iServiceTableReq; 
+        
+        /**
+         * Service table cache error
+         */
+        TInt iCacheServiceTableError;
+
+        /**
+         * Pointer to Public Central Repository
+         * Own.
+         */
+        CRepository* iCFISCentRep;
+        
+        /**
+         * Pointer to MWIS Central Repository
+         * Own.
+         */
+        CRepository* iMWISCentRep;
+        
+        /**
+         * Pointer to CFIS Private Central Repository
+         * Own.
+         */
+        CRepository* iCFISPrivateCentRep;
+        
+        /**
+         * Get Subscriber Id requested from CommonTSY
+         */
+        TBool iTSYSubscriberIdReq;
+
+        /**
+         * Pointer to ACL status
+         * Not Own.         
+         */
+        RMobilePhone::TAPNControlListServiceStatus* iRetAclStatus;
+        
+        /**
+         * Pointer to ACL status
+         * Not Own.         
+         */
+        RMobilePhone::TAPNControlListServiceStatus* iSetAclStatus;
+        
+        /**
+         * Pointer to ACL status
+         * Not Own.         
+         */
+        RMobilePhone::TAPNControlListServiceStatus* iRetNotifyAclStatus;
+        
+        /**
+         * Array for storing get service provider name requests
+         */         
+        RPointerArray< TServiceProviderNameRequest > 
+            iServiceProviderNameRequests;
+            
+        /**
+         * Pointer to LicenseeTsy instance
+         */     
+        MLtsyFactoryBase* iLtsyFactory;
+	    	
+	    /**
+	     * A boolean to tell CSP file request that 
+	     * it's called internally during the boot
+	     */
+	    TBool iCspFileQueryInBoot;
+       
+	    /**
+	     * A boolean to tell ALS support request that 
+	     * it's called internally during the boot
+	     */
+	    TBool iAlsQueryInBoot;
+	    	
+	    /**
+	     * A boolean to hold CSP file's ALS data
+	     */
+	    TBool iCspFileALS;
+	    	
+	    /**
+	     * A boolean to hold ALS Pp Support
+	     * it's called internally during the boot
+	     */
+	    TBool iAlsPpSupport;
+	    	
+	    /**
+	     * A boolean to tell if CSP file's ALS data
+	     * is being set into ALS state
+	     */
+	    TBool iCspFileAlsSet;
+	    
+	    /**
+	     * A boolean to tell if HomeZoneParams
+	     * has been checked
+	     */
+	    TBool iViagHomeZoneParamsChecked;
+	    
+        /**
+		*Pointer to the Telephony Audio Control instance
+		*/ 
+        MTelephonyAudioControl* iTelephonyAudioControl;
+	    
+        /** 
+		*Attribute to tell the status of PB initialization
+		*/
+        TBool iIsInitializationActive;		
+
+        /*
+         * Attribute to tell the status is modem status ready
+         */
+        TBool iIsModemReady;
+        
+        // ==== For getting Battery info from HWRM ====	    
+	    /**
+	    * Pointer to CHWRMPower instance
+	    */
+	    CHWRMPower* iPowerManager;
+	    
+	    /**
+	    * Pointer to the BatteryInfoObserver
+	    */	    
+	    CBatteryInfoObserver* iBattery;
+	    
+	    /**
+	    * Pointer to the ChargingStatusObserver
+	    */
+        CChargingStatusObserver* iChargingStatus;
+    };
+
+#endif // CMMPHONETSY_H
+
+// End of File