adaptationlayer/tsy/nokiatsy_dll/inc/cmmcustommesshandler.h
changeset 0 63b37f68c1ce
child 5 8ccc39f9d787
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/adaptationlayer/tsy/nokiatsy_dll/inc/cmmcustommesshandler.h	Fri Nov 06 17:28:23 2009 +0000
@@ -0,0 +1,1469 @@
+/*
+* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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 _CMMCUSTOMMESSHANDLER_H
+#define _CMMCUSTOMMESSHANDLER_H
+
+// INCLUDES
+#include "mmmmesshandlerbase.h"
+#include "cmmphonetreceiver.h"
+#include "muiccoperationbase.h"
+#include "cmmuiccmesshandler.h"
+
+// for internal testing
+#include "nokiatsy_internal_variation.h"
+
+#include <ctsy/rmmcustomapi.h>
+
+// CONSTANTS
+
+// Length of Sim info isi msg buffer
+const TUint8 KSimInfoBufferSize = 20;
+
+// Time related constants
+const TUint16 KSecsInHour = 3600;
+const TUint8 KMinsInHour = 60;
+
+// Length if Gss Cs isi msg buffer
+const TUint8 KGssCsBufferSize = 6;
+
+// Call property buffer size
+const TUint8 KCallPropBuffSize = 4;
+
+// Value for information which value is not needed.
+const TUint8 KZero = 0x00;
+// Default length for product profile reading request
+const TUint8 KDefaultPPlength = 0x01;
+
+// Max length of network proveder name
+const TUint8 KNwProviderNameLength = 0x19;
+// Constants for remote address length
+const TUint8 KRemoteAddressBcdSize = 18;
+const TUint8 KRemoteAddressAsciiSize = 34;
+const TUint8 KRemoteAddressConversionSize = 36;
+
+// SS Request Complete Notifivation SS Status
+const TUint8 KCustomApiSsGsmActive = 0x01;
+const TUint8 KCustomApiSsGsmRegistered = 0x02;
+const TUint8 KCustomApiSsGsmProvisioned = 0x04;
+const TUint8 KCustomApiSsGsmQuiescent = 0x08;
+
+const TUint8 KinfoPpTwoDigitDial = 0x0F;
+
+//value for information which value is two
+const TUint8 KTwo = 0x02;
+
+//value for information which value is three
+const TUint8 KThree = 0x03;
+
+//value for information which value is four
+const TUint8 KFour = 0x04;
+
+//value for information which value is six
+const TUint8 KSix = 0x06;
+
+const TUint8 KCustomPadding = 0x00; //Padding byte
+
+// Call Life Timer Constants
+const TUint8 KCallLifeTimerDataAmount = 0x04;
+const TInt KCallLifeTimerNotSet = -1;
+const TUint8 KPmmGroupNokiaTsySize = 100;
+
+// Maximum number of re-trials when requesting data from PMM.
+const TUint8 KMaxPMMReadRequests = 0x03;
+
+// These constants are needed for Viag Home Zone
+const TUint8 KLengthOfSMSCNumber = 15;
+const TUint8 KLengthOfSCPNumber = 15;
+const TUint8 KLengthOfHzCzTag = 13;
+const TUint8 KHomeZoneActiveBit = 0x01;
+const TUint8 KCityZoneActiveBit = 0x02;
+
+const TUint8 KSimNumberOfCbMsgIds = 15;
+const TUint KUnusedCbMsgId = 0xffff;
+
+// MACROS
+    //None
+
+// DATA TYPES
+    //None
+
+// EXTERNAL DATA STRUCTURES
+    //None
+
+// FUNCTION PROTOTYPES
+    //None
+
+// FORWARD DECLARATIONS
+class CMmSecurityMessHandler;
+class CMmNetMessHandler;
+class CMmPhoNetSender;
+class TIsiReceiveC;
+class CMmMessageRouter;
+class CMmUiccMessHandler;
+
+// CLASS DECLARATION
+
+/**
+*  CMmCustomMessHandler is used to create and send GSM specific
+*  custom ISI messages to PhoNet via PhoNetSender.
+*/
+class CMmCustomMessHandler :
+    public CBase,
+    public MMmMessHandlerBase,
+    public MMmMessageReceiver,
+    public MUiccOperationBase
+    {
+
+    public:
+
+    // Used for saving the ciphering information.
+    struct TCiphListEntry
+        {
+        TBool iCiphStatus;
+        TUint8 iTraId;
+        };
+
+    // Used for saving the enhanced cell information.
+    class TECIDInfo
+        {
+        public: // data
+        RMmCustomAPI::TMmCellInfo iCellInfo; // Cell Information
+        TUint iMCC; // Mobile Country Code
+        TUint iMNC; // Mobile Network Code
+        TUint iCID; // Location area code
+        TUint iLAC; // Cell identity
+        };
+
+    // This enumeration is needed because different Product Profile
+    // requests can be made using the same INFO_PP_READ_REQ/RESP
+    // messages. Used as a transaction ID.
+    enum TProductProfileRequestType
+        {
+        EGetAlsPPSupport = 0,
+        ECheckTwoDigitDialSupport
+        };
+
+    // This enumeration is needed because a SIM_READ_CI_RESP can come
+    // as a response to a GetCipheringInfo-request, or triggered by
+    // a NET_CIPHERING_IND indication which makes the same request.
+    // Used as a transaction ID.
+    enum TCipheringInfoRequestType
+        {
+        EGetCipheringInfo = 0,
+        ENotifyCipheringInfo
+        };
+
+    // The SIM operations are grouped into the following types.
+    // Used as ISA transaction IDs.
+    enum TSIMOperationType
+        {
+        ESIMOperationTypeReadSimTopics = 0,
+        ESIMOperationTypeDeleteSimTopic
+        };
+
+    enum TUiccSapIfStatus
+        {
+        EUiccSapIfStatus1 = 1,
+        EUiccSapIfStatus2,
+        EUiccSapIfStatus3
+        };
+
+    public: // Constructors and destructor
+
+        /**
+        * Creates a new GSM specific MessageHandler object instance.
+        * @param aPhoNetSender: a pointer to a Phonet Sender object
+        * @param aPhoNetReceiver:
+        * @param aNetMessHandler: a pointer to the Net message handler
+        * @param aSecurityMessHandler: a pointer to the security mess handler
+        * @param aMessageRouter: a pointer to the message router
+        * @return void
+        */
+        static CMmCustomMessHandler* NewL(
+            CMmPhoNetSender* aPhoNetSender,
+            CMmPhoNetReceiver* aPhoNetReceiver,
+            CMmNetMessHandler* aNetMessHandler,
+            CMmSecurityMessHandler* aSecurityMessHandler,
+            CMmMessageRouter* aMessageRouter,
+            CMmUiccMessHandler* aUiccMessHandler);
+
+        /**
+        * Destructor.
+        * @return void
+        */
+        ~CMmCustomMessHandler();
+
+   public: // New Functions
+
+        /**
+        * Creates CallReleaseReq ISI message and sends it to Phonet.
+        * @param TUint8 aTransactionId: unique transaction id
+        * @param TUint8 aCallId: Call ID of this call (NOS Call ID)
+        * @param TUint8 aCause: cause of releasing
+        * @return TInt: success/failure value
+        */
+        TInt CallReleaseReq(
+            TUint8 aTransactionId,
+            TUint8 aCallId,
+            TUint8 aCause );
+
+        /**
+        * Breaks received CallReleaseResp ISI message.
+        * @param const TIsiReceiveC& aIsiMsg: The received ISI message
+        * @return void : None
+        */
+        void CallReleaseResp( const TIsiReceiveC& aIsiMsg );
+
+        /**
+        * MO alert indication, used for Remote Alerting Tone in Custom TSY
+        * @param const TIsiReceiveC& aIsiMsg: The received ISI message
+        * @return TInt: void : None
+        */
+        void CallMoAlertInd( const TIsiReceiveC& aIsiMsg );
+
+        /**
+        * Creates a NET_CS_WAKEUP_REQ ISI message and sends it to Phonet
+        * @param TUint8 aTransId: transaction Id
+        * @return TInt: success/failure value
+        */
+        TInt NetCsWakeupReq( TUint8 aTransId );
+
+        /**
+        * Breaks received NET_CS_WAKEUP_RESP ISI message
+        * @param None
+        * @return void : None
+        */
+        void NetCsWakeupResp();
+
+        /**
+        * Breaks received NET_CIPHERING_IND ISI message
+        * @param TIsiReceiveC& aIsiMsg: The received ISI message
+        * @return void : None
+        */
+        void NetCipheringInd( const TIsiReceiveC& aIsiMsg );
+
+        /**
+        * Breaks received NET_MODEM_REG_STATUS_IND ISI message
+        * @param TIsiReceiveC& aIsiMsg: The received ISI message
+        * @return void : None
+        */
+        void NetModemRegStatusInd( const TIsiReceiveC& aIsiMsg );
+
+
+        /**
+        * Read dynamic flags 2
+        * @return void
+        */
+        TInt UiccReadDynamic2FlagsReq();
+
+        /**
+        * Read dynamic flags 2 response
+        * @param aStatus Status
+        * @param aFileData File data
+        * @return void
+        */
+        void UiccReadDynamic2FlagsResp(
+            TInt aStatus,
+            const TDesC8& aFileData );
+
+        /**
+        * Write dynamic flags 2
+        * @param aInfo Flags 2 data
+        * @return void
+        */
+        TInt UiccWriteDynamic2FlagsReq( TUint8 aInfo );
+
+        /**
+        * Write dynamic flags 2 response
+        * @param aInfo Flags 2 data
+        * @return void
+        */
+        void UiccWriteDynamic2FlagsResp( TInt aStatus );
+
+        /**
+        * Breaks received CALL_TERMINATE_IND ISI messages
+        * @param const TIsiReceiveC& aIsiMsg: The received ISI message
+        * @return void : None
+        */
+        void CallTerminateInd( const TIsiReceiveC& aIsiMsg );
+
+        /**
+        * Breaks received CALL_RELEASE_IND ISI messages
+        * @param const TIsiReceiveC& aIsiMsg: The received ISI message
+        * @return void : None
+        */
+        void CallReleaseInd( const TIsiReceiveC& aIsiMsg );
+
+        /**
+        * Creates a INFO_PP_READ_REQ ISI messages and sends it to phone
+        * @param TProductProfileRequestType aReqType: request type (used
+        *        as transaction id)
+        * @return void : KErrNone / Error value from phonet
+        */
+        TInt InfoPpReadReq( TProductProfileRequestType aReqType );
+
+        /**
+        * Breaks a INFO_PP_READ_RESP message
+        * @param CIsiMsg* aIsiMsg: The received ISI message
+        * @return void : None
+        */
+        void InfoPpReadResp( const TIsiReceiveC& aIsiMessage );
+
+        /**
+        * Creates a CALL_GSM_BLACKLIST_CLEAR_REQ ISI message and sends it to
+        * Phonet
+        * @param TUint8 aTransId: transaction Id
+        * @return TInt : KErrNone or error code
+        */
+        TInt CallGsmBlackListClearReq( TUint8 aTransId );
+
+        /**
+        * Breaks received CALL_GSM_BLACKLIST_CLEAR_RESP ISI message
+        * @return void : None
+        */
+        void CallGsmBlackListClearResp();
+
+        /**
+        * Breaks received SS_SERVICE_COMPLETED_IND ISI message
+        * @param const TIsiReceiveC& aIsiMessage: The received ISI message
+        * @return void : None
+        */
+        void SsServiceCompletedInd ( const TIsiReceiveC& aIsiMessage );
+
+        /**
+        * Creates a CALL_EMERGENCY_NBR_CHECK_REQ ISI messages and sends it to
+        * phonet
+        * @param TUint8 aTransId: Transaction Id
+        * @param TMobileTelNumber&: telnumber
+        * @param TCheckMode aCheckMode; check mode
+        * @return TInt : KErrNone / Error value from phonet
+        */
+        TInt CallEmergencyNbrCheckReq( TUint8 aTransId,
+            RMmCustomAPI::TMobileTelNumber& aNumber,
+            RMmCustomAPI::TCheckMode aCheckMode );
+
+        /**
+        * Breaks a CALL_EMERGENCY_NBR_CHECK_RESP message
+        * @param const TIsiReceiveC& aIsiMsg: The received ISI message
+        * @return void : None
+        */
+        void CallEmergencyNbrCheckResp( const TIsiReceiveC& aIsiMsg );
+
+        /**
+        * Creates a SS_GSM_USSD_SEND_REQ ISI messages and sends it to IsaApi
+        * @param TUint8 aTransId: Transaction Id
+        * @return TInt : KErrNone / Error value from IsaApi
+        */
+        TInt SsGsmUssdSendReq( TUint8 aTransId );
+
+        /**
+        * Forwards a execution of SS_CANCEL_USSD_SEND_RESP message
+        * @param const TIsiReceiveC& aIsiMessage: The received ISI message
+        * @return void : None
+        */
+        void SsGsmUssdSendResp( const TIsiReceiveC& aIsiMessage );
+
+        /**
+        * Construct a NET_MODEM_REG_STATUS_GET_REQ ISI message and send
+        * it through phonet.
+        * @param TUint8 aTransId: Transaction Id
+        * @return TInt: KErrNone / Error value from phonet
+        */
+        TInt NetModemRegStatusGetReq( TUint8 aTransId );
+
+        /**
+        * Construct a NET_SET_REQ message and send it through phonet.
+        * @param TUint8 aTransId: Transaction Id
+        * @return TInt: KErrNone / Error value from phonet
+        */
+        TInt NetSetReq( TUint8 aTransId );
+        /**
+        * Handles SsRequestComplete response ISI message
+        * @return void : None
+        */
+        void SsRequestComplete();
+
+        /**
+        * Read field from SIM/USIM
+        * @param aSimFileInfo File info
+        * @return Error code
+        */
+        TInt UiccReadFieldReq( RMmCustomAPI::TSimFileInfo& aSimFileInfo );
+
+        /**
+        * Response to read field request
+        * @param aStatus Status
+        * @param aFileData File data
+        * @return void
+        */
+        void UiccReadFieldResp( TInt aStatus, const TDesC8& aFileData );
+
+        /**
+        * Read ciphering indicator status from SIM/USIM
+        * @param aTrId Transaction ID
+        * @return Error code
+        */
+        TInt UiccReadCiReq( TInt aTrId );
+
+        /**
+        * Response to read CI request
+        * @param aStatus Status
+        * @param aTrId Transaction ID
+        * @param aFileData File data
+        * @return void
+        */
+        void UiccReadCiResp(
+            TInt aStatus,
+            TInt aTrId,
+            const TDesC8& aFileData );
+
+        /**
+        * Read operator name from SIM/USIM
+        * @return Error code
+        */
+        TInt UiccOperatorReq();
+
+        /**
+        * Response to read operator name request
+        * @param aStatus Status
+        * @param aFileData File data
+        * @return none
+        */
+        void UiccOperatorResp( TInt aStatus, const TDesC8& aFileData );
+
+        /**
+        * Disconnects UICC server from smartcard and
+        * activates UICC SAP APDU interface
+        * @return Error code
+        */
+        TInt UiccSimPowerOffReq();
+
+        /**
+        * Handles responses to SIM power off
+        * @param aStatus Status
+        * @return none
+        */
+        void UiccSimPowerOffResp( TInt aStatus );
+
+        /**
+        * Requests SIM warm reset
+        * @return Error code
+        */
+        TInt UiccSimWarmResetReq();
+
+        /**
+        * Response to SIM warm reset
+        * @param aStatus Status
+        * @return none
+        */
+        void UiccSimWarmResetResp( TInt aStatus );
+
+        /**
+        * Requests Get ATR
+        * @return Error code
+        */
+        TInt UiccSimGetAtrReq();
+
+        /**
+        * Handles responses to SIM Get ATR
+        * @param aStatus Status
+        * @param aFileData File data
+        * @return none
+        */
+        void UiccSimGetAtrResp( TInt aStatus, const TDesC8& aFileData );
+
+        /**
+        * Connects UICC server to smartcard and
+        * deactivates UICC SAP APDU interface
+        * @return Error code
+        */
+        TInt UiccSimPowerOnReq();
+
+        /**
+        * Handles responses to SIM power off
+        * @param aStatus Status
+        * @return none
+        */
+        void UiccSimPowerOnResp( TInt aStatus );
+
+        /**
+        * Sends APDU to UICC
+        * @param aApduParameters APDU parameters
+        * @param aTraId transaction id
+        * @return Error code
+        */
+        TInt UiccSendAPDUReq(
+            const RMmCustomAPI::TApduParameters& aApduParameters,
+            TInt aTraId );
+
+        /**
+        * Handles responses to UICC_APDU_RESP
+        * @param aStatus Status
+        * @param aFileData File data
+        * @param aTraId transaction id 
+        * @return none
+        */
+        void UiccSendAPDUResp(
+            TInt aStatus,
+            const TDesC8& aFileData,
+            TInt aTraId );
+
+        /**
+        * Sends UICC_CARD_REQ
+        * @return Error code
+        */
+        TInt UiccCardReaderStatusReq();
+
+        /**
+        * Handles responses for Card Reader Status req
+        * @param aStatus Status
+        * @param aFileData File data
+        * @return none
+        */
+        void UiccCardReaderStatusResp( TInt aStatus, const TDesC8& aFileData );
+
+        /**
+        * Handles UICC_CARD_IND
+        * @param aIsiMessage Received ISI message
+        * @return void
+        */
+        void UiccCardInd( const TIsiReceiveC& aIsiMessage );
+
+        /**
+        * Read CB message IDs from UICC
+        * @param aTraId Transaction identification
+        * @return Error code
+        */
+        TInt UiccReadCbMsgIdsReq( TUiccTrId aTrId );
+
+        /**
+        * Response to read CB message IDs from UICC
+        * @param aStatus Status
+        * @param aTraId Transaction ID
+        * @param aFileData File data
+        * @return void
+        */
+        void UiccReadCbMsgIdsResp(
+            TInt aStatus,
+            TInt aTraId,
+            const TDesC8& aFileData );
+
+        /**
+        * Response to delete CB message ID request
+        * @param aStatus Status
+        * @return void
+        */
+        void UiccDeleteCbMsgIdResp( TInt aStatus );
+
+        /**
+        * Read home zone parameters from UICC
+        * @return Error code
+        */
+        TInt UiccReadViagHomeZoneParametersReq();
+
+        /**
+        * Response read home zone parameters request
+        * @param aStatus Status
+        * @param aFileData File data
+        * @return void
+        */
+        void UiccReadViagHomeZoneParametersResp(
+            TInt aStatus,
+            const TDesC8& aFileData );
+
+        /**
+        * Read home zone cache from UICC
+        * @params aRecordId Record identifier
+        * @return Error code
+        */
+        TInt UiccReadViagHomeZoneCacheReq(
+            const RMmCustomAPI::TViagCacheRecordId& aRecordId );
+
+       /**
+        * Response to read home zone cache request
+        * @param aStatus Status
+        * @param aFileData File data
+        * @return void
+        */
+        void UiccReadViagHomeZoneCacheResp(
+            TInt aStatus,
+            const TDesC8& aFileData );
+
+        /**
+         * Request to write home zone settings
+         * @param aUhziuiSettings UHZIUI settings
+         * @return void
+         */
+        TInt UiccWriteViagHomeZoneUhziueSettingsReq(
+            const RMmCustomAPI::TViagUHZIUESettings& aUhziuiSettings );
+
+        /**
+         * Response to write home zone settings
+         * @param aStatus Status
+         * @return void
+         */
+        void UiccWriteViagHomeZoneUhziueSettingsResp( TInt aStatus );
+
+        /**
+        * Write Viag Home Zone cache from UICC
+        * @params aRecordId Record identifier
+        * @params aViagRecordContent Record content
+        * @return error code
+        */
+        TInt UiccWriteViagHomeZoneCacheReq(
+            const RMmCustomAPI::TViagCacheRecordId& aRecordId,
+            const RMmCustomAPI::TViagCacheRecordContent& aViagRecordContent );
+
+       /**
+        * Response Write Viag Home Zone cache request
+        * @param aStatus Status
+        * @return void
+        */
+        void UiccWriteViagHomeZoneCacheResp( TInt aStatus );
+
+   public: // Functions from base classes
+
+        /**
+        * ISI message for CustomMessageHandler received
+        * @param const TIsiReceiveC& aIsiMessage: reference to received ISI message
+        */
+        void ReceiveMessageL( const TIsiReceiveC& aIsiMessage );
+
+        /**
+        * Handles errors comes from PhoNetReceiver RunError
+        * @param TIsiReceiveC& aIsiMessage: reference to received ISI message
+        * @param TInt aError: Error code
+        */
+        void HandleError( const TIsiReceiveC& aIsiMessage, TInt aError );
+
+        /**
+        * From MMmMessHandlerBase. This method is the single entry point for
+        * requests coming from the Symbian OS layer to this message handler
+        * @since ?Series60_version
+        * @param aIpc IPC number of the request
+        * @return TInt KErrNone or error code
+        */
+        TInt ExtFuncL( TInt aIpc, const CMmDataPackage* aDataPackage );
+
+        /**
+        * Handle UICC response messages
+        * @param aTraId Transaction ID
+        * @param aFileData Descriptor for file data
+        * @return KErrNone or error code
+        */
+        TInt ProcessUiccMsg(
+            TInt aTraId,
+            TInt aStatus,
+            const TDesC8& aFileData );
+
+    protected: // New functions
+        //None
+
+    protected: // Functions from base classes
+        //None
+
+    private:
+
+        /**
+        * C++ default constructor.
+        * @return void
+        */
+        CMmCustomMessHandler();
+
+        /**
+        * Initialises object attributes.
+        * By default Symbian 2nd phase constructor is private.
+        * @return void
+        */
+        void ConstructL();
+
+        /**
+        * Breaks a CALL_GSM_NOTIFICATION_IND ISI-message.
+        * @param const TIsiReceiveC& aIsiMsg: Received ISI message
+        * @return None
+        */
+        void CallGsmNotificationInd( const TIsiReceiveC& aIsiMsg );
+
+        /**
+        * Handles Forwarding data from a CALL_GSM_NOTIFICATION_IND
+        * @param TUint16 aSsCode,
+        * @param const TIsiReceiveC& aIsiMsg,
+        * @param RMmCustomAPI::TSsTypeAndMode& aSsTypeAndMode
+        * @return None
+        */
+        void HandleForwarding(
+            TUint16 aSsCode,
+            const TIsiReceiveC& aIsiMsg,
+            RMmCustomAPI::TSsTypeAndMode& aSsTypeAndMode ) const;
+
+        /**
+        * Handles Barring data from a CALL_GSM_NOTIFICATION_IND
+        * @param TUint16 aSsCode,
+        * @param const TIsiReceiveC& aIsiMsg,
+        * @param RMmCustomAPI::TSsTypeAndMode& aSsTypeAndMode
+        * @return None
+        */
+        void HandleBarring(
+            TUint16 aSsCode,
+            const TIsiReceiveC& aIsiMsg,
+            RMmCustomAPI::TSsTypeAndMode& aSsTypeAndMode ) const;
+
+        /**
+        * Match function for making finds in the Ciphering list
+        * @param TCiphListEntry& aArg1: first argument for match
+        * @param TCiphListEntry& aArg2: secnd argument for the match
+        * @return TBool: if both arguments match
+        */
+        static TBool Match(
+            const TCiphListEntry& aArg1,
+            const TCiphListEntry& aArg2 );
+
+        /**
+        * Breaks received NET_MODEM_REG_STATUS_GET_RESP ISI message
+        * @param TIsiReceiveC& aIsiMsg: The received ISI message
+        * @return void : None
+        */
+        void NetModemRegStatusGetResp( const TIsiReceiveC& aIsiMsg );
+
+        /**
+        * Breaks received NET_SET_RESP ISI message
+        * @param TIsiReceiveC& aIsiMsg: The received ISI message
+        * @return void : None
+        */
+        void NetSetResp( const TIsiReceiveC& aIsiMsg );
+
+        /**
+        * Breaks received SS_SERVICE_FAILED_RESP ISI message
+        * @param const TIsiReceiveC& aIsiMessage: The received ISI message
+        * @return void : None
+        */
+        void SsServiceFailedResp( const TIsiReceiveC& aIsiMessage );
+
+        /**
+        * Construct a NET_RAT_REQ message and send it through phonet.
+        * @param TUint8 aTransId: Transaction Id
+        * @param TBool aCurrentRats: Use Current RAT setting
+        * @return TInt: KErrNone / Error value from phonet
+        */
+        TInt NetRatReq( TUint8 aTransId, TBool aCurrentRats );
+
+        /**
+        * Breaks received NET_RAT_RESP ISI message
+        * @param TIsiReceiveC& aIsiMsg: The received ISI message
+        * @return void : None
+        */
+        void NetRatResp( const TIsiReceiveC& aIsiMsg );
+
+        /**
+        * Construct a GSS_CS_SERVICE_REQ message and send it through phonet.
+        * @param TUint8 aTransId: Transaction Id
+        * @param RMmCustomAPI::TNetworkModeCaps: System network mode to set.
+        * @return TInt: KErrNone / Error value from phonet
+        */
+        TInt GssCsServiceReq(
+            TUint8 aTransId,
+            RMmCustomAPI::TNetworkModeCaps aNetworkModeCaps );
+
+        /**
+        * Breaks received GSS_CS_SERVICE_RESP ISI message
+        * @param const TIsiReceiveC& aIsiMessage: The received ISI message
+        * @return void : None
+        */
+        void GssCsServiceResp( const TIsiReceiveC& aIsiMessage );
+
+        /**
+        * Breaks received GSS_CS_SERVICE_FAIL_RESP ISI message
+        * @param const TIsiReceiveC& aIsiMessage: The received ISI message
+        * @return void : None
+        */
+        void GssCsServiceFailResp( const TIsiReceiveC& aIsiMessage );
+
+        /**
+        * MtcRat Query
+        * @param TUInt8 aTransId: Transaction Id
+        * @return TInt : result
+        */
+#ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
+        // Removed for Bridge camp!
+        TInt MtcRatQueryReq( TUint8 aTransId );
+#endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
+
+        /**
+        * MtcRat Query Response
+        * @param TIsiReceiveC& aIsiMessage: ISI message
+        * @return void : None
+        */
+#ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING
+        // Removed for Bridge camp!
+        void MtcRatQueryResp( const TIsiReceiveC& aIsiMessage );
+#endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */
+
+        /**
+        * Handles the ReadViagHomeZoneParamsResp response message.
+        * @param const TIsiReceiveC& aIsiMessage: a pointer to incoming message
+        * @return void
+        */
+        void ReadViagHomeZoneParamsRespL( const TIsiReceiveC& aIsiMessage );
+
+        /**
+        * Handles the ReadViagHomeZoneCacheResp response message.
+        * @param const TIsiReceiveC& aIsiMessage: a pointer to incoming message
+        * @return void
+        */
+        void ReadViagHomeZoneCacheResp( const TIsiReceiveC& aIsiMessage );
+
+        /**
+        * Handles the WriteViagHomeZoneCacheResp response message.
+        * @param const TIsiReceiveC& aIsiMessage: a pointer to incoming message
+        * @return void
+        */
+        void WriteViagHomeZoneCacheResp( const TIsiReceiveC& aIsiMessage );
+
+        /**
+        * Construct and send to phonet GSS_HSXPA_USER_SETTING_WRITE_REQ
+        * ISI message.
+        * @param TUint8 aTraId: a transaction identification
+        * @param THSxPAStatus status:
+        * @return TInt: error code
+        */
+        TInt WriteHSxPAStatusReq(
+            TUint8 aTraId,
+            RMmCustomAPI::THSxPAStatus status );
+
+        /**
+        * Breaks GSS_HSXPA_USER_SETTING_WRITE_RESP ISI message
+        * @param const TIsiReceiveC& aIsiMessage: the incoming message
+        * @return void
+        */
+        void WriteHSxPAStatusResp( const TIsiReceiveC& aIsiMessage );
+
+        /**
+        * Construct and send to phonet GSS_HSXPA_USER_SETTING_READ_REQ
+        * ISI message.
+        * @param TUint8 aTraId: a transaction identification
+        * @return TInt: error code
+        */
+        TInt ReadHSxPAStatusReq( TUint8 aTraId );
+
+        /**
+        * Breaks GSS_HSXPA_USER_SETTING_READ_RESP ISI message
+        * @param const TIsiReceiveC& aIsiMessage: the incoming message
+        * @return void
+        */
+        void ReadHSxPAStatusResp( const TIsiReceiveC& aIsiMessage );
+
+        /**
+        * Breaks received GSS_HSXPA_SETTING_IND ISI messages
+        * @param const TIsiReceiveC& aIsiMsg: The received ISI message
+        * @return void : None
+        */
+        void HSxPASettingInd( const TIsiReceiveC& aIsiMsg );
+
+        /**
+        * Construct a NET_NEIGHBOUR_CELLS_REQ message and send it through phonet.
+        * @param TUint8 aTraId: a transaction identification
+        * @return TInt: error code
+        */
+        TInt NetNeighbourCellsReq( const TUint8 aTraId );
+
+        /**
+        * Breaks received NET_NEIGHBOUR_CELLS_RESP ISI messages.
+        * @param const TIsiReceiveC& aIsiMsg: The received ISI message
+        * @return void: None
+        */
+        void NetNeighbourCellsResp( const TIsiReceiveC& aIsiMessage );
+
+        /**
+        * Breaks received NET_REG_STATUS_IND or NET_REG_STATUS_IND
+        * message and checks if enhanced cell information is chaged
+        * ( => needs to be requested/updated).
+        * @param const TIsiReceiveC& aIsiMessage: The received ISI message
+        * @return void: None
+        */
+        void CheckECIDInfo( const TIsiReceiveC& aIsiMessage );
+
+// Not suppoted for S60 ver 3.2
+#if ( NCP_COMMON_S60_VERSION_SUPPORT != S60_VERSION_32 )
+
+        /**
+        * Construct a GSS_CS_SERVICE_REQ message including selected
+        * band mode and send it through phonet.
+        * @param TUint8 aTransId: Transaction Id
+        * @param RMmCustomAPI::TNetworkModeCaps: System network mode to set.
+        * @param RMmCustomAPI::TBandSelection: Selected band mode.
+        * @return TInt: KErrNone / Error value from phonet
+        */
+        TInt GssCsServiceSetBandReq(
+            TUint8 aTransId,
+            RMmCustomAPI::TNetworkModeCaps aNetworkModeCaps,
+            RMmCustomAPI::TBandSelection aBandSelection );
+
+        /**
+        * Construct a GSS_CS_SERVICE_REQ message to get selected
+        * band mode.
+        * @param TUint8 aTransId: Transaction Id
+        * @return TInt: KErrNone / Error value from phonet
+        */
+        TInt GssCsServiceGetBandReq( TUint8 aTransId );
+
+        /**
+        * Breaks received GSS_SELECTED_BANDS_READ operation.
+        * @param const TIsiReceiveC& aIsiMessage: The received ISI message
+        * @return void: None
+        */
+        void CompleteGetBandSelection( const TIsiReceiveC& aIsiMessage );
+
+#endif // NCP_COMMON_S60_VERSION_SUPPORT
+
+        /**
+        * Construcst PERM_PM_RECORD_READ_REQ message sends it through
+        * phonet.
+        * @param TUint8 aTransId: Transaction id.
+        * @return TInt: KErrNone / Error value from phonet.
+        */
+        TInt ReadLifeTimerFromPermanentMemory( const TUint8 aTransId );
+
+        /**
+        * Breaks a PERM_PM_RECORD_READ_RESP ISI-message.
+        * @param const TIsiReceiveC& aIsiMessage: Received isi message.
+        * @return void: none
+        */
+        void LifeTimerFromPermanentMemoryReadResponse(
+                 const TIsiReceiveC& aIsiMessage );
+
+        /**
+        * Construcst PERM_PM_RECORD_WRITE_REQ message sends it through
+        * phonet.
+        * @param TUint8 aTransId: Transaction id.
+        * @return TInt: KErrNone / Error value from phonet / KErrNotReady if PMM
+        * has not been able to be read.
+        */
+        TInt WriteLifeTimerToPermanentMemory(
+                 const TUint8 aTransId,
+                 TTimeIntervalSeconds aTime );
+
+        /**
+        * Breaks a PERM_PM_RECORD_WRITE_RESP ISI-message.
+        * @param const TIsiReceiveC& aIsiMessage: Received isi message.
+        * @return void: none
+        */
+        void LifeTimerToPermanentMemoryWriteResponse(
+                 const TIsiReceiveC& aIsiMessage );
+
+        /**
+        * Reads total call life timer value and returns it in complete.
+        * If
+        * @param none
+        * @return TInt: KErrNone / KErrNotReady if PMM has not been able to be
+        * read.
+        */
+        TInt  GetTotalLifeTimerValue();
+        
+        /**
+        * Constructs and sends AUTHENTICATE APDU to the UICC
+        * @param aDataPackage: data containing authentication parameters
+        * @return TInt: KErrNone / Error value from phonet
+        */
+        TInt CMmCustomMessHandler::UiccSendAuthenticateApdu( 
+            const CMmDataPackage& aDataPackage );
+
+
+        /**
+        * Constructs RUN GSM ALGORITHM APDU. Used when authentication
+        * is done for ICC card
+        * @param aParams: parameter where the apdu is constructed
+        * @param aRand: RAND value inserted to the APDU
+        * @param aTraId: tr id used in UICC request
+        * @return void: none
+        */
+        void UiccCreateRunGsmAlgorithmApdu(
+            TUiccSendApdu& aParams, 
+            const TDesC8& aRand,
+            TUiccTrId aTraId );
+
+        /**
+        * Handles response APDU for RUN GSM ALGORITHM APDU
+        * @param aTraId: transaction id of received message
+        * @param aStatus: status of the response
+        * @param aFileData: response apdu
+        * @return void: none
+        */
+        void UiccRunGsmAlgorithmApduResp(
+            TInt aTraId,
+            TInt aStatus,
+            const TDesC8& aFileData );
+
+        /**
+        * Constructs GSM context AUTHENTICATE APDU
+        * @param params: parameter where the apdu is constructed
+        * @param aDataPackage: data containing authentication parameters
+        * @return void: none
+        */
+        void UiccCreateGsmSecurityContextApdu( 
+            TUiccSendApdu& params, 
+            const CMmDataPackage& aDataPackage );
+
+        /**
+        * Handles response APDU for GSM security context AUTHENTICATE APDU
+        * @param aTraId: transaction id of received message
+        * @param aStatus: status of the response
+        * @param aFileData: response apdu
+        * @return void: none
+        */
+        void UiccGsmSecurityContextApduResp(
+            TInt aTraId,
+            TInt aStatus,
+            const TDesC8& aFileData );
+
+        /**
+        * Constructs 3G security context AUTHENTICATE APDU
+        * @param aParams: parameter where the apdu is constructed
+        * @param aRand: RAND value inserted to the APDU
+        * @param aAuth: AUTH value inserted to the APDU
+        * @param aTraId: tr id used in UICC request
+        * @return void: none
+        */
+        void UiccCreate3GSecurityContextApdu( 
+            TUiccSendApdu& aParams, 
+            const TDesC8& aRand, 
+            const TDesC8& aAuth,
+            TUiccTrId aTraId );
+
+        /**
+        * Handles response APDU for 3G security context AUTHENTICATE APDU
+        * @param aTraId: transaction id of received message
+        * @param aStatus: status of the response
+        * @param aFileData: response apdu
+        * @return void: none
+        */
+        void Uicc3GSecurityContextApduResp(
+            TInt aTraId,
+            TInt aStatus,
+            const TDesC8& aFileData );
+
+        /**
+        * Constructs GBA security context AUTHENTICATE APDU (bootstrapping mode)
+        * @param aParams: parameter where the apdu is constructed
+        * @param aDataPackage: data containing authentication parameters
+        * @return void: none
+        */
+        void UiccCreateGBABootstrappingApdu(
+            TUiccSendApdu& aParams, 
+            const CMmDataPackage& aDataPackage );
+
+        /**
+        * Handles response APDU for GBA security context AUTHENTICATE 
+        * APDU (bootstrapping mode)
+        * @param aTraId: transaction id of received message
+        * @param aStatus: status of the response
+        * @param aFileData: response apdu
+        * @return void: none
+        */
+        void UiccGBABootstrappingApduResp(
+            TInt aTraId,
+            TInt aStatus,
+            const TDesC8& aFileData );
+
+        /**
+        * Starts GBA bootstrap operation by reading elementary file EFgba. After reading 
+        * is done, B-Tid and keylifetime is updated to EFgba
+        * @param aDataPackage: data containing parameters going to be written
+        *                      to the EFgba
+        * @return void: none
+        */
+        void UiccGBABootstrapUpdate(
+            const CMmDataPackage& aDataPackage );
+
+        /**
+        * Handles response for EFgba read operation
+        * @param aStatus: status of the response
+        * @param aFileData: file data
+        * @return void: none
+        */
+        void UiccGBABootstrapReadResp(
+            TInt aStatus,
+            const TDesC8& aFileData );
+
+        /**
+        * Handles response for EFgba write operation
+        * @param aStatus: status of the response
+        * @return void: none
+        */
+        void UiccGBABootstrapUpdateResp( TInt aStatus );
+
+        /**
+        * Constructs GBA security context AUTHENTICATE APDU 
+        * (NAF derivation mode)
+        * @param aParams: parameter where the apdu is constructed
+        * @param aDataPackage: data containing authentication parameters
+        * @return void: none
+        */
+        void UiccCreateGBABootstrapNafDerivationApdu(
+            TUiccSendApdu& aParams, 
+            const CMmDataPackage& aDataPackage );
+
+        /**
+        * Handles response APDU for GBA security context AUTHENTICATE 
+        * APDU (NAF derivation mode)
+        * @param aTraId: transaction id of received message
+        * @param aStatus: status of the response
+        * @param aFileData: response apdu
+        * @return void: none
+        */
+        void UiccGBANafDerivationApduResp(
+            TInt aTraId,
+            TInt aStatus,
+            const TDesC8& aFileData );
+
+        /**
+        * Constructs MBMS security context AUTHENTICATE APDU 
+        * (MSK Update Mode)
+        * @param params: parameter where the apdu is constructed
+        * @param aDataPackage: data containing authentication parameters
+        * @return void: none
+        */
+        void UiccCreateMbmsMskUpdateApdu(
+            TUiccSendApdu& params, 
+            const CMmDataPackage& aDataPackage );
+
+        /**
+        * Handles response APDU for MBMS security context AUTHENTICATE 
+        * APDU (MSK Update Mode)
+        * @param aTraId: transaction id of received message
+        * @param aStatus: status of the response
+        * @param aFileData: response apdu
+        * @return void: none
+        */
+        void UiccMbmsMskUpdateApduResp(
+            TInt aStatus,
+            const TDesC8& aFileData );
+
+        /**
+        * Constructs MBMS security context AUTHENTICATE APDU 
+        * (MTK Generation Mode)
+        * @param params: parameter where the apdu is constructed
+        * @param aDataPackage: data containing authentication parameters
+        * @return void: none
+        */
+        void UiccCreateMbmsMtkGenerationApdu(
+            TUiccSendApdu& params, 
+            const CMmDataPackage& aDataPackage );
+
+        /**
+        * Handles response APDU for MBMS security context AUTHENTICATE 
+        * APDU (MTK Generation Mode)
+        * @param aStatus: status of the response
+        * @param aFileData: response apdu
+        * @return void: none
+        */
+        void UiccMbmsMtkGenerationApduResp(
+            TInt aStatus,
+            const TDesC8& aFileData );
+
+        /**
+        * Constructs MBMS security context AUTHENTICATE APDU 
+        * (MSK Deletion Mode)
+        * @param params: parameter where the apdu is constructed
+        * @param aDataPackage: data containing authentication parameters
+        * @return void: none
+        */
+        void UiccCreateMbmsMskDeletionApdu(
+            TUiccSendApdu& params, 
+            const CMmDataPackage& aDataPackage );
+
+        /**
+        * Handles response APDU for MBMS security context AUTHENTICATE 
+        * APDU (MSK Deletion Mode)
+        * @param aStatus: status of the response
+        * @param aFileData: response apdu
+        * @return void: none
+        */
+        void UiccMbmsMskDeletionApduResp(
+            TInt aStatus,
+            const TDesC8& aFileData );
+
+        /**
+        * Constructs APDU to get first block of authenticate response data
+        * in case of odd ins code
+        * @return void: none
+        */
+        void CMmCustomMessHandler::UiccCreateFirstBlockOfAuthRespApdu( TUiccTrId aTrId );
+
+        /**
+        * Maps sw1 and sw2 from response authenticate apdu to result 
+        * @param sw1: status of the response
+        * @param sw2: response apdu
+        * @return TUint8: command result
+        */
+        TUint8 MapSw1Sw2ToAuthenticateResult( TUint8 sw1, TUint8 sw2 );
+
+        /**
+        * Validates received apdu
+        * @param aTraId: Identifies the apdu
+        * @param aApdu: APDU to be verified
+        * @return TUint8: KApduOk if verified successfully, 
+        *                 otherwise KApduNok
+        */
+        TUint8 ValidateReceivedAuthenticateApdu( 
+            TInt aTraId, 
+            const TDesC8& aApdu );
+
+        /**
+        * Validates received gsm security context apdu for authenticate
+        * @param aApdu: APDU to be verified
+        * @return TUint8: KApduOk if verified successfully, 
+        *                 otherwise KApduNok
+        */
+        TUint8 ValidateGsmSecurityContextApduResp( const TDesC8& aApdu );
+
+        /**
+        * Validates received 3G security context apdu for authenticate
+        * @param aApdu: APDU to be verified
+        * @return TUint8: KApduOk if verified successfully, 
+        *                 otherwise KApduNok
+        */
+        TUint8 Validate3GSecurityContextApduResp( const TDesC8& aApdu );
+
+        /**
+        * Validates received GBA security context apdu (GBA bootstrapping mode)
+        * for authenticate
+        * @param aApdu: APDU to be verified
+        * @return TUint8: KApduOk if verified successfully, 
+        *                 otherwise KApduNok
+        */
+        TUint8 ValidateGBABootstrappingApduResp( const TDesC8& aApdu );
+
+        /**
+        * Validates received GBA security context apdu (GBA NAF derivation mode)
+        * for authenticate
+        * @param aApdu: APDU to be verified
+        * @return TUint8: KApduOk if verified successfully, 
+        *                 otherwise KApduNok
+        */
+        TUint8 ValidateGBANafDerivationApduResp( const TDesC8& aApdu );
+
+        /**
+        * Validates received RUN GSM ALGORITHM apdu for authenticate
+        * @param aApdu: APDU to be verified
+        * @return TUint8: KApduOk if verified successfully, 
+        *                 otherwise KApduNok
+        */
+        TUint8 ValidateRunGsmAlgorithmApduResp( const TDesC8& aApdu );
+
+        /**
+        * Handles MBMS operation data from received MSK Update
+        * authenticate APDU
+        * @param aMskUpdate: parameters from MBMS operation data are
+        *                    inserted to aMskUpdate
+        * @param aMbmsData: MBMS data got from MSK Update authenticate
+        *                   APDU
+        * @return void: none
+        */
+        void UiccMskUpdateHandleMbmsOperationData(
+            RMmCustomAPI::TSimAuthenticationMgvMskUpdate& aMskUpdate,
+            TDesC8& aMbmsData );
+
+        /**
+        * Handles OMA BCAST operation data from received authenticate
+        * APDU
+        * @param aMskUpdate: parameters from MBMS operation data are
+        *                    inserted to aMskUpdate
+        * @param aMbmsData: APDU data
+        * @return void: none
+        */
+        void UiccMskUpdateHandleOMABcastOperationData( 
+            RMmCustomAPI::TSimAuthenticationMgvMskUpdate& aMskUpdate,
+            TDesC8& aMbmsData );
+
+        /**
+        * Handles MBMS operation data from received MTK Generation
+        * authenticate APDU
+        * @param aMskUpdate: parameters from MBMS operation data are
+        *                    inserted to aMskUpdate
+        * @param aMbmsData: APDU data
+        * @return void: none
+        */
+        void UiccMtkGenHandleMbmsOperationData( 
+            RMmCustomAPI::TSimAuthenticationMgvMtkGeneration& aMtkGen,
+            TDesC8& aMbmsData );
+
+        /**
+        * Handles OMA BCAST operation data from received MTK Generation
+        * authenticate APDU
+        * @param aMtkGen: parameters from MBMS operation data are
+        *                    inserted to aMtkGen
+        * @param aMbmsData: APDU data
+        * @return void: none
+        */
+        void UiccMtkGenHandleOMABcastOperationData( 
+            RMmCustomAPI::TSimAuthenticationMgvMtkGeneration& aMtkGen,
+            TDesC8& aMbmsData );
+
+        /**
+        * Finds tlv objects from BER TLV object
+        * @param aTlvTag: tag of teh tlv object to be search
+        * @param aBerTlv: BER TLV object where to search
+        * @param aTlvObject: tlv object data is copied to this 
+        *                    parameter, if it's found
+        * @return TBool: ETrue if tlv object found, otherwise EFalse
+        */
+        TBool FindTlvObject(
+            TUint8 aTlvTag,
+            const TDesC8& aBerTlv,
+            TDes8& aTlvObject );
+
+        /**
+        * calculates the UMTS Ciphering Key (CK) from the GSM
+        * Ciphering Key (Kc). This is done by using the c4 algorithm defined in
+        * 3GPP TS 33.102 v3.8.0 (Release 1999).
+        * @param aCk: Result is inserted to this parameter
+        * @param aKc:     Kc which is used in calculation
+        * @return void: none
+        */
+        void DeriveCkFromKc( 
+            TDes8& aCk,
+            const TDesC8& aKc );
+
+        /** derives the UMTS Integrity Key (IK) from the GSM
+        * Ciphering Key (Kc). This is done by using the c5 algorithm defined in
+        * 3GPP TS 33.102 v3.8.0 (release 1999).
+        * @param aEapAka: Result is inserted to this parameter
+        * @param aKc:     Kc which is used in calculation
+        * @return void: none
+        */
+        void DeriveIkFromKc(
+            TDes8& aIk,
+            const TDesC8& aKc );
+
+        /** Handles the IMS authentication
+        * @param aDataPackage: data containing authentication parameters
+        * @return TInt: KErrNone / Error value from phonet
+        */
+        TInt UiccHandleImsAuthentication( const CMmDataPackage& aDataPackage );
+
+        /**
+        * Handles response for ISim application activation
+        * @param aStatus: status of the response
+        * @return void: none
+        */
+        void UiccHandleIsimActivationResp( TInt aStatus );
+
+    protected: // Data
+
+        // Pointer to the PhonetSender
+        CMmPhoNetSender* iPhoNetSender;
+
+    private: // Data
+
+        // Pointer to the Message router
+        CMmMessageRouter* iMessageRouter;
+
+        // Pointer to the Net message handler
+        CMmNetMessHandler* iNetMessHandler;
+
+        // Pointer to the Security message handler
+        CMmSecurityMessHandler* iSecurityMessHandler;
+
+        // Release cause value sent
+        TUint8 iReleaseCauseValueSent;
+
+        // List of Ciphering values, for buffering purpose
+        RArray<TCiphListEntry> *iListOfCiphValues;
+
+        // Is indication a refresh indication
+        TBool iIsRefresh;
+
+        // Emergency number checking mode
+        RMmCustomAPI::TCheckMode iUsedEmergencyNbrCheckMode;
+
+        // Lenght of the emergency number to be checked
+        TInt iEmergencyNumberLength;
+
+        // Buffer to hold RAND_PARAMS subblock data
+        TBuf8<20> iRandBuf;
+
+        // Buffer to hold AUTN_PARAMS subblock data
+        TBuf8<20> iAutnBuf;
+
+        // Buffer to hold B-Tid data
+        TBuf8<256> iBTidBuf;
+
+        // Buffer to hold keylifetime data
+        TBuf8<256> iKeyLifetimeBuf;
+
+        // Buffer to hold SIM_SB_AM_GBA_NAF_ID_ID subblock data
+        TBuf8<254> iNafIdBuf;
+
+        // Buffer to hold SIM_SB_IMS_PRIVATE_USER_ID subblock data
+        TBuf8<254> iImpiBuf;
+
+        // Buffer for Mikey data.
+        RMmCustomAPI::TMikey iMikey;
+
+        // Buffer for key domain id data
+        RMmCustomAPI::TKeyDomainId iKeyDomainId;
+
+        // Buffer for key group id data
+        RMmCustomAPI::TKeyGroupId iKeyGroupIdPart;
+
+        // Viag Home Zone Parameters
+        RMmCustomAPI::TViagParams iViagParams;
+
+        // Cb msg ids max count
+        TInt iCbMsgIdsMaxCount;
+
+        // Saves the SIM CB topic number for deletion
+        TUint iSimCBTopicToBeDeleted;
+
+        // Is the SIM topic is being deleted (ETrue ) or not (EFalse)
+        TBool iTopicInSimMemoryDelete;
+
+        // Enhanced Cell Information
+        TECIDInfo iECIDInfo;
+
+        // Is ECIDInfo requested
+        TBool iECIDInfoRequested;
+
+        // Call Life Timer;
+        TInt iCallLifeTimer;
+
+        // Conter for record retries from PMM during read.
+        TUint8 iPMMReadRetryCounter;
+
+        // Pointer to UICC message handler
+        CMmUiccMessHandler* iMmUiccMessHandler;
+
+        //keeps track...
+        TUint8 iSapApduIfState;
+
+        // is Isim application already activated
+        TBool iIsimApplActivated;
+
+    public: // Friend classes
+        //None
+    protected: // Friend classes
+        //None
+    private: // Friend classes
+        //None
+    };
+
+#endif // _CMMCUSTOMMESSHANDLER_H
+
+// End of File