telephonyserverplugins/licenseetsystub/simatk_tsy_stub/inc/SatMessHandler.h
changeset 0 3553901f7fa8
equal deleted inserted replaced
-1:000000000000 0:3553901f7fa8
       
     1 // Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 
       
    14 #ifndef SATMESSHANDLER_H
       
    15 #define SATMESSHANDLER_H
       
    16 
       
    17 //  INCLUDES
       
    18 #include <e32base.h>
       
    19 #include "isi_sim.h"
       
    20 #include "isi_atk.h"
       
    21 #include <adaptation_conf.h>
       
    22 
       
    23 #ifndef AFF_ISC_API_IN_USE
       
    24 #include "pn_obj_auto.h"
       
    25 #endif
       
    26 
       
    27 // CONSTANTS
       
    28 const TUint8 KTerminalResponseClass = 0xA0;
       
    29 const TUint8 KTerminalResponseIns = 0x14;
       
    30 const TUint8 KTerminalResponseP1 = 0x00;
       
    31 const TUint8 KTerminalResponseP2 = 0x00;
       
    32 const TUint8 KOneByteLengthLimit = 0x7F;
       
    33 const TUint8 KFilePathLength = 8;
       
    34 const TUint16 KFileMaxLength = 0xFFFF;
       
    35 const TUint8 MEIsInTheIdleState = 0x00;
       
    36 // SAT related traid constant must be defined, because
       
    37 // otherwise it may happen that sat simservicetable req
       
    38 // is directed to phonemesshander.
       
    39 const TUint8 KSatSimServiceTableReqTraId = 0xaa;
       
    40 
       
    41 // FORWARD DECLARATIONS
       
    42 class CMmPhoNetSender;
       
    43 class CTsySatMessaging;
       
    44 
       
    45 // CLASS DECLARATION
       
    46 
       
    47 /**
       
    48 *  SAT message handler class.
       
    49 *  Handles message sending and receiving to and from phonet.
       
    50 *  
       
    51 */
       
    52 class CSatMessHandler : public CBase 
       
    53     {
       
    54     public:  // Constructors and destructor
       
    55 
       
    56         /**
       
    57          * C++ default constructor.
       
    58          * @param aTsySatMessaging pointer to TsySatMessaging class
       
    59          * @param aPnSend Phonetsender for passing messages to phonet
       
    60          */
       
    61         CSatMessHandler( CTsySatMessaging* aTsySatMessaging, 
       
    62             CMmPhoNetSender* aPnSend );
       
    63 
       
    64         /**
       
    65          * Two-phased constructor.
       
    66          * @param aTsySatMessaging pointer to TsySatMessaging class
       
    67          * @param aPnSend Phonetsender for passing messages to phonet
       
    68          */
       
    69         static CSatMessHandler* NewL( CTsySatMessaging* aTsySatMessaging,
       
    70             CMmPhoNetSender* aPnSend );
       
    71 
       
    72         /**
       
    73          * Destructor.
       
    74          */
       
    75         virtual ~CSatMessHandler();
       
    76 
       
    77         // New functions
       
    78 
       
    79         /**
       
    80          * Display text response method.
       
    81          *          
       
    82          * @param aTransId Unique transaction ID
       
    83          * @param aCommandDetails command details tlv
       
    84          * @param aGeneralResult result of the proactive command display text
       
    85          * @param aAdditionalInfo Additional info response might give
       
    86          * @return phonet sender status
       
    87          */
       
    88         TInt DisplayTextTerminalRespL( TUint8 aTransId, 
       
    89             TDes8& aCommandDetails, 
       
    90             TUint8 aGeneralResult,
       
    91             TUint8 aAdditionalInfo );
       
    92 
       
    93         /**
       
    94          * Get Inkey response method.
       
    95          *          
       
    96          * @param aTransId Unique transaction ID
       
    97          * @param aCommandDetails command details tlv
       
    98          * @param aGeneralResult result of the proactive command display text
       
    99          * @param aDcs Data Coding Scheme
       
   100          * @param aAdditionalInfo Additional info response might give
       
   101          * @return phonet sender status
       
   102          */
       
   103         TInt GetInkeyTerminalRespL( TUint8 aTransId,
       
   104             TDes8& aCommandDetails,
       
   105             TUint8 aGeneralResult,
       
   106             TUint8 aDcs,
       
   107             TDes16& aAdditionalInfo );
       
   108 
       
   109         /**
       
   110          * Get Input response method.
       
   111          *          
       
   112          * @param aTransId Unique transaction ID
       
   113          * @param aCommandDetails Command details tlv
       
   114          * @param aGeneralResult result of the proactive command Get Input
       
   115          * @param aAdditionalInfo Additional info response might give
       
   116          * @param aTextString text string provided by the user
       
   117          * @param aDataCodingScheme data coding scheme for text string
       
   118          * @return phonet sender status
       
   119          */
       
   120         TInt GetInputTerminalRespL( TUint8 aTransId,
       
   121             TDes8& aCommandDetails,
       
   122             TUint8 aGeneralResult,
       
   123             TUint8 aAdditionalInfo,
       
   124             TDesC16& aTextString,
       
   125             TUint8 aDataCodingScheme );
       
   126 
       
   127         /**
       
   128          * Play Tone response method.
       
   129          *          
       
   130          * @param Unique transaction ID
       
   131          * @param aCommandDetails 
       
   132          * @param aGeneralResult result of the proactive command
       
   133          * @param aAdditionalInfo Additional info given in some cases
       
   134          * @return phonet sender status
       
   135          */
       
   136         TInt PlayToneTerminalRespL( TUint8 aTransId,
       
   137             TDes8& aCommandDetails, 
       
   138             TUint8 aGeneralResult, 
       
   139             TUint8 aAdditionalInfo );
       
   140 
       
   141         /**
       
   142          * Setup Menu response method.
       
   143          *          
       
   144          * @param aTransId Unique transaction ID
       
   145          * @param aCommandDetails command details tlv
       
   146          * @param aGeneralResult result of the proactice command Setup Menu
       
   147          * @param aAdditionalInfo Additional info response might give
       
   148          * @return phonet sender status
       
   149          */
       
   150         TInt SetUpMenuTerminalRespL( TUint8 aTransId,
       
   151             TDes8& aCommandDetails, 
       
   152             TUint8 aGeneralResult, 
       
   153             TUint8 aAdditionalInfo );
       
   154 
       
   155         /**
       
   156          * Select Item response method.
       
   157          *          
       
   158          * @param aTransId Unique transaction ID
       
   159          * @param aCommandDetails command details tlv
       
   160          * @param aGeneralResult result of the proactice command Select Item
       
   161          * @param aAdditionalInfo Additional info response might give
       
   162          * @return phonet sender status
       
   163          */
       
   164         TInt SelectItemTerminalRespL( TUint8 aTransId, 
       
   165             TDes8& aCommandDetails, 
       
   166             TUint8 aGeneralResult, 
       
   167             TUint8 aAdditionalInfo );
       
   168 
       
   169         /**
       
   170          * Send SM response method.
       
   171          *          
       
   172          * @param aPCmdNumber Unique transaction ID
       
   173          * @param aCommandDetails command details tlv
       
   174          * @param aGeneralResult result of the proactice command Send SM
       
   175          * @param aAdditionalInfo Additional info response might give
       
   176          * @return phonet sender status
       
   177          */
       
   178         TInt SendSmTerminalRespL( TUint8 aTransId, 
       
   179             TDes8& aCommandDetails,
       
   180             TUint8 aGeneralResult, 
       
   181             TUint8 aAdditionalInfo );
       
   182 
       
   183         /**
       
   184          * Send SS response method.
       
   185          *          
       
   186          * @param aTransId Unique transaction ID
       
   187          * @param aCommandDetails Command details TLV
       
   188          * @param aGeneralResult result of the proactive command Send SS
       
   189          * @param aAdditionalInfo Additional info response might give
       
   190          * @return phonet sender status
       
   191          */
       
   192         TInt SendSsTerminalRespL( TUint8 aTransId, 
       
   193             TDes8& aCommandDetails, 
       
   194             TUint8 aGeneralResult,
       
   195             TDesC8& aAdditionalInfo );
       
   196 
       
   197         /**
       
   198          * Send DTMF response method.
       
   199          *          
       
   200          * @param aTransId Unique transaction ID
       
   201          * @param aPCmdNumber Command number
       
   202          * @param aGeneralResult result of the proactice command Send SS
       
   203          * @param aAdditionalInfo Additional info response might give
       
   204          * @return phonet sender status
       
   205          */
       
   206         TInt SendDtmfTerminalRespL( TUint8 aTransId, 
       
   207             TDes8& aCommandDetails, 
       
   208             TUint8 aGeneralResult, 
       
   209             TUint8 aAdditionalInfo );
       
   210 
       
   211         /**
       
   212          * Send USSD response method.
       
   213          *          
       
   214          * @param aPCmdNumber Unique transaction ID
       
   215          * @param aGeneralResult result of the proactice command Send USSD
       
   216          * @param aAdditionalInfo Additional info response might give
       
   217          * @param aText input data, UCS2 string
       
   218          * @param aDCS data coding scheme
       
   219          * @return phonet sender status
       
   220          */
       
   221         TInt SendUssdTerminalRespL( TUint8 aTransId, 
       
   222             TDes8& aCommandDetails, 
       
   223             TUint8  aGeneralResult, 
       
   224             TDesC8& aAdditionalInfo, 
       
   225             TDesC& aText, 
       
   226             TUint8 aDCS );
       
   227         
       
   228         /**
       
   229          * Polling Interval response method
       
   230          *          
       
   231          * @param aPCmdNumber Unique transaction ID
       
   232          * @param aCommandDetails command details tlv
       
   233          * @param aGeneralResult result of the proactive command
       
   234          * @param aAdditionalInfo Additional info response might give
       
   235          * @param aNumOfUnits time interval
       
   236          * @return phonet sender status
       
   237          */
       
   238         TInt PollIntervalTerminalRespL( TUint8 aTransId, 
       
   239             TDes8& aCommandDetails, 
       
   240             TUint8 aGeneralResult, 
       
   241             TUint8 aAdditionalInfo,
       
   242             TUint8 aNumOfUnits );
       
   243 
       
   244         /**
       
   245          * Setup Call response method.
       
   246          *          
       
   247          * @param aTransId Unique transaction ID
       
   248          * @param aCommandDetails Command details TLV
       
   249          * @param aGeneralResult result of the proactive command Setup Call
       
   250          * @param aAdditionalInfo Additional info response might give
       
   251          * @return phonet sender status
       
   252          */
       
   253         TInt SetUpCallTerminalRespL( TUint8 aTransId, 
       
   254             TDes8& aCommandDetails, 
       
   255             TUint8 aGeneralResult, 
       
   256             TUint8 aAdditionalInfo );
       
   257 
       
   258         /**
       
   259          * Refresh response method.
       
   260          *          
       
   261          * @param aPCmdNumber Unique transaction ID
       
   262          * @param aGeneralResult result of the proactice command Refresh
       
   263          * @param aAdditionalInfo Additional info response might give
       
   264          * @return phonet sender status
       
   265          */
       
   266         TInt RefreshTerminalRespL( TUint8 aTransId, 
       
   267             TDes8& aCommandDetails, 
       
   268             TUint8 aGeneralResult, 
       
   269             TUint8 aAdditionalInfo );
       
   270 
       
   271         /**
       
   272          * Menu Selection method.
       
   273          *          
       
   274          * @param aTransId Unique transaction ID
       
   275          * @param aItemIdentifier identifier of the selected menu item
       
   276          * @param aHelp help requested by the user indicator
       
   277          * @return phonet sender status
       
   278          */
       
   279         void MenuSelectionIndL( TUint8 aTransId, 
       
   280             TUint8 aItemIdentifier, 
       
   281             TUint8 aHelp );
       
   282 
       
   283         /**
       
   284          * Handles the proactive commands from phonet
       
   285          *          
       
   286          * @param aIsiMsg proactive command
       
   287          */
       
   288         virtual void SatMessageReceivedL( CIsiMsg* aIsiMsg );
       
   289 
       
   290         /**
       
   291          * Launch Browser terminal response method
       
   292          *          
       
   293          * @param aTransId transaction id
       
   294          * @param aPCmdNumber command number
       
   295          * @param aGeneralResult
       
   296          * @param aAdditionalInfo
       
   297          * @param aCmdQualifier
       
   298          * @return phonet sender status
       
   299          */
       
   300         virtual TInt LaunchBrowserTerminalRespL( TUint8 aTransId,
       
   301             TDes8& aCommandDetails,         
       
   302             TUint8 aGeneralResult,      
       
   303             TUint8 aAdditionalInfo );
       
   304 
       
   305         /**
       
   306          * Converts Symbian OS general result to DOS general result
       
   307          *          
       
   308          * @param aPCmdNumber Unique transaction ID
       
   309          * @param TUint8 aAtkResult result of the proactice command
       
   310          * @return phonet sender status
       
   311          */
       
   312         TUint8 ConvertGeneralResult( TUint8 aGeneralResult );
       
   313 
       
   314         /**
       
   315          * Test if a command was performed successfully
       
   316          *          
       
   317          * @param aGeneralResult
       
   318          * @return ETrue if command performed successfully, else EFalse
       
   319          */
       
   320         TBool CommandPerformedSuccessfully( TUint8 aGeneralResult );
       
   321 
       
   322         /**
       
   323          * SetupIdleModeText Terminal Response
       
   324          *          
       
   325          * @param aTransId Unique transaction ID
       
   326          * @param aCommandDetails command details tlv
       
   327          * @param aGeneralResult result of the proactive command display text
       
   328          * @param aAdditionalInfo Additional info response might give
       
   329          * @return phonet sender status
       
   330          */
       
   331         TInt SetUpIdleModeTextTerminalRespL( TUint8 aTransId,
       
   332             TDes8& aCommandDetails,
       
   333             TUint8 aGeneralResult,
       
   334             TUint8 aAdditionalInfo );
       
   335 
       
   336         /**
       
   337          * SetUpEventList response method.
       
   338          *          
       
   339          * @param aTransId Unique transaction ID
       
   340          * @param aCommandDetails command details tlv
       
   341          * @param aGeneralResult result of the proactive command display text
       
   342          * @param aAdditionalInfo Additional info response might give
       
   343          * @return phonet sender status
       
   344          */
       
   345         TInt SetUpEventListTerminalRespL( TUint8 aTransId, 
       
   346             TDes8& aCommandDetails, 
       
   347             TUint8 aGeneralResult,
       
   348             TUint8 aAdditionalInfo );
       
   349 
       
   350         /**
       
   351          * PollingOff response method.
       
   352          *          
       
   353          * @param aPCmdNumber Unique transaction ID
       
   354          * @param aCommandDetails command details tlv
       
   355          * @param aAdditionalInfo Additional info response might give
       
   356          * @return phonet sender status
       
   357          */
       
   358         TInt PollingOffTerminalRespL( TUint8 aTransId, 
       
   359             TDes8& aCommandDetails,
       
   360             TUint8 aGeneralResult,
       
   361             TUint8 aAdditionalInfo );
       
   362 
       
   363         /**
       
   364          * LocalInfo response method.
       
   365          *          
       
   366          * @param aTransId Unique transaction ID
       
   367          * @param aCommandDetails Command details TLV
       
   368          * @param aGeneralResult result of the proactice command
       
   369          * @param aAdditionalInfo Additional info response might give
       
   370          * @return phonet sender status
       
   371          */
       
   372         TInt LocalInfoTerminalRespL( TUint8 aTransId, 
       
   373             TDes8& aCommandDetails,
       
   374             TUint8 aGeneralResult,
       
   375             TDes& aAdditionalInfo );
       
   376 
       
   377         /**
       
   378          * Timer management response method.
       
   379          *          
       
   380          * @param aTransId Unique transaction ID
       
   381          * @param aCommandDetails Command details TLV
       
   382          * @param aGeneralResult result of the proactive command
       
   383          * @param aTimerValue[3] timer value in hours, minutes and seconds
       
   384          * @param aTimerId timer identifier 
       
   385          * @param aAdditionalInfo Additional info response might give
       
   386          * @return phonet sender status
       
   387          */
       
   388         TInt TimerMgmtTerminalRespL( TUint8 aTransId, 
       
   389             TDes8& aCommandDetails,
       
   390             TUint8 aGeneralResult,
       
   391             TUint8 aTimerValue[3],   
       
   392             TUint8 aTimerId,
       
   393             TUint8 aAdditionalInfo );
       
   394 
       
   395         /**
       
   396          * Timer expiration indication
       
   397          *          
       
   398          * @param aTransId Unique transaction ID
       
   399          * @param aTimerId timer identification
       
   400          * @param aTimerValue[3] timer value
       
   401          * @return TInt
       
   402          */
       
   403         TInt TimerExpirationInd ( TUint8 aTransId,
       
   404             TUint8 aTimerId,
       
   405             TUint8 aTimerValue[3] );
       
   406 
       
   407         /**
       
   408          * More time response
       
   409          *          
       
   410          * @param aTransId Unique transaction ID
       
   411          * @param aCommandDetails Command details TLV
       
   412          * @param aGeneralResult result of the proactive command
       
   413          * @return phonet sender status 
       
   414          */
       
   415         TInt MoreTimeTerminalRespL( TUint8 aTransId,
       
   416             TDes8& aCommandDetails,
       
   417             TUint8 aGeneralResult );
       
   418 
       
   419         /**
       
   420          * SendTerminalResponseL
       
   421          *          
       
   422          * @param aCommandDetails Command details TLV
       
   423          * @param aBerTlvSpecificData data to be sent
       
   424          * @return phonet sender status                        
       
   425          */
       
   426         TInt SendTerminalResponseL( TDes8& aCommandDetails,
       
   427             const TDesC8& aBerTlvSpecificData,
       
   428             TUint8 aTransId = 0 );
       
   429 
       
   430         /**
       
   431          * SimReadFieldReq
       
   432          *          
       
   433          * @param aTransId Unique transaction ID
       
   434          * @param aOffset
       
   435          * @param aLength
       
   436          * @param aSimFilePath
       
   437          * @return phonet sender status                        
       
   438          */
       
   439         TInt SimReadFieldReq( TUint8 aTransId, 
       
   440             TUint16 aOffset,
       
   441             TUint16 aLength,
       
   442             TDes8* aSimFilePath );
       
   443                 
       
   444         /**
       
   445          * SimReadFieldResp
       
   446          *          
       
   447          * @param aIsiMsg
       
   448          */
       
   449         void SimReadFieldResp( CIsiMsg* aIsiMsg );
       
   450 
       
   451         /**
       
   452          * SendAtkEnvelopeNtf
       
   453          *          
       
   454          * @param aBerTlv TLV data of the envelope command 
       
   455          * @return phonet sender status
       
   456          */
       
   457         TInt SendAtkEnvelopeNtf( TUint8 aTransId, 
       
   458             const TDesC8& aBerTlv );
       
   459         
       
   460         /**
       
   461          * ReSendAtkEnvelopeNtf
       
   462          *          
       
   463          * @param aIsiMsg response to envelope 
       
   464          * @return KErrNone/KErrNotReady, no resending or resending.
       
   465          */
       
   466         TInt ReSendAtkEnvelopeNtf( CIsiMsg* aIsiMsg );
       
   467         
       
   468         /**
       
   469          * Send a Sms-Pp report with subblocks 
       
   470          *          
       
   471          * @param aTransId Unique transaction Id
       
   472          * @param aData data to be appended to the request
       
   473          */
       
   474         void SendSmsPpReportReq( TUint8 aTransId, 
       
   475             TDesC8& aData );
       
   476 
       
   477         /**
       
   478          * Sends atk event resp without sub blocks
       
   479          *          
       
   480          * @param aTransId Unique transaction Id
       
   481          * @param aError success code
       
   482          * @param aReceiverObject receiver guardian
       
   483          */
       
   484         TInt SendAtkEventCcResp( TUint8 aTransId, 
       
   485             TUint8 aError, 
       
   486             TUint8 aReceiverObject );
       
   487 
       
   488         /**
       
   489          * Sends atk event resp with sub blocks
       
   490          *          
       
   491          * @param aTransId Unique transaction Id
       
   492          * @param aData data to be sent
       
   493          * @param aReceiverObject receiver guardian
       
   494          */
       
   495         TInt SendAtkEventCcResp( TUint8 aTransId, 
       
   496             TDesC8& aData,
       
   497             TUint8 aReceiverObject );
       
   498 
       
   499         /**
       
   500          * Sets header of the message for atk messages
       
   501          *          
       
   502          * @param aMsg message to be sent
       
   503          * @param aReceiverObj receiver object of the message
       
   504          */
       
   505 #ifndef AFF_ISC_API_IN_USE
       
   506         void SetAtkMsgHeaderInformation( CPnMsg& aMsg,
       
   507             TInt aReceiverObj = PN_OBJ_SIMSON_SERV );
       
   508 #else
       
   509         void SetAtkMsgHeaderInformation( CPnMsg& aMsg,
       
   510             TInt aReceiverObj = 0x35 );
       
   511 #endif
       
   512 
       
   513         /**
       
   514          * Parse message and read from it operator code,
       
   515          * locationAreaCode and cell id.
       
   516          *          
       
   517          * @param aIsiMsg received message
       
   518          */
       
   519         void NetRegStatusInd( CIsiMsg* aIsiMsg );
       
   520 
       
   521         /**
       
   522          * activate call guardians
       
   523          *          
       
   524          * @param aTransId Unique transaction Id
       
   525          * @param aCCstatus Is the CC supported in SIM or not
       
   526          * @return phonet sender status 
       
   527          */
       
   528         TInt NotifyGuardiansAboutCCstatusInCard( TUint8 aTransId,
       
   529             TUint8 aCCstatus );
       
   530 
       
   531         /**
       
   532          * Read sim table if CC is supported
       
   533          *          
       
   534          * @return phonet sender status 
       
   535          */
       
   536         TInt SimReadTableReq();
       
   537 
       
   538         /**
       
   539          * Read sim table response
       
   540          *          
       
   541          * @param aIsiMsg response to envelope 
       
   542          */
       
   543         void SimReadTableResp( CIsiMsg* aIsiMsg );
       
   544 
       
   545         /**
       
   546          * Request to allow notification of SMS-PP Data download messages
       
   547          *          
       
   548          * @param aTransactionId Transaction identifier
       
   549          * @return TInt
       
   550          */
       
   551         TInt SmsPpRoutingReq ( TUint8 aTransactionId );
       
   552 
       
   553         /**
       
   554          * Breaks stub message
       
   555          *          
       
   556          * @param aIsiMsg
       
   557          */
       
   558         void InfoSerialNumberReadResp( CIsiMsg* aIsiMsg );
       
   559                                            
       
   560         /**
       
   561          * Send message to Phonet.
       
   562          *          
       
   563          * @param aTransId a unique transaction id
       
   564          * @param aCellInfoType 
       
   565          * @return Phonet sender status
       
   566          */
       
   567         TInt NetNeighbourCellsReq( TUint8 aTransId, 
       
   568             TUint8 aCellInfoType );
       
   569 
       
   570         /**
       
   571          * Breaks stub message
       
   572          *          
       
   573          * @param aIsiMsg
       
   574          */
       
   575         void NetNeighbourCellResp( CIsiMsg* aIsiMsg );
       
   576 
       
   577         /**
       
   578          * Send stub message
       
   579          *          
       
   580          * @param aTransId
       
   581          * @param aServiceType type of service
       
   582          * @param aMsg contains specific data required in the request
       
   583          * @return Phonet sender status
       
   584          */
       
   585         TInt SimAtkReq( TUint8 aTransId, 
       
   586             TUint8 aServiceType, 
       
   587             const TDesC8& aMsg );
       
   588 
       
   589         /**
       
   590          * Breaks stub message
       
   591          *          
       
   592          * @param aIsiMsg received message
       
   593          */
       
   594         void SimAtkRespL( CIsiMsg* aIsiMsg );
       
   595         
       
   596         /**
       
   597          * Set Polling Interval, sending a request to sim server
       
   598          *          
       
   599          * @param aTraId Transaction Id
       
   600          * @param aValue in seconds
       
   601          */
       
   602         void SetPollingInterval( TUint8 aTraId, 
       
   603             TUint8 aValue );
       
   604 
       
   605         /**
       
   606          * Method to check if IMEI is successfully received
       
   607          *          
       
   608          * @return KErrNone or KErrNotFound
       
   609          */
       
   610         TInt ImeiStatus();
       
   611        
       
   612         /**
       
   613          * Method to check SIM server response to the refres request
       
   614          *          
       
   615          * @param aStatus SIM server status
       
   616          * @param aServiceType
       
   617          */
       
   618         void RefreshResultL( TUint8 aStatus, 
       
   619             TUint8 aServiceType );
       
   620 
       
   621         /**
       
   622          * Method to check SIM response to a set polling request
       
   623          * Called by SimAtkRespL
       
   624          *          
       
   625          * @param aStatus SIM status
       
   626          * @param aTransId Transaction Id
       
   627          * @param aInterval obtained from the message of the response
       
   628          */
       
   629         void SetPollingResult( TUint8 aStatus,
       
   630             TUint8 aTransId,
       
   631             TUint8 aInterval );
       
   632 
       
   633         /**
       
   634          * Sends message to phonet
       
   635          *          
       
   636          * @param aTransId Transaction ID
       
   637          * @param aRefreshType Type of refresh
       
   638          * @return Phonet sender status
       
   639          */
       
   640         TInt NetSimRefreshReq( TUint8 aTransId,
       
   641             TUint8 aRefreshType );
       
   642 
       
   643         /**
       
   644          * Breaks stub message
       
   645          *          
       
   646          * @param aIsiMsg
       
   647          * @return Success code of refresh request
       
   648          */
       
   649         void NetSimRefreshRespL( CIsiMsg* aIsiMsg );
       
   650 
       
   651         /**
       
   652          * Method to check that proactive command is in correct format.
       
   653          *          
       
   654          * @param aIsiMsg 
       
   655          * @return KErrNone or KErrCorrupt
       
   656          */
       
   657         TInt CheckProactiveCommandL( CIsiMsg* aIsiMsg );
       
   658 
       
   659         /**
       
   660          * Send message
       
   661          *          
       
   662          * @param aTransId
       
   663          * @param aRoutingCommand
       
   664          * @return Phonet sender return value
       
   665          */
       
   666         TInt SmsGsmTempCbRoutingReq( TUint8 aTransId, 
       
   667             TUint8 aRoutingCommand );
       
   668 
       
   669         /**
       
   670          * Breaks message
       
   671          *          
       
   672          * @param aIsiMsg
       
   673          */
       
   674         void SmsGsmTempCbRoutingResp( CIsiMsg* aIsiMsg );
       
   675 
       
   676         /**
       
   677          * Creates InfoSerialNumberReadReq message and sends it to Phonet
       
   678          *          
       
   679          * @param aTransId unique transaction id
       
   680          * @param aTarget requested data
       
   681          * @return Error value 
       
   682          */
       
   683         TInt InfoSerialNumberReadReq( TUint8 aTransId, 
       
   684             TUint8 aTarget );
       
   685 
       
   686         /**
       
   687          * Creates message and sends it to Phonet
       
   688          *          
       
   689          * @param aTransId unique transaction id
       
   690          * @return Error value 
       
   691          */
       
   692         TInt NetRegStatusGetReq( TUint8 aTransId );
       
   693 
       
   694         /**
       
   695          * Breaks stub message
       
   696          *          
       
   697          * @param aIsiMsg
       
   698          */
       
   699         void NetRegStatusGetResp( CIsiMsg* aIsiMsg );
       
   700 
       
   701         /**
       
   702          * Method to check Location information status
       
   703          *          
       
   704          * @return ETrue or EFalse
       
   705          */
       
   706         TBool LocationInformationStatus() const
       
   707             {
       
   708             return iLocationInfoReceived;
       
   709             }
       
   710 
       
   711         /**        
       
   712          * Returns locations area code (LAC)
       
   713          *          
       
   714          * @return Location Area Code
       
   715          */
       
   716         TUint16 GetLocationAreaCode() const
       
   717             {
       
   718             return iLocationAreaCode;
       
   719             }
       
   720 
       
   721         /**
       
   722          * Returns Cell ID
       
   723          *          
       
   724          * @return Cell ID
       
   725          */
       
   726         TUint16 GetCellId() const
       
   727             {
       
   728             return iCellId;
       
   729             }
       
   730 
       
   731         /**
       
   732          * Returns Operator code
       
   733          *          
       
   734          * @return Operator Code
       
   735          */
       
   736         const TDesC8& GetOperatorCode() const
       
   737             {
       
   738             return iOperatorCode;
       
   739             }
       
   740 
       
   741         /**
       
   742          * Queries the default bearer for voice call
       
   743          *          
       
   744          * @return phonet sender status 
       
   745          */
       
   746         TInt GetBearerCapability();
       
   747 
       
   748         /**
       
   749          * Checks if received number is emergency number or not
       
   750          *          
       
   751          * @param aNumber number to be checked
       
   752          * @param aTransId unique transaction id
       
   753          * @return 
       
   754          */
       
   755         TInt CheckEmergencyNumber( TBuf8<123> aNumber, TUint8 aTransId );
       
   756 
       
   757         /** 
       
   758          * Breaks message
       
   759          *          
       
   760          */
       
   761         void SimServerReadyInd();
       
   762 
       
   763         /** 
       
   764          * Set refresh status flag.
       
   765          *          
       
   766          * @param aStatus Refresh is ongoing EFalse or ETrue
       
   767          */
       
   768         void SetRefreshStatus( TBool aStatus );
       
   769         
       
   770         /**
       
   771          * Sends message to phonet
       
   772          *
       
   773          * @param aTransId Transaction ID
       
   774          * @param TUint8 aOperation: Gss operation
       
   775          * @return Phonet sender status
       
   776          */
       
   777         TInt GssCsServiceReq( TUint8 aTransId,
       
   778             TUint8 aOperation );
       
   779 
       
   780         /**
       
   781          * Breaks message
       
   782          *          
       
   783          * @param aIsiMsg
       
   784          */
       
   785         void GssCsServiceResp( CIsiMsg* aIsiMsg );
       
   786 
       
   787         /**
       
   788          * Language Notification response
       
   789          *          
       
   790          * @param aTransId Unique transaction ID
       
   791          * @param aCommandDetails Command details TLV
       
   792          * @param aGeneralResult result of the proactive command
       
   793          * @param aLanguage 
       
   794          * @return phonet sender status 
       
   795          */
       
   796         TInt LanguageNotificationTerminalRespL( 
       
   797             TUint8 aTransId,
       
   798             TDes8& aCommandDetails,
       
   799             TUint8 aGeneralResult,
       
   800             TUint8 aAdditionalInfo );
       
   801 
       
   802         /** 
       
   803          * Breaks message
       
   804          *          
       
   805          * @param aIsiMsg received indication
       
   806          */
       
   807         void NetTimeInd( CIsiMsg* aIsiMsg );
       
   808 
       
   809         /** 
       
   810          * Returns time zone information received from network.
       
   811          *          
       
   812          * @return Time zone
       
   813          */
       
   814         TUint8 GetTimeZone() const;
       
   815 
       
   816     private:
       
   817 
       
   818         /**
       
   819          * Copy constructor, usage not allowed
       
   820          * @param aRhs Satmesshandler reference
       
   821          */
       
   822         CSatMessHandler( const CSatMessHandler& aRhs );
       
   823 
       
   824         /**
       
   825          * Assignment operator, usage not allowed
       
   826          * @param Satmesshandler reference
       
   827          * @return aRhs SatMessHandler reference
       
   828          */
       
   829         CSatMessHandler& operator = ( const CSatMessHandler& aRhs );
       
   830 
       
   831         /**
       
   832          * By default Symbian 2nd phase constructor is private.
       
   833          */
       
   834         void ConstructL();
       
   835 
       
   836     public: // Data
       
   837         
       
   838         /**
       
   839          * Flag is true after a Polling Off, and false after 
       
   840          * a polling interval pcmd
       
   841          */
       
   842         TBool iPollingOff;
       
   843 
       
   844     private: // Data
       
   845 
       
   846         /**
       
   847          * pointer to SAT messaging object
       
   848          * Own.
       
   849          */
       
   850         CTsySatMessaging* iTsySatMessaging;    
       
   851         
       
   852         /**
       
   853          * pointer to Phonet Sender
       
   854          * Own.
       
   855          */
       
   856         CMmPhoNetSender* iPnSend;
       
   857         
       
   858         /**
       
   859          * Storage for terminal resp transaction id..
       
   860          */
       
   861         TInt iTerminalRespTraId;
       
   862         
       
   863         /**
       
   864          * Variable for storing card id
       
   865          */
       
   866         TUint8 iCardId;
       
   867         
       
   868         /**
       
   869          * For storing location area code
       
   870          */
       
   871         TUint16 iLocationAreaCode;
       
   872         
       
   873         /**
       
   874          * For storing cell id
       
   875          */
       
   876         TUint16 iCellId;
       
   877         
       
   878         /**
       
   879          * For checking if network information has been received
       
   880          */
       
   881         TBool iLocationInfoReceived;
       
   882         
       
   883         /**
       
   884          * For storing operator code.
       
   885          */
       
   886         TBuf8<3> iOperatorCode;
       
   887         
       
   888         /**
       
   889          * For storing IMEI code.
       
   890          */
       
   891         TBuf8<16> iIMEI;
       
   892         
       
   893         /**
       
   894          * For storing NMR
       
   895          */
       
   896         TBuf8<16> iNMR;
       
   897         
       
   898         /**
       
   899          * For storing BCCH channel list
       
   900          */
       
   901         TBuf<32> iBCCHChannelList;
       
   902         
       
   903         /**
       
   904          * For checking if IMEI code has been received
       
   905          */
       
   906         TBool iSerialNumberReadReceived;
       
   907         
       
   908         /**
       
   909          * Flag
       
   910          */
       
   911         TBool iInformSmsServerAboutCbmidIsOngoing;
       
   912         
       
   913         /**
       
   914          * Structure for storing envelope information for possible
       
   915          * need of resending
       
   916          */
       
   917         struct TEnvelopeStruct
       
   918             {
       
   919             // Transaction id of Envelope
       
   920             TUint8 iTransId;
       
   921 
       
   922             // BerTlv information
       
   923             TBuf8<257> iData;
       
   924             };
       
   925         
       
   926         /**
       
   927          * Variable for storing sent envelopes for possible need of resend
       
   928          */
       
   929         RArray<TEnvelopeStruct> *iEnvelope;
       
   930         
       
   931         /**
       
   932          * Refresh proactive command is currently active flag.
       
   933          */
       
   934         TBool iRefreshRequestIsOn;
       
   935         
       
   936         /**
       
   937          * Variable for storing Timing Advance
       
   938          */
       
   939         TUint8 iTimingAdvance;
       
   940         
       
   941         /**
       
   942          * Variable for storing ME Status
       
   943          */
       
   944         TUint8 iMEStatus;
       
   945         
       
   946         /**
       
   947          * Save the SimReadField transaction id used by GetIcon.
       
   948          */
       
   949         TInt iGetIconSimReadFieldTraId;
       
   950         
       
   951         /**
       
   952          * Save the SimReadField transaction id used by DataDownload.
       
   953          */
       
   954         TInt iDataDownloadSimReadFieldTraId;
       
   955         
       
   956         /**
       
   957          * Time zone information from Network. 0xFF if not received.
       
   958          */
       
   959         TUint8 iTimeZone;
       
   960     };
       
   961 
       
   962 #endif    // SATMESSHANDLER_H   
       
   963 
       
   964 // End of File