telephonyserverplugins/common_tsy/commontsy/inc/mmcustomtsy/CMmCustomTsy.h
changeset 0 3553901f7fa8
child 5 7ef16719d8cb
equal deleted inserted replaced
-1:000000000000 0:3553901f7fa8
       
     1 /*
       
     2 * Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 #ifndef CMMCUSTOMTSY_H
       
    21 #define CMMCUSTOMTSY_H
       
    22 
       
    23 #include <featmgr/featurecontrol.h>
       
    24 #include "cmmphonetsy.h"
       
    25 #include <ctsy/rmmcustomapi.h>
       
    26 #include "CMmCustomExtInterface.h"
       
    27 #include <ctsy/serviceapi/mcustomvendorextcomplete.h>
       
    28 #include "CMmSubTsyBase.h"
       
    29 #include "CMmTsyBase.h"
       
    30 #include "MmTsy_numberOfSlots.h"
       
    31 #include "MmTsy_timeoutdefs.h"
       
    32 #include <f32file.h>
       
    33 #include <hash.h>
       
    34 #include "cmmvoicecalltsy.h"
       
    35 
       
    36 // CONSTANTS
       
    37 // Valid range: 10-16
       
    38 #define BLOB_SIZE          16
       
    39 #define METADATA_SIZE      2
       
    40 
       
    41 // Rand database file paths
       
    42 _LIT( KRandDb, "rand_db.cur" );
       
    43 _LIT( KRandDbPrev, "rand_db.prv" );
       
    44 
       
    45 // FORWARD DECLARATIONS
       
    46 class CMmCustomExtInterface;
       
    47 class CMmCustomVendorExt;
       
    48 class CMmPacketTsy;
       
    49 
       
    50 // CLASS DECLARATION
       
    51 
       
    52 /**
       
    53  *  CMmCustomTsy contains mode-independent custom functionality and
       
    54  *  is an aggregate class for its subsystems.
       
    55  *
       
    56  */
       
    57 NONSHARABLE_CLASS( CMmCustomTsy ) : public CMmTsyBase, 
       
    58     public MCustomVendorExtComplete
       
    59     {
       
    60     friend class CMmWimTsy;
       
    61     friend class CMmSimLockTsy;
       
    62     friend class CMmSIMTsy;
       
    63     friend class CMmCustomSecurityTsy;
       
    64     friend class CMmPhonebookStoreTsy;
       
    65 
       
    66     // TCustomRequestType enumerates indexes to Custom TSY's request handle
       
    67     // table. Request handles are stored there while waiting for
       
    68     // completion of the request.
       
    69     enum TCustomRequestType
       
    70         {
       
    71         ECustomTsyReqHandleUnknown,
       
    72         ECustomTsyNotifyDtmfEvent,
       
    73         ECustomTsyGetDiagnosticInfo,
       
    74         ECustomTsyGetRemoteAlertingToneStatus,
       
    75         ECustomTsyCallOrigin,
       
    76         ECustomTsyTerminateCall,
       
    77         ECustomTsyGetAlsBlocked,
       
    78         ECustomTsySetAlsBlocked,
       
    79         ECustomTsyNotifyAlsBlockedChanged,
       
    80         ECustomTsyNotifyNSPSStatus,
       
    81         ECustomTsyGetCipheringInfo,
       
    82         ECustomTsyNotifyCipheringInfoChange,
       
    83         ECustomTsyNetWakeup,
       
    84         ECustomTsyNotifySsAdditionalInfo,
       
    85         ECustomTsyNotifySsRequestComplete,
       
    86         ECustomTsyNotifyCacheReady,
       
    87         ECustomTsyGetPndCacheStatus,
       
    88         ECustomTsyGetAlsPpSupport,
       
    89         ECustomTsyCallGsmBlackListClear,
       
    90         ECustomTsyCheckEmergencyNumber,
       
    91         ECustomTsyGetOperatorName,
       
    92         ECustomTsyGetProgrammableOperatorLogo,
       
    93         ECustomTsySsNotification,
       
    94         ECustomTsyGetNetworkOperatorName,
       
    95         ECustomTsyCheckTwoDigitDialSupport,
       
    96         ECustomTsySatRefreshCompleteNotification,
       
    97         ECustomTsyResetNetServer,
       
    98         ECustomTsyNotifyNetworkConnectionFailure,
       
    99         ECustomTsyGetSimFileInfo,
       
   100         ECustomTsyGetLifeTimerInfo,
       
   101         ECustomTsyGet3GPBInfo,
       
   102         ECustomTsyGetSystemNetworkModes,
       
   103         ECustomTsySetSystemNetworkMode,
       
   104         ECustomTsyGetCurrentSystemNetworkMode,
       
   105         ECustomTsyIMSAuthenticate,
       
   106         ECustomTsyGetSimAuthenticationData,
       
   107         ECustomTsySetDriveMode,
       
   108         ECustomTsyNotifyRauEvent,
       
   109         ECustomTsyReadHSxPAStatus,
       
   110         ECustomTsyWriteHSxPAStatus,
       
   111         ECustomTsyNotifyHSxPAStatus,
       
   112         ECustomTsyNotifyIccCallForwardingStatusChange,
       
   113         ECustomTsyGetIccCallForwardingStatus,
       
   114         ECustomTsyGetCellInfo,
       
   115         ECustomTsyNotifyCellInfoChange,
       
   116         ECustomTsyGetSystemNetworkBand,
       
   117         ECustomTsySetSystemNetworkBand,
       
   118 		ECustomTsyGetUSIMServiceSupport,
       
   119 		ECustomTsyNotifyRemoteAlertingToneStatusChange,
       
   120         // ATTENTION:: Declare constant for those requests that need
       
   121         // own request handle record in iTsyReqHandleStore above the
       
   122         // following!
       
   123         ECustomTsyMaxNumOfRequests
       
   124         };
       
   125 
       
   126     private:
       
   127     
       
   128         /** used for queuing CheckAlsPpSupport requests */
       
   129         struct TCheckAlsPpSupportRequest
       
   130             {
       
   131             /** ETel request handle */
       
   132             TTsyReqHandle iReqHandle; 
       
   133             /** pointer to client-side    data */
       
   134             RMmCustomAPI::TAlsSupport* iRetSupport; 
       
   135             };
       
   136         
       
   137         /** used for queuing GetSimFileInfo requests */
       
   138         struct TGetSimFileInfoRequest
       
   139             {
       
   140             /** ETel request handle */
       
   141             TTsyReqHandle iReqHandle; 
       
   142             /** pointer to client-side data */
       
   143             TDes8* iSimFileInfo; 
       
   144             };
       
   145 
       
   146     public:
       
   147 
       
   148         /**
       
   149          * Two-phased constructor.
       
   150          *
       
   151          * @param aMmPhoneTsy Pointer to a MM PhoneTSY
       
   152          */
       
   153         static CMmCustomTsy* NewL( CMmPhoneTsy* aMmPhoneTsy );
       
   154 
       
   155         /**
       
   156          * Destructor
       
   157          */
       
   158         virtual ~CMmCustomTsy();
       
   159 
       
   160         /**
       
   161          * Deliver code.
       
   162          *
       
   163          * @param aCodes
       
   164          */
       
   165         void DeliverCodeL( RMobilePhone::TCodeAndUnblockCode aCodes );
       
   166 
       
   167         /**
       
   168          * Returns pointer to the Phone object
       
   169          *
       
   170          * @return Pointer to the Phone object
       
   171          */
       
   172         CMmPhoneTsy* Phone();
       
   173 
       
   174         /**
       
   175          * Returns pointer to CMmWim object.
       
   176          *
       
   177          * @return Pointer to base class of CMmWim object
       
   178          */
       
   179         CMmSubTsyBase* GetWimTsyPtr() { return iMmSubTsy[ESubTsyIdxWIM]; };
       
   180 
       
   181         /**
       
   182          * Returns pointer to CMmSs object.
       
   183          *
       
   184 
       
   185          * @return Pointer to base class of CMmSs object
       
   186          */
       
   187         CMmCustomExtInterface* GetActiveExtensionPtr()
       
   188             { return iMmCustomExtInterface; };
       
   189 
       
   190         /**
       
   191          * Returns pointer to CMmSimLockTsy object.
       
   192          *
       
   193          * @return Pointer to base class of CMmSimLockTsy object
       
   194          */
       
   195         CMmSubTsyBase* GetSimLockTsyPtr()
       
   196             { return iMmSubTsy[ESubTsyIdxSimLock]; };
       
   197 
       
   198         /**
       
   199          * Returns pointer to CMmSIMTsy object.
       
   200          *
       
   201          * @return Pointer to base class of CMmSIMTsy object
       
   202          */
       
   203         CMmSubTsyBase* GetSIMTsyPtr() { return iMmSubTsy[ESubTsyIdxSIM]; };
       
   204 
       
   205         /**
       
   206          * Returns pointer to CMmPacketTsy object.
       
   207          *
       
   208          * @return Pointer to base class of CMmPacketTsy object
       
   209          */
       
   210         CMmPacketTsy* PacketTsy()
       
   211             { return ( CMmPacketTsy* )iMmSubTsy[ESubTsyIdxPacket]; };
       
   212 
       
   213         /**
       
   214          * Gives pointer to the array of TSY's subsystems.
       
   215          *
       
   216          * @return Array of pointers to CMmSubTsyBase classes
       
   217          */
       
   218         virtual CMmSubTsyBase** GetSubsystemArrayPtr()
       
   219             { return &iMmSubTsy[0]; };
       
   220 
       
   221         /**
       
   222          * Gives the maximun number of TSY's subsystems.
       
   223          *
       
   224          * @return Number of subsystems
       
   225          */
       
   226         virtual TInt GetMaxNumberOfSubsystems() { return ESubTsyIdxMaxNum; };
       
   227 
       
   228         /**
       
   229          * TRAP's all CMmCustomTsy related Custom API requests in case that
       
   230          * they fail. This method functions only as a centralized TRAP for the
       
   231          * DoExtFuncL method that does the actual mapping of IPC number to
       
   232          * TSY method call.
       
   233          *
       
   234          * @param aTsyReqHandle Request handle
       
   235          * @param aIpc IPC number of the request
       
   236          * @param aPackage Reference to a data package
       
   237          * @return KErrNone/KErrNotSupported
       
   238          */
       
   239         TInt ExtFunc ( const TTsyReqHandle aTsyReqHandle,
       
   240             const TInt aIpc,
       
   241             const TDataPackage& aPackage );
       
   242 
       
   243         /**
       
   244          * Handles extended client requests. Uses TRAP to ensure functioning
       
   245          * on memory allocation failure.
       
   246          *
       
   247          * @param aTsyReqHandle Request handle
       
   248          * @param aIpc IPC number of the request
       
   249          * @param aPackage Reference to a data package
       
   250          * @return Error value
       
   251          */
       
   252         virtual TInt DoExtFuncL( const TTsyReqHandle aTsyReqHandle,
       
   253             const TInt aIpc,
       
   254             const TDataPackage& aPackage );
       
   255 
       
   256         /**
       
   257          * Returns request mode for given IPC number.
       
   258          *
       
   259 
       
   260          * @param aIpc An interprocess communication command identifier
       
   261          * @return The ReqMode corresponding to given IPC
       
   262          */
       
   263         virtual CTelObject::TReqMode ReqModeL( const TInt aIpc );
       
   264 
       
   265         /**
       
   266          * Returns number of slots to be used for given IPC.
       
   267          *
       
   268          * @param aIpc An interprocess communication command identifier
       
   269          * @return The number of slots reserved for a given IPC
       
   270          */
       
   271         virtual TInt NumberOfSlotsL( const TInt aIpc );
       
   272 
       
   273         /**
       
   274          * Returns security policy for given IPC.
       
   275          *
       
   276          * @param aIpc An interprocess communication command identifier
       
   277          * @return Security policy for this IPC
       
   278          */
       
   279         virtual TSecurityPolicy GetRequiredPlatSecCaps( const TInt aIpc );
       
   280 
       
   281         /**
       
   282          * Cancels request of which IPC number and request handle are given in
       
   283          * parameters.
       
   284          *
       
   285          * @param aIpc An interprocess communication command identifier
       
   286          * @param aTsyReqHandle Request handle
       
   287          * @return Error value
       
   288          */
       
   289         virtual TInt CancelService( const TInt aIpc,
       
   290             const TTsyReqHandle aTsyReqHandle );
       
   291 
       
   292         /**
       
   293          * Register given notification.
       
   294          *
       
   295          * @param aIpc An interprocess communication command identifier
       
   296          * @return TInt KErrNotSupported
       
   297          */
       
   298         virtual TInt RegisterNotification( const TInt aIpc );
       
   299 
       
   300         /**
       
   301          * Deregister given notification.
       
   302          *
       
   303          * @param aIpc An interprocess communication command identifier
       
   304          * @return TInt KErrNotSupported
       
   305          */
       
   306         virtual TInt DeregisterNotification( const TInt aIpc );
       
   307 
       
   308         /**
       
   309          * Completes a CompleteTerminateCall request
       
   310          *
       
   311          * @param aError Error code
       
   312          */
       
   313         void CompleteTerminateCall( TInt aError );
       
   314 
       
   315         /**
       
   316          * Completes the GetCipheringInfoRequest
       
   317          *
       
   318          * @param aCipherIndStatus Status of ciphering indicator
       
   319          * @param aErrorCode Error code
       
   320          */
       
   321         void CompleteGetCipheringInfo( TBool aCipherIndStatus,
       
   322             TInt aErrorCode );
       
   323 
       
   324         /**
       
   325          * Completes a NetWakeup request
       
   326          *
       
   327          * @param aErrorCode Error code
       
   328          */
       
   329         void CompleteNetWakeup( TInt aErrorCode );
       
   330 
       
   331         /**
       
   332          * Completes a NotifyCipheringInfoChange request
       
   333          *
       
   334          * @param aCipherIndStatus Status of ciphering indicator
       
   335          * @param aCipherStatus Status of ciphering
       
   336          * @param aErrorCode Error code
       
   337          */
       
   338         void CompleteNotifyCipheringInfoChange( TBool aCipherIndStatus,
       
   339             TBool aCipherStatus,
       
   340             TInt aErrorCode );
       
   341 
       
   342         /**
       
   343          * Completes a NotifyNSPSStatus request
       
   344          *
       
   345          * @param aNspsStatus Status of NSPS (On/Off)
       
   346          */
       
   347         void CompleteNotifyNSPSStatus( TBool aNspsStatus );
       
   348 
       
   349         /**
       
   350          * Completes a GetAlsBlocked request
       
   351          *
       
   352          * @param aBlockStatus Status of ALS block
       
   353          * @param aErrorCode Error code
       
   354          */
       
   355         void CompleteGetAlsBlocked(
       
   356             RMmCustomAPI::TGetAlsBlockStatus aBlockStatus,
       
   357             TInt aErrorCode );
       
   358 
       
   359         /**
       
   360          * Completes a SetAlsBlocked request
       
   361          *
       
   362          * @param aErrorCode Error code
       
   363          */
       
   364         void CompleteSetAlsBlocked( TInt aErrorCode );
       
   365 
       
   366         /**
       
   367          * Completes a NotifyAlsBlockedChanged request
       
   368          *
       
   369          */
       
   370         void CompleteNotifyAlsBlockedChanged();
       
   371 
       
   372         /**
       
   373          * Completes a NotifyAlsBlockedChanged request
       
   374          *
       
   375 
       
   376          * @param aAlsSupport
       
   377          * @param aErrorCode Error code
       
   378          */
       
   379         void CompleteGetAlsPpSupport( RMmCustomAPI::TAlsSupport aAlsSupport,
       
   380             TInt aErrorCode );
       
   381 
       
   382         /**
       
   383          * Completes a NotifyDtmfEvent request
       
   384          *
       
   385 
       
   386          * @param aInfo Dtmf info
       
   387          * @param aErrorCode Error code
       
   388          */
       
   389         void CompleteNotifyDtmfEvent( RMmCustomAPI::TDtmfInfo aInfo,
       
   390             TInt aErrorCode );
       
   391 
       
   392         /**
       
   393          * Completes a ClearCallBlackListL request
       
   394          *
       
   395 
       
   396          * @param aErrorCode Error code
       
   397          */
       
   398         void CompleteClearCallBlackList( TInt aErrorCode );
       
   399 
       
   400         /**
       
   401          * Completes emergency number checking request
       
   402          *
       
   403 
       
   404          * @param aTelNumber Emergency number or NULL if check failed
       
   405          * @param aErrorValue Error value
       
   406          */
       
   407         void CompleteCheckEmergencyNumber(
       
   408             RMmCustomAPI::TMobileTelNumber* aTelNumber,
       
   409             TInt aErrorValue );
       
   410 
       
   411         /**
       
   412          * Completes get network provider name request
       
   413          *
       
   414 
       
   415          * @param aName Network provider name
       
   416          * @param aError Error value
       
   417          */
       
   418         void CompleteGetNetworkOperatorName( TDes* aName, TInt aError );
       
   419 
       
   420         /**
       
   421          * Completes the notification of SAT refresh to the client
       
   422          *
       
   423 
       
   424          */
       
   425         void CompleteSatRefreshCompleteNotification();
       
   426 
       
   427         /**
       
   428          * Notify RAU event
       
   429          *
       
   430          * @param aEventStatus RAU event status
       
   431          * @return Symbian error value
       
   432          */
       
   433         TInt NotifyRauEvent( RMmCustomAPI::TRauEventStatus* aEventStatus );
       
   434 
       
   435         /**
       
   436          * Completes RAU event notification
       
   437          *
       
   438          * @param aEventStatus RAU event status
       
   439          */
       
   440         void CompleteNotifyRauEvent(
       
   441                 RMmCustomAPI::TRauEventStatus aEventStatus,
       
   442                 TInt aErrorCode );
       
   443 
       
   444         /**
       
   445          * Cancels RAU event Notification
       
   446          *
       
   447          * @param aTsyReqHandle TSY reqhandle
       
   448          * @return Symbian error value
       
   449          */
       
   450         TInt NotifyRauEventCancel();
       
   451 
       
   452 #ifdef REQHANDLE_TIMER
       
   453         /**
       
   454          * Calls the needed complete method due timer expiration
       
   455          *
       
   456 
       
   457          * @param aReqHandleType Request handle type.
       
   458          * @param aError Error value
       
   459          * @param aIPC IPC value
       
   460          */
       
   461         void Complete( TInt aReqHandleType, TInt aError, TInt aIPC );
       
   462 #endif // REQHANDLE_TIMER
       
   463 
       
   464         /**
       
   465          * Completes checking of two digit dial support
       
   466          *
       
   467 
       
   468          * @param aTwoDigitDialSupport Two digit dial support status
       
   469          * @param aErrorCode Error code
       
   470          */
       
   471         void CompleteCheckTwoDigitDialSupport(
       
   472             RMmCustomAPI::TTwoDigitDialSupport aTwoDigitDialSupport,
       
   473             TInt aErrorCode );
       
   474 
       
   475         /**
       
   476          * Completes a requested NotifySsNetworkEvent
       
   477          *
       
   478 
       
   479          * @param aSsTypeAndMode ss type and mode
       
   480          * @param aSsInfo ss info
       
   481          * @param aErrorCode Error code
       
   482          */
       
   483         void CompleteNotifySsNetworkEvent(
       
   484             RMmCustomAPI::TSsTypeAndMode& aSsTypeAndMode,
       
   485             RMmCustomAPI::TSsInfo& aSsInfo,
       
   486             TInt aErrorCode );
       
   487 
       
   488         /**
       
   489          * Completes GetOperatorName
       
   490          *
       
   491 
       
   492          * @param aOperatorNameInfo Programmable operator name info
       
   493          * @param aErrorValue Error value
       
   494          */
       
   495         void CompleteGetOperatorName(
       
   496             RMmCustomAPI::TOperatorNameInfo& aOperatorNameInfo,
       
   497             TInt aErrorValue );
       
   498 
       
   499         /**
       
   500          * Completes GetProgrammableOperatorLogo
       
   501          *
       
   502 
       
   503          * @param aOperatorIdInfo Operator id
       
   504          * @param aLogoData Operator logo info
       
   505          * @param aErrorValue Error value
       
   506          */
       
   507         void CompleteGetProgrammableOperatorLogo(
       
   508             RMmCustomAPI::TOperatorId* aOperatorIdInfo,
       
   509             RMmCustomAPI::TOperatorLogo* aLogoData,
       
   510             TInt aErrorValue );
       
   511 
       
   512         /**
       
   513          * Sets SatRefresh Status
       
   514          *
       
   515 
       
   516          * @param aSatRefreshStatus SatRefresh status
       
   517          */
       
   518         IMPORT_C void SetSatRefreshStatus ( TBool aSatRefreshStatus );
       
   519 
       
   520         /**
       
   521          * Completes a ResetNetServer request
       
   522          *
       
   523 
       
   524          * @param aErrorValue Error value
       
   525          */
       
   526         void CompleteResetNetServer( TInt aErrorValue );
       
   527 
       
   528         /**
       
   529          * Completes a NotifyNetworkConnectionFailure request
       
   530          *
       
   531 
       
   532          */
       
   533         void CompleteNotifyNetworkConnectionFailure();
       
   534 
       
   535         /**
       
   536          * Completes SsRequestComplete notification
       
   537          *
       
   538 
       
   539          * @param aStatus SS status
       
   540          * @param aError Error variable
       
   541          */
       
   542         void CompleteSsRequestCompleteNotification( TInt aSsStatus,
       
   543             TInt aError );
       
   544 
       
   545         /**
       
   546          * Completes SsAdditionalInfo notification
       
   547          *
       
   548 
       
   549          * @param aSsAdditionalInfo
       
   550          * @param aError
       
   551          */
       
   552         void CompleteSsAdditionalInfoNotification(
       
   553             RMmCustomAPI::TSsAdditionalInfo* aSsAdditionalInfo,
       
   554             TInt aError );
       
   555 
       
   556         /**
       
   557          * Notifies client when Phonebook cache is ready
       
   558          *
       
   559 
       
   560          * @param aTsyReqHandle Request handle
       
   561          * @param aPndName Phonebookname
       
   562          * @return TInt KErrNone
       
   563          */
       
   564         TInt NotifyPhoneBookCacheReady( const TTsyReqHandle aTsyReqHandle,
       
   565             TName* aPndName );
       
   566 
       
   567         /**
       
   568          * Completes NotifyPhoneBookCacheReady notification
       
   569          *
       
   570 
       
   571          * @param aPndName Phonebookname
       
   572          * @param aResult
       
   573          */
       
   574         void CompleteNotifyPhoneBookCacheReady( TName& aPndName,
       
   575             TInt aResult );
       
   576 
       
   577         /**
       
   578          * Gets current status of caching
       
   579          *
       
   580 
       
   581          * @param aTsyReqHandle Request handle
       
   582          * @param aPndStatus Status of caching
       
   583          * @param aPndName Phonebookname
       
   584          * @return TInt KErrNone
       
   585          */
       
   586         TInt GetPndCacheStatus(const TTsyReqHandle aTsyReqHandle,
       
   587             RMmCustomAPI::TPndCacheStatus* aPndStatus,
       
   588             const TName* aPndName );
       
   589 
       
   590         /**
       
   591          * This method updates caching status
       
   592          *
       
   593 
       
   594          * @param aPndStatus Cache status
       
   595          * @param aPndName Phonebookname
       
   596          */
       
   597         void UpdateCacheStatus( RMmCustomAPI::TPndCacheStatus aPndStatus,
       
   598             TName& aPndName );
       
   599 
       
   600         /**
       
   601          * Cancels notify phonebook cache ready notification
       
   602          *
       
   603 
       
   604          * @param aTsyReqHandle TSY req handle
       
   605          * @return KErrNone
       
   606          */
       
   607         TInt NotifyPhoneBookCacheReadyCancel(
       
   608             const TTsyReqHandle aTsyReqHandle );
       
   609 
       
   610         /**
       
   611          * Completes a GetSimFileInfo request
       
   612          *
       
   613 
       
   614          * @param aData File-data retrieved from SIM
       
   615          * @param  Error value
       
   616          */
       
   617         void CompleteGetSimFileInfo( TDesC8* aData,
       
   618             TInt aError );
       
   619 
       
   620         /**
       
   621          * Completes a GetSimFileInfo request
       
   622 
       
   623          * @param aLifeTimerData Life timer information
       
   624          * @param Error value
       
   625          */
       
   626         void CompleteGetLifeTime(
       
   627             RMmCustomAPI::TLifeTimeData& aLifeTimerData,
       
   628             TInt aErrorValue );
       
   629 
       
   630         /**
       
   631          * Sets diagnostic octets when received
       
   632          *
       
   633 
       
   634          * @param aCallId Id of the call that has diagnostics
       
   635         * @param aDiags The diagnostic octets
       
   636          */
       
   637         void CompleteGetDiagnosticOctects( TInt aCallId,
       
   638             TUint8 aDiags );
       
   639 
       
   640         /**
       
   641          * Get supported network modes
       
   642          *
       
   643 
       
   644          * @param aTsyReqHandle Request handle
       
   645         * @param aSystemNetworkModes Pointer to network modes
       
   646          * @return Error value
       
   647          */
       
   648         TInt GetSystemNetworkModesL( const TTsyReqHandle aTsyReqHandle,
       
   649             TUint32* aSystemNetworkModes );
       
   650 
       
   651         /**
       
   652          * Complete GetSystemNetworkModes or CurrentNetworkMode request
       
   653          *
       
   654 
       
   655          * @param aSystemNetworkModes Network modes
       
   656          * @param aResult Error value
       
   657          */
       
   658         void CompleteGetSystemOrCurrentNetworkModes(
       
   659             TUint32 aSystemNetworkModes,
       
   660             TInt aResult );
       
   661 
       
   662         /**
       
   663          * Cancel GetSystemNetworkModes request
       
   664          *
       
   665 
       
   666          * @param aTsyReqHandle TSY req handle
       
   667          * @return Error value
       
   668          */
       
   669         TInt GetSystemNetworkModesCancel( const TTsyReqHandle aTsyReqHandle );
       
   670 
       
   671         /**
       
   672          * Set system network mode
       
   673          *
       
   674 
       
   675          * @param aTsyReqHandle Request handle
       
   676         * @param aSystemNetworkModeCaps Pointer to system network mode
       
   677          * @return Error value
       
   678          */
       
   679         TInt SetSystemNetworkModeL( const TTsyReqHandle aTsyReqHandle,
       
   680             RMmCustomAPI::TNetworkModeCaps* aSystemNetworkModeCaps );
       
   681 
       
   682         /**
       
   683          * Complete SetSystemNetworkMode request
       
   684          *
       
   685 
       
   686          * @param Error value
       
   687          */
       
   688         void CompleteSetSystemNetworkMode( TInt aResult );
       
   689 
       
   690         /**
       
   691          * Get currently selected network mode
       
   692          *
       
   693 
       
   694          * @param aTsyReqHandle Request handle
       
   695         * @param aNetworkMode Pointer to network mode
       
   696          * @return TInt KErrNone
       
   697          */
       
   698         TInt GetCurrentSystemNetworkModeL( const TTsyReqHandle aTsyReqHandle,
       
   699             TUint32* aNetworkMode );
       
   700 
       
   701         /**
       
   702          * Cancel GetCurrentSystemNetworkMode request
       
   703          *
       
   704 
       
   705          * @param aTsyReqHandle TSY req handle
       
   706          * @return TInt KErrNone
       
   707          */
       
   708         TInt GetCurrentSystemNetworkModeCancel(
       
   709             const TTsyReqHandle aTsyReqHandle );
       
   710 
       
   711         /**
       
   712 	     * Get network band
       
   713 	     *
       
   714 	     * @param aTsyReqHandle Request handle
       
   715 	     * @param aSystemNetworkBand Pointer to network bands
       
   716 	     * @return Error value
       
   717 	     */
       
   718 	    TInt GetSystemNetworkBandL( const TTsyReqHandle aTsyReqHandle,
       
   719 	        RMmCustomAPI::TBandSelection* aSystemNetworkBand,
       
   720 	        RMmCustomAPI::TNetworkModeCaps* aSystemNetworkMode );
       
   721 
       
   722 	    /**
       
   723 	     * Complete GetSystemNetworkBand request
       
   724 	     *
       
   725 	     * @param aSystemNetworkBand Network band
       
   726 	     * @param aResult Error value
       
   727 	     */
       
   728 	    void CompleteGetSystemNetworkBand(
       
   729 	        RMmCustomAPI::TBandSelection aSystemNetworkBand,
       
   730 	        RMmCustomAPI::TNetworkModeCaps aSystemNetworkMode,
       
   731 	        TInt aResult );
       
   732 	        
       
   733 	    /**
       
   734 	     * Cancel GetSystemNetworkBand request
       
   735 	     *
       
   736 	     * @param aTsyReqHandle TSY req handle
       
   737 	     * @return Error value
       
   738 	     */
       
   739 	    TInt GetSystemNetworkBandCancel( const TTsyReqHandle aTsyReqHandle );
       
   740 
       
   741 	    /**
       
   742 	     * Set system network band
       
   743 	     *
       
   744 	     * @param aTsyReqHandle Request handle
       
   745 	     * @param aSystemNetworkBand Pointer to system network band
       
   746          * @param aSystemNetworkModeCaps Pointer to system network mode
       
   747 	     * @return Error value
       
   748 	     */
       
   749 	    TInt SetSystemNetworkBandL( const TTsyReqHandle aTsyReqHandle,
       
   750 	        RMmCustomAPI::TBandSelection* aSystemNetworkBand,
       
   751 	        RMmCustomAPI::TNetworkModeCaps* aSystemNetworkModeCaps );
       
   752 	        
       
   753 	    /**
       
   754 	     * Complete SetSystemNetworkBand request
       
   755 	     *
       
   756 	     * @param Error value
       
   757 	     */
       
   758 	    void CompleteSetSystemNetworkBand( TInt aResult );
       
   759     
       
   760         /**
       
   761          * Completes sim authentication request
       
   762          *
       
   763          * @param aDataPackage Holds authentication data from sim
       
   764          * @param aResult Error value
       
   765          */
       
   766         void CompleteSimAuthentication( CMmDataPackage* aDataPackage,
       
   767             TInt aResult );
       
   768 
       
   769         /**
       
   770          * Completes ims authentication request
       
   771          *
       
   772          * @param aDataPackage Holds authentication data from sim
       
   773          * @param aResult Error value
       
   774          */
       
   775         void CompleteImsAuthentication( CMmDataPackage* aDataPackage,
       
   776             TInt aResult );
       
   777 
       
   778         /**
       
   779          * Completes a Set Drive Mode request
       
   780          *
       
   781          * @param aErrorCode
       
   782          */
       
   783         void CompleteSetDriveMode( TInt aErrorCode );
       
   784 
       
   785           /**
       
   786          * Completes Get Current System Network Mode
       
   787          *
       
   788          * @param aCurrentNetwork Network
       
   789          * @param aResult Result value
       
   790          */
       
   791         void CompleteGetCurrentSystemNetworkMode( TUint32 aCurrentNetwork,
       
   792             TInt aResult );
       
   793 
       
   794         /**
       
   795          * Saves call object for completion of emergency nbr check
       
   796          *
       
   797          * @param aCallObject call object
       
   798          */
       
   799         void SetObjectForISVDialNumberCheck( CMmVoiceCallTsy* aCallObject );
       
   800 
       
   801         /**
       
   802          * This checks whether given number is an emergency number
       
   803          *
       
   804          * @param aTsyReqHandle TSY req handle
       
   805          * @param aNumberMode Number to be checked and check mode
       
   806          * @param aResult Result of check
       
   807          * @return TInt KErrNone
       
   808          */
       
   809         TInt CheckEmergencyNumberL( const TTsyReqHandle aTsyReqHandle,
       
   810             RMmCustomAPI::TEmerNumberCheckMode* aNumberMode,
       
   811             TBool* aResult );
       
   812 
       
   813         /**
       
   814          * Complete ReadHSxPAStatus request
       
   815          *
       
   816          * @param aDataPackage Datapackage
       
   817          * @param aErrorCode Error code
       
   818          */
       
   819         void CompleteReadHSxPAStatus( CMmDataPackage* aDataPackage,
       
   820             TInt aErrorCode );
       
   821 
       
   822         /**
       
   823          * Complete WriteHSxPAStatus request
       
   824          *
       
   825          * @param aErrorCode Error code
       
   826          */
       
   827         void CompleteWriteHSxPAStatus( TInt aErrorCode );
       
   828 
       
   829         /**
       
   830          * Complete HSxPA Status notification
       
   831          *
       
   832          * @param aErrorCode Error code
       
   833          */
       
   834         void CompleteNotifyHSxPAStatus( CMmDataPackage* aDataPackage,
       
   835             TInt aErrorCode );
       
   836             
       
   837         /**
       
   838          * Get Icc Call forwarding parameters
       
   839          *
       
   840          * @param aTsyReqHandle reghandle
       
   841          * @param aCFIndicators pointer to client side data
       
   842          * @return error value
       
   843          */       
       
   844        	TInt GetIccCallForwardingStatusL( TTsyReqHandle aTsyReqHandle, 
       
   845        		TDes8* aCFIndicators );
       
   846        	
       
   847        	/**
       
   848          * Completes get icc CF status request
       
   849          *
       
   850          * @param aDataPackage data package
       
   851          * @param aErrorCode Error Code
       
   852          */	
       
   853        	void CompleteGetIccCallForwardingStatus( 
       
   854        		CMmDataPackage* aDataPackage,
       
   855        		TInt aErrorCode );
       
   856 
       
   857        	/**
       
   858          * Sets notification on for CF status change
       
   859          *
       
   860          * @param aCFIndicators pointer to client side data
       
   861          * @return error value
       
   862          */
       
   863 		TInt NotifyIccCallForwardingStatusChange( TDes8* aCFIndicators );
       
   864 			
       
   865 		/**
       
   866          * Completes icc CF status change notification
       
   867          *
       
   868          * @param aDataPackage data package
       
   869          * @param aErrorCode Error Code
       
   870          */
       
   871 		void CompleteNotifyIccCallForwardingStatusChange( 
       
   872 			CMmDataPackage* aDataPackage,
       
   873     		TInt aErrorCode );
       
   874     		
       
   875     	/**
       
   876          * Compares indicator packages 
       
   877          *
       
   878          * @param aNotifyCFIndicator indicator to be compared
       
   879          * @return Boolean indicating change
       
   880          */
       
   881     	TBool IsIccCallForwardingStatusChanged( 
       
   882     		RMmCustomAPI::TCFIndicators& aNotifyCFIndicator );
       
   883     	
       
   884     	/**
       
   885          * Cancels icc callforwarding notification
       
   886          *
       
   887          * @param aTsyReqHandle reghandle
       
   888          * @return error value
       
   889          */	
       
   890     	TInt NotifyIccCallForwardingStatusChangeCancel(
       
   891     		const TTsyReqHandle aTsyReqHandle );
       
   892     		
       
   893         /**
       
   894          * Complete cell info change notification
       
   895          *
       
   896          * @param aCellInfo pointer to client side data
       
   897          * @return error code
       
   898          */
       
   899         void CompleteNotifyCellInfoChange( 
       
   900             RMmCustomAPI::TMmCellInfo* aCellInfo,
       
   901             TInt aErrorCode  );
       
   902             
       
   903         /**
       
   904          * Completes an outstanding GetCellInfo request.
       
   905          *
       
   906          * @param aCellInfo pointer to client side data
       
   907          * @return error value
       
   908          */ 
       
   909         void CompleteGetCellInfo( RMmCustomAPI::TMmCellInfo* aCellInfo,
       
   910             TInt aErrorValue );
       
   911 
       
   912         /**
       
   913          * Get phonebook cache status
       
   914          *
       
   915          * @param aPhoneBookType Phonebooktype
       
   916          * @return Cache status
       
   917          */
       
   918 
       
   919         RMmCustomAPI::TPndCacheStatus GetPhonebookCacheStatus( 
       
   920             TUint8 aPhoneBookType );
       
   921 
       
   922         /**
       
   923          * From MCustomVendorExtComplete
       
   924          * Completes a request back to the client.
       
   925          *
       
   926          * @param aTsyReqHandle Request handle
       
   927          * @param aError Error code
       
   928          */
       
   929         void ReqCompleted( const TTsyReqHandle aTsyReqHandle, 
       
   930             const TInt aError ); 
       
   931         
       
   932         /**
       
   933          * Change the bootup flag of ICC Callforward.
       
   934          * PhoneTSY will need to change the bootupflag after CentRep reset. 
       
   935          *
       
   936          * @param aBootUp Bootup flag: (ETrue if initial data)
       
   937          */
       
   938         void SetIccCfBootUpFlag( TBool aBootUp ); 
       
   939 
       
   940         /**
       
   941          * Complete GetUSIMServiceSupport request
       
   942          *
       
   943          * @since S60 v3.2
       
   944          * @param aDataPackage Datapackage
       
   945          * @param aErrorCode Error code
       
   946          */
       
   947         void CompleteGetUSIMServiceSupport( CMmDataPackage* aDataPackage,
       
   948             TInt aErrorCode );
       
   949             
       
   950         /**
       
   951          * Notify RemoteAlertingToneStatusChange
       
   952          *
       
   953          * @param aToneStatus RemoteToneAlerting status
       
   954          * @return Symbian error value
       
   955          */
       
   956         TInt NotifyRemoteAlertingToneStatusChange( 
       
   957             RMmCustomAPI::TRemoteAlertingToneStatus* aToneStatus );
       
   958 
       
   959         /**
       
   960          * Completes NotifyRemoteAlertingToneStatusChange notification
       
   961          *
       
   962          * @param aToneStatus RemoteToneAlerting status
       
   963          * @param aErrorCode Error code
       
   964          */
       
   965         void CompleteNotifyRemoteAlertingToneStatusChange(
       
   966             RMmCustomAPI::TRemoteAlertingToneStatus aToneStatus,
       
   967             TInt aErrorCode );
       
   968 
       
   969         /**
       
   970          * Cancels RemoteAlertingToneStatusChange Notification
       
   971          *
       
   972          * @return Symbian error value
       
   973          */
       
   974         TInt NotifyRemoteAlertingToneStatusChangeCancel();
       
   975             
       
   976     private:
       
   977 
       
   978         /**
       
   979          * By default Symbian 2nd phase constructor is private.
       
   980          *
       
   981          * @param aMmPhoneTsy Pointer to MM Phone Tsy object
       
   982          */
       
   983         void ConstructL( CMmPhoneTsy* aMmPhoneTsy );
       
   984 
       
   985         /**
       
   986          * C++ default constructor.
       
   987          */
       
   988         CMmCustomTsy();
       
   989 
       
   990         /**
       
   991          * Terminate call/all calls
       
   992          *
       
   993          * @param aTsyReqHandle TSY req handle
       
   994          * @param aCallName Name of the call(s) to be terminated
       
   995          * @return TInt KErrNone
       
   996          */
       
   997         TInt TerminateCallL( const TTsyReqHandle aTsyReqHandle,
       
   998             const TName* aCallName );
       
   999 
       
  1000         /**
       
  1001          * Notify Dtmf Event
       
  1002          *
       
  1003          * @param aInfo Dtmf info
       
  1004          * @return TInt KErrNone
       
  1005          */
       
  1006         TInt NotifyDtmfEvent( RMmCustomAPI::TDtmfInfo* aInfo );
       
  1007 
       
  1008         /**
       
  1009          * Cancel NotifyDtmfEvent request
       
  1010          *
       
  1011          * @param aTsyReqHandle TSY req handle
       
  1012          * @return TInt KErrNone
       
  1013          */
       
  1014         TInt NotifyDtmfEventCancel( const TTsyReqHandle aTsyReqHandle );
       
  1015 
       
  1016          /**
       
  1017          * Getting diagnostic info
       
  1018          *
       
  1019          * @param aTsyReqHandle TSY req handle
       
  1020          * @param aCallName Call name
       
  1021          * @return Error value
       
  1022          */
       
  1023         
       
  1024         TInt GetDiagnosticInfo( const TTsyReqHandle aTsyReqHandle,
       
  1025             TName* aCallName );
       
  1026 
       
  1027         /**
       
  1028          * Reads the remote alerting tone status
       
  1029          *
       
  1030          * @param aTsyReqHandle TSY req handle
       
  1031          * @param aToneStatus Tone status
       
  1032          * @return KErrNone
       
  1033          */
       
  1034         TInt GetRemoteAlertingToneStatus( const TTsyReqHandle aTsyReqHandle,
       
  1035             RMmCustomAPI::TRemoteAlertingToneStatus* aToneStatus );
       
  1036 
       
  1037         /**
       
  1038          * Returns the origin of the call
       
  1039          *
       
  1040          * @param aTsyReqHandle TSY req handle
       
  1041          * @param aCallName Call name
       
  1042          * @param aOrigin Call origin
       
  1043          * @return KErrNone
       
  1044          */
       
  1045         TInt GetCallOrigin( const TTsyReqHandle aTsyReqHandle,
       
  1046             TName* aCallName,
       
  1047             RMmCustomAPI::TCallOrigin* aOrigin );
       
  1048 
       
  1049         /**
       
  1050          * Gets alternating line service blocked status
       
  1051          *
       
  1052          * @param aTsyReqHandle TSY req handle
       
  1053          * @param aBlockStatus Block status
       
  1054          * @return KErrNone
       
  1055          */
       
  1056         TInt GetAlsBlockedL( const TTsyReqHandle aTsyReqHandle,
       
  1057             RMmCustomAPI::TGetAlsBlockStatus* aBlockStatus );
       
  1058 
       
  1059         /**
       
  1060          * Cancel GetAlsBlocked request
       
  1061          *
       
  1062          * @return KErrNone
       
  1063          */
       
  1064         TInt GetAlsBlockedCancel();
       
  1065 
       
  1066         /**
       
  1067          * Gets phonebook 3G info
       
  1068          *
       
  1069          * @param aTsyReqHandle TSY req handle
       
  1070          * @param aInfo 3G phonebook info
       
  1071          * @return KErrNone
       
  1072          */
       
  1073         TInt Get3GPBInfo( const TTsyReqHandle aTsyReqHandle,
       
  1074             RMmCustomAPI::T3GPBInfo* aInfo );
       
  1075 
       
  1076         /**
       
  1077          * Cancel Get3GPBInfo request
       
  1078          *
       
  1079          * @return KErrNone
       
  1080          */
       
  1081         TInt Get3GPBInfoCancel();
       
  1082 
       
  1083         /**
       
  1084          * Sets alternating line service blocked status
       
  1085          *
       
  1086          * @param aTsyReqHandle TSY req handle
       
  1087          * @param aBlockStatus Block status
       
  1088          * @return KErrNone
       
  1089          */
       
  1090         TInt SetAlsBlockedL( const TTsyReqHandle aTsyReqHandle,
       
  1091             RMmCustomAPI::TSetAlsBlock* aBlockStatus );
       
  1092 
       
  1093         /**
       
  1094          * Notifies a client of changed Als blocked status
       
  1095          *
       
  1096          * @param aTsyReqHandle TSY req handle
       
  1097          * @param aBlockStatus Block status
       
  1098          * @return KErrNone
       
  1099          */
       
  1100         TInt NotifyAlsBlockedChanged(
       
  1101             RMmCustomAPI::TGetAlsBlockStatus* aBlockStatus );
       
  1102 
       
  1103         /**
       
  1104          * Cancels an Outstanding NotifyAlsBlockedChanged
       
  1105          *
       
  1106          * @param aTsyReqHandle TSY req handle
       
  1107          * @return KErrNone
       
  1108          */
       
  1109         TInt NotifyAlsBlockedChangedCancel( 
       
  1110             const TTsyReqHandle aTsyReqHandle );
       
  1111 
       
  1112         /**
       
  1113          * Get ALS pp Support
       
  1114          *
       
  1115          * @param aTsyReqHandle TSY req handle
       
  1116          * @param aSupport
       
  1117          * @return KErrNone
       
  1118          */
       
  1119         TInt GetAlsPpSupportL( const TTsyReqHandle aTsyReqHandle,
       
  1120             RMmCustomAPI::TAlsSupport* aSupport );
       
  1121 
       
  1122         /**
       
  1123          * Cancels an outstanding GetAlsPpSupport function
       
  1124          *
       
  1125          * @return KErrNone
       
  1126          */
       
  1127         TInt GetAlsPpSupportCancel();
       
  1128 
       
  1129         /**
       
  1130          * Gets the ciphering info
       
  1131          *
       
  1132          * @param aTsyReqHandle TSY req handle
       
  1133          * @param aInfo Ciphering information
       
  1134          * @return KErrNone
       
  1135          */
       
  1136         TInt GetCipheringInfoL( const TTsyReqHandle aTsyReqHandle,
       
  1137             RMmCustomAPI::TCipheringInfo* aInfo );
       
  1138 
       
  1139         /**
       
  1140          * Cancels an outstanding GetCipheringInfo function
       
  1141          *
       
  1142          * @return KErrNone
       
  1143          */
       
  1144         TInt GetCipheringInfoCancel();
       
  1145 
       
  1146         /**
       
  1147          * This function notifies a client of ciphering info change
       
  1148          *
       
  1149          * @param aInfo Ciphering information
       
  1150          * @return KErrNone
       
  1151          */
       
  1152         TInt NotifyCipheringInfoChange( RMmCustomAPI::TCipheringInfo* aInfo );
       
  1153 
       
  1154         /**
       
  1155          * Cancels an outstanding NotifyCipheringInfoChange function
       
  1156          *
       
  1157          * @param aTsyReqHandle TSY req handle
       
  1158          * @return KErrNone
       
  1159          */
       
  1160         TInt NotifyCipheringInfoChangeCancel(
       
  1161             const TTsyReqHandle aTsyReqHandle );
       
  1162 
       
  1163         /**
       
  1164          * Notifies a client of a change in NSPS (No Service Power Save)
       
  1165          *
       
  1166          * @param aNspsStatus Status of the NSPS (on/off)
       
  1167          * @return KErrNone
       
  1168          */
       
  1169         TInt NotifyNSPSStatus( RMmCustomAPI::TNspsStatus* aNspsStatus );
       
  1170 
       
  1171         /**
       
  1172          * This function cancels an outstanding NotifyNSPSStatus function
       
  1173          *
       
  1174          * @param aTsyReqHandle TSY req handle
       
  1175          * @return KErrNone
       
  1176          */
       
  1177         TInt NotifyNSPSStatusCancel( const TTsyReqHandle aTsyReqHandle );
       
  1178 
       
  1179         /**
       
  1180          * This function wake ups the net server from the NSPS state
       
  1181          *
       
  1182          * @param aTsyReqHandle TSY req handle
       
  1183          * @return KErrNone
       
  1184          */
       
  1185         TInt NetWakeupL( const TTsyReqHandle aTsyReqHandle );
       
  1186 
       
  1187         /**
       
  1188          * Clears Call Blacklist
       
  1189          *
       
  1190          * @param aTsyReqHandle TSY req handle
       
  1191          * @return KErrNone
       
  1192          */
       
  1193         TInt ClearCallBlackListL( const TTsyReqHandle aTsyReqHandle );
       
  1194 
       
  1195         /**
       
  1196          * Cancels an outstanding ClearCallBlackListL function
       
  1197          *
       
  1198          * @return KErrNone
       
  1199          */
       
  1200         TInt ClearCallBlackListCancel();
       
  1201 
       
  1202         /**
       
  1203          * Get the air time use duration synchronously
       
  1204          *
       
  1205          * @param aTsyReqHandle Request handle
       
  1206          * @param aTime Air time duration in seconds.
       
  1207          * @return KErrNone
       
  1208          */
       
  1209         TInt GetAirTimeDuration( const TTsyReqHandle aTsyReqHandle,
       
  1210             TTimeIntervalSeconds* aTime );
       
  1211 
       
  1212         /**
       
  1213          * Cancels an outstanding CheckEmergencyNumber function
       
  1214          *
       
  1215          * @return KErrNone
       
  1216          */
       
  1217         TInt CheckEmergencyNumberCancel();
       
  1218 
       
  1219         /**
       
  1220          * Gets network operator name
       
  1221          *
       
  1222          * @param aNetworkOperatorName Network provider name
       
  1223          * @return KErrNone
       
  1224          */
       
  1225         TInt GetNetworkOperatorNameL( TDes* aNetworkOperatorName );
       
  1226 
       
  1227         /**
       
  1228          * Cancels an outstanding GetNetworkOperatorName function
       
  1229          *
       
  1230          * @return KErrNone
       
  1231          */
       
  1232         TInt GetNetworkOperatorNameCancel();
       
  1233 
       
  1234         /**
       
  1235          * Checks two digit dial support status
       
  1236          *
       
  1237          * @param aTsyReqHandle TSY req handle
       
  1238          * @param aSupport Two digit dial support status
       
  1239          * @return KErrNone
       
  1240          */
       
  1241         TInt CheckTwoDigitDialSupportL( const TTsyReqHandle aTsyReqHandle,
       
  1242             RMmCustomAPI::TTwoDigitDialSupport* aSupport );
       
  1243 
       
  1244         /**
       
  1245          * Cancels an outstanding CheckTwoDigitDialSupport request
       
  1246          *
       
  1247          * @return KErrNone
       
  1248          */
       
  1249         TInt CheckTwoDigitDialSupportCancel();
       
  1250 
       
  1251         /**
       
  1252          * Notifies the client of network generated SS events
       
  1253          *
       
  1254          * @param aSsTypeAndMode SS type and mode info
       
  1255          * @param aSsInfo SS general info
       
  1256          * @return KErrNone
       
  1257          */
       
  1258         TInt NotifySsNetworkEvent( 
       
  1259             RMmCustomAPI::TSsTypeAndMode* aSsTypeAndMode,
       
  1260             RMmCustomAPI::TSsInfo* aSsInfo );
       
  1261 
       
  1262         /**
       
  1263          * Cancels an outstanding NotifySsNetworkEvent function
       
  1264          *
       
  1265          * @return KErrNone
       
  1266          */
       
  1267         TInt NotifySsNetworkEventCancel();
       
  1268 
       
  1269         /**
       
  1270          * Cancels ss additional information notification
       
  1271          *
       
  1272          * @param aTsyReqHandle TSY req handle
       
  1273          * @return KErrNone
       
  1274          */
       
  1275         TInt SsAdditionalInfoNotificationCancel(
       
  1276             const TTsyReqHandle aTsyReqHandle );
       
  1277 
       
  1278         /**
       
  1279          * Notification request for additionalinfo message
       
  1280          *
       
  1281          * @param aSsAdditionalInfo Ss additional information
       
  1282          * @return KErrNone
       
  1283          */
       
  1284         TInt SsAdditionalInfoNotification(
       
  1285             RMmCustomAPI::TSsAdditionalInfo* aSsAdditionalInfo );
       
  1286 
       
  1287         /**
       
  1288          * Gets the programmable operator name info of the current network
       
  1289          *
       
  1290          * @param aTsyReqHandle TSY req handle
       
  1291          * @param aOperatorNameInfo Operator name info
       
  1292          * @return KErrNone
       
  1293          */
       
  1294         TInt GetOperatorNameL( const TTsyReqHandle aTsyReqHandle,
       
  1295             RMmCustomAPI::TOperatorNameInfo* aOperatorNameInfo );
       
  1296 
       
  1297         /**
       
  1298          * Cancels an outstanding GetOperatorName
       
  1299          *
       
  1300          * @return KErrNone
       
  1301          */
       
  1302         TInt GetOperatorNameCancel();
       
  1303 
       
  1304         /**
       
  1305          * Gets the programmable operator logo of the current network
       
  1306          *
       
  1307          * @param aTsyReqHandle TSY req handle
       
  1308          * @param aOperatorId
       
  1309          * @param aLogo
       
  1310          * @return KErrNone
       
  1311          */
       
  1312         TInt GetProgrammableOperatorLogoL( const TTsyReqHandle aTsyReqHandle,
       
  1313             RMmCustomAPI::TOperatorId* aOperatorId,
       
  1314             RMmCustomAPI::TOperatorLogo* aLogo );
       
  1315 
       
  1316         /**
       
  1317          * Cancels an outstanding GetProgrammableOperatorLogo
       
  1318          *
       
  1319          * @return KErrNone
       
  1320          */
       
  1321         TInt GetProgrammableOperatorLogoCancel();
       
  1322 
       
  1323         /**
       
  1324          * Notifies the client of SAT refresh
       
  1325          *
       
  1326          * @return KErrNone
       
  1327          */
       
  1328         TInt SatRefreshCompleteNotification();
       
  1329 
       
  1330         /**
       
  1331          * Cancels an outstanding SatRefreshCompleteNotification request
       
  1332          *
       
  1333          * @param aTsyReqHandle TSY req handle
       
  1334          * @return KErrNone
       
  1335          */
       
  1336         TInt SatRefreshCompleteNotificationCancel(
       
  1337             const TTsyReqHandle aTsyReqHandle );
       
  1338 
       
  1339         /**
       
  1340          * Resets the net server to previous network selection when user
       
  1341          * doesn't select a network from the network list got in a search
       
  1342          *
       
  1343          * @param aTsyReqHandle TSY req handle
       
  1344          * @return KErrNone
       
  1345          */
       
  1346         TInt ResetNetServerL( const TTsyReqHandle aTsyReqHandle );
       
  1347 
       
  1348         /**
       
  1349          * Notifies of a network connection failure. This failure is so
       
  1350          * severe that the only way to recover is to restart the phone.
       
  1351          *
       
  1352          * @return KErrNone
       
  1353          */
       
  1354         TInt NotifyNetworkConnectionFailure();
       
  1355 
       
  1356         /**
       
  1357          * Cancels an outstanding NotifyNetworkConnectionFailure
       
  1358          * severe that the only way to recover is to restart the phone.
       
  1359          *
       
  1360 
       
  1361          * @return KErrNone
       
  1362          */
       
  1363         TInt NotifyNetworkConnectionFailureCancel();
       
  1364 
       
  1365         /**
       
  1366          * Notification request for SS request Complete
       
  1367          *
       
  1368          * @param aTsyReqHandle Request handle
       
  1369          * @param aSsStatus Pointer to a supplementary service status variable
       
  1370          * @return KErrNone
       
  1371          */
       
  1372         TInt SsRequestCompleteNotification( TInt* aSsStatus );
       
  1373 
       
  1374         /**
       
  1375          * Cancel SsRequestCompleteNotification request
       
  1376          *
       
  1377          * @param aTsyReqHandle TSY req handle
       
  1378          * @return KErrNone
       
  1379          */
       
  1380         TInt SsRequestCompleteNotificationCancel(
       
  1381             const TTsyReqHandle aTsyReqHandle );
       
  1382 
       
  1383         /**
       
  1384          * Gets a given SIM file's information
       
  1385          *
       
  1386          * @param aTsyReqHandle Request handle
       
  1387          * @param aSimFileInfoPckg Pointer to a packaged object
       
  1388          * @param aSimResponseBuffer Pointer to client side buffer
       
  1389          * for storing data
       
  1390          * @return KErrNone
       
  1391          */
       
  1392         TInt GetSimFileInfoL( const TTsyReqHandle aTsyReqHandle,
       
  1393             TDes8* aSimFileInfoPckg,
       
  1394             TDes8* aSimResponseBuffer );
       
  1395 
       
  1396         /**
       
  1397          * Cancel GetSimFileInfo request
       
  1398          *
       
  1399          * @param aTsyReqHandle Request handle
       
  1400          * @return KErrNone
       
  1401          */
       
  1402         TInt GetSimFileInfoCancel( TTsyReqHandle aTsyReqHandle );
       
  1403 
       
  1404         /**
       
  1405          * Gets the life timer's information
       
  1406          *
       
  1407          * @param aTsyReqHandle Request handle
       
  1408          * @param aLifeTimerInfoPckg Pointer to packaged TLifeTimeInfo class
       
  1409          * @return KErrNone
       
  1410          */
       
  1411         TInt GetLifeTimeL( const TTsyReqHandle aTsyReqHandle,
       
  1412             TDes8* aLifeTimerInfoPckg );
       
  1413 
       
  1414         /**
       
  1415          * Cancel GetLifeTime request
       
  1416          *
       
  1417          * @return KErrNone
       
  1418          */
       
  1419         TInt GetLifeTimeCancel();
       
  1420 
       
  1421         /**
       
  1422          * Sets SIM SMS storage status to "read". Implements CustomAPI
       
  1423          * method SetSimMessageStatusRead.
       
  1424          *
       
  1425          * @param aTsyReqHandle Request handle
       
  1426          * @param aTime Client-side SMSC timestamp of the SIM-stored message.
       
  1427          * @param aTimezoneDiff Client-side SMSC timezone difference of the
       
  1428          * SIM-stored message.
       
  1429          * @return KErrNone
       
  1430          */
       
  1431         TInt SetSimMessageStatusReadL( const TTsyReqHandle aTsyReqHandle,
       
  1432             TTime& aTime,
       
  1433             TInt& aTimezoneDiff );
       
  1434 
       
  1435 #ifdef REQHANDLE_TIMER
       
  1436         /**
       
  1437          * Chooses the type of response, automatic or common
       
  1438          *
       
  1439          * @param aReqHandleType
       
  1440          * @param aTsyReqHandle
       
  1441          */
       
  1442         void SetTypeOfResponse( const TInt aReqHandleType,
       
  1443             const TTsyReqHandle aTsyReqHandle );
       
  1444 #endif //REQHANDLE_TIMER
       
  1445 
       
  1446         /**
       
  1447          * Checks wether or not a ETel request can be performed while offline
       
  1448          * mode is enabled
       
  1449          *
       
  1450          * @param aIpc Ipc number of the request
       
  1451          * @return Boolean
       
  1452          */
       
  1453         TBool IsRequestPossibleInOffline( TInt aIpc );
       
  1454 
       
  1455         /**
       
  1456          * Gets authentication data from sim
       
  1457          *
       
  1458 
       
  1459          * @param aTsyReqHandle Request handle
       
  1460          * @param aAuthenticationData Pointer to IMS authentication data.
       
  1461          * @return KErrNone
       
  1462          */
       
  1463         TInt ImsAuthenticationL( const TTsyReqHandle aTsyReqHandle,
       
  1464             RMobilePhone::TImsAuthenticateDataV5* aAuthenticationData );
       
  1465 
       
  1466         /**
       
  1467          * Cancels sim authenticaiton request
       
  1468          *
       
  1469          * @return KErrNone
       
  1470          */
       
  1471         TInt ImsAuthenticationCancel();
       
  1472 
       
  1473         /**
       
  1474          * Gets authentication data from sim
       
  1475          *
       
  1476          * @param aTsyReqHandle Request handle
       
  1477          * @param aAuthData Reference to packed authentication class
       
  1478          * @return KErrNone
       
  1479          */
       
  1480         TInt SimAuthenticationL( const TTsyReqHandle aTsyReqHandle,
       
  1481             const TDataPackage& aAuthData );
       
  1482 
       
  1483         /**
       
  1484          * Cancels sim authenticaiton request
       
  1485          *
       
  1486          * @return KErrNone
       
  1487          */
       
  1488         TInt SimAuthenticationCancel();
       
  1489 
       
  1490         /**
       
  1491          * Checks if rand received from network is valid
       
  1492          *
       
  1493 
       
  1494          * @param aRand RAND
       
  1495          * @return KErrNone
       
  1496          */
       
  1497         TInt CheckRandValidityL( TBuf8<16> aRand );
       
  1498 
       
  1499         /**
       
  1500          * Creates database to hold rand information
       
  1501          *
       
  1502 
       
  1503          * @return KErrNone
       
  1504          */
       
  1505         TInt CreateRandDb();
       
  1506 
       
  1507         /**
       
  1508          * Checks rand_db.prv for set bits
       
  1509          *
       
  1510          * @param aMessageDigest Hash sum(sha1) of RAND
       
  1511          * @return KErrNone
       
  1512          */
       
  1513         TInt FindSetBitsFromBackup( TPtrC8 aMessageDigest );
       
  1514 
       
  1515         /**
       
  1516          * Inserts blobs to rand_db
       
  1517          *
       
  1518 
       
  1519          * @param aMessageDigest Hash sum(sha1) of RAND
       
  1520          * @return KErrNone
       
  1521          */
       
  1522         TInt InsertBlobsToRandDb( TPtrC8 aMessageDigest );
       
  1523 
       
  1524         /**
       
  1525          * Update bit counter on rand_db
       
  1526          *
       
  1527 
       
  1528          * @return KErrNone
       
  1529          */
       
  1530         TInt UpdateBitCounter();
       
  1531 
       
  1532         /**
       
  1533          * Sets Drive Mode status
       
  1534          *
       
  1535          * @param aTsyReqHandle TSY req handle
       
  1536          * @param aModeStatus Mode status
       
  1537          * @return KErrNone
       
  1538          */
       
  1539         TInt SetDriveModeL( const TTsyReqHandle aTsyReqHandle,
       
  1540             RMmCustomAPI::TSetDriveMode* aModeStatus );
       
  1541 
       
  1542         /**
       
  1543          * Read HSxPAStatus
       
  1544          *
       
  1545          * @param aTsyReqHandle TSY req handle
       
  1546          * @param aHSxPAStatus HSxPA status
       
  1547          * @return Error value
       
  1548          */
       
  1549         TInt ReadHSxPAStatusL( const TTsyReqHandle aTsyReqHandle,
       
  1550             RMmCustomAPI::THSxPAStatus* aHSxPAStatus );
       
  1551 
       
  1552         /**
       
  1553          * Cancel ReadHSxPAStatus request
       
  1554          *
       
  1555          * @return Error value
       
  1556          */
       
  1557         TInt ReadHSxPAStatusCancel();
       
  1558 
       
  1559         /**
       
  1560          * Write HSxPA Status
       
  1561          *
       
  1562          * @param aTsyReqHandle TSY req handle
       
  1563          * @param aHSxPAStatus HSxPA status
       
  1564          * @return Error value
       
  1565          */
       
  1566         TInt WriteHSxPAStatusL( const TTsyReqHandle aTsyReqHandle,
       
  1567             RMmCustomAPI::THSxPAStatus* aHSxPAStatus );
       
  1568 
       
  1569         /**
       
  1570          * Cancel WriteHSxPAStatus request
       
  1571          *
       
  1572          * @return Error value
       
  1573          */
       
  1574         TInt WriteHSxPAStatusCancel();
       
  1575 
       
  1576         /**
       
  1577          * Set HSxPAStatus notification
       
  1578          *
       
  1579          * @param aHSxPAStatus
       
  1580          * @return Error value
       
  1581          */
       
  1582         TInt NotifyHSxPAStatus( RMmCustomAPI::THSxPAStatus* aHSxPAStatus );
       
  1583 
       
  1584         /**
       
  1585          * Cancel HSxPAStatus notification
       
  1586          *
       
  1587          * @return Error value
       
  1588          */
       
  1589         TInt NotifyHSxPAStatusCancel();
       
  1590 
       
  1591         /**
       
  1592          * Gets GSM/WCDMA cell(s) info
       
  1593          *
       
  1594          * @param aCellInfoPckg Pointer to packaged TMmCellInfo class
       
  1595          */
       
  1596         TInt GetCellInfoL( TDes8* aCellInfoPckg );
       
  1597          
       
  1598         /**
       
  1599          * Cancels an outstanding GetCellInfo request
       
  1600          *
       
  1601          * @return Error value
       
  1602          */   
       
  1603         TInt GetCellInfoCancel();
       
  1604         
       
  1605         /**
       
  1606          * Notification cell(s) info changes
       
  1607          *
       
  1608          * @param aCellInfoPckg Pointer to packaged TMmCellInfo class
       
  1609          * @return Error value
       
  1610          */
       
  1611         TInt NotifyCellInfoChange( TDes8* aCellInfoPckg );
       
  1612 
       
  1613         /**
       
  1614          * Cancel cell info change notification
       
  1615          *
       
  1616          * @return Error value
       
  1617          */
       
  1618         TInt NotifyCellInfoChangeCancel();
       
  1619         /**
       
  1620          * Read GetUSIMServiceSupport
       
  1621          *
       
  1622          * @since S60 v3.2
       
  1623          * @param aTsyReqHandle TSY req handle
       
  1624          * @param aAppSupport Application provided data
       
  1625          * @return Error value
       
  1626          */
       
  1627         TInt GetUSIMServiceSupportL( const TTsyReqHandle aTsyReqHandle,
       
  1628             RMmCustomAPI::TAppSupport* aAppSupport );
       
  1629 
       
  1630         /**
       
  1631          * Cancel GetUSIMServiceSupport request
       
  1632          *
       
  1633          * @since S60 v3.2
       
  1634          * @return Error value
       
  1635          */
       
  1636         TInt GetUSIMServiceSupportCancel();
       
  1637 
       
  1638         /**
       
  1639          * Cancels get icc callforwarding request
       
  1640          *
       
  1641          * @since S60 v.3.2
       
  1642          * @param aTsyReqHandle TSY req handle
       
  1643          * @return KErrNone
       
  1644          */
       
  1645         TInt GetIccCallForwardingStatusCancel(
       
  1646         	const TTsyReqHandle aTsyReqHandle );
       
  1647         
       
  1648         /**
       
  1649          * Cancels GetIccCallForwardingStatus request
       
  1650          *
       
  1651          * @return KErrNone
       
  1652          */
       
  1653         TInt GetIccCallForwardingStatusCancel();
       
  1654         
       
  1655     private:
       
  1656 
       
  1657         enum TSubTsyIdx
       
  1658             {
       
  1659             ESubTsyIdxWIM,
       
  1660             ESubTsyIdxPacket,
       
  1661             ESubTsyIdxSs,
       
  1662             ESubTsyIdxSimLock,
       
  1663             ESubTsyIdxSIM,
       
  1664             ESubTsyIdxSecurity,
       
  1665 
       
  1666             // ATTENTION: Let the following constant be the last one
       
  1667             ESubTsyIdxMaxNum
       
  1668             };
       
  1669 
       
  1670         /**
       
  1671          * Pointer to the active extension
       
  1672          * Own.
       
  1673          */
       
  1674         CMmCustomExtInterface* iMmCustomExtInterface;
       
  1675 
       
  1676         /**
       
  1677          * Array of subsystem pointers
       
  1678          * Own.
       
  1679          */
       
  1680         CMmSubTsyBase* iMmSubTsy[ESubTsyIdxMaxNum];
       
  1681 
       
  1682         /**
       
  1683          * Ptr to CMmPhoneTsy object
       
  1684          * Not Own.
       
  1685          */
       
  1686         CMmPhoneTsy* iMmPhoneTsy;
       
  1687 
       
  1688         /**
       
  1689          * Pointer to the Req handle store
       
  1690          * Own.
       
  1691          */
       
  1692         CMmTsyReqHandleStore* iTsyReqHandleStore;
       
  1693 
       
  1694         /**
       
  1695          * Table for custom request handles
       
  1696          */
       
  1697         TTsyReqHandle iCustomReqHandles[ECustomTsyMaxNumOfRequests];
       
  1698 
       
  1699         /**
       
  1700          * Stores last reserved transaction id number
       
  1701          */
       
  1702         TUint8 iTransId;
       
  1703 
       
  1704         /**
       
  1705          * Saves temporarily last TSY request type
       
  1706          */
       
  1707         TCustomRequestType iReqHandleType;
       
  1708 
       
  1709         /**
       
  1710          * Pointer to Dtmf Info
       
  1711          * Not Own.
       
  1712          */
       
  1713         RMmCustomAPI::TDtmfInfo* iNotifyInfo;
       
  1714 
       
  1715         /**
       
  1716          * Remote alerting status
       
  1717          */
       
  1718         RMmCustomAPI::TRemoteAlertingToneStatus iRemoteAlertingToneStatus;
       
  1719 
       
  1720         /**
       
  1721          * Pointer to ciphering information
       
  1722          * Not Own.
       
  1723          */
       
  1724         RMmCustomAPI::TCipheringInfo* iRetCipheringInfo;
       
  1725 
       
  1726         /**
       
  1727          * Pointer to NSPS status information
       
  1728          * Not Own.
       
  1729          */
       
  1730         RMmCustomAPI::TNspsStatus* iRetNspsStatus;
       
  1731 
       
  1732         /**
       
  1733          * Pointer to notification ciphering information
       
  1734          * Not Own.
       
  1735          */
       
  1736         RMmCustomAPI::TCipheringInfo* iRetNotifyCipheringInfoChange;
       
  1737 
       
  1738         /**
       
  1739          * Ciphering information
       
  1740          */
       
  1741         RMmCustomAPI::TCipheringInfo iCipheringInfo;
       
  1742 
       
  1743         /**
       
  1744          * Pointer to Als block status for notification
       
  1745          * Not Own.
       
  1746          */
       
  1747         RMmCustomAPI::TGetAlsBlockStatus* iRetNotifyAlsBlockStatus;
       
  1748 
       
  1749         /**
       
  1750          * Pointer to ALS block status for get
       
  1751          * Not Own.
       
  1752          */
       
  1753         RMmCustomAPI::TGetAlsBlockStatus* iRetAlsBlockStatus;
       
  1754 
       
  1755         /**
       
  1756          * Pointer to ALS block status for set
       
  1757          * Not Own.
       
  1758          */
       
  1759 #ifndef USING_CTSY_DISPATCHER
       
  1760         RMmCustomAPI::TSetAlsBlock* iSetBlockStatus;
       
  1761 #else //USING_CTSY_DISPATCHER
       
  1762         const RMmCustomAPI::TSetAlsBlock* iSetBlockStatus;
       
  1763 #endif //USING_CTSY_DISPATCHER
       
  1764 
       
  1765         /**
       
  1766          * Pointer to ALS support
       
  1767          * Not Own.
       
  1768          */
       
  1769         RMmCustomAPI::TAlsSupport* iAlsSupport;
       
  1770 
       
  1771         /**
       
  1772          * Pointer to SS additional information
       
  1773          * Not Own.
       
  1774          */
       
  1775         RMmCustomAPI::TSsAdditionalInfo* iRetSsAdditionalInfo;
       
  1776 
       
  1777         /**
       
  1778          * Pointer to SS request complete information
       
  1779          * Not Own.
       
  1780          */
       
  1781         TInt* iRetSsRequestComplete;
       
  1782 
       
  1783         /**
       
  1784          * Pointer to check emergency number result
       
  1785          * Not Own.
       
  1786          */
       
  1787         TBool* iEmergencyNumberCheckResult;
       
  1788 
       
  1789         /**
       
  1790          * Pointer to check emergency number mode
       
  1791          * Not Own.
       
  1792          */
       
  1793         RMmCustomAPI::TEmerNumberCheckMode* iEmergencyNumberCheckMode;
       
  1794 
       
  1795         /**
       
  1796          * Pointer to get current network mode
       
  1797          * Not Own.
       
  1798          */
       
  1799         TUint32* iCurrentNetworkMode;
       
  1800 
       
  1801         /**
       
  1802          * Pointer to client's phonebookname buffer
       
  1803          * Not Own.
       
  1804          */
       
  1805         TName* iPndName;
       
  1806 
       
  1807         /**
       
  1808          * Pointer to network provider name
       
  1809          * Not Own.
       
  1810          */
       
  1811         TDes* iNetworkOperatorName;
       
  1812 
       
  1813         /**
       
  1814          * Two digit dial support check
       
  1815          * Not Own.
       
  1816          */
       
  1817         RMmCustomAPI::TTwoDigitDialSupport *iTwoDigitDialSupport;
       
  1818 
       
  1819         /**
       
  1820          * Programmable operator name info
       
  1821          * Not Own.
       
  1822          */
       
  1823         RMmCustomAPI::TOperatorNameInfo* iOperatorNameInfo;
       
  1824 
       
  1825         /**
       
  1826          * SS type and Mode
       
  1827          * Not Own.
       
  1828          */
       
  1829         RMmCustomAPI::TSsTypeAndMode* iSsTypeAndMode;
       
  1830 
       
  1831         /**
       
  1832          * SS information
       
  1833          * Not Own.
       
  1834          */
       
  1835         RMmCustomAPI::TSsInfo* iSsInfo;
       
  1836 
       
  1837         /**
       
  1838          * Operator Id for getting the logo
       
  1839          * Not Own.
       
  1840          */
       
  1841         RMmCustomAPI::TOperatorId* iOperatorId;
       
  1842 
       
  1843         /**
       
  1844          * Information of the logo
       
  1845          * Not Own.
       
  1846          */
       
  1847         RMmCustomAPI::TOperatorLogo* iLogo;
       
  1848 
       
  1849         /**
       
  1850          * Is refresh done?
       
  1851          */
       
  1852         TBool iIsRefresh;
       
  1853 
       
  1854         /**
       
  1855          * Programmable operator name info
       
  1856          * Not Own.
       
  1857          */
       
  1858         RMmCustomAPI::TOperatorNameInfo* iRetOperatorNameInfo;
       
  1859 
       
  1860         /**
       
  1861          * Programmable operator logo info
       
  1862          * Not Own.
       
  1863          */
       
  1864         RMmCustomAPI::TOperatorLogo* iRetOperatorLogoInfo;
       
  1865 
       
  1866         /**
       
  1867          * Operator Id info
       
  1868          * Not Own.
       
  1869          */
       
  1870         RMmCustomAPI::TOperatorId* iRetOperatorIdInfo;
       
  1871 
       
  1872         /**
       
  1873          * Pointer to supplementary service status
       
  1874          * Not Own.
       
  1875          */
       
  1876         TInt* iRetSsStatus;
       
  1877 
       
  1878         /**
       
  1879          * Attribute tells status of the cache
       
  1880          */
       
  1881         RMmCustomAPI::TPndCacheStatus iAdnCacheStatus;
       
  1882 
       
  1883         /**
       
  1884          * Attribute tells status of the cache
       
  1885          */
       
  1886         RMmCustomAPI::TPndCacheStatus iFdnCacheStatus;
       
  1887 
       
  1888         /**
       
  1889          * Pointer to the buffer to hold Sim file information
       
  1890          * Not Own.
       
  1891          */
       
  1892         TDes8* iLifeTimerInfoPckg;
       
  1893 
       
  1894         /**
       
  1895          * Pointer to get supported network modes
       
  1896          * Not Own.
       
  1897          */
       
  1898         TUint32* iSystemNetworkModes;
       
  1899 
       
  1900         /**
       
  1901          * Pointer to selected system network mode
       
  1902          * Not Own.
       
  1903          */
       
  1904         RMmCustomAPI::TNetworkModeCaps* iSystemNetworkModeCaps;
       
  1905 
       
  1906         /**
       
  1907          * Network 3G radio frequency band
       
  1908 	     * not own
       
  1909 	     */
       
  1910 	    RMmCustomAPI::TBandSelection* iSystemNetworkBand;
       
  1911 	    
       
  1912 	    /**
       
  1913 	     * Available network 3G radio frequency band
       
  1914 	     * not own
       
  1915 	     */
       
  1916 	    RMmCustomAPI::TBandSelection* iAvailableSystemNetworkBand;
       
  1917         
       
  1918         /**
       
  1919          * Pointer to Custom Security Tsy
       
  1920          * Own.
       
  1921          */
       
  1922         CMmCustomSecurityTsy* iMmSecurityTsy;
       
  1923 
       
  1924         /**
       
  1925          * Pointer to vendor extension
       
  1926          * Own.
       
  1927          */
       
  1928         CMmCustomVendorExt*   iMmCustomVendorExt;
       
  1929 
       
  1930         /**
       
  1931          * Pointer to 2G authentication data
       
  1932          * Not Own.
       
  1933          */
       
  1934         RMmCustomAPI::TSimAuthenticationEapSim* iEapSim;
       
  1935 
       
  1936         /**
       
  1937          * Pointer to 3G authentication data
       
  1938          * Not Own.
       
  1939          */
       
  1940         RMmCustomAPI::TSimAuthenticationEapAka* iEapAka;
       
  1941 
       
  1942         /**
       
  1943          * Number of fresh bits found from RAND
       
  1944          * Not Own.
       
  1945          */
       
  1946         TUint16 iFreshBitCounter;
       
  1947 
       
  1948         /**
       
  1949          * Pointer to the IMS authentication data
       
  1950          * Not Own.
       
  1951          */
       
  1952         RMobilePhone::TImsAuthenticateDataV5* iIMSAuthenticationData;
       
  1953 
       
  1954         /**
       
  1955          * Pointer to call object
       
  1956          * Not Own.
       
  1957          */
       
  1958         CMmVoiceCallTsy* iISVDialNumberCheckObject;
       
  1959 
       
  1960         /**
       
  1961          * Boolean that indicates that number check is called because
       
  1962          * of 3rd party dial request
       
  1963          * Not Own.
       
  1964          */
       
  1965         TBool iISVDialNumberCheck;
       
  1966 
       
  1967         /**
       
  1968          * Pointer to client side Rau event data
       
  1969          * Not Own
       
  1970          */
       
  1971         RMmCustomAPI::TRauEventStatus* iRauEventStatus;
       
  1972 
       
  1973         /**
       
  1974          * HSxPA status
       
  1975          */
       
  1976         RMmCustomAPI::THSxPAStatus iHSxPAStatus;
       
  1977 
       
  1978         /**
       
  1979          * Pointer to client side HSxPA status
       
  1980          * Not Own.
       
  1981          */
       
  1982         RMmCustomAPI::THSxPAStatus* iRetHSxPAStatus;
       
  1983 
       
  1984         /**
       
  1985          * Pointer to client side HSxPA status
       
  1986          * Not Own.
       
  1987          */
       
  1988         RMmCustomAPI::THSxPAStatus* iSetHSxPAStatus;
       
  1989 
       
  1990         /**
       
  1991          * Pointer to client side HSxPA status
       
  1992          * Not Own.
       
  1993          */
       
  1994         RMmCustomAPI::THSxPAStatus* iRetNotifyHSxPAStatus;
       
  1995         
       
  1996         /**
       
  1997          * Pointer to client side data
       
  1998          * Not Own.
       
  1999          */        
       
  2000         TDes8* iRetCFIndicators;
       
  2001 
       
  2002         /**
       
  2003          * TCF indicator
       
  2004          */
       
  2005         RMmCustomAPI::TCFIndicators iCurrentTCFIndicator;
       
  2006 		
       
  2007 		/**
       
  2008          * Pointer to client side data
       
  2009          * Not Own.
       
  2010          */ 
       
  2011 		TDes8* iNotifyCFIndicator;
       
  2012 		
       
  2013 		/**
       
  2014          * Pointer to Public Central Repository
       
  2015          */
       
  2016         CRepository* iCFISCentRep;
       
  2017         
       
  2018        /**
       
  2019         * Pointer to Cfis Private Central Repository
       
  2020         */
       
  2021         CRepository* iCFISPrivateCentRep;
       
  2022         
       
  2023         /**
       
  2024          * Boolean indicating that request is made during boot-up
       
  2025          */
       
  2026         TBool iGetIccCfStatusBootUp;
       
  2027 
       
  2028         /**
       
  2029          * Pointer to client side notify cell info
       
  2030          * Not Own.
       
  2031          */
       
  2032         RMmCustomAPI::TMmCellInfoPckg* iRetNotifyCellInfoPckg;
       
  2033                 
       
  2034         /**
       
  2035          * Pointer to the buffer to hold cell info information
       
  2036          * Not Own.
       
  2037          */
       
  2038         RMmCustomAPI::TMmCellInfoPckg* iCellInfoPckg;
       
  2039 
       
  2040         /**
       
  2041          * Cell info
       
  2042          * Not Own.
       
  2043          */
       
  2044 		RMmCustomAPI::TMmCellInfo iCellInfo;
       
  2045 		
       
  2046 		/**
       
  2047 		 * Used to query for supported features
       
  2048 		 */
       
  2049 		RFeatureControl iFeatureControl;
       
  2050 
       
  2051 		/**
       
  2052 		 * Tells if Feature Manager is available. Will be EFalse if 
       
  2053 		 * RFeatureControl::Open fails to connect to the Feature Manager
       
  2054 		 */
       
  2055 		TBool iUsingFeatureManager;        
       
  2056         /**
       
  2057          * Pointer to client support structure
       
  2058          * Not Own.
       
  2059          */
       
  2060 		RMmCustomAPI::TAppSupport* iAppSupport;
       
  2061 
       
  2062         /**
       
  2063          * Pointer to client GBA bootstrap structure
       
  2064          * Not Own.
       
  2065          */
       
  2066 		RMmCustomAPI::TSimAuthenticationGbaBootstrap* iGbaBootstrap;
       
  2067 
       
  2068         /**
       
  2069          * Pointer to client GBA update structure
       
  2070          * Not Own.
       
  2071          */
       
  2072 		RMmCustomAPI::TSimAuthenticationGbaBootstrapUpdate* iGbaBootstrapUpdate;
       
  2073 
       
  2074         /**
       
  2075          * Pointer to client NAF derivation structure
       
  2076          * Not Own.
       
  2077          */
       
  2078 		RMmCustomAPI::TSimAuthenticationGbaNafDerivation* iGbaNafDerivation;
       
  2079 
       
  2080         /**
       
  2081          * Pointer to client MSK update structure
       
  2082          * Not Own.
       
  2083          */
       
  2084 		RMmCustomAPI::TSimAuthenticationMgvMskUpdate* iMgvMskUpdate;
       
  2085 
       
  2086         /**
       
  2087          * Pointer to client MTK generation structure
       
  2088          * Not Own.
       
  2089          */
       
  2090 		RMmCustomAPI::TSimAuthenticationMgvMtkGeneration* iMgvMtkGeneration;
       
  2091 
       
  2092         /**
       
  2093          * Pointer to client MSK deletion structure
       
  2094          * Not Own.
       
  2095          */
       
  2096 		RMmCustomAPI::TSimAuthenticationMgvMskDeletion* iMgvMskDeletion;
       
  2097 		
       
  2098 		/**
       
  2099          * Pointer to client side RemoteAlertingToneStatus data
       
  2100          * Not Own
       
  2101          */
       
  2102         RMmCustomAPI::TRemoteAlertingToneStatus* iToneStatus;
       
  2103 
       
  2104         /**
       
  2105          * Array for buffering CheckAlsPpSupport requests
       
  2106          */             
       
  2107         RPointerArray< TCheckAlsPpSupportRequest > 
       
  2108             iCheckAlsPpSupportRequests;
       
  2109         
       
  2110         /**
       
  2111          * Requested SIM file info
       
  2112          */
       
  2113         RMmCustomAPI::TSimFileInfo iGetSimFileInfoReq;
       
  2114 		
       
  2115         /**
       
  2116 	     * Array for buffering GetSimFileInfo requests
       
  2117 	     */             
       
  2118 	    RPointerArray< TGetSimFileInfoRequest > iGetSimFileInfoRequests;
       
  2119         };
       
  2120 
       
  2121 #endif // CMMCUSTOMTSY_H
       
  2122 
       
  2123 //  End of File