--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserverplugins/common_tsy/commontsy/inc/mmcustomtsy/CMmCustomTsy.h Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,2123 @@
+/*
+* 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 CMMCUSTOMTSY_H
+#define CMMCUSTOMTSY_H
+
+#include <featmgr/featurecontrol.h>
+#include "cmmphonetsy.h"
+#include <ctsy/rmmcustomapi.h>
+#include "CMmCustomExtInterface.h"
+#include <ctsy/serviceapi/mcustomvendorextcomplete.h>
+#include "CMmSubTsyBase.h"
+#include "CMmTsyBase.h"
+#include "MmTsy_numberOfSlots.h"
+#include "MmTsy_timeoutdefs.h"
+#include <f32file.h>
+#include <hash.h>
+#include "cmmvoicecalltsy.h"
+
+// CONSTANTS
+// Valid range: 10-16
+#define BLOB_SIZE 16
+#define METADATA_SIZE 2
+
+// Rand database file paths
+_LIT( KRandDb, "rand_db.cur" );
+_LIT( KRandDbPrev, "rand_db.prv" );
+
+// FORWARD DECLARATIONS
+class CMmCustomExtInterface;
+class CMmCustomVendorExt;
+class CMmPacketTsy;
+
+// CLASS DECLARATION
+
+/**
+ * CMmCustomTsy contains mode-independent custom functionality and
+ * is an aggregate class for its subsystems.
+ *
+ */
+NONSHARABLE_CLASS( CMmCustomTsy ) : public CMmTsyBase,
+ public MCustomVendorExtComplete
+ {
+ friend class CMmWimTsy;
+ friend class CMmSimLockTsy;
+ friend class CMmSIMTsy;
+ friend class CMmCustomSecurityTsy;
+ friend class CMmPhonebookStoreTsy;
+
+ // TCustomRequestType enumerates indexes to Custom TSY's request handle
+ // table. Request handles are stored there while waiting for
+ // completion of the request.
+ enum TCustomRequestType
+ {
+ ECustomTsyReqHandleUnknown,
+ ECustomTsyNotifyDtmfEvent,
+ ECustomTsyGetDiagnosticInfo,
+ ECustomTsyGetRemoteAlertingToneStatus,
+ ECustomTsyCallOrigin,
+ ECustomTsyTerminateCall,
+ ECustomTsyGetAlsBlocked,
+ ECustomTsySetAlsBlocked,
+ ECustomTsyNotifyAlsBlockedChanged,
+ ECustomTsyNotifyNSPSStatus,
+ ECustomTsyGetCipheringInfo,
+ ECustomTsyNotifyCipheringInfoChange,
+ ECustomTsyNetWakeup,
+ ECustomTsyNotifySsAdditionalInfo,
+ ECustomTsyNotifySsRequestComplete,
+ ECustomTsyNotifyCacheReady,
+ ECustomTsyGetPndCacheStatus,
+ ECustomTsyGetAlsPpSupport,
+ ECustomTsyCallGsmBlackListClear,
+ ECustomTsyCheckEmergencyNumber,
+ ECustomTsyGetOperatorName,
+ ECustomTsyGetProgrammableOperatorLogo,
+ ECustomTsySsNotification,
+ ECustomTsyGetNetworkOperatorName,
+ ECustomTsyCheckTwoDigitDialSupport,
+ ECustomTsySatRefreshCompleteNotification,
+ ECustomTsyResetNetServer,
+ ECustomTsyNotifyNetworkConnectionFailure,
+ ECustomTsyGetSimFileInfo,
+ ECustomTsyGetLifeTimerInfo,
+ ECustomTsyGet3GPBInfo,
+ ECustomTsyGetSystemNetworkModes,
+ ECustomTsySetSystemNetworkMode,
+ ECustomTsyGetCurrentSystemNetworkMode,
+ ECustomTsyIMSAuthenticate,
+ ECustomTsyGetSimAuthenticationData,
+ ECustomTsySetDriveMode,
+ ECustomTsyNotifyRauEvent,
+ ECustomTsyReadHSxPAStatus,
+ ECustomTsyWriteHSxPAStatus,
+ ECustomTsyNotifyHSxPAStatus,
+ ECustomTsyNotifyIccCallForwardingStatusChange,
+ ECustomTsyGetIccCallForwardingStatus,
+ ECustomTsyGetCellInfo,
+ ECustomTsyNotifyCellInfoChange,
+ ECustomTsyGetSystemNetworkBand,
+ ECustomTsySetSystemNetworkBand,
+ ECustomTsyGetUSIMServiceSupport,
+ ECustomTsyNotifyRemoteAlertingToneStatusChange,
+ // ATTENTION:: Declare constant for those requests that need
+ // own request handle record in iTsyReqHandleStore above the
+ // following!
+ ECustomTsyMaxNumOfRequests
+ };
+
+ private:
+
+ /** used for queuing CheckAlsPpSupport requests */
+ struct TCheckAlsPpSupportRequest
+ {
+ /** ETel request handle */
+ TTsyReqHandle iReqHandle;
+ /** pointer to client-side data */
+ RMmCustomAPI::TAlsSupport* iRetSupport;
+ };
+
+ /** used for queuing GetSimFileInfo requests */
+ struct TGetSimFileInfoRequest
+ {
+ /** ETel request handle */
+ TTsyReqHandle iReqHandle;
+ /** pointer to client-side data */
+ TDes8* iSimFileInfo;
+ };
+
+ public:
+
+ /**
+ * Two-phased constructor.
+ *
+ * @param aMmPhoneTsy Pointer to a MM PhoneTSY
+ */
+ static CMmCustomTsy* NewL( CMmPhoneTsy* aMmPhoneTsy );
+
+ /**
+ * Destructor
+ */
+ virtual ~CMmCustomTsy();
+
+ /**
+ * Deliver code.
+ *
+ * @param aCodes
+ */
+ void DeliverCodeL( RMobilePhone::TCodeAndUnblockCode aCodes );
+
+ /**
+ * Returns pointer to the Phone object
+ *
+ * @return Pointer to the Phone object
+ */
+ CMmPhoneTsy* Phone();
+
+ /**
+ * Returns pointer to CMmWim object.
+ *
+ * @return Pointer to base class of CMmWim object
+ */
+ CMmSubTsyBase* GetWimTsyPtr() { return iMmSubTsy[ESubTsyIdxWIM]; };
+
+ /**
+ * Returns pointer to CMmSs object.
+ *
+
+ * @return Pointer to base class of CMmSs object
+ */
+ CMmCustomExtInterface* GetActiveExtensionPtr()
+ { return iMmCustomExtInterface; };
+
+ /**
+ * Returns pointer to CMmSimLockTsy object.
+ *
+ * @return Pointer to base class of CMmSimLockTsy object
+ */
+ CMmSubTsyBase* GetSimLockTsyPtr()
+ { return iMmSubTsy[ESubTsyIdxSimLock]; };
+
+ /**
+ * Returns pointer to CMmSIMTsy object.
+ *
+ * @return Pointer to base class of CMmSIMTsy object
+ */
+ CMmSubTsyBase* GetSIMTsyPtr() { return iMmSubTsy[ESubTsyIdxSIM]; };
+
+ /**
+ * Returns pointer to CMmPacketTsy object.
+ *
+ * @return Pointer to base class of CMmPacketTsy object
+ */
+ CMmPacketTsy* PacketTsy()
+ { return ( CMmPacketTsy* )iMmSubTsy[ESubTsyIdxPacket]; };
+
+ /**
+ * Gives pointer to the array of TSY's subsystems.
+ *
+ * @return Array of pointers to CMmSubTsyBase classes
+ */
+ virtual CMmSubTsyBase** GetSubsystemArrayPtr()
+ { return &iMmSubTsy[0]; };
+
+ /**
+ * Gives the maximun number of TSY's subsystems.
+ *
+ * @return Number of subsystems
+ */
+ virtual TInt GetMaxNumberOfSubsystems() { return ESubTsyIdxMaxNum; };
+
+ /**
+ * TRAP's all CMmCustomTsy related Custom API requests in case that
+ * they fail. This method functions only as a centralized TRAP for the
+ * DoExtFuncL method that does the actual mapping of IPC number to
+ * TSY method call.
+ *
+ * @param aTsyReqHandle Request handle
+ * @param aIpc IPC number of the request
+ * @param aPackage Reference to a data package
+ * @return KErrNone/KErrNotSupported
+ */
+ TInt ExtFunc ( const TTsyReqHandle aTsyReqHandle,
+ const TInt aIpc,
+ const TDataPackage& aPackage );
+
+ /**
+ * Handles extended client requests. Uses TRAP to ensure functioning
+ * on memory allocation failure.
+ *
+ * @param aTsyReqHandle Request handle
+ * @param aIpc IPC number of the request
+ * @param aPackage Reference to a data package
+ * @return Error value
+ */
+ virtual TInt DoExtFuncL( const TTsyReqHandle aTsyReqHandle,
+ const TInt aIpc,
+ const TDataPackage& aPackage );
+
+ /**
+ * Returns request mode for given IPC number.
+ *
+
+ * @param aIpc An interprocess communication command identifier
+ * @return The ReqMode corresponding to given IPC
+ */
+ virtual CTelObject::TReqMode ReqModeL( const TInt aIpc );
+
+ /**
+ * Returns number of slots to be used for given IPC.
+ *
+ * @param aIpc An interprocess communication command identifier
+ * @return The number of slots reserved for a given IPC
+ */
+ virtual TInt NumberOfSlotsL( const TInt aIpc );
+
+ /**
+ * Returns security policy for given IPC.
+ *
+ * @param aIpc An interprocess communication command identifier
+ * @return Security policy for this IPC
+ */
+ virtual TSecurityPolicy GetRequiredPlatSecCaps( const TInt aIpc );
+
+ /**
+ * Cancels request of which IPC number and request handle are given in
+ * parameters.
+ *
+ * @param aIpc An interprocess communication command identifier
+ * @param aTsyReqHandle Request handle
+ * @return Error value
+ */
+ virtual TInt CancelService( const TInt aIpc,
+ const TTsyReqHandle aTsyReqHandle );
+
+ /**
+ * Register given notification.
+ *
+ * @param aIpc An interprocess communication command identifier
+ * @return TInt KErrNotSupported
+ */
+ virtual TInt RegisterNotification( const TInt aIpc );
+
+ /**
+ * Deregister given notification.
+ *
+ * @param aIpc An interprocess communication command identifier
+ * @return TInt KErrNotSupported
+ */
+ virtual TInt DeregisterNotification( const TInt aIpc );
+
+ /**
+ * Completes a CompleteTerminateCall request
+ *
+ * @param aError Error code
+ */
+ void CompleteTerminateCall( TInt aError );
+
+ /**
+ * Completes the GetCipheringInfoRequest
+ *
+ * @param aCipherIndStatus Status of ciphering indicator
+ * @param aErrorCode Error code
+ */
+ void CompleteGetCipheringInfo( TBool aCipherIndStatus,
+ TInt aErrorCode );
+
+ /**
+ * Completes a NetWakeup request
+ *
+ * @param aErrorCode Error code
+ */
+ void CompleteNetWakeup( TInt aErrorCode );
+
+ /**
+ * Completes a NotifyCipheringInfoChange request
+ *
+ * @param aCipherIndStatus Status of ciphering indicator
+ * @param aCipherStatus Status of ciphering
+ * @param aErrorCode Error code
+ */
+ void CompleteNotifyCipheringInfoChange( TBool aCipherIndStatus,
+ TBool aCipherStatus,
+ TInt aErrorCode );
+
+ /**
+ * Completes a NotifyNSPSStatus request
+ *
+ * @param aNspsStatus Status of NSPS (On/Off)
+ */
+ void CompleteNotifyNSPSStatus( TBool aNspsStatus );
+
+ /**
+ * Completes a GetAlsBlocked request
+ *
+ * @param aBlockStatus Status of ALS block
+ * @param aErrorCode Error code
+ */
+ void CompleteGetAlsBlocked(
+ RMmCustomAPI::TGetAlsBlockStatus aBlockStatus,
+ TInt aErrorCode );
+
+ /**
+ * Completes a SetAlsBlocked request
+ *
+ * @param aErrorCode Error code
+ */
+ void CompleteSetAlsBlocked( TInt aErrorCode );
+
+ /**
+ * Completes a NotifyAlsBlockedChanged request
+ *
+ */
+ void CompleteNotifyAlsBlockedChanged();
+
+ /**
+ * Completes a NotifyAlsBlockedChanged request
+ *
+
+ * @param aAlsSupport
+ * @param aErrorCode Error code
+ */
+ void CompleteGetAlsPpSupport( RMmCustomAPI::TAlsSupport aAlsSupport,
+ TInt aErrorCode );
+
+ /**
+ * Completes a NotifyDtmfEvent request
+ *
+
+ * @param aInfo Dtmf info
+ * @param aErrorCode Error code
+ */
+ void CompleteNotifyDtmfEvent( RMmCustomAPI::TDtmfInfo aInfo,
+ TInt aErrorCode );
+
+ /**
+ * Completes a ClearCallBlackListL request
+ *
+
+ * @param aErrorCode Error code
+ */
+ void CompleteClearCallBlackList( TInt aErrorCode );
+
+ /**
+ * Completes emergency number checking request
+ *
+
+ * @param aTelNumber Emergency number or NULL if check failed
+ * @param aErrorValue Error value
+ */
+ void CompleteCheckEmergencyNumber(
+ RMmCustomAPI::TMobileTelNumber* aTelNumber,
+ TInt aErrorValue );
+
+ /**
+ * Completes get network provider name request
+ *
+
+ * @param aName Network provider name
+ * @param aError Error value
+ */
+ void CompleteGetNetworkOperatorName( TDes* aName, TInt aError );
+
+ /**
+ * Completes the notification of SAT refresh to the client
+ *
+
+ */
+ void CompleteSatRefreshCompleteNotification();
+
+ /**
+ * Notify RAU event
+ *
+ * @param aEventStatus RAU event status
+ * @return Symbian error value
+ */
+ TInt NotifyRauEvent( RMmCustomAPI::TRauEventStatus* aEventStatus );
+
+ /**
+ * Completes RAU event notification
+ *
+ * @param aEventStatus RAU event status
+ */
+ void CompleteNotifyRauEvent(
+ RMmCustomAPI::TRauEventStatus aEventStatus,
+ TInt aErrorCode );
+
+ /**
+ * Cancels RAU event Notification
+ *
+ * @param aTsyReqHandle TSY reqhandle
+ * @return Symbian error value
+ */
+ TInt NotifyRauEventCancel();
+
+#ifdef REQHANDLE_TIMER
+ /**
+ * Calls the needed complete method due timer expiration
+ *
+
+ * @param aReqHandleType Request handle type.
+ * @param aError Error value
+ * @param aIPC IPC value
+ */
+ void Complete( TInt aReqHandleType, TInt aError, TInt aIPC );
+#endif // REQHANDLE_TIMER
+
+ /**
+ * Completes checking of two digit dial support
+ *
+
+ * @param aTwoDigitDialSupport Two digit dial support status
+ * @param aErrorCode Error code
+ */
+ void CompleteCheckTwoDigitDialSupport(
+ RMmCustomAPI::TTwoDigitDialSupport aTwoDigitDialSupport,
+ TInt aErrorCode );
+
+ /**
+ * Completes a requested NotifySsNetworkEvent
+ *
+
+ * @param aSsTypeAndMode ss type and mode
+ * @param aSsInfo ss info
+ * @param aErrorCode Error code
+ */
+ void CompleteNotifySsNetworkEvent(
+ RMmCustomAPI::TSsTypeAndMode& aSsTypeAndMode,
+ RMmCustomAPI::TSsInfo& aSsInfo,
+ TInt aErrorCode );
+
+ /**
+ * Completes GetOperatorName
+ *
+
+ * @param aOperatorNameInfo Programmable operator name info
+ * @param aErrorValue Error value
+ */
+ void CompleteGetOperatorName(
+ RMmCustomAPI::TOperatorNameInfo& aOperatorNameInfo,
+ TInt aErrorValue );
+
+ /**
+ * Completes GetProgrammableOperatorLogo
+ *
+
+ * @param aOperatorIdInfo Operator id
+ * @param aLogoData Operator logo info
+ * @param aErrorValue Error value
+ */
+ void CompleteGetProgrammableOperatorLogo(
+ RMmCustomAPI::TOperatorId* aOperatorIdInfo,
+ RMmCustomAPI::TOperatorLogo* aLogoData,
+ TInt aErrorValue );
+
+ /**
+ * Sets SatRefresh Status
+ *
+
+ * @param aSatRefreshStatus SatRefresh status
+ */
+ IMPORT_C void SetSatRefreshStatus ( TBool aSatRefreshStatus );
+
+ /**
+ * Completes a ResetNetServer request
+ *
+
+ * @param aErrorValue Error value
+ */
+ void CompleteResetNetServer( TInt aErrorValue );
+
+ /**
+ * Completes a NotifyNetworkConnectionFailure request
+ *
+
+ */
+ void CompleteNotifyNetworkConnectionFailure();
+
+ /**
+ * Completes SsRequestComplete notification
+ *
+
+ * @param aStatus SS status
+ * @param aError Error variable
+ */
+ void CompleteSsRequestCompleteNotification( TInt aSsStatus,
+ TInt aError );
+
+ /**
+ * Completes SsAdditionalInfo notification
+ *
+
+ * @param aSsAdditionalInfo
+ * @param aError
+ */
+ void CompleteSsAdditionalInfoNotification(
+ RMmCustomAPI::TSsAdditionalInfo* aSsAdditionalInfo,
+ TInt aError );
+
+ /**
+ * Notifies client when Phonebook cache is ready
+ *
+
+ * @param aTsyReqHandle Request handle
+ * @param aPndName Phonebookname
+ * @return TInt KErrNone
+ */
+ TInt NotifyPhoneBookCacheReady( const TTsyReqHandle aTsyReqHandle,
+ TName* aPndName );
+
+ /**
+ * Completes NotifyPhoneBookCacheReady notification
+ *
+
+ * @param aPndName Phonebookname
+ * @param aResult
+ */
+ void CompleteNotifyPhoneBookCacheReady( TName& aPndName,
+ TInt aResult );
+
+ /**
+ * Gets current status of caching
+ *
+
+ * @param aTsyReqHandle Request handle
+ * @param aPndStatus Status of caching
+ * @param aPndName Phonebookname
+ * @return TInt KErrNone
+ */
+ TInt GetPndCacheStatus(const TTsyReqHandle aTsyReqHandle,
+ RMmCustomAPI::TPndCacheStatus* aPndStatus,
+ const TName* aPndName );
+
+ /**
+ * This method updates caching status
+ *
+
+ * @param aPndStatus Cache status
+ * @param aPndName Phonebookname
+ */
+ void UpdateCacheStatus( RMmCustomAPI::TPndCacheStatus aPndStatus,
+ TName& aPndName );
+
+ /**
+ * Cancels notify phonebook cache ready notification
+ *
+
+ * @param aTsyReqHandle TSY req handle
+ * @return KErrNone
+ */
+ TInt NotifyPhoneBookCacheReadyCancel(
+ const TTsyReqHandle aTsyReqHandle );
+
+ /**
+ * Completes a GetSimFileInfo request
+ *
+
+ * @param aData File-data retrieved from SIM
+ * @param Error value
+ */
+ void CompleteGetSimFileInfo( TDesC8* aData,
+ TInt aError );
+
+ /**
+ * Completes a GetSimFileInfo request
+
+ * @param aLifeTimerData Life timer information
+ * @param Error value
+ */
+ void CompleteGetLifeTime(
+ RMmCustomAPI::TLifeTimeData& aLifeTimerData,
+ TInt aErrorValue );
+
+ /**
+ * Sets diagnostic octets when received
+ *
+
+ * @param aCallId Id of the call that has diagnostics
+ * @param aDiags The diagnostic octets
+ */
+ void CompleteGetDiagnosticOctects( TInt aCallId,
+ TUint8 aDiags );
+
+ /**
+ * Get supported network modes
+ *
+
+ * @param aTsyReqHandle Request handle
+ * @param aSystemNetworkModes Pointer to network modes
+ * @return Error value
+ */
+ TInt GetSystemNetworkModesL( const TTsyReqHandle aTsyReqHandle,
+ TUint32* aSystemNetworkModes );
+
+ /**
+ * Complete GetSystemNetworkModes or CurrentNetworkMode request
+ *
+
+ * @param aSystemNetworkModes Network modes
+ * @param aResult Error value
+ */
+ void CompleteGetSystemOrCurrentNetworkModes(
+ TUint32 aSystemNetworkModes,
+ TInt aResult );
+
+ /**
+ * Cancel GetSystemNetworkModes request
+ *
+
+ * @param aTsyReqHandle TSY req handle
+ * @return Error value
+ */
+ TInt GetSystemNetworkModesCancel( const TTsyReqHandle aTsyReqHandle );
+
+ /**
+ * Set system network mode
+ *
+
+ * @param aTsyReqHandle Request handle
+ * @param aSystemNetworkModeCaps Pointer to system network mode
+ * @return Error value
+ */
+ TInt SetSystemNetworkModeL( const TTsyReqHandle aTsyReqHandle,
+ RMmCustomAPI::TNetworkModeCaps* aSystemNetworkModeCaps );
+
+ /**
+ * Complete SetSystemNetworkMode request
+ *
+
+ * @param Error value
+ */
+ void CompleteSetSystemNetworkMode( TInt aResult );
+
+ /**
+ * Get currently selected network mode
+ *
+
+ * @param aTsyReqHandle Request handle
+ * @param aNetworkMode Pointer to network mode
+ * @return TInt KErrNone
+ */
+ TInt GetCurrentSystemNetworkModeL( const TTsyReqHandle aTsyReqHandle,
+ TUint32* aNetworkMode );
+
+ /**
+ * Cancel GetCurrentSystemNetworkMode request
+ *
+
+ * @param aTsyReqHandle TSY req handle
+ * @return TInt KErrNone
+ */
+ TInt GetCurrentSystemNetworkModeCancel(
+ const TTsyReqHandle aTsyReqHandle );
+
+ /**
+ * Get network band
+ *
+ * @param aTsyReqHandle Request handle
+ * @param aSystemNetworkBand Pointer to network bands
+ * @return Error value
+ */
+ TInt GetSystemNetworkBandL( const TTsyReqHandle aTsyReqHandle,
+ RMmCustomAPI::TBandSelection* aSystemNetworkBand,
+ RMmCustomAPI::TNetworkModeCaps* aSystemNetworkMode );
+
+ /**
+ * Complete GetSystemNetworkBand request
+ *
+ * @param aSystemNetworkBand Network band
+ * @param aResult Error value
+ */
+ void CompleteGetSystemNetworkBand(
+ RMmCustomAPI::TBandSelection aSystemNetworkBand,
+ RMmCustomAPI::TNetworkModeCaps aSystemNetworkMode,
+ TInt aResult );
+
+ /**
+ * Cancel GetSystemNetworkBand request
+ *
+ * @param aTsyReqHandle TSY req handle
+ * @return Error value
+ */
+ TInt GetSystemNetworkBandCancel( const TTsyReqHandle aTsyReqHandle );
+
+ /**
+ * Set system network band
+ *
+ * @param aTsyReqHandle Request handle
+ * @param aSystemNetworkBand Pointer to system network band
+ * @param aSystemNetworkModeCaps Pointer to system network mode
+ * @return Error value
+ */
+ TInt SetSystemNetworkBandL( const TTsyReqHandle aTsyReqHandle,
+ RMmCustomAPI::TBandSelection* aSystemNetworkBand,
+ RMmCustomAPI::TNetworkModeCaps* aSystemNetworkModeCaps );
+
+ /**
+ * Complete SetSystemNetworkBand request
+ *
+ * @param Error value
+ */
+ void CompleteSetSystemNetworkBand( TInt aResult );
+
+ /**
+ * Completes sim authentication request
+ *
+ * @param aDataPackage Holds authentication data from sim
+ * @param aResult Error value
+ */
+ void CompleteSimAuthentication( CMmDataPackage* aDataPackage,
+ TInt aResult );
+
+ /**
+ * Completes ims authentication request
+ *
+ * @param aDataPackage Holds authentication data from sim
+ * @param aResult Error value
+ */
+ void CompleteImsAuthentication( CMmDataPackage* aDataPackage,
+ TInt aResult );
+
+ /**
+ * Completes a Set Drive Mode request
+ *
+ * @param aErrorCode
+ */
+ void CompleteSetDriveMode( TInt aErrorCode );
+
+ /**
+ * Completes Get Current System Network Mode
+ *
+ * @param aCurrentNetwork Network
+ * @param aResult Result value
+ */
+ void CompleteGetCurrentSystemNetworkMode( TUint32 aCurrentNetwork,
+ TInt aResult );
+
+ /**
+ * Saves call object for completion of emergency nbr check
+ *
+ * @param aCallObject call object
+ */
+ void SetObjectForISVDialNumberCheck( CMmVoiceCallTsy* aCallObject );
+
+ /**
+ * This checks whether given number is an emergency number
+ *
+ * @param aTsyReqHandle TSY req handle
+ * @param aNumberMode Number to be checked and check mode
+ * @param aResult Result of check
+ * @return TInt KErrNone
+ */
+ TInt CheckEmergencyNumberL( const TTsyReqHandle aTsyReqHandle,
+ RMmCustomAPI::TEmerNumberCheckMode* aNumberMode,
+ TBool* aResult );
+
+ /**
+ * Complete ReadHSxPAStatus request
+ *
+ * @param aDataPackage Datapackage
+ * @param aErrorCode Error code
+ */
+ void CompleteReadHSxPAStatus( CMmDataPackage* aDataPackage,
+ TInt aErrorCode );
+
+ /**
+ * Complete WriteHSxPAStatus request
+ *
+ * @param aErrorCode Error code
+ */
+ void CompleteWriteHSxPAStatus( TInt aErrorCode );
+
+ /**
+ * Complete HSxPA Status notification
+ *
+ * @param aErrorCode Error code
+ */
+ void CompleteNotifyHSxPAStatus( CMmDataPackage* aDataPackage,
+ TInt aErrorCode );
+
+ /**
+ * Get Icc Call forwarding parameters
+ *
+ * @param aTsyReqHandle reghandle
+ * @param aCFIndicators pointer to client side data
+ * @return error value
+ */
+ TInt GetIccCallForwardingStatusL( TTsyReqHandle aTsyReqHandle,
+ TDes8* aCFIndicators );
+
+ /**
+ * Completes get icc CF status request
+ *
+ * @param aDataPackage data package
+ * @param aErrorCode Error Code
+ */
+ void CompleteGetIccCallForwardingStatus(
+ CMmDataPackage* aDataPackage,
+ TInt aErrorCode );
+
+ /**
+ * Sets notification on for CF status change
+ *
+ * @param aCFIndicators pointer to client side data
+ * @return error value
+ */
+ TInt NotifyIccCallForwardingStatusChange( TDes8* aCFIndicators );
+
+ /**
+ * Completes icc CF status change notification
+ *
+ * @param aDataPackage data package
+ * @param aErrorCode Error Code
+ */
+ void CompleteNotifyIccCallForwardingStatusChange(
+ CMmDataPackage* aDataPackage,
+ TInt aErrorCode );
+
+ /**
+ * Compares indicator packages
+ *
+ * @param aNotifyCFIndicator indicator to be compared
+ * @return Boolean indicating change
+ */
+ TBool IsIccCallForwardingStatusChanged(
+ RMmCustomAPI::TCFIndicators& aNotifyCFIndicator );
+
+ /**
+ * Cancels icc callforwarding notification
+ *
+ * @param aTsyReqHandle reghandle
+ * @return error value
+ */
+ TInt NotifyIccCallForwardingStatusChangeCancel(
+ const TTsyReqHandle aTsyReqHandle );
+
+ /**
+ * Complete cell info change notification
+ *
+ * @param aCellInfo pointer to client side data
+ * @return error code
+ */
+ void CompleteNotifyCellInfoChange(
+ RMmCustomAPI::TMmCellInfo* aCellInfo,
+ TInt aErrorCode );
+
+ /**
+ * Completes an outstanding GetCellInfo request.
+ *
+ * @param aCellInfo pointer to client side data
+ * @return error value
+ */
+ void CompleteGetCellInfo( RMmCustomAPI::TMmCellInfo* aCellInfo,
+ TInt aErrorValue );
+
+ /**
+ * Get phonebook cache status
+ *
+ * @param aPhoneBookType Phonebooktype
+ * @return Cache status
+ */
+
+ RMmCustomAPI::TPndCacheStatus GetPhonebookCacheStatus(
+ TUint8 aPhoneBookType );
+
+ /**
+ * From MCustomVendorExtComplete
+ * Completes a request back to the client.
+ *
+ * @param aTsyReqHandle Request handle
+ * @param aError Error code
+ */
+ void ReqCompleted( const TTsyReqHandle aTsyReqHandle,
+ const TInt aError );
+
+ /**
+ * Change the bootup flag of ICC Callforward.
+ * PhoneTSY will need to change the bootupflag after CentRep reset.
+ *
+ * @param aBootUp Bootup flag: (ETrue if initial data)
+ */
+ void SetIccCfBootUpFlag( TBool aBootUp );
+
+ /**
+ * Complete GetUSIMServiceSupport request
+ *
+ * @since S60 v3.2
+ * @param aDataPackage Datapackage
+ * @param aErrorCode Error code
+ */
+ void CompleteGetUSIMServiceSupport( CMmDataPackage* aDataPackage,
+ TInt aErrorCode );
+
+ /**
+ * Notify RemoteAlertingToneStatusChange
+ *
+ * @param aToneStatus RemoteToneAlerting status
+ * @return Symbian error value
+ */
+ TInt NotifyRemoteAlertingToneStatusChange(
+ RMmCustomAPI::TRemoteAlertingToneStatus* aToneStatus );
+
+ /**
+ * Completes NotifyRemoteAlertingToneStatusChange notification
+ *
+ * @param aToneStatus RemoteToneAlerting status
+ * @param aErrorCode Error code
+ */
+ void CompleteNotifyRemoteAlertingToneStatusChange(
+ RMmCustomAPI::TRemoteAlertingToneStatus aToneStatus,
+ TInt aErrorCode );
+
+ /**
+ * Cancels RemoteAlertingToneStatusChange Notification
+ *
+ * @return Symbian error value
+ */
+ TInt NotifyRemoteAlertingToneStatusChangeCancel();
+
+ private:
+
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ *
+ * @param aMmPhoneTsy Pointer to MM Phone Tsy object
+ */
+ void ConstructL( CMmPhoneTsy* aMmPhoneTsy );
+
+ /**
+ * C++ default constructor.
+ */
+ CMmCustomTsy();
+
+ /**
+ * Terminate call/all calls
+ *
+ * @param aTsyReqHandle TSY req handle
+ * @param aCallName Name of the call(s) to be terminated
+ * @return TInt KErrNone
+ */
+ TInt TerminateCallL( const TTsyReqHandle aTsyReqHandle,
+ const TName* aCallName );
+
+ /**
+ * Notify Dtmf Event
+ *
+ * @param aInfo Dtmf info
+ * @return TInt KErrNone
+ */
+ TInt NotifyDtmfEvent( RMmCustomAPI::TDtmfInfo* aInfo );
+
+ /**
+ * Cancel NotifyDtmfEvent request
+ *
+ * @param aTsyReqHandle TSY req handle
+ * @return TInt KErrNone
+ */
+ TInt NotifyDtmfEventCancel( const TTsyReqHandle aTsyReqHandle );
+
+ /**
+ * Getting diagnostic info
+ *
+ * @param aTsyReqHandle TSY req handle
+ * @param aCallName Call name
+ * @return Error value
+ */
+
+ TInt GetDiagnosticInfo( const TTsyReqHandle aTsyReqHandle,
+ TName* aCallName );
+
+ /**
+ * Reads the remote alerting tone status
+ *
+ * @param aTsyReqHandle TSY req handle
+ * @param aToneStatus Tone status
+ * @return KErrNone
+ */
+ TInt GetRemoteAlertingToneStatus( const TTsyReqHandle aTsyReqHandle,
+ RMmCustomAPI::TRemoteAlertingToneStatus* aToneStatus );
+
+ /**
+ * Returns the origin of the call
+ *
+ * @param aTsyReqHandle TSY req handle
+ * @param aCallName Call name
+ * @param aOrigin Call origin
+ * @return KErrNone
+ */
+ TInt GetCallOrigin( const TTsyReqHandle aTsyReqHandle,
+ TName* aCallName,
+ RMmCustomAPI::TCallOrigin* aOrigin );
+
+ /**
+ * Gets alternating line service blocked status
+ *
+ * @param aTsyReqHandle TSY req handle
+ * @param aBlockStatus Block status
+ * @return KErrNone
+ */
+ TInt GetAlsBlockedL( const TTsyReqHandle aTsyReqHandle,
+ RMmCustomAPI::TGetAlsBlockStatus* aBlockStatus );
+
+ /**
+ * Cancel GetAlsBlocked request
+ *
+ * @return KErrNone
+ */
+ TInt GetAlsBlockedCancel();
+
+ /**
+ * Gets phonebook 3G info
+ *
+ * @param aTsyReqHandle TSY req handle
+ * @param aInfo 3G phonebook info
+ * @return KErrNone
+ */
+ TInt Get3GPBInfo( const TTsyReqHandle aTsyReqHandle,
+ RMmCustomAPI::T3GPBInfo* aInfo );
+
+ /**
+ * Cancel Get3GPBInfo request
+ *
+ * @return KErrNone
+ */
+ TInt Get3GPBInfoCancel();
+
+ /**
+ * Sets alternating line service blocked status
+ *
+ * @param aTsyReqHandle TSY req handle
+ * @param aBlockStatus Block status
+ * @return KErrNone
+ */
+ TInt SetAlsBlockedL( const TTsyReqHandle aTsyReqHandle,
+ RMmCustomAPI::TSetAlsBlock* aBlockStatus );
+
+ /**
+ * Notifies a client of changed Als blocked status
+ *
+ * @param aTsyReqHandle TSY req handle
+ * @param aBlockStatus Block status
+ * @return KErrNone
+ */
+ TInt NotifyAlsBlockedChanged(
+ RMmCustomAPI::TGetAlsBlockStatus* aBlockStatus );
+
+ /**
+ * Cancels an Outstanding NotifyAlsBlockedChanged
+ *
+ * @param aTsyReqHandle TSY req handle
+ * @return KErrNone
+ */
+ TInt NotifyAlsBlockedChangedCancel(
+ const TTsyReqHandle aTsyReqHandle );
+
+ /**
+ * Get ALS pp Support
+ *
+ * @param aTsyReqHandle TSY req handle
+ * @param aSupport
+ * @return KErrNone
+ */
+ TInt GetAlsPpSupportL( const TTsyReqHandle aTsyReqHandle,
+ RMmCustomAPI::TAlsSupport* aSupport );
+
+ /**
+ * Cancels an outstanding GetAlsPpSupport function
+ *
+ * @return KErrNone
+ */
+ TInt GetAlsPpSupportCancel();
+
+ /**
+ * Gets the ciphering info
+ *
+ * @param aTsyReqHandle TSY req handle
+ * @param aInfo Ciphering information
+ * @return KErrNone
+ */
+ TInt GetCipheringInfoL( const TTsyReqHandle aTsyReqHandle,
+ RMmCustomAPI::TCipheringInfo* aInfo );
+
+ /**
+ * Cancels an outstanding GetCipheringInfo function
+ *
+ * @return KErrNone
+ */
+ TInt GetCipheringInfoCancel();
+
+ /**
+ * This function notifies a client of ciphering info change
+ *
+ * @param aInfo Ciphering information
+ * @return KErrNone
+ */
+ TInt NotifyCipheringInfoChange( RMmCustomAPI::TCipheringInfo* aInfo );
+
+ /**
+ * Cancels an outstanding NotifyCipheringInfoChange function
+ *
+ * @param aTsyReqHandle TSY req handle
+ * @return KErrNone
+ */
+ TInt NotifyCipheringInfoChangeCancel(
+ const TTsyReqHandle aTsyReqHandle );
+
+ /**
+ * Notifies a client of a change in NSPS (No Service Power Save)
+ *
+ * @param aNspsStatus Status of the NSPS (on/off)
+ * @return KErrNone
+ */
+ TInt NotifyNSPSStatus( RMmCustomAPI::TNspsStatus* aNspsStatus );
+
+ /**
+ * This function cancels an outstanding NotifyNSPSStatus function
+ *
+ * @param aTsyReqHandle TSY req handle
+ * @return KErrNone
+ */
+ TInt NotifyNSPSStatusCancel( const TTsyReqHandle aTsyReqHandle );
+
+ /**
+ * This function wake ups the net server from the NSPS state
+ *
+ * @param aTsyReqHandle TSY req handle
+ * @return KErrNone
+ */
+ TInt NetWakeupL( const TTsyReqHandle aTsyReqHandle );
+
+ /**
+ * Clears Call Blacklist
+ *
+ * @param aTsyReqHandle TSY req handle
+ * @return KErrNone
+ */
+ TInt ClearCallBlackListL( const TTsyReqHandle aTsyReqHandle );
+
+ /**
+ * Cancels an outstanding ClearCallBlackListL function
+ *
+ * @return KErrNone
+ */
+ TInt ClearCallBlackListCancel();
+
+ /**
+ * Get the air time use duration synchronously
+ *
+ * @param aTsyReqHandle Request handle
+ * @param aTime Air time duration in seconds.
+ * @return KErrNone
+ */
+ TInt GetAirTimeDuration( const TTsyReqHandle aTsyReqHandle,
+ TTimeIntervalSeconds* aTime );
+
+ /**
+ * Cancels an outstanding CheckEmergencyNumber function
+ *
+ * @return KErrNone
+ */
+ TInt CheckEmergencyNumberCancel();
+
+ /**
+ * Gets network operator name
+ *
+ * @param aNetworkOperatorName Network provider name
+ * @return KErrNone
+ */
+ TInt GetNetworkOperatorNameL( TDes* aNetworkOperatorName );
+
+ /**
+ * Cancels an outstanding GetNetworkOperatorName function
+ *
+ * @return KErrNone
+ */
+ TInt GetNetworkOperatorNameCancel();
+
+ /**
+ * Checks two digit dial support status
+ *
+ * @param aTsyReqHandle TSY req handle
+ * @param aSupport Two digit dial support status
+ * @return KErrNone
+ */
+ TInt CheckTwoDigitDialSupportL( const TTsyReqHandle aTsyReqHandle,
+ RMmCustomAPI::TTwoDigitDialSupport* aSupport );
+
+ /**
+ * Cancels an outstanding CheckTwoDigitDialSupport request
+ *
+ * @return KErrNone
+ */
+ TInt CheckTwoDigitDialSupportCancel();
+
+ /**
+ * Notifies the client of network generated SS events
+ *
+ * @param aSsTypeAndMode SS type and mode info
+ * @param aSsInfo SS general info
+ * @return KErrNone
+ */
+ TInt NotifySsNetworkEvent(
+ RMmCustomAPI::TSsTypeAndMode* aSsTypeAndMode,
+ RMmCustomAPI::TSsInfo* aSsInfo );
+
+ /**
+ * Cancels an outstanding NotifySsNetworkEvent function
+ *
+ * @return KErrNone
+ */
+ TInt NotifySsNetworkEventCancel();
+
+ /**
+ * Cancels ss additional information notification
+ *
+ * @param aTsyReqHandle TSY req handle
+ * @return KErrNone
+ */
+ TInt SsAdditionalInfoNotificationCancel(
+ const TTsyReqHandle aTsyReqHandle );
+
+ /**
+ * Notification request for additionalinfo message
+ *
+ * @param aSsAdditionalInfo Ss additional information
+ * @return KErrNone
+ */
+ TInt SsAdditionalInfoNotification(
+ RMmCustomAPI::TSsAdditionalInfo* aSsAdditionalInfo );
+
+ /**
+ * Gets the programmable operator name info of the current network
+ *
+ * @param aTsyReqHandle TSY req handle
+ * @param aOperatorNameInfo Operator name info
+ * @return KErrNone
+ */
+ TInt GetOperatorNameL( const TTsyReqHandle aTsyReqHandle,
+ RMmCustomAPI::TOperatorNameInfo* aOperatorNameInfo );
+
+ /**
+ * Cancels an outstanding GetOperatorName
+ *
+ * @return KErrNone
+ */
+ TInt GetOperatorNameCancel();
+
+ /**
+ * Gets the programmable operator logo of the current network
+ *
+ * @param aTsyReqHandle TSY req handle
+ * @param aOperatorId
+ * @param aLogo
+ * @return KErrNone
+ */
+ TInt GetProgrammableOperatorLogoL( const TTsyReqHandle aTsyReqHandle,
+ RMmCustomAPI::TOperatorId* aOperatorId,
+ RMmCustomAPI::TOperatorLogo* aLogo );
+
+ /**
+ * Cancels an outstanding GetProgrammableOperatorLogo
+ *
+ * @return KErrNone
+ */
+ TInt GetProgrammableOperatorLogoCancel();
+
+ /**
+ * Notifies the client of SAT refresh
+ *
+ * @return KErrNone
+ */
+ TInt SatRefreshCompleteNotification();
+
+ /**
+ * Cancels an outstanding SatRefreshCompleteNotification request
+ *
+ * @param aTsyReqHandle TSY req handle
+ * @return KErrNone
+ */
+ TInt SatRefreshCompleteNotificationCancel(
+ const TTsyReqHandle aTsyReqHandle );
+
+ /**
+ * Resets the net server to previous network selection when user
+ * doesn't select a network from the network list got in a search
+ *
+ * @param aTsyReqHandle TSY req handle
+ * @return KErrNone
+ */
+ TInt ResetNetServerL( const TTsyReqHandle aTsyReqHandle );
+
+ /**
+ * Notifies of a network connection failure. This failure is so
+ * severe that the only way to recover is to restart the phone.
+ *
+ * @return KErrNone
+ */
+ TInt NotifyNetworkConnectionFailure();
+
+ /**
+ * Cancels an outstanding NotifyNetworkConnectionFailure
+ * severe that the only way to recover is to restart the phone.
+ *
+
+ * @return KErrNone
+ */
+ TInt NotifyNetworkConnectionFailureCancel();
+
+ /**
+ * Notification request for SS request Complete
+ *
+ * @param aTsyReqHandle Request handle
+ * @param aSsStatus Pointer to a supplementary service status variable
+ * @return KErrNone
+ */
+ TInt SsRequestCompleteNotification( TInt* aSsStatus );
+
+ /**
+ * Cancel SsRequestCompleteNotification request
+ *
+ * @param aTsyReqHandle TSY req handle
+ * @return KErrNone
+ */
+ TInt SsRequestCompleteNotificationCancel(
+ const TTsyReqHandle aTsyReqHandle );
+
+ /**
+ * Gets a given SIM file's information
+ *
+ * @param aTsyReqHandle Request handle
+ * @param aSimFileInfoPckg Pointer to a packaged object
+ * @param aSimResponseBuffer Pointer to client side buffer
+ * for storing data
+ * @return KErrNone
+ */
+ TInt GetSimFileInfoL( const TTsyReqHandle aTsyReqHandle,
+ TDes8* aSimFileInfoPckg,
+ TDes8* aSimResponseBuffer );
+
+ /**
+ * Cancel GetSimFileInfo request
+ *
+ * @param aTsyReqHandle Request handle
+ * @return KErrNone
+ */
+ TInt GetSimFileInfoCancel( TTsyReqHandle aTsyReqHandle );
+
+ /**
+ * Gets the life timer's information
+ *
+ * @param aTsyReqHandle Request handle
+ * @param aLifeTimerInfoPckg Pointer to packaged TLifeTimeInfo class
+ * @return KErrNone
+ */
+ TInt GetLifeTimeL( const TTsyReqHandle aTsyReqHandle,
+ TDes8* aLifeTimerInfoPckg );
+
+ /**
+ * Cancel GetLifeTime request
+ *
+ * @return KErrNone
+ */
+ TInt GetLifeTimeCancel();
+
+ /**
+ * Sets SIM SMS storage status to "read". Implements CustomAPI
+ * method SetSimMessageStatusRead.
+ *
+ * @param aTsyReqHandle Request handle
+ * @param aTime Client-side SMSC timestamp of the SIM-stored message.
+ * @param aTimezoneDiff Client-side SMSC timezone difference of the
+ * SIM-stored message.
+ * @return KErrNone
+ */
+ TInt SetSimMessageStatusReadL( const TTsyReqHandle aTsyReqHandle,
+ TTime& aTime,
+ TInt& aTimezoneDiff );
+
+#ifdef REQHANDLE_TIMER
+ /**
+ * Chooses the type of response, automatic or common
+ *
+ * @param aReqHandleType
+ * @param aTsyReqHandle
+ */
+ void SetTypeOfResponse( const TInt aReqHandleType,
+ const TTsyReqHandle aTsyReqHandle );
+#endif //REQHANDLE_TIMER
+
+ /**
+ * Checks wether or not a ETel request can be performed while offline
+ * mode is enabled
+ *
+ * @param aIpc Ipc number of the request
+ * @return Boolean
+ */
+ TBool IsRequestPossibleInOffline( TInt aIpc );
+
+ /**
+ * Gets authentication data from sim
+ *
+
+ * @param aTsyReqHandle Request handle
+ * @param aAuthenticationData Pointer to IMS authentication data.
+ * @return KErrNone
+ */
+ TInt ImsAuthenticationL( const TTsyReqHandle aTsyReqHandle,
+ RMobilePhone::TImsAuthenticateDataV5* aAuthenticationData );
+
+ /**
+ * Cancels sim authenticaiton request
+ *
+ * @return KErrNone
+ */
+ TInt ImsAuthenticationCancel();
+
+ /**
+ * Gets authentication data from sim
+ *
+ * @param aTsyReqHandle Request handle
+ * @param aAuthData Reference to packed authentication class
+ * @return KErrNone
+ */
+ TInt SimAuthenticationL( const TTsyReqHandle aTsyReqHandle,
+ const TDataPackage& aAuthData );
+
+ /**
+ * Cancels sim authenticaiton request
+ *
+ * @return KErrNone
+ */
+ TInt SimAuthenticationCancel();
+
+ /**
+ * Checks if rand received from network is valid
+ *
+
+ * @param aRand RAND
+ * @return KErrNone
+ */
+ TInt CheckRandValidityL( TBuf8<16> aRand );
+
+ /**
+ * Creates database to hold rand information
+ *
+
+ * @return KErrNone
+ */
+ TInt CreateRandDb();
+
+ /**
+ * Checks rand_db.prv for set bits
+ *
+ * @param aMessageDigest Hash sum(sha1) of RAND
+ * @return KErrNone
+ */
+ TInt FindSetBitsFromBackup( TPtrC8 aMessageDigest );
+
+ /**
+ * Inserts blobs to rand_db
+ *
+
+ * @param aMessageDigest Hash sum(sha1) of RAND
+ * @return KErrNone
+ */
+ TInt InsertBlobsToRandDb( TPtrC8 aMessageDigest );
+
+ /**
+ * Update bit counter on rand_db
+ *
+
+ * @return KErrNone
+ */
+ TInt UpdateBitCounter();
+
+ /**
+ * Sets Drive Mode status
+ *
+ * @param aTsyReqHandle TSY req handle
+ * @param aModeStatus Mode status
+ * @return KErrNone
+ */
+ TInt SetDriveModeL( const TTsyReqHandle aTsyReqHandle,
+ RMmCustomAPI::TSetDriveMode* aModeStatus );
+
+ /**
+ * Read HSxPAStatus
+ *
+ * @param aTsyReqHandle TSY req handle
+ * @param aHSxPAStatus HSxPA status
+ * @return Error value
+ */
+ TInt ReadHSxPAStatusL( const TTsyReqHandle aTsyReqHandle,
+ RMmCustomAPI::THSxPAStatus* aHSxPAStatus );
+
+ /**
+ * Cancel ReadHSxPAStatus request
+ *
+ * @return Error value
+ */
+ TInt ReadHSxPAStatusCancel();
+
+ /**
+ * Write HSxPA Status
+ *
+ * @param aTsyReqHandle TSY req handle
+ * @param aHSxPAStatus HSxPA status
+ * @return Error value
+ */
+ TInt WriteHSxPAStatusL( const TTsyReqHandle aTsyReqHandle,
+ RMmCustomAPI::THSxPAStatus* aHSxPAStatus );
+
+ /**
+ * Cancel WriteHSxPAStatus request
+ *
+ * @return Error value
+ */
+ TInt WriteHSxPAStatusCancel();
+
+ /**
+ * Set HSxPAStatus notification
+ *
+ * @param aHSxPAStatus
+ * @return Error value
+ */
+ TInt NotifyHSxPAStatus( RMmCustomAPI::THSxPAStatus* aHSxPAStatus );
+
+ /**
+ * Cancel HSxPAStatus notification
+ *
+ * @return Error value
+ */
+ TInt NotifyHSxPAStatusCancel();
+
+ /**
+ * Gets GSM/WCDMA cell(s) info
+ *
+ * @param aCellInfoPckg Pointer to packaged TMmCellInfo class
+ */
+ TInt GetCellInfoL( TDes8* aCellInfoPckg );
+
+ /**
+ * Cancels an outstanding GetCellInfo request
+ *
+ * @return Error value
+ */
+ TInt GetCellInfoCancel();
+
+ /**
+ * Notification cell(s) info changes
+ *
+ * @param aCellInfoPckg Pointer to packaged TMmCellInfo class
+ * @return Error value
+ */
+ TInt NotifyCellInfoChange( TDes8* aCellInfoPckg );
+
+ /**
+ * Cancel cell info change notification
+ *
+ * @return Error value
+ */
+ TInt NotifyCellInfoChangeCancel();
+ /**
+ * Read GetUSIMServiceSupport
+ *
+ * @since S60 v3.2
+ * @param aTsyReqHandle TSY req handle
+ * @param aAppSupport Application provided data
+ * @return Error value
+ */
+ TInt GetUSIMServiceSupportL( const TTsyReqHandle aTsyReqHandle,
+ RMmCustomAPI::TAppSupport* aAppSupport );
+
+ /**
+ * Cancel GetUSIMServiceSupport request
+ *
+ * @since S60 v3.2
+ * @return Error value
+ */
+ TInt GetUSIMServiceSupportCancel();
+
+ /**
+ * Cancels get icc callforwarding request
+ *
+ * @since S60 v.3.2
+ * @param aTsyReqHandle TSY req handle
+ * @return KErrNone
+ */
+ TInt GetIccCallForwardingStatusCancel(
+ const TTsyReqHandle aTsyReqHandle );
+
+ /**
+ * Cancels GetIccCallForwardingStatus request
+ *
+ * @return KErrNone
+ */
+ TInt GetIccCallForwardingStatusCancel();
+
+ private:
+
+ enum TSubTsyIdx
+ {
+ ESubTsyIdxWIM,
+ ESubTsyIdxPacket,
+ ESubTsyIdxSs,
+ ESubTsyIdxSimLock,
+ ESubTsyIdxSIM,
+ ESubTsyIdxSecurity,
+
+ // ATTENTION: Let the following constant be the last one
+ ESubTsyIdxMaxNum
+ };
+
+ /**
+ * Pointer to the active extension
+ * Own.
+ */
+ CMmCustomExtInterface* iMmCustomExtInterface;
+
+ /**
+ * Array of subsystem pointers
+ * Own.
+ */
+ CMmSubTsyBase* iMmSubTsy[ESubTsyIdxMaxNum];
+
+ /**
+ * Ptr to CMmPhoneTsy object
+ * Not Own.
+ */
+ CMmPhoneTsy* iMmPhoneTsy;
+
+ /**
+ * Pointer to the Req handle store
+ * Own.
+ */
+ CMmTsyReqHandleStore* iTsyReqHandleStore;
+
+ /**
+ * Table for custom request handles
+ */
+ TTsyReqHandle iCustomReqHandles[ECustomTsyMaxNumOfRequests];
+
+ /**
+ * Stores last reserved transaction id number
+ */
+ TUint8 iTransId;
+
+ /**
+ * Saves temporarily last TSY request type
+ */
+ TCustomRequestType iReqHandleType;
+
+ /**
+ * Pointer to Dtmf Info
+ * Not Own.
+ */
+ RMmCustomAPI::TDtmfInfo* iNotifyInfo;
+
+ /**
+ * Remote alerting status
+ */
+ RMmCustomAPI::TRemoteAlertingToneStatus iRemoteAlertingToneStatus;
+
+ /**
+ * Pointer to ciphering information
+ * Not Own.
+ */
+ RMmCustomAPI::TCipheringInfo* iRetCipheringInfo;
+
+ /**
+ * Pointer to NSPS status information
+ * Not Own.
+ */
+ RMmCustomAPI::TNspsStatus* iRetNspsStatus;
+
+ /**
+ * Pointer to notification ciphering information
+ * Not Own.
+ */
+ RMmCustomAPI::TCipheringInfo* iRetNotifyCipheringInfoChange;
+
+ /**
+ * Ciphering information
+ */
+ RMmCustomAPI::TCipheringInfo iCipheringInfo;
+
+ /**
+ * Pointer to Als block status for notification
+ * Not Own.
+ */
+ RMmCustomAPI::TGetAlsBlockStatus* iRetNotifyAlsBlockStatus;
+
+ /**
+ * Pointer to ALS block status for get
+ * Not Own.
+ */
+ RMmCustomAPI::TGetAlsBlockStatus* iRetAlsBlockStatus;
+
+ /**
+ * Pointer to ALS block status for set
+ * Not Own.
+ */
+#ifndef USING_CTSY_DISPATCHER
+ RMmCustomAPI::TSetAlsBlock* iSetBlockStatus;
+#else //USING_CTSY_DISPATCHER
+ const RMmCustomAPI::TSetAlsBlock* iSetBlockStatus;
+#endif //USING_CTSY_DISPATCHER
+
+ /**
+ * Pointer to ALS support
+ * Not Own.
+ */
+ RMmCustomAPI::TAlsSupport* iAlsSupport;
+
+ /**
+ * Pointer to SS additional information
+ * Not Own.
+ */
+ RMmCustomAPI::TSsAdditionalInfo* iRetSsAdditionalInfo;
+
+ /**
+ * Pointer to SS request complete information
+ * Not Own.
+ */
+ TInt* iRetSsRequestComplete;
+
+ /**
+ * Pointer to check emergency number result
+ * Not Own.
+ */
+ TBool* iEmergencyNumberCheckResult;
+
+ /**
+ * Pointer to check emergency number mode
+ * Not Own.
+ */
+ RMmCustomAPI::TEmerNumberCheckMode* iEmergencyNumberCheckMode;
+
+ /**
+ * Pointer to get current network mode
+ * Not Own.
+ */
+ TUint32* iCurrentNetworkMode;
+
+ /**
+ * Pointer to client's phonebookname buffer
+ * Not Own.
+ */
+ TName* iPndName;
+
+ /**
+ * Pointer to network provider name
+ * Not Own.
+ */
+ TDes* iNetworkOperatorName;
+
+ /**
+ * Two digit dial support check
+ * Not Own.
+ */
+ RMmCustomAPI::TTwoDigitDialSupport *iTwoDigitDialSupport;
+
+ /**
+ * Programmable operator name info
+ * Not Own.
+ */
+ RMmCustomAPI::TOperatorNameInfo* iOperatorNameInfo;
+
+ /**
+ * SS type and Mode
+ * Not Own.
+ */
+ RMmCustomAPI::TSsTypeAndMode* iSsTypeAndMode;
+
+ /**
+ * SS information
+ * Not Own.
+ */
+ RMmCustomAPI::TSsInfo* iSsInfo;
+
+ /**
+ * Operator Id for getting the logo
+ * Not Own.
+ */
+ RMmCustomAPI::TOperatorId* iOperatorId;
+
+ /**
+ * Information of the logo
+ * Not Own.
+ */
+ RMmCustomAPI::TOperatorLogo* iLogo;
+
+ /**
+ * Is refresh done?
+ */
+ TBool iIsRefresh;
+
+ /**
+ * Programmable operator name info
+ * Not Own.
+ */
+ RMmCustomAPI::TOperatorNameInfo* iRetOperatorNameInfo;
+
+ /**
+ * Programmable operator logo info
+ * Not Own.
+ */
+ RMmCustomAPI::TOperatorLogo* iRetOperatorLogoInfo;
+
+ /**
+ * Operator Id info
+ * Not Own.
+ */
+ RMmCustomAPI::TOperatorId* iRetOperatorIdInfo;
+
+ /**
+ * Pointer to supplementary service status
+ * Not Own.
+ */
+ TInt* iRetSsStatus;
+
+ /**
+ * Attribute tells status of the cache
+ */
+ RMmCustomAPI::TPndCacheStatus iAdnCacheStatus;
+
+ /**
+ * Attribute tells status of the cache
+ */
+ RMmCustomAPI::TPndCacheStatus iFdnCacheStatus;
+
+ /**
+ * Pointer to the buffer to hold Sim file information
+ * Not Own.
+ */
+ TDes8* iLifeTimerInfoPckg;
+
+ /**
+ * Pointer to get supported network modes
+ * Not Own.
+ */
+ TUint32* iSystemNetworkModes;
+
+ /**
+ * Pointer to selected system network mode
+ * Not Own.
+ */
+ RMmCustomAPI::TNetworkModeCaps* iSystemNetworkModeCaps;
+
+ /**
+ * Network 3G radio frequency band
+ * not own
+ */
+ RMmCustomAPI::TBandSelection* iSystemNetworkBand;
+
+ /**
+ * Available network 3G radio frequency band
+ * not own
+ */
+ RMmCustomAPI::TBandSelection* iAvailableSystemNetworkBand;
+
+ /**
+ * Pointer to Custom Security Tsy
+ * Own.
+ */
+ CMmCustomSecurityTsy* iMmSecurityTsy;
+
+ /**
+ * Pointer to vendor extension
+ * Own.
+ */
+ CMmCustomVendorExt* iMmCustomVendorExt;
+
+ /**
+ * Pointer to 2G authentication data
+ * Not Own.
+ */
+ RMmCustomAPI::TSimAuthenticationEapSim* iEapSim;
+
+ /**
+ * Pointer to 3G authentication data
+ * Not Own.
+ */
+ RMmCustomAPI::TSimAuthenticationEapAka* iEapAka;
+
+ /**
+ * Number of fresh bits found from RAND
+ * Not Own.
+ */
+ TUint16 iFreshBitCounter;
+
+ /**
+ * Pointer to the IMS authentication data
+ * Not Own.
+ */
+ RMobilePhone::TImsAuthenticateDataV5* iIMSAuthenticationData;
+
+ /**
+ * Pointer to call object
+ * Not Own.
+ */
+ CMmVoiceCallTsy* iISVDialNumberCheckObject;
+
+ /**
+ * Boolean that indicates that number check is called because
+ * of 3rd party dial request
+ * Not Own.
+ */
+ TBool iISVDialNumberCheck;
+
+ /**
+ * Pointer to client side Rau event data
+ * Not Own
+ */
+ RMmCustomAPI::TRauEventStatus* iRauEventStatus;
+
+ /**
+ * HSxPA status
+ */
+ RMmCustomAPI::THSxPAStatus iHSxPAStatus;
+
+ /**
+ * Pointer to client side HSxPA status
+ * Not Own.
+ */
+ RMmCustomAPI::THSxPAStatus* iRetHSxPAStatus;
+
+ /**
+ * Pointer to client side HSxPA status
+ * Not Own.
+ */
+ RMmCustomAPI::THSxPAStatus* iSetHSxPAStatus;
+
+ /**
+ * Pointer to client side HSxPA status
+ * Not Own.
+ */
+ RMmCustomAPI::THSxPAStatus* iRetNotifyHSxPAStatus;
+
+ /**
+ * Pointer to client side data
+ * Not Own.
+ */
+ TDes8* iRetCFIndicators;
+
+ /**
+ * TCF indicator
+ */
+ RMmCustomAPI::TCFIndicators iCurrentTCFIndicator;
+
+ /**
+ * Pointer to client side data
+ * Not Own.
+ */
+ TDes8* iNotifyCFIndicator;
+
+ /**
+ * Pointer to Public Central Repository
+ */
+ CRepository* iCFISCentRep;
+
+ /**
+ * Pointer to Cfis Private Central Repository
+ */
+ CRepository* iCFISPrivateCentRep;
+
+ /**
+ * Boolean indicating that request is made during boot-up
+ */
+ TBool iGetIccCfStatusBootUp;
+
+ /**
+ * Pointer to client side notify cell info
+ * Not Own.
+ */
+ RMmCustomAPI::TMmCellInfoPckg* iRetNotifyCellInfoPckg;
+
+ /**
+ * Pointer to the buffer to hold cell info information
+ * Not Own.
+ */
+ RMmCustomAPI::TMmCellInfoPckg* iCellInfoPckg;
+
+ /**
+ * Cell info
+ * Not Own.
+ */
+ RMmCustomAPI::TMmCellInfo iCellInfo;
+
+ /**
+ * Used to query for supported features
+ */
+ RFeatureControl iFeatureControl;
+
+ /**
+ * Tells if Feature Manager is available. Will be EFalse if
+ * RFeatureControl::Open fails to connect to the Feature Manager
+ */
+ TBool iUsingFeatureManager;
+ /**
+ * Pointer to client support structure
+ * Not Own.
+ */
+ RMmCustomAPI::TAppSupport* iAppSupport;
+
+ /**
+ * Pointer to client GBA bootstrap structure
+ * Not Own.
+ */
+ RMmCustomAPI::TSimAuthenticationGbaBootstrap* iGbaBootstrap;
+
+ /**
+ * Pointer to client GBA update structure
+ * Not Own.
+ */
+ RMmCustomAPI::TSimAuthenticationGbaBootstrapUpdate* iGbaBootstrapUpdate;
+
+ /**
+ * Pointer to client NAF derivation structure
+ * Not Own.
+ */
+ RMmCustomAPI::TSimAuthenticationGbaNafDerivation* iGbaNafDerivation;
+
+ /**
+ * Pointer to client MSK update structure
+ * Not Own.
+ */
+ RMmCustomAPI::TSimAuthenticationMgvMskUpdate* iMgvMskUpdate;
+
+ /**
+ * Pointer to client MTK generation structure
+ * Not Own.
+ */
+ RMmCustomAPI::TSimAuthenticationMgvMtkGeneration* iMgvMtkGeneration;
+
+ /**
+ * Pointer to client MSK deletion structure
+ * Not Own.
+ */
+ RMmCustomAPI::TSimAuthenticationMgvMskDeletion* iMgvMskDeletion;
+
+ /**
+ * Pointer to client side RemoteAlertingToneStatus data
+ * Not Own
+ */
+ RMmCustomAPI::TRemoteAlertingToneStatus* iToneStatus;
+
+ /**
+ * Array for buffering CheckAlsPpSupport requests
+ */
+ RPointerArray< TCheckAlsPpSupportRequest >
+ iCheckAlsPpSupportRequests;
+
+ /**
+ * Requested SIM file info
+ */
+ RMmCustomAPI::TSimFileInfo iGetSimFileInfoReq;
+
+ /**
+ * Array for buffering GetSimFileInfo requests
+ */
+ RPointerArray< TGetSimFileInfoRequest > iGetSimFileInfoRequests;
+ };
+
+#endif // CMMCUSTOMTSY_H
+
+// End of File