adaptationlayer/tsy/simatktsy_dll/src/satmesshandler.cpp
changeset 9 8486d82aef45
parent 8 6295dc2169f3
equal deleted inserted replaced
8:6295dc2169f3 9:8486d82aef45
    41 #include <call_modemisi.h>      // Call Modem server
    41 #include <call_modemisi.h>      // Call Modem server
    42 #include <smsisi.h>             // sms server
    42 #include <smsisi.h>             // sms server
    43 #include <uiccisi.h>            // UICC server
    43 #include <uiccisi.h>            // UICC server
    44 #include <gpdsisi.h>            // GPDS server
    44 #include <gpdsisi.h>            // GPDS server
    45 
    45 
    46 #include <atk_sharedisi.h>
       
    47 #include <call_sharedisi.h>
    46 #include <call_sharedisi.h>
    48 #include <info_sharedisi.h>
    47 #include <info_sharedisi.h>
    49 #include "OstTraceDefinitions.h"
    48 #include "OstTraceDefinitions.h"
    50 #ifdef OST_TRACE_COMPILER_IN_USE
    49 #ifdef OST_TRACE_COMPILER_IN_USE
    51 #include "satmesshandlerTraces.h"
    50 #include "satmesshandlerTraces.h"
    61 const TInt KNoTransactionOngoing                = -1;
    60 const TInt KNoTransactionOngoing                = -1;
    62 // Time zone not available
    61 // Time zone not available
    63 const TUint8 KTimeZoneNotAvailable              = 0xFF;
    62 const TUint8 KTimeZoneNotAvailable              = 0xFF;
    64 // Access Technology unknown
    63 // Access Technology unknown
    65 const TUint8 KAccTechUnknown                    = 0xFF;
    64 const TUint8 KAccTechUnknown                    = 0xFF;
    66 // This is a common length constant (2 bytes)
       
    67 const TUint8 KLengthTwoBytes                    = 0x02;
       
    68 // Maximum polling interval of legacy phones
    65 // Maximum polling interval of legacy phones
    69 const TUint8 KMaxLegacyPollInterval             = 0x19; // 25 decimal
    66 const TUint8 KMaxLegacyPollInterval             = 0x19; // 25 decimal
    70 // Size of one clut entry in bytes
    67 // Size of one clut entry in bytes
    71 const TUint16 KClutEntrySize                    = 3;
    68 const TUint16 KClutEntrySize                    = 3;
    72 
    69 
   116         )
   113         )
   117         :
   114         :
   118         iTsySatMessaging( aTsySatMessaging ),
   115         iTsySatMessaging( aTsySatMessaging ),
   119         iPnSend( aPnSend )
   116         iPnSend( aPnSend )
   120     {
   117     {
   121     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_CSATMESSHANDLER, "CSatMessHandler::CSatMessHandler" );
   118     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_CSATMESSHANDLER_TD, "CSatMessHandler::CSatMessHandler" );
   122     // >= 0 if there is ongoing transaction
   119     // >= 0 if there is ongoing transaction
   123     iTerminalRespTraId              = KNoTransactionOngoing;
   120     iTerminalRespTraId              = KNoTransactionOngoing;
   124     iGetIconSimReadFieldTraId       = KNoTransactionOngoing;
   121     iGetIconSimReadFieldTraId       = KNoTransactionOngoing;
   125     iDataDownloadSimReadFieldTraId  = KNoTransactionOngoing;
   122     iDataDownloadSimReadFieldTraId  = KNoTransactionOngoing;
       
   123     iCbRoutingReqTraId              = KNoTransactionOngoing;
   126 
   124 
   127     iCardId                         = KZero;
   125     iCardId                         = KZero;
   128     iImeiAvailable                  = EFalse;
   126     iImeiAvailable                  = EFalse;
   129     iImeiSvAvailable                = EFalse;
   127     iImeiSvAvailable                = EFalse;
   130     // By default, there's no need to request routing from SMS server
   128     // By default, there's no need to request routing from SMS server
   184 // Destructor.
   182 // Destructor.
   185 // -----------------------------------------------------------------------------
   183 // -----------------------------------------------------------------------------
   186 //
   184 //
   187 CSatMessHandler::~CSatMessHandler()
   185 CSatMessHandler::~CSatMessHandler()
   188     {
   186     {
   189     OstTrace0( TRACE_NORMAL, DUP1_CSATMESSHANDLER_CSATMESSHANDLER, "CSatMessHandler::~CSatMessHandler" );
   187     OstTrace0( TRACE_NORMAL,  DUP1_CSATMESSHANDLER_CSATMESSHANDLER_TD, "CSatMessHandler::~CSatMessHandler" );
   190     }
   188     }
   191 
   189 
   192 // -----------------------------------------------------------------------------
   190 // -----------------------------------------------------------------------------
   193 // CSatMessHandler::NewL
   191 // CSatMessHandler::NewL
   194 // Two-phased constructor.
   192 // Two-phased constructor.
   198         (
   196         (
   199         CTsySatMessaging*   aTsySatMessaging,
   197         CTsySatMessaging*   aTsySatMessaging,
   200         CMmPhoNetSender*    aPnSend
   198         CMmPhoNetSender*    aPnSend
   201         )
   199         )
   202     {
   200     {
   203     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_NEWL, "CSatMessHandler::NewL" );
   201     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_NEWL_TD, "CSatMessHandler::NewL" );
   204     TFLOGSTRING("TSY:CSatMessHandler::NewL");
   202     TFLOGSTRING("TSY:CSatMessHandler::NewL");
   205 
   203 
   206     CSatMessHandler* self = new( ELeave ) CSatMessHandler( aTsySatMessaging,
   204     CSatMessHandler* self = new( ELeave ) CSatMessHandler( aTsySatMessaging,
   207         aPnSend );
   205         aPnSend );
   208     CleanupStack::PushL( self );
   206     CleanupStack::PushL( self );
   217 // -----------------------------------------------------------------------------
   215 // -----------------------------------------------------------------------------
   218 //
   216 //
   219 void CSatMessHandler::ConstructL()
   217 void CSatMessHandler::ConstructL()
   220     {
   218     {
   221     TFLOGSTRING("TSY:CSatMessHandler::ConstructL");
   219     TFLOGSTRING("TSY:CSatMessHandler::ConstructL");
   222     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_CONSTRUCTL, "CSatMessHandler::ConstructL" );
   220     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_CONSTRUCTL_TD, "CSatMessHandler::ConstructL" );
   223 
   221 
   224     // This flag is set to 'true' when indication ESatUsatClientReadyIndication
   222     // This flag is set to 'true' when indication ESatUsatClientReadyIndication
   225     // is received from SAT server. CAT can be enabled when the state of this
   223     // is received from SAT server. CAT can be enabled when the state of this
   226     // flag is 'true' and also UICC server is ready.
   224     // flag is 'true' and also UICC server is ready.
   227     iSatReady = EFalse;
   225     iSatReady = EFalse;
   253 void CSatMessHandler::ProactiveProcedureMessageReceivedL
   251 void CSatMessHandler::ProactiveProcedureMessageReceivedL
   254         (
   252         (
   255         const TIsiReceiveC& aIsiMessage
   253         const TIsiReceiveC& aIsiMessage
   256         )
   254         )
   257     {
   255     {
   258     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_PROACTIVEPROCEDUREMESSAGERECEIVEDL, "CSatMessHandler::ProactiveProcedureMessageReceivedL" );
   256     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_PROACTIVEPROCEDUREMESSAGERECEIVEDL_TD, "CSatMessHandler::ProactiveProcedureMessageReceivedL" );
   259     TFLOGSTRING("TSY:CSatMessHandler::ProactiveProcedureMessageReceivedL");
   257     TFLOGSTRING("TSY:CSatMessHandler::ProactiveProcedureMessageReceivedL");
   260 
   258 
   261     // handle event download and related messages
   259     // handle event download and related messages
   262     iTsySatMessaging->EventDownloadReceived( aIsiMessage );
   260     iTsySatMessaging->EventDownloadReceived( aIsiMessage );
   263 
   261 
   279 void CSatMessHandler::NetServerMessageReceived
   277 void CSatMessHandler::NetServerMessageReceived
   280         (
   278         (
   281         const TIsiReceiveC& aIsiMessage // ISI message
   279         const TIsiReceiveC& aIsiMessage // ISI message
   282         )
   280         )
   283     {
   281     {
   284     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_NETSERVERMESSAGERECEIVED, "CSatMessHandler::NetServerMessageReceived" );
   282     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_NETSERVERMESSAGERECEIVED_TD, "CSatMessHandler::NetServerMessageReceived" );
   285     TFLOGSTRING("TSY:CSatMessHandler::NetServerMessageReceived");
   283     TFLOGSTRING("TSY:CSatMessHandler::NetServerMessageReceived");
   286 
   284 
   287     TInt messageId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ) );
   285     TInt messageId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ) );
   288 
   286 
   289     switch ( messageId )
   287     switch ( messageId )
   296             // during the first request.
   294             // during the first request.
   297             if ( !iSmsCbRoutingComplete )
   295             if ( !iSmsCbRoutingComplete )
   298                 {
   296                 {
   299                 TFLOGSTRING("TSY:CSatMessHandler::NetServerMessageReceived \
   297                 TFLOGSTRING("TSY:CSatMessHandler::NetServerMessageReceived \
   300                     Sending delayed SMS CB routing request.");
   298                     Sending delayed SMS CB routing request.");
   301                 OstTrace0( TRACE_NORMAL, DUP1_CSATMESSHANDLER_NETSERVERMESSAGERECEIVED, "CSatMessHandler::NetServerMessageReceived Sending delayed SMS CB routing request." );
   299                 OstTrace0( TRACE_NORMAL,  DUP1_CSATMESSHANDLER_NETSERVERMESSAGERECEIVED_TD, "CSatMessHandler::NetServerMessageReceived Sending delayed SMS CB routing request." );
   302                 SmsCbRoutingReq(
   300                 SmsCbRoutingReq(
   303                     iTsySatMessaging->GetTransactionId(), SMS_ROUTING_SET );
   301                     iTsySatMessaging->GetTransactionId(), SMS_ROUTING_SET );
   304                 }
   302                 }
   305             break;
   303             break;
   306             }
   304             }
   331             }
   329             }
   332         }
   330         }
   333     }
   331     }
   334 
   332 
   335 // -----------------------------------------------------------------------------
   333 // -----------------------------------------------------------------------------
   336 // CSatMessHandler::PhoneInfoMessageReceived
   334 // CSatMessHandler::PhoneInfoMessageReceivedL
   337 // Called from SatMessHandler::ReceivedL, handles Phone Info related messages
   335 // Called from SatMessHandler::ReceivedL, handles Phone Info related messages
   338 // -----------------------------------------------------------------------------
   336 // -----------------------------------------------------------------------------
   339 //
   337 //
   340 void CSatMessHandler::PhoneInfoMessageReceived
   338 /*void CSatMessHandler::PhoneInfoMessageReceivedL
   341         (
   339         (
   342         const TIsiReceiveC& aIsiMessage // ISI message
   340         const TIsiReceiveC& aIsiMessage // ISI message
   343         )
   341         )
   344     {
   342     {
   345     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_PHONEINFOMESSAGERECEIVED, "CSatMessHandler::PhoneInfoMessageReceived" );
   343     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_PHONEINFOMESSAGERECEIVEDL_TD, "CSatMessHandler::PhoneInfoMessageReceivedL" );
   346     TFLOGSTRING("TSY:CSatMessHandler::PhoneInfoMessageReceived");
   344     TFLOGSTRING("TSY:CSatMessHandler::PhoneInfoMessageReceivedL");
   347 
   345 
   348     TInt messageId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ) );
   346     TInt messageId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ) );
   349 
   347 
   350     switch ( messageId )
   348     switch ( messageId )
   351         {
   349         {
   354             InfoSerialNumberReadResp( aIsiMessage );
   352             InfoSerialNumberReadResp( aIsiMessage );
   355             break;
   353             break;
   356             }
   354             }
   357         case INFO_PP_READ_RESP:
   355         case INFO_PP_READ_RESP:
   358             {
   356             {
   359             InfoPpReadResp( aIsiMessage );
   357             InfoPpReadRespL( aIsiMessage );
   360             break;
   358             break;
   361             }
   359             }
   362         default:
   360         default:
   363             {
   361             {
   364             // do nothing
   362             // do nothing
   365             break;
   363             break;
   366             }
   364             }
   367         }
   365         }
   368     }
   366     }*/
   369 
   367 
   370 
   368 
   371 // -----------------------------------------------------------------------------
   369 // -----------------------------------------------------------------------------
   372 // CSatMessHandler::UiccServerMessageReceived
   370 // CSatMessHandler::UiccServerMessageReceived
   373 // Called from SatMessHandler::ReceivedL, handles UICC Server messages
   371 // Called from SatMessHandler::ReceivedL, handles UICC Server messages
   374 // -----------------------------------------------------------------------------
   372 // -----------------------------------------------------------------------------
   375 //
   373 //
   376 TBool CSatMessHandler::UiccServerMessageReceived(
   374 TBool CSatMessHandler::UiccServerMessageReceivedL(
   377     const TIsiReceiveC& aIsiMessage )
   375     const TIsiReceiveC& aIsiMessage )
   378     {
   376     {
   379     TUint8 messageId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ) );
   377     TUint8 messageId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ) );
   380     OstTraceExt1( TRACE_NORMAL, DUP3_CSATMESSHANDLER_UICCSERVERMESSAGERECEIVED, "CSatMessHandler::UiccServerMessageReceived;messageId=%hhu", messageId );
   378     OstTraceExt1( TRACE_NORMAL, DUP3_CSATMESSHANDLER_UICCSERVERMESSAGERECEIVEDL_TD, "CSatMessHandler::UiccServerMessageReceived;messageId=%hhu", messageId );
   381     TFLOGSTRING2("TSY:CSatMessHandler::UiccServerMessageReceived, message ID: %d", messageId );
   379     TFLOGSTRING2("TSY:CSatMessHandler::UiccServerMessageReceivedL, message ID: %d", messageId );
   382 
   380 
   383     TBool handled( EFalse );
   381     TBool handled( EFalse );
   384 
   382 
   385     switch ( messageId )
   383     switch ( messageId )
   386         {
   384         {
   387         case UICC_CAT_IND:
   385         case UICC_CAT_IND:
   388             {
   386             {
   389             UiccCatInd( aIsiMessage );
   387             UiccCatIndL( aIsiMessage );
   390             break;
   388             break;
   391             }
   389             }
   392         case UICC_CAT_RESP:
   390         case UICC_CAT_RESP:
   393             {
   391             {
   394             TUint8 serviceType(
   392             TUint8 serviceType(
   397             TUint8 status(
   395             TUint8 status(
   398                 aIsiMessage.Get8bit(
   396                 aIsiMessage.Get8bit(
   399                     ISI_HEADER_SIZE + UICC_CAT_RESP_OFFSET_STATUS ) );
   397                     ISI_HEADER_SIZE + UICC_CAT_RESP_OFFSET_STATUS ) );
   400 
   398 
   401             TFLOGSTRING3("TSY:CSatMessHandler:: KUiccCatResp: service type %d, status %d", serviceType, status);
   399             TFLOGSTRING3("TSY:CSatMessHandler:: KUiccCatResp: service type %d, status %d", serviceType, status);
   402             OstTraceExt2( TRACE_NORMAL, DUP2_CSATMESSHANDLER_UICCSERVERMESSAGERECEIVED, "CSatMessHandler::KUiccCatResp;serviceType=%hhu;status=%hhu", serviceType, status );
   400 OstTraceExt2( TRACE_NORMAL, DUP2_CSATMESSHANDLER_UICCSERVERMESSAGERECEIVEDL_TD, "CSatMessHandler::KUiccCatResp;serviceType=%hhu;status=%hhu", serviceType, status );
   403 
   401 
   404             // If terminal profile was sent succesfully and SAT is ready,
   402             // If terminal profile was sent succesfully and SAT is ready,
   405             // start fetching proactive commands
   403             // start fetching proactive commands
   406             if ( UICC_CAT_TERMINAL_PROFILE == serviceType &&
   404             if ( UICC_CAT_TERMINAL_PROFILE == serviceType &&
   407                 UICC_STATUS_OK == status )
   405                 UICC_STATUS_OK == status )
   430                     }
   428                     }
   431                 }
   429                 }
   432             // Response for refresh command
   430             // Response for refresh command
   433             else if ( UICC_CAT_REFRESH == serviceType )
   431             else if ( UICC_CAT_REFRESH == serviceType )
   434                 {
   432                 {
   435                 RefreshResult( status );
   433                 RefreshResultL( status );
   436                 }
   434                 }
   437             // Response for polling set command
   435             // Response for polling set command
   438             else if ( UICC_CAT_POLLING_SET == serviceType  )
   436             else if ( UICC_CAT_POLLING_SET == serviceType  )
   439                 {
   437                 {
   440                 SetPollingResult(
   438                 SetPollingResult(
   476             // Access to UICC files is possible when application is active
   474             // Access to UICC files is possible when application is active
   477             TUint8 serviceType( aIsiMessage.Get8bit(
   475             TUint8 serviceType( aIsiMessage.Get8bit(
   478                 ISI_HEADER_SIZE + UICC_APPLICATION_IND_OFFSET_SERVICETYPE ) );
   476                 ISI_HEADER_SIZE + UICC_APPLICATION_IND_OFFSET_SERVICETYPE ) );
   479             if ( UICC_APPL_ACTIVATED == serviceType )
   477             if ( UICC_APPL_ACTIVATED == serviceType )
   480                 {
   478                 {
   481                 // USIM and SIM: Read SMS-PP DD and Call Control from byte 4.
   479                 TInt ret( KErrNone );
   482                 // Only USIM: MO-SMS control from byte 4
       
   483                 UiccReadServiceTableReq( KUiccTrIdServiceTableByte4, 3 );
       
   484 
       
   485                 if ( UICC_CARD_TYPE_UICC == iCardType )
   480                 if ( UICC_CARD_TYPE_UICC == iCardType )
   486                     {
   481                     {
       
   482                     // USIM: Read SMS-PP DD, Call Control and MO-SMS control from byte 4.
       
   483                     ret = UiccReadServiceTableReq( KUiccTrIdServiceTableByte4, 3 );
       
   484                     User::LeaveIfError( ret );
   487                     // USIM: Read call control GPRS from byte 7
   485                     // USIM: Read call control GPRS from byte 7
   488                     UiccReadServiceTableReq( KUiccTrIdServiceTableByte7, 6 );
   486                     ret = UiccReadServiceTableReq( KUiccTrIdServiceTableByte7, 6 );
       
   487                     User::LeaveIfError( ret );
   489                     }
   488                     }
   490                 else if ( UICC_CARD_TYPE_ICC == iCardType )
   489                 else if ( UICC_CARD_TYPE_ICC == iCardType )
   491                     {
   490                     {
   492                     // SIM: Read MO-SMS control from byte 5
   491                     // SIM: Read MO-SMS control from byte 10
   493                     UiccReadServiceTableReq( KUiccTrIdServiceTableByte5, 4 );
   492                     ret = UiccReadServiceTableReq( KUiccTrIdServiceTableByte10, 9 );
       
   493                     User::LeaveIfError( ret );
       
   494                     // SIM: Read SMS-PP DD and Call Control from byte 7
       
   495                     ret = UiccReadServiceTableReq( KUiccTrIdServiceTableByte7, 6 );
       
   496                     User::LeaveIfError( ret );
       
   497                     // SIM: Read Call control in USSD from byte 11. This is supported only in SIM
       
   498                     ret = UiccReadServiceTableReq( KUiccTrIdServiceTableByte11, 10 );
       
   499                     User::LeaveIfError( ret );
   494                     }
   500                     }
   495                 }
   501                 }
   496             break;
   502             break;
   497             }
   503             }
   498         case UICC_APPL_CMD_RESP:
   504         case UICC_APPL_CMD_RESP:
   511 void CSatMessHandler::SmsServerMessageReceived
   517 void CSatMessHandler::SmsServerMessageReceived
   512         (
   518         (
   513         const TIsiReceiveC& aIsiMessage // ISI message from SMS server
   519         const TIsiReceiveC& aIsiMessage // ISI message from SMS server
   514         )
   520         )
   515     {
   521     {
   516     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SMSSERVERMESSAGERECEIVED, "CSatMessHandler::SmsServerMessageReceived" );
   522     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_SMSSERVERMESSAGERECEIVED_TD, "CSatMessHandler::SmsServerMessageReceived" );
   517     TFLOGSTRING("TSY:CSatMessHandler::SmsServerMessageReceived");
   523     TFLOGSTRING("TSY:CSatMessHandler::SmsServerMessageReceived");
   518 
   524 
   519     TInt messageId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ) );
   525     TInt messageId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ) );
   520 
   526 
   521     switch ( messageId )
   527     switch ( messageId )
   532             }
   538             }
   533         case SMS_RESOURCE_CONF_RESP:
   539         case SMS_RESOURCE_CONF_RESP:
   534             {
   540             {
   535             // Take a log because result is always ok
   541             // Take a log because result is always ok
   536             TFLOGSTRING("TSY:CSatMoSmsCtrl::SmsResourceConfRespReceived: Response for Resource confoguration Req, Receive response from SMS server");
   542             TFLOGSTRING("TSY:CSatMoSmsCtrl::SmsResourceConfRespReceived: Response for Resource confoguration Req, Receive response from SMS server");
   537             OstTrace0( TRACE_NORMAL, DUP1_CSATMOSMSCTRL_SMSRESOURCECONFRESPRECEIVED, "CSatMoSmsCtrl::SmsResourceRespReceived: Response for Resource Configuration Req, Receive response from SMS server" );
   543             OstTrace0( TRACE_NORMAL,  DUP1_CSATMOSMSCTRL_SMSRESOURCECONFRESPRECEIVED_TD, "CSatMoSmsCtrl::SmsResourceRespReceived: Response for Resource Configuration Req, Receive response from SMS server" );
   538             break;
   544             break;
   539             }
   545             }
   540         default:
   546         default:
   541             // do nothing
   547             // do nothing
   542             break;
   548             break;
   552 void CSatMessHandler::SsServerMessageReceived
   558 void CSatMessHandler::SsServerMessageReceived
   553         (
   559         (
   554         const TIsiReceiveC& aIsiMessage // ISI message
   560         const TIsiReceiveC& aIsiMessage // ISI message
   555         )
   561         )
   556     {
   562     {
   557     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SSSERVERMESSAGERECEIVED, "CSatMessHandler::SsServerMessageReceived" );
   563     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_SSSERVERMESSAGERECEIVED_TD, "CSatMessHandler::SsServerMessageReceived" );
   558     TFLOGSTRING("TSY:CSatMessHandler::SsServerMessageReceived");
   564     TFLOGSTRING("TSY:CSatMessHandler::SsServerMessageReceived");
   559 
   565 
   560     TInt messageId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ) );
   566     TInt messageId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ) );
   561 
   567 
   562     switch ( messageId )
   568     switch ( messageId )
   581 void CSatMessHandler::GsmStackServerMessageReceived
   587 void CSatMessHandler::GsmStackServerMessageReceived
   582         (
   588         (
   583         const TIsiReceiveC& aIsiMessage // ISI message
   589         const TIsiReceiveC& aIsiMessage // ISI message
   584         )
   590         )
   585     {
   591     {
   586     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_GSMSTACKSERVERMESSAGERECEIVED, "CSatMessHandler::GsmStackServerMessageReceived" );
   592     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_GSMSTACKSERVERMESSAGERECEIVED_TD, "CSatMessHandler::GsmStackServerMessageReceived" );
   587     TFLOGSTRING("TSY:CSatMessHandler::GsmStackServerMessageReceived");
   593     TFLOGSTRING("TSY:CSatMessHandler::GsmStackServerMessageReceived");
   588 
   594 
   589     switch ( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ) )
   595     switch ( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ) )
   590         {
   596         {
   591         case GSS_CS_SERVICE_RESP:
   597         case GSS_CS_SERVICE_RESP:
   619         TDes8& aCommandDetails,     // PCmd number
   625         TDes8& aCommandDetails,     // PCmd number
   620         TUint8 aGeneralResult,      // General Result
   626         TUint8 aGeneralResult,      // General Result
   621         TUint8 aAdditionalInfo      // Additional info
   627         TUint8 aAdditionalInfo      // Additional info
   622         )
   628         )
   623     {
   629     {
   624     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_DISPLAYTEXTTERMINALRESP, "CSatMessHandler::DisplayTextTerminalResp" );
   630     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_DISPLAYTEXTTERMINALRESP_TD, "CSatMessHandler::DisplayTextTerminalResp" );
   625     TFLOGSTRING("TSY:CSatMessHandler::DisplayTextTerminalResp");
   631     TFLOGSTRING("TSY:CSatMessHandler::DisplayTextTerminalResp");
   626 
   632 
   627     TTlv tlvSpecificData;
   633     TTlv tlvSpecificData;
   628     // Create General Result TLV here
   634     // Create General Result TLV here
   629     tlvSpecificData.AddTag( KTlvResultTag );
   635     tlvSpecificData.AddTag( KTlvResultTag );
   653         const TUint8 aTransId,            // Transaction id
   659         const TUint8 aTransId,            // Transaction id
   654         const TDes8& aCommandDetails,     // PCmd number
   660         const TDes8& aCommandDetails,     // PCmd number
   655         const RSat::TGetInkeyRspV2& aRsp  // Response packet from Etel
   661         const RSat::TGetInkeyRspV2& aRsp  // Response packet from Etel
   656         )
   662         )
   657     {
   663     {
   658     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_GETINKEYTERMINALRESP, "CSatMessHandler::GetInkeyTerminalResp" );
   664     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_GETINKEYTERMINALRESP_TD, "CSatMessHandler::GetInkeyTerminalResp" );
   659     TFLOGSTRING("TSY:CSatMessHandler::GetInkeyTerminalRespL");
   665     TFLOGSTRING("TSY:CSatMessHandler::GetInkeyTerminalRespL");
   660 
   666 
   661     TTlv tlvSpecificData;
   667     TTlv tlvSpecificData;
   662 
   668 
   663     //General result
   669     //General result
   776         TUint8 aAdditionalInfo,     // Additional info
   782         TUint8 aAdditionalInfo,     // Additional info
   777         TDesC16& aTextString,       // Response string
   783         TDesC16& aTextString,       // Response string
   778         TUint8 aDataCodingScheme    // Coding scheme
   784         TUint8 aDataCodingScheme    // Coding scheme
   779         )
   785         )
   780     {
   786     {
   781     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_GETINPUTTERMINALRESP, "CSatMessHandler::GetInputTerminalResp" );
   787     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_GETINPUTTERMINALRESP_TD, "CSatMessHandler::GetInputTerminalResp" );
   782     TFLOGSTRING("TSY:CSatMessHandler::GetInputTerminalResp");
   788     TFLOGSTRING("TSY:CSatMessHandler::GetInputTerminalResp");
   783 
   789 
   784     TTlv tlvSpecificData;
   790     TTlv tlvSpecificData;
   785     TBuf8<KGetInputStringMaxSize> string;
   791     TBuf8<KGetInputStringMaxSize> string;
   786 
   792 
   857         TDes8& aCommandDetails,     // Command details
   863         TDes8& aCommandDetails,     // Command details
   858         TUint8 aGeneralResult,      // General result
   864         TUint8 aGeneralResult,      // General result
   859         TUint8 aAdditionalInfo      // Additional info
   865         TUint8 aAdditionalInfo      // Additional info
   860         )
   866         )
   861     {
   867     {
   862     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_PLAYTONETERMINALRESP, "CSatMessHandler::PlayToneTerminalResp" );
   868     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_PLAYTONETERMINALRESP_TD, "CSatMessHandler::PlayToneTerminalResp" );
   863     TFLOGSTRING("TSY:CSatMessHandler::PlayToneTerminalResp");
   869     TFLOGSTRING("TSY:CSatMessHandler::PlayToneTerminalResp");
   864 
   870 
   865     TTlv tlvSpecificData;
   871     TTlv tlvSpecificData;
   866 
   872 
   867     tlvSpecificData.AddTag( KTlvResultTag );
   873     tlvSpecificData.AddTag( KTlvResultTag );
   891         TDes8& aCommandDetails,     // aPCmdNumber
   897         TDes8& aCommandDetails,     // aPCmdNumber
   892         TUint8 aGeneralResult,      // General result
   898         TUint8 aGeneralResult,      // General result
   893         TUint8 aAdditionalInfo      // Additional info
   899         TUint8 aAdditionalInfo      // Additional info
   894         )
   900         )
   895     {
   901     {
   896     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SETUPMENUTERMINALRESP, "CSatMessHandler::SetUpMenuTerminalResp" );
   902     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_SETUPMENUTERMINALRESP_TD, "CSatMessHandler::SetUpMenuTerminalResp" );
   897     TFLOGSTRING("TSY:CSatMessHandler::SetUpMenuTerminalResp");
   903     TFLOGSTRING("TSY:CSatMessHandler::SetUpMenuTerminalResp");
   898 
   904 
   899     // Create and append response data
   905     // Create and append response data
   900     TTlv tlvSpecificData;
   906     TTlv tlvSpecificData;
   901 
   907 
   928         TDes8& aCommandDetails,     // Comamnd number
   934         TDes8& aCommandDetails,     // Comamnd number
   929         TUint8 aGeneralResult,      // General result
   935         TUint8 aGeneralResult,      // General result
   930         TUint8 aAdditionalInfo      // Additional info
   936         TUint8 aAdditionalInfo      // Additional info
   931         )
   937         )
   932     {
   938     {
   933     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SELECTITEMTERMINALRESP, "CSatMessHandler::SelectItemTerminalResp" );
   939     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_SELECTITEMTERMINALRESP_TD, "CSatMessHandler::SelectItemTerminalResp" );
   934     TFLOGSTRING("TSY:CSatMessHandler::SelectItemTerminalResp");
   940     TFLOGSTRING("TSY:CSatMessHandler::SelectItemTerminalResp");
   935 
   941 
   936     TTlv tlvSpecificData;
   942     TTlv tlvSpecificData;
   937     // Create general result TLV here
   943     // Create general result TLV here
   938     tlvSpecificData.AddTag( KTlvResultTag );
   944     tlvSpecificData.AddTag( KTlvResultTag );
   989         TUint8 aGeneralResult,      // General result
   995         TUint8 aGeneralResult,      // General result
   990         TUint8 aAdditionalInfo,     // Additional info
   996         TUint8 aAdditionalInfo,     // Additional info
   991         TUint8 aNumOfUnits          // Time interval
   997         TUint8 aNumOfUnits          // Time interval
   992         )
   998         )
   993     {
   999     {
   994     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_POLLINTERVALTERMINALRESP, "CSatMessHandler::PollIntervalTerminalResp" );
  1000     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_POLLINTERVALTERMINALRESP_TD, "CSatMessHandler::PollIntervalTerminalResp" );
   995     TFLOGSTRING("TSY:CSatMessHandler::PollIntervalTerminalResp");
  1001     TFLOGSTRING("TSY:CSatMessHandler::PollIntervalTerminalResp");
   996 
  1002 
   997     TTlv tlvSpecificData;
  1003     TTlv tlvSpecificData;
   998 
  1004 
   999     tlvSpecificData.AddTag( KTlvResultTag );
  1005     tlvSpecificData.AddTag( KTlvResultTag );
  1044         TDes8& aCommandDetails,     // Command details
  1050         TDes8& aCommandDetails,     // Command details
  1045         TUint8 aGeneralResult,      // General result
  1051         TUint8 aGeneralResult,      // General result
  1046         TUint8 aAdditionalInfo      // Additional info
  1052         TUint8 aAdditionalInfo      // Additional info
  1047         )
  1053         )
  1048     {
  1054     {
  1049     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SENDSMTERMINALRESP, "CSatMessHandler::SendSmTerminalResp" );
  1055     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_SENDSMTERMINALRESP_TD, "CSatMessHandler::SendSmTerminalResp" );
  1050     TFLOGSTRING("TSY:CSatMessHandler::SendSmTerminalResp");
  1056     TFLOGSTRING("TSY:CSatMessHandler::SendSmTerminalResp");
  1051 
  1057 
  1052     // Create and append response data
  1058     // Create and append response data
  1053     TTlv tlvSpecificData;
  1059     TTlv tlvSpecificData;
  1054 
  1060 
  1085         TDes8&  aCommandDetails,    // Command details tlv
  1091         TDes8&  aCommandDetails,    // Command details tlv
  1086         TUint8  aGeneralResult,     // General result
  1092         TUint8  aGeneralResult,     // General result
  1087         TDesC8& aAdditionalInfo     // Additional info
  1093         TDesC8& aAdditionalInfo     // Additional info
  1088         )
  1094         )
  1089     {
  1095     {
  1090     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SENDSSTERMINALRESP, "CSatMessHandler::SendSsTerminalResp" );
  1096     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_SENDSSTERMINALRESP_TD, "CSatMessHandler::SendSsTerminalResp" );
  1091     TFLOGSTRING("TSY:CSatMessHandler::SendSsTerminalResp");
  1097     TFLOGSTRING("TSY:CSatMessHandler::SendSsTerminalResp");
  1092 
  1098 
  1093     // Create and append response data
  1099     // Create and append response data
  1094     TTlv tlvSpecificData;
  1100     TTlv tlvSpecificData;
  1095     tlvSpecificData.AddTag( KTlvResultTag );
  1101     tlvSpecificData.AddTag( KTlvResultTag );
  1120         TDes8& aCommandDetails,
  1126         TDes8& aCommandDetails,
  1121         TUint8  aGeneralResult,     // General result
  1127         TUint8  aGeneralResult,     // General result
  1122         TUint8 aAdditionalInfo      // Additional info
  1128         TUint8 aAdditionalInfo      // Additional info
  1123         )
  1129         )
  1124     {
  1130     {
  1125     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SENDDTMFTERMINALRESP, "CSatMessHandler::SendDtmfTerminalResp" );
  1131     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_SENDDTMFTERMINALRESP_TD, "CSatMessHandler::SendDtmfTerminalResp" );
  1126     TFLOGSTRING("CSatMessHandler::SendDtmfTerminalResp");
  1132     TFLOGSTRING("CSatMessHandler::SendDtmfTerminalResp");
  1127 
  1133 
  1128     TTlv tlvSpecificData;
  1134     TTlv tlvSpecificData;
  1129     // Append general result tag
  1135     // Append general result tag
  1130     tlvSpecificData.AddTag( KTlvResultTag );
  1136     tlvSpecificData.AddTag( KTlvResultTag );
  1157         TUint8 aAdditionalInfo,
  1163         TUint8 aAdditionalInfo,
  1158         TDes& aUssdData,
  1164         TDes& aUssdData,
  1159         TUint8  aUssdCbsDataCodingScheme
  1165         TUint8  aUssdCbsDataCodingScheme
  1160         )
  1166         )
  1161     {
  1167     {
  1162     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SENDUSSDTERMINALRESP, "CSatMessHandler::SendUssdTerminalResp" );
  1168     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_SENDUSSDTERMINALRESP_TD, "CSatMessHandler::SendUssdTerminalResp" );
  1163     TFLOGSTRING("TSY:CSatMessHandler::SendUssdTerminalResp");
  1169     TFLOGSTRING("TSY:CSatMessHandler::SendUssdTerminalResp");
  1164 
  1170 
  1165     TTlv tlvSpecificData;
  1171     TTlv tlvSpecificData;
  1166     TBuf8<RSat::KStringMaxSize> string;
  1172     TBuf8<RSat::KStringMaxSize> string;
  1167 
  1173 
  1168     tlvSpecificData.AddTag( KTlvResultTag );
  1174     tlvSpecificData.AddTag( KTlvResultTag );
  1169     tlvSpecificData.AddByte( aGeneralResult );
  1175     tlvSpecificData.AddByte( aGeneralResult );
  1170 
  1176 
  1171     // For the general results '20', '21', '37', '38'
  1177     // For the general results '20', '21', '37', '38', '39'
  1172     // it is mandatory for the ME to provide a specific
  1178     // it is mandatory for the ME to provide a specific
  1173     // cause value as additional
  1179     // cause value as additional
  1174     if ( ( RSat::KMeUnableToProcessCmd == aGeneralResult )
  1180     if ( ( RSat::KMeUnableToProcessCmd == aGeneralResult )
  1175         || ( RSat::KNetworkUnableToProcessCmd == aGeneralResult )
  1181         || ( RSat::KNetworkUnableToProcessCmd == aGeneralResult )
  1176         || ( RSat::KUssdReturnError == aGeneralResult)
  1182         || ( RSat::KUssdReturnError == aGeneralResult)
  1177         || ( RSat::KMultipleCardCmdsError == aGeneralResult) )
  1183         || ( RSat::KMultipleCardCmdsError == aGeneralResult)
       
  1184         || ( RSat::KInteractionWithCCPermanentError == aGeneralResult ) )
  1178         {
  1185         {
  1179         tlvSpecificData.AddByte( aAdditionalInfo );
  1186         tlvSpecificData.AddByte( aAdditionalInfo );
  1180         }
  1187         }
  1181     // For general result '32' additional info or text string is not used
  1188     // For general result '32' additional info or text string is not used
  1182     else if ( RSat::KCmdDataNotUnderstood != aGeneralResult )
  1189     else if ( RSat::KCmdDataNotUnderstood != aGeneralResult )
  1217                 // Reserved
  1224                 // Reserved
  1218                 // The general result should in fact prevent reaching this
  1225                 // The general result should in fact prevent reaching this
  1219                 // branch of the switch.
  1226                 // branch of the switch.
  1220                 TFLOGSTRING("TSY:CSatMessHandler::SendUssdTerminalResp, \
  1227                 TFLOGSTRING("TSY:CSatMessHandler::SendUssdTerminalResp, \
  1221                 The DCS sent by the network has a reserved value.");
  1228                 The DCS sent by the network has a reserved value.");
  1222                 OstTrace0( TRACE_NORMAL, DUP1_CSATMESSHANDLER_SENDUSSDTERMINALRESP, "CSatMessHandler::SendUssdTerminalResp, The DCS sent by the network has a reserved value." );
  1229                 OstTrace0( TRACE_NORMAL,  DUP1_CSATMESSHANDLER_SENDUSSDTERMINALRESP_TD, "CSatMessHandler::SendUssdTerminalResp, The DCS sent by the network has a reserved value." );
  1223                 break;
  1230                 break;
  1224                 }
  1231                 }
  1225             }
  1232             }
  1226         // Text
  1233         // Text
  1227         tlvSpecificData.AddData( string );
  1234         tlvSpecificData.AddData( string );
  1245         TDes8& aCommandDetails,     // Command Details tlv
  1252         TDes8& aCommandDetails,     // Command Details tlv
  1246         TUint8 aGeneralResult,      // General result
  1253         TUint8 aGeneralResult,      // General result
  1247         TUint8 aAdditionalInfo      // Additional info
  1254         TUint8 aAdditionalInfo      // Additional info
  1248         )
  1255         )
  1249     {
  1256     {
  1250     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SETUPCALLTERMINALRESP, "CSatMessHandler::SetUpCallTerminalResp" );
  1257     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_SETUPCALLTERMINALRESP_TD, "CSatMessHandler::SetUpCallTerminalResp" );
  1251     TFLOGSTRING("TSY:CSatMessHandler::SetUpCallTerminalResp");
  1258     TFLOGSTRING("TSY:CSatMessHandler::SetUpCallTerminalResp");
  1252 
  1259 
  1253     // Create and append response data
  1260     // Create and append response data
  1254     TTlv tlvSpecificData;
  1261     TTlv tlvSpecificData;
  1255     tlvSpecificData.AddTag( KTlvResultTag );
  1262     tlvSpecificData.AddTag( KTlvResultTag );
  1282         TDes8& aCommandDetails,     // Command number
  1289         TDes8& aCommandDetails,     // Command number
  1283         TUint8 aGeneralResult,      // General result
  1290         TUint8 aGeneralResult,      // General result
  1284         TUint8 aAdditionalInfo      // Additional info
  1291         TUint8 aAdditionalInfo      // Additional info
  1285         )
  1292         )
  1286     {
  1293     {
  1287     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_REFRESHTERMINALRESP, "CSatMessHandler::RefreshTerminalResp" );
  1294     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_REFRESHTERMINALRESP_TD, "CSatMessHandler::RefreshTerminalResp" );
  1288     TFLOGSTRING("TSY:CSatMessHandler::RefreshTerminalResp");
  1295     TFLOGSTRING("TSY:CSatMessHandler::RefreshTerminalResp");
  1289 
  1296 
  1290     // Create and append response data
  1297     // Create and append response data
  1291     TTlv tlvSpecificData;
  1298     TTlv tlvSpecificData;
  1292     // append result tag
  1299     // append result tag
  1316         TUint8 aTransId,        // Transaction id
  1323         TUint8 aTransId,        // Transaction id
  1317         TUint8 aItemIdentifier, // Item identifier
  1324         TUint8 aItemIdentifier, // Item identifier
  1318         TUint8 aHelp            // Help requested status
  1325         TUint8 aHelp            // Help requested status
  1319         )
  1326         )
  1320     {
  1327     {
  1321     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_MENUSELECTIONIND, "CSatMessHandler::MenuSelectionInd" );
  1328     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_MENUSELECTIONIND_TD, "CSatMessHandler::MenuSelectionInd" );
  1322     TFLOGSTRING("TSY:CSatMessHandler::MenuSelectionInd");
  1329     TFLOGSTRING("TSY:CSatMessHandler::MenuSelectionInd");
  1323 
  1330 
  1324     TTlv tlvSpecificData;
  1331     TTlv tlvSpecificData;
  1325 
  1332 
  1326     tlvSpecificData.Begin( KBerTlvMenuSelectionTag );
  1333     tlvSpecificData.Begin( KBerTlvMenuSelectionTag );
  1351         TDes8& aCommandDetails, // command number
  1358         TDes8& aCommandDetails, // command number
  1352         TUint8 aGeneralResult,  // Result
  1359         TUint8 aGeneralResult,  // Result
  1353         TUint8 aAdditionalInfo  // additional info
  1360         TUint8 aAdditionalInfo  // additional info
  1354         )
  1361         )
  1355     {
  1362     {
  1356     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_LAUNCHBROWSERTERMINALRESP, "CSatMessHandler::LaunchBrowserTerminalResp" );
  1363     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_LAUNCHBROWSERTERMINALRESP_TD, "CSatMessHandler::LaunchBrowserTerminalResp" );
  1357     TFLOGSTRING("TSY:CSatMessHandler::LaunchBrowserTerminalResp");
  1364     TFLOGSTRING("TSY:CSatMessHandler::LaunchBrowserTerminalResp");
  1358 
  1365 
  1359     TTlv tlvSpecificData;
  1366     TTlv tlvSpecificData;
  1360 
  1367 
  1361     tlvSpecificData.AddTag( KTlvResultTag );
  1368     tlvSpecificData.AddTag( KTlvResultTag );
  1387 TBool CSatMessHandler::CommandPerformedSuccessfully
  1394 TBool CSatMessHandler::CommandPerformedSuccessfully
  1388         (
  1395         (
  1389         TUint8 aGeneralResult
  1396         TUint8 aGeneralResult
  1390         )
  1397         )
  1391     {
  1398     {
  1392     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_COMMANDPERFORMEDSUCCESSFULLY, "CSatMessHandler::CommandPerformedSuccessfully" );
  1399     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_COMMANDPERFORMEDSUCCESSFULLY_TD, "CSatMessHandler::CommandPerformedSuccessfully" );
  1393     TFLOGSTRING("TSY:CSatMessHandler::CommandPerformedSuccessfully");
  1400     TFLOGSTRING("TSY:CSatMessHandler::CommandPerformedSuccessfully");
  1394 
  1401 
  1395     TBool ret( EFalse );
  1402     TBool ret( EFalse );
  1396     switch ( aGeneralResult )
  1403     switch ( aGeneralResult )
  1397         {
  1404         {
  1430         TDes8& aCommandDetails,     // command number
  1437         TDes8& aCommandDetails,     // command number
  1431         TUint8 aGeneralResult,      // Result
  1438         TUint8 aGeneralResult,      // Result
  1432         TUint8 aAdditionalInfo      // Additional info
  1439         TUint8 aAdditionalInfo      // Additional info
  1433         )
  1440         )
  1434     {
  1441     {
  1435     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SETUPIDLEMODETEXTTERMINALRESP, "CSatMessHandler::SetUpIdleModeTextTerminalResp" );
  1442     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_SETUPIDLEMODETEXTTERMINALRESP_TD, "CSatMessHandler::SetUpIdleModeTextTerminalResp" );
  1436     TFLOGSTRING("TSY:CSatMessHandler::SetUpIdleModeTextTerminalResp");
  1443     TFLOGSTRING("TSY:CSatMessHandler::SetUpIdleModeTextTerminalResp");
  1437 
  1444 
  1438     TTlv tlvSpecificData;
  1445     TTlv tlvSpecificData;
  1439 
  1446 
  1440     //create General Result TLV here
  1447     //create General Result TLV here
  1481         TUint8 aTransId,
  1488         TUint8 aTransId,
  1482         const TDesC8& aBerTlv,  // BER-TLV specific data
  1489         const TDesC8& aBerTlv,  // BER-TLV specific data
  1483         TBool aStore            // Is envelope stored for resending
  1490         TBool aStore            // Is envelope stored for resending
  1484         )
  1491         )
  1485     {
  1492     {
  1486     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_UICCCATREQENVELOPE, "CSatMessHandler::UiccCatReqEnvelope" );
  1493     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_UICCCATREQENVELOPE_TD, "CSatMessHandler::UiccCatReqEnvelope" );
  1487     TFLOGSTRING("TSY:CSatMessHandler::UiccCatReqEnvelope");
  1494     TFLOGSTRING("TSY:CSatMessHandler::UiccCatReqEnvelope");
  1488 
  1495 
  1489     TIsiSend isiMsg( iPnSend->SendBufferDes() );
  1496     TIsiSend isiMsg( iPnSend->SendBufferDes() );
  1490     isiMsg.Set8bit( ISI_HEADER_OFFSET_RESOURCEID, PN_UICC );
  1497     isiMsg.Set8bit( ISI_HEADER_OFFSET_RESOURCEID, PN_UICC );
  1491     isiMsg.Set8bit(
  1498     isiMsg.Set8bit(
  1539 TInt CSatMessHandler::StoreNetServiceStatus
  1546 TInt CSatMessHandler::StoreNetServiceStatus
  1540         (
  1547         (
  1541         const TIsiReceiveC& aIsiMessage
  1548         const TIsiReceiveC& aIsiMessage
  1542         )
  1549         )
  1543     {
  1550     {
  1544 OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_STORENETSERVICESTATUS, "CSatMessHandler::StoreNetServiceStatus" );
  1551 OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_STORENETSERVICESTATUS_TD, "CSatMessHandler::StoreNetServiceStatus" );
  1545 TFLOGSTRING("TSY: CSatMessHandler::StoreNetServiceStatus");
  1552 TFLOGSTRING("TSY: CSatMessHandler::StoreNetServiceStatus");
  1546 
  1553 
  1547     // SubBlock offset
  1554     // SubBlock offset
  1548     TUint sbOffset( 0 );
  1555     TUint sbOffset( 0 );
  1549 
  1556 
  1591             // Get registration status value
  1598             // Get registration status value
  1592             iLocInfo.iRegStatus = aIsiMessage.Get8bit(
  1599             iLocInfo.iRegStatus = aIsiMessage.Get8bit(
  1593                 sbOffset + NET_GSM_CELL_INFO_OFFSET_SERVICESTATUS );
  1600                 sbOffset + NET_GSM_CELL_INFO_OFFSET_SERVICESTATUS );
  1594 
  1601 
  1595 TFLOGSTRING2("TSY: CSatMessHandler::StoreNetServiceStatus: NET_REGISTRATION_STATUS = %d", iLocInfo.iRegStatus );
  1602 TFLOGSTRING2("TSY: CSatMessHandler::StoreNetServiceStatus: NET_REGISTRATION_STATUS = %d", iLocInfo.iRegStatus );
  1596 OstTrace1( TRACE_NORMAL, DUP1_CSATMESSHANDLER_STORENETSERVICESTATUS, "CSatMessHandler::StoreNetServiceStatus NET_REGISTRATION_STATUS = %d", iLocInfo.iRegStatus );
  1603 OstTrace1( TRACE_NORMAL,  DUP1_CSATMESSHANDLER_STORENETSERVICESTATUS_TD, "CSatMessHandler::StoreNetServiceStatus NET_REGISTRATION_STATUS = %d", iLocInfo.iRegStatus );
  1597 
  1604 
  1598             if ( NET_SERVICE == iLocInfo.iRegStatus ||
  1605             if ( NET_SERVICE == iLocInfo.iRegStatus ||
  1599                 NET_LIMITED_SERVICE == iLocInfo.iRegStatus )
  1606                 NET_LIMITED_SERVICE == iLocInfo.iRegStatus )
  1600                 {
  1607                 {
  1601                 // Get country code
  1608                 // Get country code
  1634                 }
  1641                 }
  1635             }
  1642             }
  1636         else
  1643         else
  1637             {
  1644             {
  1638 TFLOGSTRING("TSY: CSatMessHandler::StoreNetServiceStatus - NET_GSM_CELL_INFO or NET_WCDMA_CELL_INFO not found!");
  1645 TFLOGSTRING("TSY: CSatMessHandler::StoreNetServiceStatus - NET_GSM_CELL_INFO or NET_WCDMA_CELL_INFO not found!");
  1639 OstTrace0( TRACE_NORMAL, DUP2_CSATMESSHANDLER_STORENETSERVICESTATUS, "CSatMessHandler::StoreNetServiceStatus NET_GSM_CELL_INFO or NET_WCDMA_CELL_INFO not found!" );
  1646 OstTrace0( TRACE_NORMAL,  DUP2_CSATMESSHANDLER_STORENETSERVICESTATUS_TD, "CSatMessHandler::StoreNetServiceStatus NET_GSM_CELL_INFO or NET_WCDMA_CELL_INFO not found!" );
  1640 
  1647 
  1641             retValue = KErrNotFound;
  1648             retValue = KErrNotFound;
  1642             }
  1649             }
  1643         }
  1650         }
  1644     else
  1651     else
  1645         {
  1652         {
  1646 TFLOGSTRING2("TSY: CSatMessHandler::StoreNetServiceStatus - Unexpected message id: %d", messageId );
  1653 TFLOGSTRING2("TSY: CSatMessHandler::StoreNetServiceStatus - Unexpected message id: %d", messageId );
  1647 OstTrace1( TRACE_NORMAL, DUP3_CSATMESSHANDLER_STORENETSERVICESTATUS, "CSatMessHandler::StoreNetServiceStatus Unexpected message id: %d", messageId );
  1654 OstTrace1( TRACE_NORMAL,  DUP3_CSATMESSHANDLER_STORENETSERVICESTATUS_TD, "CSatMessHandler::StoreNetServiceStatus Unexpected message id: %d", messageId );
  1648 
  1655 
  1649         retValue = KErrNotFound;
  1656         retValue = KErrNotFound;
  1650         }
  1657         }
  1651 
  1658 
  1652     return retValue;
  1659     return retValue;
  1664         TDes8& aCommandDetails,      // Command details
  1671         TDes8& aCommandDetails,      // Command details
  1665         TUint8 aGeneralResult,       // General result
  1672         TUint8 aGeneralResult,       // General result
  1666         TUint8 aAdditionalInfo       // Additional info
  1673         TUint8 aAdditionalInfo       // Additional info
  1667         )
  1674         )
  1668     {
  1675     {
  1669     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SETUPEVENTLISTTERMINALRESP, "CSatMessHandler::SetUpEventListTerminalResp" );
  1676     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_SETUPEVENTLISTTERMINALRESP_TD, "CSatMessHandler::SetUpEventListTerminalResp" );
  1670     TFLOGSTRING("TSY:CSatMessHandler::SetUpEventListTerminalResp");
  1677     TFLOGSTRING("TSY:CSatMessHandler::SetUpEventListTerminalResp");
  1671     // create responce data
  1678     // create responce data
  1672     TTlv tlvSpecificData;
  1679     TTlv tlvSpecificData;
  1673 
  1680 
  1674     //create General Result TLV here
  1681     //create General Result TLV here
  1706         TDes8& aCommandDetails,         // Transaction id
  1713         TDes8& aCommandDetails,         // Transaction id
  1707         TUint8 aGeneralResult,          // General result
  1714         TUint8 aGeneralResult,          // General result
  1708         TUint8 aAdditionalInfo          // Additional info
  1715         TUint8 aAdditionalInfo          // Additional info
  1709         )
  1716         )
  1710     {
  1717     {
  1711     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_POLLINGOFFTERMINALRESP, "CSatMessHandler::PollingOffTerminalResp" );
  1718     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_POLLINGOFFTERMINALRESP_TD, "CSatMessHandler::PollingOffTerminalResp" );
  1712     TFLOGSTRING("TSY:CSatMessHandler::PollingOffTerminalResp");
  1719     TFLOGSTRING("TSY:CSatMessHandler::PollingOffTerminalResp");
  1713 
  1720 
  1714     TTlv tlvSpecificData;
  1721     TTlv tlvSpecificData;
  1715 
  1722 
  1716     tlvSpecificData.AddTag( KTlvResultTag );
  1723     tlvSpecificData.AddTag( KTlvResultTag );
  1755         TDes8& aCommandDetails,     // Command details tlv
  1762         TDes8& aCommandDetails,     // Command details tlv
  1756         TUint8 aGeneralResult,      // General result
  1763         TUint8 aGeneralResult,      // General result
  1757         TDes& aAdditionalInfo       // Additional info
  1764         TDes& aAdditionalInfo       // Additional info
  1758         )
  1765         )
  1759     {
  1766     {
  1760     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_LOCALINFOTERMINALRESP, "CSatMessHandler::LocalInfoTerminalResp" );
  1767     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_LOCALINFOTERMINALRESP_TD, "CSatMessHandler::LocalInfoTerminalResp" );
  1761     TFLOGSTRING("TSY: CSatMessHandler::LocalInfoTerminalResp");
  1768     TFLOGSTRING("TSY: CSatMessHandler::LocalInfoTerminalResp");
  1762     // Create and append response data
  1769     // Create and append response data
  1763     TTlv tlvData;
  1770     TTlv tlvData;
  1764     // Create General Result TLV
  1771     // Create General Result TLV
  1765     tlvData.AddTag( KTlvResultTag );
  1772     tlvData.AddTag( KTlvResultTag );
  1911                 }
  1918                 }
  1912             case RSat::KProvideLocalInfoTimingAdv:
  1919             case RSat::KProvideLocalInfoTimingAdv:
  1913                 {
  1920                 {
  1914                  TFLOGSTRING("TSY: CSatMessHandler::LocalInfoTerminalResp,\
  1921                  TFLOGSTRING("TSY: CSatMessHandler::LocalInfoTerminalResp,\
  1915                     TimingAdvance");
  1922                     TimingAdvance");
  1916                  OstTrace0( TRACE_NORMAL, DUP1_CSATMESSHANDLER_LOCALINFOTERMINALRESP, "CSatMessHandler::LocalInfoTerminalResp, TimingAdvance" );
  1923                  OstTrace0( TRACE_NORMAL,  DUP1_CSATMESSHANDLER_LOCALINFOTERMINALRESP_TD, "CSatMessHandler::LocalInfoTerminalResp, TimingAdvance" );
  1917 
  1924 
  1918                  // Timing advance result
  1925                  // Timing advance result
  1919                  tlvData.AddTag( KTlvTimingAdvanceTag );
  1926                  tlvData.AddTag( KTlvTimingAdvanceTag );
  1920                  tlvData.AddByte( iTaStatus );
  1927                  tlvData.AddByte( iTaStatus );
  1921                  tlvData.AddByte( iTimingAdvance );
  1928                  tlvData.AddByte( iTimingAdvance );
  1923                 }
  1930                 }
  1924             case RSat::KProvideLocalInfoLanguage:
  1931             case RSat::KProvideLocalInfoLanguage:
  1925                 {
  1932                 {
  1926                 TFLOGSTRING("TSY: CSatMessHandler::LocalInfoTerminalResp,\
  1933                 TFLOGSTRING("TSY: CSatMessHandler::LocalInfoTerminalResp,\
  1927                     LocalInfoLanguage");
  1934                     LocalInfoLanguage");
  1928                 OstTrace0( TRACE_NORMAL, DUP2_CSATMESSHANDLER_LOCALINFOTERMINALRESP, "CSatMessHandler::LocalInfoTerminalResp, LocalInfoLanguage" );
  1935                 OstTrace0( TRACE_NORMAL,  DUP2_CSATMESSHANDLER_LOCALINFOTERMINALRESP_TD, "CSatMessHandler::LocalInfoTerminalResp, LocalInfoLanguage" );
  1929 
  1936 
  1930                 if ( aAdditionalInfo.Length() )
  1937                 if ( aAdditionalInfo.Length() )
  1931                     {
  1938                     {
  1932                     // create Language TLV
  1939                     // create Language TLV
  1933                     tlvData.AddTag( KTlvLanguageTag );
  1940                     tlvData.AddTag( KTlvLanguageTag );
  1939                 }
  1946                 }
  1940             case RSat::KProvideLocalInfoAccTech:
  1947             case RSat::KProvideLocalInfoAccTech:
  1941                 {
  1948                 {
  1942                 TFLOGSTRING("TSY: CSatMessHandler::LocalInfoTerminalResp,\
  1949                 TFLOGSTRING("TSY: CSatMessHandler::LocalInfoTerminalResp,\
  1943                     Access Technology");
  1950                     Access Technology");
  1944                 OstTrace0( TRACE_NORMAL, DUP3_CSATMESSHANDLER_LOCALINFOTERMINALRESP, "CSatMessHandler::LocalInfoTerminalResp, Access Technology" );
  1951                 OstTrace0( TRACE_NORMAL,  DUP3_CSATMESSHANDLER_LOCALINFOTERMINALRESP_TD, "CSatMessHandler::LocalInfoTerminalResp, Access Technology" );
  1945 
  1952 
  1946                 // Access technology result
  1953                 // Access technology result
  1947                 tlvData.AddTag( KTlvAccessTechnologyTag );
  1954                 tlvData.AddTag( KTlvAccessTechnologyTag );
  1948                 tlvData.AddByte( iCurrentAccTech );
  1955                 tlvData.AddByte( iCurrentAccTech );
  1949 
  1956 
  1964 // CSatMessHandler::InfoSerialNumberReadReq
  1971 // CSatMessHandler::InfoSerialNumberReadReq
  1965 // Constructs INFO_SERIAL_NUMBER_READ_REQ ISI message.
  1972 // Constructs INFO_SERIAL_NUMBER_READ_REQ ISI message.
  1966 // Called from CTsySatMessaging::ConstructL method.
  1973 // Called from CTsySatMessaging::ConstructL method.
  1967 // -----------------------------------------------------------------------------
  1974 // -----------------------------------------------------------------------------
  1968 //
  1975 //
  1969 TInt CSatMessHandler::InfoSerialNumberReadReq
  1976 /*TInt CSatMessHandler::InfoSerialNumberReadReq
  1970         (
  1977         (
  1971         TUint8 aTransId,     // Transactio id
  1978         TUint8 aTransId,     // Transactio id
  1972         TUint8 aTarget
  1979         TUint8 aTarget
  1973         )
  1980         )
  1974     {
  1981     {
  1975     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_INFOSERIALNUMBERREADREQ, "CSatMessHandler::InfoSerialNumberReadReq" );
  1982     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_INFOSERIALNUMBERREADREQ_TD, "CSatMessHandler::InfoSerialNumberReadReq" );
  1976     TFLOGSTRING("TSY:CSatMessHandler::InfoSerialNumberReadReq");
  1983     TFLOGSTRING("TSY:CSatMessHandler::InfoSerialNumberReadReq");
  1977 
  1984 
  1978     //set infoSerialNumberReadReq to point to the send buffer
  1985     //set infoSerialNumberReadReq to point to the send buffer
  1979     TIsiSend infoSerialNumberReadReq( iPnSend->SendBufferDes() );
  1986     TIsiSend infoSerialNumberReadReq( iPnSend->SendBufferDes() );
  1980     infoSerialNumberReadReq.Set8bit( ISI_HEADER_OFFSET_RESOURCEID, PN_INFO );
  1987     infoSerialNumberReadReq.Set8bit( ISI_HEADER_OFFSET_RESOURCEID, PN_INFO );
  1986                     + INFO_SERIAL_NUMBER_READ_REQ_OFFSET_TARGET, aTarget );
  1993                     + INFO_SERIAL_NUMBER_READ_REQ_OFFSET_TARGET, aTarget );
  1987 
  1994 
  1988     //send message via Phonet
  1995     //send message via Phonet
  1989     return iPnSend->Send( infoSerialNumberReadReq.Complete() );
  1996     return iPnSend->Send( infoSerialNumberReadReq.Complete() );
  1990 
  1997 
  1991     }
  1998     }*/
  1992 
  1999 
  1993 // -----------------------------------------------------------------------------
  2000 // -----------------------------------------------------------------------------
  1994 // CSatMessHandler::InfoSerialNumberReadResp
  2001 // CSatMessHandler::InfoSerialNumberReadResp
  1995 // Breaks a INFO_SERIAL_NUMBER_READ_RESP ISI-message.
  2002 // Breaks a INFO_SERIAL_NUMBER_READ_RESP ISI-message.
  1996 // -----------------------------------------------------------------------------
  2003 // -----------------------------------------------------------------------------
  1997 //
  2004 //
  1998 void CSatMessHandler::InfoSerialNumberReadResp
  2005 /*void CSatMessHandler::InfoSerialNumberReadResp
  1999         (
  2006         (
  2000         const TIsiReceiveC& aIsiMessage    // received ISI-message
  2007         const TIsiReceiveC& aIsiMessage    // received ISI-message
  2001         )
  2008         )
  2002     {
  2009     {
  2003     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_INFOSERIALNUMBERREADRESP, "CSatMessHandler::InfoSerialNumberReadResp" );
  2010     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_INFOSERIALNUMBERREADRESP_TD, "CSatMessHandler::InfoSerialNumberReadResp" );
  2004     TFLOGSTRING("TSY:CSatMessHandler::InfoSerialNumberReadResp");
  2011     TFLOGSTRING("TSY:CSatMessHandler::InfoSerialNumberReadResp");
  2005 
  2012 
  2006     TUint sbStartOffset( 0 );
  2013     TUint sbStartOffset( 0 );
  2007 
  2014 
  2008     //check if INFO_SB_SN_IMEI_PLAIN sub block is present
  2015     //check if INFO_SB_SN_IMEI_PLAIN sub block is present
  2017             aIsiMessage.Get8bit( sbStartOffset +
  2024             aIsiMessage.Get8bit( sbStartOffset +
  2018             INFO_SB_SN_IMEI_PLAIN_OFFSET_STRLEN ) - 1 ) );
  2025             INFO_SB_SN_IMEI_PLAIN_OFFSET_STRLEN ) - 1 ) );
  2019         //Set the flag to inform that needed data has been received
  2026         //Set the flag to inform that needed data has been received
  2020         iImeiAvailable = ETrue;
  2027         iImeiAvailable = ETrue;
  2021 TFLOGSTRING("TSY: SAT, Imei received.");
  2028 TFLOGSTRING("TSY: SAT, Imei received.");
  2022 OstTrace0( TRACE_NORMAL, DUP1_CSATMESSHANDLER_INFOSERIALNUMBERREADRESP, "SAT, Imei received." );
  2029 OstTrace0( TRACE_NORMAL,  DUP1_CSATMESSHANDLER_INFOSERIALNUMBERREADRESP_TD, "SAT, Imei received." );
  2023         }
  2030         }
  2024     //check if INFO_SB_SN_IMEI_SV_TO_NET sub block is present
  2031     //check if INFO_SB_SN_IMEI_SV_TO_NET sub block is present
  2025     else if ( KErrNone == aIsiMessage.FindSubBlockOffsetById(
  2032     else if ( KErrNone == aIsiMessage.FindSubBlockOffsetById(
  2026         ISI_HEADER_SIZE + SIZE_INFO_SERIAL_NUMBER_READ_RESP,
  2033         ISI_HEADER_SIZE + SIZE_INFO_SERIAL_NUMBER_READ_RESP,
  2027         INFO_SB_SN_IMEI_SV_TO_NET, EIsiSubBlockTypeId8Len8,
  2034         INFO_SB_SN_IMEI_SV_TO_NET, EIsiSubBlockTypeId8Len8,
  2032             sbStartOffset + INFO_SB_SN_IMEI_SV_TO_NET_OFFSET_IMEISVU8,
  2039             sbStartOffset + INFO_SB_SN_IMEI_SV_TO_NET_OFFSET_IMEISVU8,
  2033             aIsiMessage.Get8bit( sbStartOffset +
  2040             aIsiMessage.Get8bit( sbStartOffset +
  2034             INFO_SB_SN_IMEI_SV_TO_NET_OFFSET_STRLEN ) ) );
  2041             INFO_SB_SN_IMEI_SV_TO_NET_OFFSET_STRLEN ) ) );
  2035         iImeiSvAvailable = ETrue;
  2042         iImeiSvAvailable = ETrue;
  2036 TFLOGSTRING("TSY: CSatMessHandler::InfoSerialNumberReadResp IMEISV received");
  2043 TFLOGSTRING("TSY: CSatMessHandler::InfoSerialNumberReadResp IMEISV received");
  2037 OstTrace0( TRACE_NORMAL, DUP2_CSATMESSHANDLER_INFOSERIALNUMBERREADRESP, "CSatMessHandler::InfoSerialNumberReadResp IMEISV received" );
  2044 OstTrace0( TRACE_NORMAL,  DUP2_CSATMESSHANDLER_INFOSERIALNUMBERREADRESP_TD, "CSatMessHandler::InfoSerialNumberReadResp IMEISV received" );
  2038         }
  2045         }
  2039     }
  2046     }*/
  2040 
  2047 
  2041 // -----------------------------------------------------------------------------
  2048 // -----------------------------------------------------------------------------
  2042 // CSatMessHandler::NetNeighbourCellsReq
  2049 // CSatMessHandler::NetNeighbourCellsReq
  2043 // Constructs NET_NEIGHBOUR_CELLS_REQ ISI message.
  2050 // Constructs NET_NEIGHBOUR_CELLS_REQ ISI message.
  2044 // -----------------------------------------------------------------------------
  2051 // -----------------------------------------------------------------------------
  2047         (
  2054         (
  2048         TUint8 aTransId,        // Transaction Id
  2055         TUint8 aTransId,        // Transaction Id
  2049         TUint8 aCellInfoType    // Cell info type
  2056         TUint8 aCellInfoType    // Cell info type
  2050         )
  2057         )
  2051     {
  2058     {
  2052     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_NETNEIGHBOURCELLSREQ, "CSatMessHandler::NetNeighbourCellsReq" );
  2059     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_NETNEIGHBOURCELLSREQ_TD, "CSatMessHandler::NetNeighbourCellsReq" );
  2053     TFLOGSTRING("TSY:CSatMessHandler::NetNeighbourCellsReq");
  2060     TFLOGSTRING("TSY:CSatMessHandler::NetNeighbourCellsReq");
  2054 
  2061 
  2055     TBuf8<1> data;
  2062     TBuf8<1> data;
  2056     data.Append( aCellInfoType );
  2063     data.Append( aCellInfoType );
  2057 
  2064 
  2071 void CSatMessHandler::NetNeighbourCellResp
  2078 void CSatMessHandler::NetNeighbourCellResp
  2072         (
  2079         (
  2073         const TIsiReceiveC& aIsiMessage
  2080         const TIsiReceiveC& aIsiMessage
  2074         )
  2081         )
  2075     {
  2082     {
  2076     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_NETNEIGHBOURCELLRESP, "CSatMessHandler::NetNeighbourCellResp" );
  2083     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_NETNEIGHBOURCELLRESP_TD, "CSatMessHandler::NetNeighbourCellResp" );
  2077     TFLOGSTRING("TSY:CSatMessHandler::NetNeighbourCellResp");
  2084     TFLOGSTRING("TSY:CSatMessHandler::NetNeighbourCellResp");
  2078 
  2085 
  2079     TUint8 result( RSat::KSuccess );
  2086     TUint8 result( RSat::KSuccess );
  2080 
  2087 
  2081     if ( iTsySatMessaging->GetNotifyLocalInfo()->LocalInfoStatus() )
  2088     if ( iTsySatMessaging->GetNotifyLocalInfo()->LocalInfoStatus() )
  2206     TUint8 aTransId,
  2213     TUint8 aTransId,
  2207     const TDesC8& aMsg
  2214     const TDesC8& aMsg
  2208     )
  2215     )
  2209     {
  2216     {
  2210     TFLOGSTRING("TSY:CSatMessHandler::CallModemResourceReq");
  2217     TFLOGSTRING("TSY:CSatMessHandler::CallModemResourceReq");
  2211     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_CALLMODEMRESOURCEREQ, "TSY:CSatMessHandler::CallModemResourceReq" );
  2218     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_CALLMODEMRESOURCEREQ_TD, "TSY:CSatMessHandler::CallModemResourceReq" );
  2212 
  2219 
  2213     return iPnSend->Send( PN_MODEM_CALL, aTransId, CALL_MODEM_RESOURCE_REQ, aMsg );
  2220     return iPnSend->Send( PN_MODEM_CALL, aTransId, CALL_MODEM_RESOURCE_REQ, aMsg );
  2214     }
  2221     }
  2215 
  2222 
  2216 // -----------------------------------------------------------------------------
  2223 // -----------------------------------------------------------------------------
  2221 TInt CSatMessHandler::CallModemResourceConfReq(
  2228 TInt CSatMessHandler::CallModemResourceConfReq(
  2222     TUint16 aResourceId,
  2229     TUint16 aResourceId,
  2223     TUint16 aResourceIdMask )
  2230     TUint16 aResourceIdMask )
  2224     {
  2231     {
  2225     TFLOGSTRING("TSY:CSatMessHandler::CallModemResourceConfReq");
  2232     TFLOGSTRING("TSY:CSatMessHandler::CallModemResourceConfReq");
  2226     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_CALLMODEMRESOURCECONFREQ, "TSY:CSatMessHandler::CallModemResourceConfReq" );
  2233     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_CALLMODEMRESOURCECONFREQ_TD, "TSY:CSatMessHandler::CallModemResourceConfReq" );
  2227 
  2234 
  2228     TBuf8< SIZE_CALL_MODEM_RESOURCE_CONF_REQ +
  2235     TBuf8< SIZE_CALL_MODEM_RESOURCE_CONF_REQ +
  2229         SIZE_CALL_MODEM_SB_RESOURCE_CONF> msg;
  2236         SIZE_CALL_MODEM_SB_RESOURCE_CONF> msg;
  2230 
  2237 
  2231     // CALL_MODEM_RES_CONF_OPERATION
  2238     // CALL_MODEM_RES_CONF_OPERATION
  2256 // -----------------------------------------------------------------------------
  2263 // -----------------------------------------------------------------------------
  2257 //
  2264 //
  2258 TInt CSatMessHandler::SsResourceConfReq()
  2265 TInt CSatMessHandler::SsResourceConfReq()
  2259     {
  2266     {
  2260     TFLOGSTRING("TSY:CSatMessHandler::SsResourceConfReq");
  2267     TFLOGSTRING("TSY:CSatMessHandler::SsResourceConfReq");
  2261     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SSRESOURCECONFREQ, "TSY:CSatMessHandler::SsResourceConfReq" );
  2268     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_SSRESOURCECONFREQ_TD, "TSY:CSatMessHandler::SsResourceConfReq" );
  2262 
  2269 
  2263     TBuf8< SIZE_SS_RESOURCE_CONF_REQ  +
  2270     TBuf8< SIZE_SS_RESOURCE_CONF_REQ  +
  2264         SIZE_SS_SB_RESOURCE_CONF > msg;
  2271         SIZE_SS_SB_RESOURCE_CONF > msg;
  2265 
  2272 
  2266     // SS_RESOURCE_CONF_OPERATION
  2273     // SS_RESOURCE_CONF_OPERATION
  2294     TUint8 aTransId,
  2301     TUint8 aTransId,
  2295     const TDesC8& aMsg
  2302     const TDesC8& aMsg
  2296     )
  2303     )
  2297     {
  2304     {
  2298     TFLOGSTRING("TSY:CSatMessHandler::SsResourceControlReq");
  2305     TFLOGSTRING("TSY:CSatMessHandler::SsResourceControlReq");
  2299     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SSRESOURCECONTROLREQ, "TSY:CSatMessHandler::SsResourceControlReq" );
  2306     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_SSRESOURCECONTROLREQ_TD, "TSY:CSatMessHandler::SsResourceControlReq" );
  2300 
  2307 
  2301     return iPnSend->Send(
  2308     return iPnSend->Send(
  2302         PN_SS,
  2309         PN_SS,
  2303         aTransId,
  2310         aTransId,
  2304         SS_RESOURCE_CONTROL_REQ,
  2311         SS_RESOURCE_CONTROL_REQ,
  2311 // -----------------------------------------------------------------------------
  2318 // -----------------------------------------------------------------------------
  2312 //
  2319 //
  2313 TInt CSatMessHandler::GpdsResourceConfReq()
  2320 TInt CSatMessHandler::GpdsResourceConfReq()
  2314     {
  2321     {
  2315     TFLOGSTRING("TSY:CSatMessHandler::GpdsResourceConfReq");
  2322     TFLOGSTRING("TSY:CSatMessHandler::GpdsResourceConfReq");
  2316     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_GPDSRESOURCECONFREQ, "TSY:CSatMessHandler::GpdsResourceConfReq" );
  2323     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_GPDSRESOURCECONFREQ_TD, "TSY:CSatMessHandler::GpdsResourceConfReq" );
  2317 
  2324 
  2318     TBuf8< SIZE_GPDS_RESOURCE_CONF_REQ  +
  2325     TBuf8< SIZE_GPDS_RESOURCE_CONF_REQ  +
  2319         SIZE_GPDS_RESOURCE_CONF > msg;
  2326         SIZE_GPDS_RESOURCE_CONF > msg;
  2320 
  2327 
  2321     // SS_RESOURCE_CONF_OPERATION
  2328     // SS_RESOURCE_CONF_OPERATION
  2349     TUint8 aTransId,
  2356     TUint8 aTransId,
  2350     const TDesC8& aMsg
  2357     const TDesC8& aMsg
  2351     )
  2358     )
  2352     {
  2359     {
  2353     TFLOGSTRING("TSY:CSatMessHandler::GpdsResourceControlReq");
  2360     TFLOGSTRING("TSY:CSatMessHandler::GpdsResourceControlReq");
  2354 OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_GPDSRESOURCECONTROLREQ, "CSatMessHandler::GpdsResourceControlReq" );
  2361 OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_GPDSRESOURCECONTROLREQ_TD, "CSatMessHandler::GpdsResourceControlReq" );
  2355 
  2362 
  2356     return iPnSend->Send(
  2363     return iPnSend->Send(
  2357         PN_GPDS,
  2364         PN_GPDS,
  2358         aTransId,
  2365         aTransId,
  2359         GPDS_RESOURCE_CONTROL_REQ,
  2366         GPDS_RESOURCE_CONTROL_REQ,
  2365 // Set Polling Interval, sending a request to sim server
  2372 // Set Polling Interval, sending a request to sim server
  2366 // -----------------------------------------------------------------------------
  2373 // -----------------------------------------------------------------------------
  2367 //
  2374 //
  2368 void CSatMessHandler::SetPollingInterval( TUint8 aTraId, TUint8 aValue )
  2375 void CSatMessHandler::SetPollingInterval( TUint8 aTraId, TUint8 aValue )
  2369     {
  2376     {
  2370     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SETPOLLINGINTERVAL, "CSatMessHandler::SetPollingInterval" );
  2377     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_SETPOLLINGINTERVAL_TD, "CSatMessHandler::SetPollingInterval" );
  2371     TFLOGSTRING("TSY:CSatMessHandler::SetPollingInterval");
  2378     TFLOGSTRING("TSY:CSatMessHandler::SetPollingInterval");
  2372 
  2379 
  2373     iPollingInterval = aValue;
  2380     iPollingInterval = aValue;
  2374 
  2381 
  2375     TIsiSend isiMsg( iPnSend->SendBufferDes() );
  2382     TIsiSend isiMsg( iPnSend->SendBufferDes() );
  2424         TUint8 aTimerValue[3],        // Timer Value
  2431         TUint8 aTimerValue[3],        // Timer Value
  2425         TUint8 aTimerId,              // Timer Identifier
  2432         TUint8 aTimerId,              // Timer Identifier
  2426         TUint8 aAdditionalInfo       // Additional info
  2433         TUint8 aAdditionalInfo       // Additional info
  2427         )
  2434         )
  2428     {
  2435     {
  2429     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_TIMERMGMTTERMINALRESP, "CSatMessHandler::TimerMgmtTerminalResp" );
  2436     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_TIMERMGMTTERMINALRESP_TD, "CSatMessHandler::TimerMgmtTerminalResp" );
  2430     TFLOGSTRING("TSY:CSatMessHandler::TimerMgmtTerminalResp");
  2437     TFLOGSTRING("TSY:CSatMessHandler::TimerMgmtTerminalResp");
  2431 
  2438 
  2432     // Create and append response data
  2439     // Create and append response data
  2433     TTlv tlvSpecificData;
  2440     TTlv tlvSpecificData;
  2434 
  2441 
  2470         tlvSpecificData.AddByte( aAdditionalInfo );
  2477         tlvSpecificData.AddByte( aAdditionalInfo );
  2471         }
  2478         }
  2472     else
  2479     else
  2473         {
  2480         {
  2474         TFLOGSTRING("TSY: CSatMessHandler::TimerMgmtTerminalResp, Unknown result.");
  2481         TFLOGSTRING("TSY: CSatMessHandler::TimerMgmtTerminalResp, Unknown result.");
  2475         OstTrace0( TRACE_NORMAL, DUP1_CSATMESSHANDLER_TIMERMGMTTERMINALRESP, "CSatMessHandler::TimerMgmtTerminalResp, Unknown result." );
  2482         OstTrace0( TRACE_NORMAL,  DUP1_CSATMESSHANDLER_TIMERMGMTTERMINALRESP_TD, "CSatMessHandler::TimerMgmtTerminalResp, Unknown result." );
  2476         }
  2483         }
  2477 
  2484 
  2478     return UiccCatReqTerminalResponse(
  2485     return UiccCatReqTerminalResponse(
  2479         aCommandDetails,
  2486         aCommandDetails,
  2480         tlvSpecificData.GetDataWithoutTopLevelTag(),
  2487         tlvSpecificData.GetDataWithoutTopLevelTag(),
  2492         TUint8 aTransId,        // Transaction id
  2499         TUint8 aTransId,        // Transaction id
  2493         TUint8 aTimerId,        // Timer Identifier
  2500         TUint8 aTimerId,        // Timer Identifier
  2494         TUint8 aTimerValue[3]   // Timer Value
  2501         TUint8 aTimerValue[3]   // Timer Value
  2495         )
  2502         )
  2496     {
  2503     {
  2497     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_TIMEREXPIRATIONIND, "CSatMessHandler::TimerExpirationInd" );
  2504     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_TIMEREXPIRATIONIND_TD, "CSatMessHandler::TimerExpirationInd" );
  2498     TFLOGSTRING("TSY:CSatMessHandler::TimerExpirationInd");
  2505     TFLOGSTRING("TSY:CSatMessHandler::TimerExpirationInd");
  2499 
  2506 
  2500     TTlv data;
  2507     TTlv data;
  2501 
  2508 
  2502     data.Begin( KBerTlvTimerExpirationTag );
  2509     data.Begin( KBerTlvTimerExpirationTag );
  2523 
  2530 
  2524     return UiccCatReqEnvelope( aTransId, data.End() );
  2531     return UiccCatReqEnvelope( aTransId, data.End() );
  2525     }
  2532     }
  2526 
  2533 
  2527 // -----------------------------------------------------------------------------
  2534 // -----------------------------------------------------------------------------
  2528 // CSatMessHandler::RefreshResult
  2535 // CSatMessHandler::RefreshResultL
  2529 // Method to analyze refresh result from SIM Server.
  2536 // Method to analyze refresh result from SIM Server.
  2530 // Called by CSatMessHandler::SimAtkResp.
  2537 // Called by CSatMessHandler::SimAtkResp.
  2531 // -----------------------------------------------------------------------------
  2538 // -----------------------------------------------------------------------------
  2532 //
  2539 //
  2533 void CSatMessHandler::RefreshResult( TUint8 aStatus ) // UICC server status
  2540 void CSatMessHandler::RefreshResultL( TUint8 aStatus ) // UICC server status
  2534     {
  2541     {
  2535     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_REFRESHRESULT, "CSatMessHandler::RefreshResult" );
  2542     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_REFRESHRESULTL_TD, "CSatMessHandler::RefreshResultL" );
  2536     TFLOGSTRING("TSY:CSatMessHandler::RefreshResult");
  2543     TFLOGSTRING("TSY:CSatMessHandler::RefreshResultL");
  2537 
  2544 
  2538     TUint8 result( RSat::KSuccess );
  2545     TUint8 result( RSat::KSuccess );
  2539     TUint8 additionalInfo( 0 );
  2546     TUint8 additionalInfo( 0 );
  2540     TInt ret( KErrNone );
  2547     TInt ret( KErrNone );
  2541 
  2548 
  2544         switch ( aStatus )
  2551         switch ( aStatus )
  2545             {
  2552             {
  2546             case UICC_STATUS_OK:
  2553             case UICC_STATUS_OK:
  2547                 {
  2554                 {
  2548                 // Refresh is done!
  2555                 // Refresh is done!
  2549                 TFLOGSTRING("TSY: CSatMessHandler::RefreshResult, ISA has performed refresh successfully ");
  2556                 TFLOGSTRING("TSY: CSatMessHandler::RefreshResultL, ISA has performed refresh successfully ");
  2550                 TFLOGSTRING("TSY: CSatMessHandler::RefreshResult, Inform S60 to re-read SIM data");
  2557                 TFLOGSTRING("TSY: CSatMessHandler::RefreshResultL, Inform S60 to re-read SIM data");
  2551                 OstTrace0( TRACE_NORMAL, DUP1_CSATMESSHANDLER_REFRESHRESULT, "CSatMessHandler::RefreshResult, ISA has performed refresh successfully " );
  2558                 OstTrace0( TRACE_NORMAL, DUP1_CSATMESSHANDLER_REFRESHRESULTL_TD, "CSatMessHandler::RefreshResultL, ISA has performed refresh successfully " );
  2552                 OstTrace0( TRACE_NORMAL, DUP2_CSATMESSHANDLER_REFRESHRESULT, "CSatMessHandler::RefreshResult, Inform S60 to re-read SIM data" );
  2559 OstTrace0( TRACE_NORMAL, DUP2_CSATMESSHANDLER_REFRESHRESULTL_TD, "CSatMessHandler::RefreshResultL, Inform S60 to re-read SIM data" );
  2553 
  2560 
  2554                 // Read service table
  2561                 // Read service table
  2555                 if ( CSatNotifyRefresh::KCacheEFSST &
  2562                 if ( CSatNotifyRefresh::KCacheEFSST &
  2556                     iTsySatMessaging->GetNotifyRefresh()->CachedFiles() )
  2563                     iTsySatMessaging->GetNotifyRefresh()->CachedFiles() )
  2557                     {
  2564                     {
       
  2565                     TInt ret( KErrNone );
  2558                     // Re-read EF-UST
  2566                     // Re-read EF-UST
  2559                     // Call control in USSD is supported only in SIM, byte 6
       
  2560                     if ( UICC_CARD_TYPE_ICC == iCardType )
  2567                     if ( UICC_CARD_TYPE_ICC == iCardType )
  2561                         {
  2568                         {
  2562                         UiccReadServiceTableReq( KUiccTrIdServiceTableByte6, 5 );
  2569                         // Call control in USSD is supported only in SIM, from byte 10
       
  2570                         ret = UiccReadServiceTableReq( KUiccTrIdServiceTableByte11, 10 );
       
  2571                         User::LeaveIfError( ret );
       
  2572                         // SMS-PP DD and Call Control from byte 7
       
  2573                         ret = UiccReadServiceTableReq( KUiccTrIdServiceTableByte7, 6 );
       
  2574                         User::LeaveIfError( ret );
  2563                         }
  2575                         }
  2564 
  2576                     else if( UICC_CARD_TYPE_UICC == iCardType )
  2565                     // Call control, byte 4 from service table
  2577                         {
  2566                     UiccReadServiceTableReq( KUiccTrIdServiceTableByte4, 3 );
  2578                         // Call control, MO-SMS Control and SMS PP Datadownload, from byte 4
       
  2579                         ret = UiccReadServiceTableReq( KUiccTrIdServiceTableByte4, 3 );
       
  2580                         User::LeaveIfError( ret );
       
  2581                         }
       
  2582 
  2567 #ifdef INFO_PP_ATK_MO_SM_CONTROL
  2583 #ifdef INFO_PP_ATK_MO_SM_CONTROL
  2568                     // Check MO SMS control is supported by product profile
  2584                     // Check MO SMS control is supported by product profile
  2569                     // USIM: byte 4, SIM: byte 5
  2585                     // USIM: byte 4, SIM: byte 10
  2570                     TUint8 serviceTableTrIdMoSms( KUiccTrIdServiceTableByte4 );
  2586                     TUint8 serviceTableTrIdMoSms( KUiccTrIdServiceTableByte4 );
  2571                     TUint8 serviceTableOffsetMoSms( 3 );
  2587                     TUint8 serviceTableOffsetMoSms( 3 );
  2572                     if ( UICC_CARD_TYPE_ICC == iCardType )
  2588                     if ( UICC_CARD_TYPE_ICC == iCardType )
  2573                         {
  2589                         {
  2574                         // Transaction ID and byte offset for SIM
  2590                         // Transaction ID and byte offset for SIM
  2575                         serviceTableTrIdMoSms = KUiccTrIdServiceTableByte5;
  2591                         serviceTableTrIdMoSms = KUiccTrIdServiceTableByte10;
  2576                         serviceTableOffsetMoSms = 4;
  2592                         serviceTableOffsetMoSms = 9;
  2577                         }
  2593                         }
  2578                     if ( iMoSmsSupportedInPp )
  2594                     if ( iMoSmsSupportedInPp )
  2579                         {
  2595                         {
  2580                         // ...and by SIM service table
  2596                         // ...and by SIM service table
  2581                         UiccReadServiceTableReq(
  2597                         ret = UiccReadServiceTableReq(
  2582                             serviceTableTrIdMoSms,
  2598                             serviceTableTrIdMoSms,
  2583                             serviceTableOffsetMoSms );
  2599                             serviceTableOffsetMoSms );
       
  2600                         User::LeaveIfError( ret );
  2584                         }
  2601                         }
  2585 #else
  2602 #else
  2586                     // If flag not defined, check feature availability only
  2603                     // If flag not defined, check feature availability only
  2587                     // from USIM
  2604                     // from USIM
  2588                     UiccReadServiceTableReq(
  2605                     ret = UiccReadServiceTableReq(
  2589                         serviceTableTrIdMoSms,
  2606                         serviceTableTrIdMoSms,
  2590                         serviceTableOffsetMoSms );
  2607                         serviceTableOffsetMoSms );
       
  2608                     User::LeaveIfError( ret );
  2591 #endif // INFO_PP_ATK_MO_SM_CONTROL
  2609 #endif // INFO_PP_ATK_MO_SM_CONTROL
  2592                     }
  2610                     }
  2593                 break;
  2611                 break;
  2594                 }
  2612                 }
  2595             default:
  2613             default:
  2596                 {
  2614                 {
  2597                 TFLOGSTRING2("TSY: CSatMessHandler::RefreshResult, refresh failed, UICC STATUS: 0x%x", aStatus );
  2615                 TFLOGSTRING2("TSY: CSatMessHandler::RefreshResultL, refresh failed, UICC STATUS: 0x%x", aStatus );
  2598                 OstTraceExt1( TRACE_NORMAL, DUP4_CSATMESSHANDLER_REFRESHRESULT, "CSatMessHandler::RefreshResult, refresh failed, UICC STATUS: 0x%hhx", aStatus );
  2616                 OstTraceExt1( TRACE_NORMAL, DUP4_CSATMESSHANDLER_REFRESHRESULTL_TD, "CSatMessHandler::RefreshResultL, refresh failed, UICC STATUS: 0x%hhx", aStatus );
  2599                 result = RSat::KMeUnableToProcessCmd;
  2617                 result = RSat::KMeUnableToProcessCmd;
  2600                 additionalInfo = RSat::KNoSpecificMeProblem;
  2618                 additionalInfo = RSat::KNoSpecificMeProblem;
  2601                 ret = KErrGeneral;
  2619                 ret = KErrGeneral;
  2602                 break;
  2620                 break;
  2603                 }
  2621                 }
  2632         (
  2650         (
  2633         TUint8 aTransId,
  2651         TUint8 aTransId,
  2634         TDesC8& aData
  2652         TDesC8& aData
  2635         )
  2653         )
  2636     {
  2654     {
  2637     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SENDSMSREPORTREQ, "CSatMessHandler::SendSmsReportReq" );
  2655     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_SENDSMSREPORTREQ_TD, "CSatMessHandler::SendSmsReportReq" );
  2638     TFLOGSTRING("CSatMessHandler::SendSmsReportReq");
  2656     TFLOGSTRING("CSatMessHandler::SendSmsReportReq");
  2639 
  2657 
  2640     iPnSend->Send( PN_SMS, aTransId, SMS_RECEIVED_MSG_REPORT_REQ, aData );
  2658     iPnSend->Send( PN_SMS, aTransId, SMS_RECEIVED_MSG_REPORT_REQ, aData );
  2641     }
  2659     }
  2642 
  2660 
  2650         TUint8 aTransId,
  2668         TUint8 aTransId,
  2651         TUint8 aMsgId,
  2669         TUint8 aMsgId,
  2652         TDesC8& aData
  2670         TDesC8& aData
  2653         )
  2671         )
  2654     {
  2672     {
  2655     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SMSRESOURCECONFREQ, "CSatMessHandler::SmsResourceConfReq" );
  2673     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_SMSRESOURCECONFREQ_TD, "CSatMessHandler::SmsResourceConfReq" );
  2656     TFLOGSTRING("CSatMessHandler::SmsResourceConfReq");
  2674     TFLOGSTRING("CSatMessHandler::SmsResourceConfReq");
  2657 
  2675 
  2658     iPnSend->Send( PN_SMS, aTransId, aMsgId, aData );
  2676     iPnSend->Send( PN_SMS, aTransId, aMsgId, aData );
  2659     }
  2677     }
  2660 
  2678 
  2670         TUint8 aStatus,
  2688         TUint8 aStatus,
  2671         TUint8 aTransId,
  2689         TUint8 aTransId,
  2672         TUint8 aInterval
  2690         TUint8 aInterval
  2673         )
  2691         )
  2674     {
  2692     {
  2675     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SETPOLLINGRESULT, "CSatMessHandler::SetPollingResult" );
  2693     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_SETPOLLINGRESULT_TD, "CSatMessHandler::SetPollingResult" );
  2676     TFLOGSTRING("TSY:CSatMessHandler::SetPollingResult ");
  2694     TFLOGSTRING("TSY:CSatMessHandler::SetPollingResult ");
  2677 
  2695 
  2678     if ( UICC_STATUS_OK == aStatus )
  2696     if ( UICC_STATUS_OK == aStatus )
  2679         {
  2697         {
  2680         // The response can be from a PollInterval or a PollingOff command
  2698         // The response can be from a PollInterval or a PollingOff command
  2681         if ( iPollingOff )
  2699         if ( iPollingOff )
  2682             {
  2700             {
  2683             TFLOGSTRING("TSY:CSatMessHandler::SetPollingResult, iPollingOff = ETrue");
  2701             TFLOGSTRING("TSY:CSatMessHandler::SetPollingResult, iPollingOff = ETrue");
  2684             OstTrace0( TRACE_NORMAL, DUP1_CSATMESSHANDLER_SETPOLLINGRESULT, "CSatMessHandler::SetPollingResult, iPollingOff = ETrue" );
  2702             OstTrace0( TRACE_NORMAL,  DUP1_CSATMESSHANDLER_SETPOLLINGRESULT_TD, "CSatMessHandler::SetPollingResult, iPollingOff = ETrue" );
  2685             PollingOffTerminalResp(
  2703             PollingOffTerminalResp(
  2686                 aTransId,
  2704                 aTransId,
  2687                 iTsySatMessaging->GetNotifyPollingOff()->GetCmdDetails(),
  2705                 iTsySatMessaging->GetNotifyPollingOff()->GetCmdDetails(),
  2688                 RSat::KSuccess,
  2706                 RSat::KSuccess,
  2689                 RSat::KNoAdditionalInfo );
  2707                 RSat::KNoAdditionalInfo );
  2690             }
  2708             }
  2691         else
  2709         else
  2692             {
  2710             {
  2693             TFLOGSTRING("TSY:CSatMessHandler::SetPollingResult, iPollingOff = EFalse");
  2711             TFLOGSTRING("TSY:CSatMessHandler::SetPollingResult, iPollingOff = EFalse");
  2694             OstTrace0( TRACE_NORMAL, DUP2_CSATMESSHANDLER_SETPOLLINGRESULT, "CSatMessHandler::SetPollingResult, iPollingOff = EFalse" );
  2712             OstTrace0( TRACE_NORMAL,  DUP2_CSATMESSHANDLER_SETPOLLINGRESULT_TD, "CSatMessHandler::SetPollingResult, iPollingOff = EFalse" );
  2695             PollIntervalTerminalResp(
  2713             PollIntervalTerminalResp(
  2696                 aTransId,
  2714                 aTransId,
  2697                 iTsySatMessaging->GetNotifyPollInterval()->GetCmdDetails(),
  2715                 iTsySatMessaging->GetNotifyPollInterval()->GetCmdDetails(),
  2698                 RSat::KSuccess,
  2716                 RSat::KSuccess,
  2699                 RSat::KNoAdditionalInfo,
  2717                 RSat::KNoAdditionalInfo,
  2748 TInt CSatMessHandler::CheckProactiveCommand
  2766 TInt CSatMessHandler::CheckProactiveCommand
  2749         (
  2767         (
  2750         const TIsiReceiveC& aIsiMessage // received isi message
  2768         const TIsiReceiveC& aIsiMessage // received isi message
  2751         )
  2769         )
  2752     {
  2770     {
  2753     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_CHECKPROACTIVECOMMAND, "CSatMessHandler::CheckProactiveCommand" );
  2771     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_CHECKPROACTIVECOMMAND_TD, "CSatMessHandler::CheckProactiveCommand" );
  2754     TFLOGSTRING("TSY:CSatMessHandler::CheckProactiveCommand");
  2772     TFLOGSTRING("TSY:CSatMessHandler::CheckProactiveCommand");
  2755 
  2773 
  2756     TTlv data;
  2774     TTlv data;
  2757     // Get ber tlv
  2775     // Get ber tlv
  2758     CBerTlv berTlv;
  2776     CBerTlv berTlv;
  2814             ret = KErrCorrupt;
  2832             ret = KErrCorrupt;
  2815             }
  2833             }
  2816         else
  2834         else
  2817             {
  2835             {
  2818             TFLOGSTRING("TSY: CSatMessHandler::CheckProactiveCommand. Proactive command Ok.");
  2836             TFLOGSTRING("TSY: CSatMessHandler::CheckProactiveCommand. Proactive command Ok.");
  2819             OstTrace0( TRACE_NORMAL, DUP1_CSATMESSHANDLER_CHECKPROACTIVECOMMAND, "CSatMessHandler::CheckProactiveCommand Proactive command Ok." );
  2837             OstTrace0( TRACE_NORMAL,  DUP1_CSATMESSHANDLER_CHECKPROACTIVECOMMAND_TD, "CSatMessHandler::CheckProactiveCommand Proactive command Ok." );
  2820             }
  2838             }
  2821 
  2839 
  2822         if ( KErrCorrupt == ret )
  2840         if ( KErrCorrupt == ret )
  2823             {
  2841             {
  2824             if ( !berTlv.TlvByTagValue( &commandDetails,
  2842             if ( !berTlv.TlvByTagValue( &commandDetails,
  2872         TUint8 aTransId,            // Transaction id
  2890         TUint8 aTransId,            // Transaction id
  2873         TDes8& aCommandDetails,     // Command details
  2891         TDes8& aCommandDetails,     // Command details
  2874         TUint8 aGeneralResult       // General result
  2892         TUint8 aGeneralResult       // General result
  2875         )
  2893         )
  2876     {
  2894     {
  2877     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_MORETIMETERMINALRESP, "CSatMessHandler::MoreTimeTerminalResp" );
  2895     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_MORETIMETERMINALRESP_TD, "CSatMessHandler::MoreTimeTerminalResp" );
  2878     TFLOGSTRING("TSY:CSatMessHandler::MoreTimeTerminalResp");
  2896     TFLOGSTRING("TSY:CSatMessHandler::MoreTimeTerminalResp");
  2879 
  2897 
  2880     // Create and append response data
  2898     // Create and append response data
  2881     TTlv tlvSpecificData;
  2899     TTlv tlvSpecificData;
  2882 
  2900 
  2901         (
  2919         (
  2902         TUint8 aTransId,        // Transaction Id
  2920         TUint8 aTransId,        // Transaction Id
  2903         TUint8 aRoutingCommand  // Routing command
  2921         TUint8 aRoutingCommand  // Routing command
  2904         )
  2922         )
  2905     {
  2923     {
  2906     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SMSCBROUTINGREQ, "CSatMessHandler::SmsCbRoutingReq" );
  2924     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_SMSCBROUTINGREQ_TD, "CSatMessHandler::SmsCbRoutingReq" );
  2907     TFLOGSTRING("TSY:CSatMessHandler::SmsRoutingReq");
  2925     TFLOGSTRING("TSY:CSatMessHandler::SmsRoutingReq");
  2908 
  2926 
  2909     TInt ret( KErrNone );
  2927     TInt ret( KErrNone );
  2910 
  2928     iCbRoutingReqTraId = TInt( aTransId );
  2911         // Routing is ongoing
  2929 
  2912         iSmsCbRoutingComplete = EFalse;
  2930     // Routing is ongoing
  2913 
  2931     iSmsCbRoutingComplete = EFalse;
  2914         // TBuf8<SIZE_SMS_CB_ROUTING_REQ> because we are sending [U]SIM EF CBMID Message
  2932 
  2915         // Subscription;
  2933     // TBuf8<SIZE_SMS_CB_ROUTING_REQ> because we are sending [U]SIM EF CBMID Message
  2916         TBuf8<SIZE_SMS_CB_ROUTING_REQ> data;
  2934     // Subscription;
  2917 
  2935     TBuf8<SIZE_SMS_CB_ROUTING_REQ> data;
  2918         // Append Routing command
  2936 
  2919         data.Append( aRoutingCommand );
  2937     // Append Routing command
  2920         // Append Subscription number
  2938     data.Append( aRoutingCommand );
  2921         data.Append( SMS_NEW_SUBSCRIPTION );
  2939     // Append Subscription number
  2922         // append Subscription type
  2940     data.Append( SMS_NEW_SUBSCRIPTION );
  2923         data.Append( SMS_TYPE_SIM );
  2941     // append Subscription type
  2924         // Append Filler bytes
  2942     data.Append( SMS_TYPE_SIM );
  2925         data.AppendFill( KPadding, 2 );
  2943     // Append Filler bytes
  2926         // Append no of Subblocks
  2944     data.AppendFill( KPadding, 2 );
  2927         data.Append( 0 );
  2945     // Append no of Subblocks
  2928 
  2946     data.Append( 0 );
  2929         // Send Subscription request
  2947 
  2930         ret = iPnSend->Send( PN_SMS, aTransId, SMS_CB_ROUTING_REQ,
  2948     // Send Subscription request
  2931                 data );
  2949     ret = iPnSend->Send( PN_SMS, aTransId, SMS_CB_ROUTING_REQ,
       
  2950             data );
  2932 
  2951 
  2933     return ret;
  2952     return ret;
  2934     }
  2953     }
  2935 
  2954 
  2936 // -----------------------------------------------------------------------------
  2955 // -----------------------------------------------------------------------------
  2941 void CSatMessHandler::SmsCbRoutingResp
  2960 void CSatMessHandler::SmsCbRoutingResp
  2942         (
  2961         (
  2943         const TIsiReceiveC& aIsiMessage
  2962         const TIsiReceiveC& aIsiMessage
  2944         )
  2963         )
  2945     {
  2964     {
  2946     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SMSCBROUTINGRESP, "CSatMessHandler::SmsCbRoutingResp" );
  2965     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_SMSCBROUTINGRESP_TD, "CSatMessHandler::SmsCbRoutingResp" );
  2947     TFLOGSTRING("TSY:CSatMessHandler::SmsCbRoutingResp");
  2966     TFLOGSTRING("TSY:CSatMessHandler::SmsCbRoutingResp");
  2948 
  2967 
  2949     TUint8 cause( aIsiMessage.Get8bit(
  2968     if ( iCbRoutingReqTraId == aIsiMessage.Get8bit(
  2950         ISI_HEADER_SIZE + SMS_CB_ROUTING_RESP_OFFSET_SMSCAUSE ) );
  2969          ISI_HEADER_OFFSET_TRANSID ) )
  2951 
  2970         {
  2952     switch ( cause )
  2971         TUint8 cause( aIsiMessage.Get8bit(
  2953         {
  2972             ISI_HEADER_SIZE + SMS_CB_ROUTING_RESP_OFFSET_SMSCAUSE ) );
  2954         case SMS_ERR_CS_INACTIVE:
  2973         iCbRoutingReqTraId = KNoTransactionOngoing;
  2955         case SMS_ERR_SUBJECT_COUNT_OVERFLOW:
  2974 
  2956         case SMS_ERR_DCS_COUNT_OVERFLOW:
  2975         switch ( cause )
  2957             {
  2976             {
  2958             TFLOGSTRING2("TSY:CSatMessHandler::SmsCbRoutingResp \
  2977             case SMS_ERR_CS_INACTIVE:
  2959                 Routing req failed on temporary problem: %d", cause );
  2978             case SMS_ERR_SUBJECT_COUNT_OVERFLOW:
  2960             OstTraceExt1( TRACE_NORMAL, DUP1_CSATMESSHANDLER_SMSCBROUTINGRESP, "CSatMessHandler::SmsCbRoutingResp Routing req failed on temporary problem: %hhu", cause );
  2979             case SMS_ERR_DCS_COUNT_OVERFLOW:
  2961             iSmsCbRoutingComplete = EFalse;
  2980                 {
  2962             break;
  2981                 TFLOGSTRING2("TSY:CSatMessHandler::SmsCbRoutingResp \
  2963             }
  2982                     Routing req failed on temporary problem: %d", cause );
  2964         case SMS_OK:
  2983                 OstTraceExt1( TRACE_NORMAL,  DUP1_CSATMESSHANDLER_SMSCBROUTINGRESP_TD, "CSatMessHandler::SmsCbRoutingResp Routing req failed on temporary problem: %hhu", cause );
  2965         case SMS_ERR_INVALID_SUBSCRIPTION_NR:
  2984                 iSmsCbRoutingComplete = EFalse;
  2966         case SMS_ERR_INVALID_PARAMETER:
  2985                 break;
  2967         case SMS_ERR_ALL_SUBSCRIPTIONS_ALLOCATED:
  2986                 }
  2968         default:
  2987             case SMS_OK:
  2969             {
  2988             case SMS_ERR_INVALID_SUBSCRIPTION_NR:
  2970             // Routing req was either completed successfully, or permanent
  2989             case SMS_ERR_INVALID_PARAMETER:
  2971             // problem occured. In both cases, no need to retry.
  2990             case SMS_ERR_ALL_SUBSCRIPTIONS_ALLOCATED:
  2972             iSmsCbRoutingComplete = ETrue;
  2991             default:
  2973             break;
  2992                 {
       
  2993                 // Routing req was either completed successfully, or permanent
       
  2994                 // problem occured. In both cases, no need to retry.
       
  2995                 iSmsCbRoutingComplete = ETrue;
       
  2996                 break;
       
  2997                 }
  2974             }
  2998             }
  2975         }
  2999         }
  2976     }
  3000     }
  2977 
  3001 
  2978 
  3002 
  2987         (
  3011         (
  2988         const TIsiReceiveC& aIsiMessage
  3012         const TIsiReceiveC& aIsiMessage
  2989         )
  3013         )
  2990     {
  3014     {
  2991     TFLOGSTRING("TSY:CSatMoSmsCtrl::SmsResourceConfIndReceived: Response for Resource confoguration Indication, Receive Indication from SMS server");
  3015     TFLOGSTRING("TSY:CSatMoSmsCtrl::SmsResourceConfIndReceived: Response for Resource confoguration Indication, Receive Indication from SMS server");
  2992     OstTrace0( TRACE_NORMAL, DUP1_CSATMOSMSCTRL_SMSRESOURCECONFINDRECEIVED, "CSatMoSmsCtrl::SmsResourceRespReceived: Response for Resource Configuration Ind, Receive indication from SMS server" );
  3016     OstTrace0( TRACE_NORMAL,  DUP1_CSATMOSMSCTRL_SMSRESOURCECONFINDRECEIVED_TD, "CSatMoSmsCtrl::SmsResourceRespReceived: Response for Resource Configuration Ind, Receive indication from SMS server" );
  2993 
  3017 
  2994     // To check The receive indication is for startup or reconfiguration
  3018     // To check The receive indication is for startup or reconfiguration
  2995     if ( SMS_RES_CONF_STARTUP == aIsiMessage.Get8bit( ISI_HEADER_SIZE
  3019     if ( SMS_RES_CONF_STARTUP == aIsiMessage.Get8bit( ISI_HEADER_SIZE
  2996         + SMS_RESOURCE_CONF_IND_OFFSET_CONFSTATUS ) )
  3020         + SMS_RESOURCE_CONF_IND_OFFSET_CONFSTATUS ) )
  2997         {
  3021         {
  3013                     // USIM: Read MO-SMS control from byte 4
  3037                     // USIM: Read MO-SMS control from byte 4
  3014                     UiccReadServiceTableReq( KUiccTrIdServiceTableByte4, 3 );
  3038                     UiccReadServiceTableReq( KUiccTrIdServiceTableByte4, 3 );
  3015                     }
  3039                     }
  3016                 else if ( UICC_CARD_TYPE_ICC == iCardType )
  3040                 else if ( UICC_CARD_TYPE_ICC == iCardType )
  3017                     {
  3041                     {
  3018                     // SIM: Read MO-SMS control from byte 5
  3042                     // SIM: Read MO-SMS control from byte 10
  3019                     UiccReadServiceTableReq( KUiccTrIdServiceTableByte5, 4 );
  3043                     UiccReadServiceTableReq( KUiccTrIdServiceTableByte10, 9 );
  3020                     }
  3044                     }
  3021                 }
  3045                 }
  3022             }
  3046             }
  3023         }
  3047         }
  3024     }
  3048     }
  3031 TInt CSatMessHandler::NetCellInfoGetReq
  3055 TInt CSatMessHandler::NetCellInfoGetReq
  3032         (
  3056         (
  3033         TUint8 aTransId
  3057         TUint8 aTransId
  3034         )
  3058         )
  3035     {
  3059     {
  3036     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_NETCELLINFOGETREQ, "CSatMessHandler::NetCellInfoGetReq" );
  3060     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_NETCELLINFOGETREQ_TD, "CSatMessHandler::NetCellInfoGetReq" );
  3037     TFLOGSTRING("TSY:CSatMessHandler::NetCellInfoGetReq");
  3061     TFLOGSTRING("TSY:CSatMessHandler::NetCellInfoGetReq");
  3038 
  3062 
  3039     TBuf8<1> noData;
  3063     TBuf8<1> noData;
  3040     return iPnSend->Send(
  3064     return iPnSend->Send(
  3041         PN_MODEM_NETWORK,
  3065         PN_MODEM_NETWORK,
  3053 void CSatMessHandler::NetCellInfoGetResp
  3077 void CSatMessHandler::NetCellInfoGetResp
  3054         (
  3078         (
  3055         const TIsiReceiveC& aIsiMessage
  3079         const TIsiReceiveC& aIsiMessage
  3056         )
  3080         )
  3057     {
  3081     {
  3058 OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_NETCELLINFOGETRESP, "CSatMessHandler::NetCellInfoGetResp" );
  3082 OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_NETCELLINFOGETRESP_TD, "CSatMessHandler::NetCellInfoGetResp" );
  3059 TFLOGSTRING("TSY: CSatMessHandler::NetCellInfoGetResp");
  3083 TFLOGSTRING("TSY: CSatMessHandler::NetCellInfoGetResp");
  3060 
  3084 
  3061     TUint8 successCode( aIsiMessage.Get8bit(
  3085     TUint8 successCode( aIsiMessage.Get8bit(
  3062         ISI_HEADER_SIZE + NET_CELL_INFO_GET_RESP_OFFSET_SUCCESSCODE ) );
  3086         ISI_HEADER_SIZE + NET_CELL_INFO_GET_RESP_OFFSET_SUCCESSCODE ) );
  3063 
  3087 
  3116                 }
  3140                 }
  3117             default:
  3141             default:
  3118                 {
  3142                 {
  3119                 // Default result value already set
  3143                 // Default result value already set
  3120 TFLOGSTRING2("TSY: CSatMessHandler::NetCellInfoGetResp - Unexpected iRegStatus: %d", iLocInfo.iRegStatus );
  3144 TFLOGSTRING2("TSY: CSatMessHandler::NetCellInfoGetResp - Unexpected iRegStatus: %d", iLocInfo.iRegStatus );
  3121 OstTrace1( TRACE_NORMAL, DUP1_CSATMESSHANDLER_NETCELLINFOGETRESP, "CSatMessHandler::NetCellInfoGetResp Unexpected iRegStatus: %d", iLocInfo.iRegStatus );
  3145 OstTrace1( TRACE_NORMAL,  DUP1_CSATMESSHANDLER_NETCELLINFOGETRESP_TD, "CSatMessHandler::NetCellInfoGetResp Unexpected iRegStatus: %d", iLocInfo.iRegStatus );
  3122 
  3146 
  3123                 additionalInfo.Append( RSat::KNoSpecificMeProblem );
  3147                 additionalInfo.Append( RSat::KNoSpecificMeProblem );
  3124                 break;
  3148                 break;
  3125                 }
  3149                 }
  3126             }
  3150             }
  3155         (
  3179         (
  3156         TUint8 aTransId,          // Transaction Id
  3180         TUint8 aTransId,          // Transaction Id
  3157         TUint8 aOperation         // Gss operation
  3181         TUint8 aOperation         // Gss operation
  3158         )
  3182         )
  3159     {
  3183     {
  3160     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_GSSCSSERVICEREQ, "CSatMessHandler::GssCsServiceReq" );
  3184     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_GSSCSSERVICEREQ_TD, "CSatMessHandler::GssCsServiceReq" );
  3161     TFLOGSTRING("TSY: CSatMessHandler::GssCsServiceReq ");
  3185     TFLOGSTRING("TSY: CSatMessHandler::GssCsServiceReq ");
  3162 
  3186 
  3163     TBuf8<2> data;
  3187     TBuf8<2> data;
  3164     data.Append( aOperation );
  3188     data.Append( aOperation );
  3165     data.Append( 0x00 ); // number of subblocks
  3189     data.Append( 0x00 ); // number of subblocks
  3174 void CSatMessHandler::GssCsServiceResp
  3198 void CSatMessHandler::GssCsServiceResp
  3175         (
  3199         (
  3176         const TIsiReceiveC& aIsiMessage // Received isi messge
  3200         const TIsiReceiveC& aIsiMessage // Received isi messge
  3177         )
  3201         )
  3178     {
  3202     {
  3179     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_GSSCSSERVICERESP, "CSatMessHandler::GssCsServiceResp" );
  3203     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_GSSCSSERVICERESP_TD, "CSatMessHandler::GssCsServiceResp" );
  3180     TFLOGSTRING("CSatMessHandler::GssCsServiceResp ");
  3204     TFLOGSTRING("CSatMessHandler::GssCsServiceResp ");
  3181 
  3205 
  3182     if ( iTsySatMessaging->GetNotifyLocalInfo()->LocalInfoStatus() )
  3206     if ( iTsySatMessaging->GetNotifyLocalInfo()->LocalInfoStatus() )
  3183         {
  3207         {
  3184         TUint8 generalResult ( RSat::KSuccess );
  3208         TUint8 generalResult ( RSat::KSuccess );
  3217                 // Store Timing Advance Status
  3241                 // Store Timing Advance Status
  3218                 iTaStatus = aIsiMessage.Get8bit(
  3242                 iTaStatus = aIsiMessage.Get8bit(
  3219                     sbOffset + GSS_ATK_TIMING_ADVANCE_OFFSET_TASTATUS );
  3243                     sbOffset + GSS_ATK_TIMING_ADVANCE_OFFSET_TASTATUS );
  3220 
  3244 
  3221                 TFLOGSTRING2("TSY: CSatMessHandler::GssCsServiceResp iTaStatus=%d", iTaStatus);
  3245                 TFLOGSTRING2("TSY: CSatMessHandler::GssCsServiceResp iTaStatus=%d", iTaStatus);
  3222                 OstTraceExt1( TRACE_NORMAL, DUP1_CSATMESSHANDLER_GSSCSSERVICERESP, "CSatMessHandler::GssCsServiceResp iTaStatus: %hhu", iTaStatus );
  3246                 OstTraceExt1( TRACE_NORMAL,  DUP1_CSATMESSHANDLER_GSSCSSERVICERESP_TD, "CSatMessHandler::GssCsServiceResp iTaStatus: %hhu", iTaStatus );
  3223 
  3247 
  3224                 // Store timing advance
  3248                 // Store timing advance
  3225                 iTimingAdvance = aIsiMessage.Get8bit(
  3249                 iTimingAdvance = aIsiMessage.Get8bit(
  3226                     sbOffset + GSS_ATK_TIMING_ADVANCE_OFFSET_TIMINGADVANCE );
  3250                     sbOffset + GSS_ATK_TIMING_ADVANCE_OFFSET_TIMINGADVANCE );
  3227 
  3251 
  3228                 TFLOGSTRING2("TSY: CSatMessHandler::GssCsServiceResp \
  3252                 TFLOGSTRING2("TSY: CSatMessHandler::GssCsServiceResp \
  3229                     iTimingAdvance=%d", iTimingAdvance);
  3253                     iTimingAdvance=%d", iTimingAdvance);
  3230                 OstTraceExt1( TRACE_NORMAL, DUP2_CSATMESSHANDLER_GSSCSSERVICERESP, "CSatMessHandler::GssCsServiceResp iTimingAdvance: %hhu", iTimingAdvance );
  3254                 OstTraceExt1( TRACE_NORMAL,  DUP2_CSATMESSHANDLER_GSSCSSERVICERESP_TD, "CSatMessHandler::GssCsServiceResp iTimingAdvance: %hhu", iTimingAdvance );
  3231 
  3255 
  3232                 if ( GSS_TIMING_ADVANCE_NOT_AVAILABLE == iTimingAdvance )
  3256                 if ( GSS_TIMING_ADVANCE_NOT_AVAILABLE == iTimingAdvance )
  3233                     {
  3257                     {
  3234                     generalResult = RSat::KMeUnableToProcessCmd;
  3258                     generalResult = RSat::KMeUnableToProcessCmd;
  3235                     }
  3259                     }
  3275 void CSatMessHandler::GssCsServiceFailResp
  3299 void CSatMessHandler::GssCsServiceFailResp
  3276         (
  3300         (
  3277         const TIsiReceiveC& aIsiMessage // Received isi messge
  3301         const TIsiReceiveC& aIsiMessage // Received isi messge
  3278         )
  3302         )
  3279     {
  3303     {
  3280     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_GSSCSSERVICEFAILRESP, "CSatMessHandler::GssCsServiceFailResp" );
  3304     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_GSSCSSERVICEFAILRESP_TD, "CSatMessHandler::GssCsServiceFailResp" );
  3281     TFLOGSTRING("CSatMessHandler::GssCsServiceFailResp ");
  3305     TFLOGSTRING("CSatMessHandler::GssCsServiceFailResp ");
  3282 
  3306 
  3283     if ( iTsySatMessaging->GetNotifyLocalInfo()->LocalInfoStatus() )
  3307     if ( iTsySatMessaging->GetNotifyLocalInfo()->LocalInfoStatus() )
  3284         {
  3308         {
  3285         if ( GSS_ATK_TIMING_ADVANCE_GET == aIsiMessage.Get8bit(
  3309         if ( GSS_ATK_TIMING_ADVANCE_GET == aIsiMessage.Get8bit(
  3321         TDes8& aCommandDetails,     // Comamnd number
  3345         TDes8& aCommandDetails,     // Comamnd number
  3322         TUint8 aGeneralResult,      // General result
  3346         TUint8 aGeneralResult,      // General result
  3323         TUint8 aAdditionalInfo      // additional info
  3347         TUint8 aAdditionalInfo      // additional info
  3324         )
  3348         )
  3325     {
  3349     {
  3326     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_LANGUAGENOTIFICATIONTERMINALRESP, "CSatMessHandler::LanguageNotificationTerminalResp" );
  3350     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_LANGUAGENOTIFICATIONTERMINALRESP_TD, "CSatMessHandler::LanguageNotificationTerminalResp" );
  3327     TFLOGSTRING("TSY:CSatMessHandler::LanguageNotificationTerminalResp");
  3351     TFLOGSTRING("TSY:CSatMessHandler::LanguageNotificationTerminalResp");
  3328 
  3352 
  3329     TTlv tlvSpecificData;
  3353     TTlv tlvSpecificData;
  3330     // Create general result TLV here
  3354     // Create general result TLV here
  3331     tlvSpecificData.AddTag( KTlvResultTag );
  3355     tlvSpecificData.AddTag( KTlvResultTag );
  3353 void CSatMessHandler::NetTimeInd
  3377 void CSatMessHandler::NetTimeInd
  3354         (
  3378         (
  3355         const TIsiReceiveC& aIsiMessage
  3379         const TIsiReceiveC& aIsiMessage
  3356         )
  3380         )
  3357     {
  3381     {
  3358     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_NETTIMEIND, "CSatMessHandler::NetTimeInd" );
  3382     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_NETTIMEIND_TD, "CSatMessHandler::NetTimeInd" );
  3359     TFLOGSTRING("TSY: CSatMessHandler::NetTimeInd");
  3383     TFLOGSTRING("TSY: CSatMessHandler::NetTimeInd");
  3360 
  3384 
  3361     // NET_TIME_INFO is mandatory sub block
  3385     // NET_TIME_INFO is mandatory sub block
  3362 
  3386 
  3363     // SubBlock offset
  3387     // SubBlock offset
  3375         // Get timezone
  3399         // Get timezone
  3376         // If the time zone is invalid or time zone is unknown, all bits are
  3400         // If the time zone is invalid or time zone is unknown, all bits are
  3377         // set to 1 (including B6).
  3401         // set to 1 (including B6).
  3378         iTimeZone = aIsiMessage.Get8bit( sbOffset + NET_TIME_INFO_OFFSET_TIMEZONE );
  3402         iTimeZone = aIsiMessage.Get8bit( sbOffset + NET_TIME_INFO_OFFSET_TIMEZONE );
  3379         TFLOGSTRING2("TSY: CSatMessHandler::NetTimeInd, Time zone: 0x%x", iTimeZone );
  3403         TFLOGSTRING2("TSY: CSatMessHandler::NetTimeInd, Time zone: 0x%x", iTimeZone );
  3380         OstTraceExt1( TRACE_NORMAL, DUP1_CSATMESSHANDLER_NETTIMEIND, "CSatMessHandler::NetTimeInd Time zone: %hhu", iTimeZone );
  3404         OstTraceExt1( TRACE_NORMAL,  DUP1_CSATMESSHANDLER_NETTIMEIND_TD, "CSatMessHandler::NetTimeInd Time zone: %hhu", iTimeZone );
  3381         }
  3405         }
  3382     }
  3406     }
  3383 
  3407 
  3384 // -----------------------------------------------------------------------------
  3408 // -----------------------------------------------------------------------------
  3385 // CSatMessHandler::OpenChannelTerminalResp
  3409 // CSatMessHandler::OpenChannelTerminalResp
  3396         TUint8 aBearerType,         // Bearer type
  3420         TUint8 aBearerType,         // Bearer type
  3397         TDesC8& aBearer,            // Bearer
  3421         TDesC8& aBearer,            // Bearer
  3398         TUint16 aBufferSize         // Buffer size
  3422         TUint16 aBufferSize         // Buffer size
  3399         )
  3423         )
  3400     {
  3424     {
  3401     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_OPENCHANNELTERMINALRESP, "CSatMessHandler::OpenChannelTerminalResp" );
  3425     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_OPENCHANNELTERMINALRESP_TD, "CSatMessHandler::OpenChannelTerminalResp" );
  3402     TFLOGSTRING("CSatMessHandler::OpenChannelTerminalResp");
  3426     TFLOGSTRING("CSatMessHandler::OpenChannelTerminalResp");
  3403 
  3427 
  3404     // Create and append response data
  3428     // Create and append response data
  3405     TTlv tlvSpecificData;
  3429     TTlv tlvSpecificData;
  3406 
  3430 
  3436             }
  3460             }
  3437         }
  3461         }
  3438     else
  3462     else
  3439         {
  3463         {
  3440         TFLOGSTRING("TSY: CSatMessHandler::OpenChannelTerminalResp, General result did not match.");
  3464         TFLOGSTRING("TSY: CSatMessHandler::OpenChannelTerminalResp, General result did not match.");
  3441         OstTrace0( TRACE_NORMAL, DUP1_CSATMESSHANDLER_OPENCHANNELTERMINALRESP, "CSatMessHandler::OpenChannelTerminalResp, General result did not match." );
  3465         OstTrace0( TRACE_NORMAL,  DUP1_CSATMESSHANDLER_OPENCHANNELTERMINALRESP_TD, "CSatMessHandler::OpenChannelTerminalResp, General result did not match." );
  3442         }
  3466         }
  3443 
  3467 
  3444     // For any result:
  3468     // For any result:
  3445     // Append Bearer Description data
  3469     // Append Bearer Description data
  3446 
  3470 
  3479         TDes8 &aCommandDetails,
  3503         TDes8 &aCommandDetails,
  3480         TUint8 aGeneralResult,
  3504         TUint8 aGeneralResult,
  3481         const TDes8& aAdditionalInfo
  3505         const TDes8& aAdditionalInfo
  3482         )
  3506         )
  3483     {
  3507     {
  3484     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_GETCHANNELSTATUSTERMINALRESP, "CSatMessHandler::GetChannelStatusTerminalResp" );
  3508     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_GETCHANNELSTATUSTERMINALRESP_TD, "CSatMessHandler::GetChannelStatusTerminalResp" );
  3485     TFLOGSTRING("CSatMessHandler::GetChannelStatusTerminalResp");
  3509     TFLOGSTRING("CSatMessHandler::GetChannelStatusTerminalResp");
  3486     TTlv tlvSpecificData;
  3510     TTlv tlvSpecificData;
  3487     // Append general result tag
  3511     // Append general result tag
  3488     tlvSpecificData.AddTag( KTlvResultTag );
  3512     tlvSpecificData.AddTag( KTlvResultTag );
  3489     // Append general result
  3513     // Append general result
  3511 
  3535 
  3512         }
  3536         }
  3513     else
  3537     else
  3514         {
  3538         {
  3515         TFLOGSTRING("CSatMessHandler::GetChannelStatusTerminalResp - mandatory channel status missing");
  3539         TFLOGSTRING("CSatMessHandler::GetChannelStatusTerminalResp - mandatory channel status missing");
  3516         OstTrace0( TRACE_NORMAL, DUP1_CSATMESSHANDLER_GETCHANNELSTATUSTERMINALRESP, "CSatMessHandler::GetChannelStatusTerminalResp - mandatory channel status missing" );
  3540         OstTrace0( TRACE_NORMAL,  DUP1_CSATMESSHANDLER_GETCHANNELSTATUSTERMINALRESP_TD, "CSatMessHandler::GetChannelStatusTerminalResp - mandatory channel status missing" );
  3517         }
  3541         }
  3518 
  3542 
  3519     return UiccCatReqTerminalResponse(
  3543     return UiccCatReqTerminalResponse(
  3520         aCommandDetails,
  3544         aCommandDetails,
  3521         tlvSpecificData.GetDataWithoutTopLevelTag(),
  3545         tlvSpecificData.GetDataWithoutTopLevelTag(),
  3534         TDes8 &aCommandDetails,
  3558         TDes8 &aCommandDetails,
  3535         TUint8 aGeneralResult,
  3559         TUint8 aGeneralResult,
  3536         const TDes8& aAdditionalInfo
  3560         const TDes8& aAdditionalInfo
  3537         )
  3561         )
  3538     {
  3562     {
  3539     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_CLOSECHANNELTERMINALRESP, "CSatMessHandler::CloseChannelTerminalResp" );
  3563     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_CLOSECHANNELTERMINALRESP_TD, "CSatMessHandler::CloseChannelTerminalResp" );
  3540     TFLOGSTRING("CSatMessHandler::CloseChannelTerminalResp");
  3564     TFLOGSTRING("CSatMessHandler::CloseChannelTerminalResp");
  3541     TTlv tlvSpecificData;
  3565     TTlv tlvSpecificData;
  3542     // Append general result tag
  3566     // Append general result tag
  3543     tlvSpecificData.AddTag( KTlvResultTag );
  3567     tlvSpecificData.AddTag( KTlvResultTag );
  3544     // Append general result
  3568     // Append general result
  3576         TUint8 aGeneralResult,
  3600         TUint8 aGeneralResult,
  3577         const TDes8& aAdditionalInfo,
  3601         const TDes8& aAdditionalInfo,
  3578         TUint8 aChannelDataLength
  3602         TUint8 aChannelDataLength
  3579         )
  3603         )
  3580     {
  3604     {
  3581     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SENDDATATERMINALRESP, "CSatMessHandler::SendDataTerminalResp" );
  3605     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_SENDDATATERMINALRESP_TD, "CSatMessHandler::SendDataTerminalResp" );
  3582     TFLOGSTRING("CSatMessHandler::SendDataTerminalResp");
  3606     TFLOGSTRING("CSatMessHandler::SendDataTerminalResp");
  3583     TTlv tlvSpecificData;
  3607     TTlv tlvSpecificData;
  3584     // Append general result tag
  3608     // Append general result tag
  3585     tlvSpecificData.AddTag( KTlvResultTag );
  3609     tlvSpecificData.AddTag( KTlvResultTag );
  3586     // Append general result
  3610     // Append general result
  3603         tlvSpecificData.AddByte( aChannelDataLength );
  3627         tlvSpecificData.AddByte( aChannelDataLength );
  3604         }
  3628         }
  3605     else
  3629     else
  3606         {
  3630         {
  3607         TFLOGSTRING("TSY: CSatMessHandler::SendDataTerminalResp, General result did not match.");
  3631         TFLOGSTRING("TSY: CSatMessHandler::SendDataTerminalResp, General result did not match.");
  3608         OstTrace0( TRACE_NORMAL, DUP1_CSATMESSHANDLER_SENDDATATERMINALRESP, "CSatMessHandler::SendDataTerminalResp, General result did not match." );
  3632         OstTrace0( TRACE_NORMAL,  DUP1_CSATMESSHANDLER_SENDDATATERMINALRESP_TD, "CSatMessHandler::SendDataTerminalResp, General result did not match." );
  3609         }
  3633         }
  3610 
  3634 
  3611     return UiccCatReqTerminalResponse(
  3635     return UiccCatReqTerminalResponse(
  3612         aCommandDetails,
  3636         aCommandDetails,
  3613         tlvSpecificData.GetDataWithoutTopLevelTag(),
  3637         tlvSpecificData.GetDataWithoutTopLevelTag(),
  3627         TUint8 aGeneralResult,
  3651         TUint8 aGeneralResult,
  3628         const TDes8& aAdditionalInfo,
  3652         const TDes8& aAdditionalInfo,
  3629         TUint8 aChannelDataLength
  3653         TUint8 aChannelDataLength
  3630         )
  3654         )
  3631     {
  3655     {
  3632     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_RECEIVEDATATERMINALRESP, "CSatMessHandler::ReceiveDataTerminalResp" );
  3656     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_RECEIVEDATATERMINALRESP_TD, "CSatMessHandler::ReceiveDataTerminalResp" );
  3633     TFLOGSTRING("CSatMessHandler::ReceiveDataTerminalResp");
  3657     TFLOGSTRING("CSatMessHandler::ReceiveDataTerminalResp");
  3634     TTlv tlvSpecificData;
  3658     TTlv tlvSpecificData;
  3635     // Append general result tag
  3659     // Append general result tag
  3636     tlvSpecificData.AddTag( KTlvResultTag );
  3660     tlvSpecificData.AddTag( KTlvResultTag );
  3637     // Append general result
  3661     // Append general result
  3658         tlvSpecificData.AddByte( aChannelDataLength );
  3682         tlvSpecificData.AddByte( aChannelDataLength );
  3659         }
  3683         }
  3660     else
  3684     else
  3661         {
  3685         {
  3662         TFLOGSTRING("TSY: CSatMessHandler::ReceiveDataTerminalResp, General result did not match.");
  3686         TFLOGSTRING("TSY: CSatMessHandler::ReceiveDataTerminalResp, General result did not match.");
  3663         OstTrace0( TRACE_NORMAL, DUP1_CSATMESSHANDLER_RECEIVEDATATERMINALRESP, "CSatMessHandler::ReceiveDataTerminalResp, General result did not match." );
  3687         OstTrace0( TRACE_NORMAL,  DUP1_CSATMESSHANDLER_RECEIVEDATATERMINALRESP_TD, "CSatMessHandler::ReceiveDataTerminalResp, General result did not match." );
  3664         }
  3688         }
  3665 
  3689 
  3666     return UiccCatReqTerminalResponse(
  3690     return UiccCatReqTerminalResponse(
  3667         aCommandDetails,
  3691         aCommandDetails,
  3668         tlvSpecificData.GetDataWithoutTopLevelTag(),
  3692         tlvSpecificData.GetDataWithoutTopLevelTag(),
  3681         TUint8 aTransId,
  3705         TUint8 aTransId,
  3682         TDesC8& aData,
  3706         TDesC8& aData,
  3683         TUint8 aReceiverObject
  3707         TUint8 aReceiverObject
  3684         )
  3708         )
  3685     {
  3709     {
  3686     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SENDSMSRESOURCERESP, "CSatMessHandler::SendSmsResourceResp" );
  3710     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_SENDSMSRESOURCERESP_TD, "CSatMessHandler::SendSmsResourceResp" );
  3687     TFLOGSTRING("TSY:CSatMessHandler::SendSmsResourceResp");
  3711     TFLOGSTRING("TSY:CSatMessHandler::SendSmsResourceResp");
  3688 
  3712 
  3689     TIsiSend isimsg( iPnSend->SendBufferDes() );
  3713     TIsiSend isimsg( iPnSend->SendBufferDes() );
  3690     isimsg.Set8bit( ISI_HEADER_OFFSET_RECEIVEROBJECT, aReceiverObject );
  3714     isimsg.Set8bit( ISI_HEADER_OFFSET_RECEIVEROBJECT, aReceiverObject );
  3691     isimsg.Set8bit( ISI_HEADER_OFFSET_RESOURCEID, PN_SMS );
  3715     isimsg.Set8bit( ISI_HEADER_OFFSET_RESOURCEID, PN_SMS );
  3712 void CSatMessHandler::SsStatusInd
  3736 void CSatMessHandler::SsStatusInd
  3713         (
  3737         (
  3714         const TIsiReceiveC& aIsiMessage
  3738         const TIsiReceiveC& aIsiMessage
  3715         )
  3739         )
  3716     {
  3740     {
  3717     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SSSTATUSIND, "CSatMessHandler::SsStatusInd" );
  3741     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_SSSTATUSIND_TD, "CSatMessHandler::SsStatusInd" );
  3718     TFLOGSTRING("TSY: CSatMessHandler::SsStatusInd");
  3742     TFLOGSTRING("TSY: CSatMessHandler::SsStatusInd");
  3719 
  3743 
  3720     TUint8 ssStatus  = aIsiMessage.Get8bit( ISI_HEADER_SIZE
  3744     TUint8 ssStatus  = aIsiMessage.Get8bit( ISI_HEADER_SIZE
  3721             + SS_STATUS_IND_OFFSET_SSSTATUSINDICATION );
  3745             + SS_STATUS_IND_OFFSET_SSSTATUSINDICATION );
  3722 
  3746 
  3744 TBool CSatMessHandler::AdditionalInfoNeeded
  3768 TBool CSatMessHandler::AdditionalInfoNeeded
  3745         (
  3769         (
  3746         const TUint8 aGeneralResult
  3770         const TUint8 aGeneralResult
  3747         )
  3771         )
  3748     {
  3772     {
  3749     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_ADDITIONALINFONEEDED, "CSatMessHandler::AdditionalInfoNeeded" );
  3773     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_ADDITIONALINFONEEDED_TD, "CSatMessHandler::AdditionalInfoNeeded" );
  3750     // NOTE: This method shall not be used with SendSS proactive command as its
  3774     // NOTE: This method shall not be used with SendSS proactive command as its
  3751     // additional info handling differs from other commands.
  3775     // additional info handling differs from other commands.
  3752 
  3776 
  3753     TBool ret( EFalse );
  3777     TBool ret( EFalse );
  3754 
  3778 
  3787 void CSatMessHandler::ReceiveMessageL
  3811 void CSatMessHandler::ReceiveMessageL
  3788         (
  3812         (
  3789         const TIsiReceiveC& aIsiMessage
  3813         const TIsiReceiveC& aIsiMessage
  3790         )
  3814         )
  3791     {
  3815     {
  3792     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_RECEIVEMESSAGEL, "CSatMessHandler::ReceiveMessageL" );
  3816     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_RECEIVEMESSAGEL_TD, "CSatMessHandler::ReceiveMessageL" );
  3793     TFLOGSTRING("TSY: CSatMessHandler::ReceiveMessageL");
  3817     TFLOGSTRING("TSY: CSatMessHandler::ReceiveMessageL");
  3794 
  3818 
  3795     // Get ISI message resource and id
  3819     // Get ISI message resource and id
  3796     TInt resource ( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_RESOURCEID ) );
  3820     TInt resource ( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_RESOURCEID ) );
  3797 
  3821 
  3806         case PN_SS:
  3830         case PN_SS:
  3807             {
  3831             {
  3808             SsServerMessageReceived( aIsiMessage );
  3832             SsServerMessageReceived( aIsiMessage );
  3809             break;
  3833             break;
  3810             }
  3834             }
  3811         case PN_PHONE_INFO:
  3835         /*case PN_PHONE_INFO:
  3812             {
  3836             {
  3813             PhoneInfoMessageReceived( aIsiMessage );
  3837             PhoneInfoMessageReceivedL( aIsiMessage );
  3814             break;
  3838             break;
  3815             }
  3839             }*/
  3816         case PN_MODEM_NETWORK:
  3840         case PN_MODEM_NETWORK:
  3817             {
  3841             {
  3818             NetServerMessageReceived( aIsiMessage );
  3842             NetServerMessageReceived( aIsiMessage );
  3819             break;
  3843             break;
  3820             }
  3844             }
  3828             SmsServerMessageReceived( aIsiMessage );
  3852             SmsServerMessageReceived( aIsiMessage );
  3829             break;
  3853             break;
  3830             }
  3854             }
  3831         case PN_UICC:
  3855         case PN_UICC:
  3832             {
  3856             {
  3833             handled = UiccServerMessageReceived( aIsiMessage );
  3857             handled = UiccServerMessageReceivedL( aIsiMessage );
  3834             break;
  3858             break;
  3835             }
  3859             }
  3836         default:
  3860         default:
  3837             {
  3861             {
  3838             // Do nothing
  3862             // Do nothing
  3856         (
  3880         (
  3857         const TIsiReceiveC& /*aIsiMessage*/,
  3881         const TIsiReceiveC& /*aIsiMessage*/,
  3858         TInt /*aErrorCode*/
  3882         TInt /*aErrorCode*/
  3859         )
  3883         )
  3860     {
  3884     {
  3861     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_HANDLEERROR, "CSatMessHandler::HandleError" );
  3885     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_HANDLEERROR_TD, "CSatMessHandler::HandleError" );
  3862     // No implementation
  3886     // No implementation
  3863     }
  3887     }
  3864 
  3888 
  3865 
  3889 
  3866 // -----------------------------------------------------------------------------
  3890 // -----------------------------------------------------------------------------
  3871 void CSatMessHandler::NetRatInd
  3895 void CSatMessHandler::NetRatInd
  3872         (
  3896         (
  3873         const TIsiReceiveC& aIsiMessage // ISI message
  3897         const TIsiReceiveC& aIsiMessage // ISI message
  3874         )
  3898         )
  3875     {
  3899     {
  3876     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_NETRATIND, "CSatMessHandler::NetRatInd" );
  3900     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_NETRATIND_TD, "CSatMessHandler::NetRatInd" );
  3877     TFLOGSTRING("TSY:CSatMessHandler::NetRatInd");
  3901     TFLOGSTRING("TSY:CSatMessHandler::NetRatInd");
  3878 
  3902 
  3879     // Check the presence of subblocks
  3903     // Check the presence of subblocks
  3880     if ( 0 != aIsiMessage.Get8bit(
  3904     if ( 0 != aIsiMessage.Get8bit(
  3881         ISI_HEADER_SIZE + NET_RAT_IND_OFFSET_SUBBLOCKCOUNT ) )
  3905         ISI_HEADER_SIZE + NET_RAT_IND_OFFSET_SUBBLOCKCOUNT ) )
  3919                     break;
  3943                     break;
  3920                     }
  3944                     }
  3921                 }
  3945                 }
  3922             }
  3946             }
  3923         TFLOGSTRING2("TSY:CSatMessHandler::NetRatInd - Current Acc Tech: %d",iCurrentAccTech);
  3947         TFLOGSTRING2("TSY:CSatMessHandler::NetRatInd - Current Acc Tech: %d",iCurrentAccTech);
  3924         OstTraceExt1( TRACE_NORMAL, DUP1_CSATMESSHANDLER_NETRATIND, "CSatMessHandler::NetRatInd - Current Acc Tech: %hhu", iCurrentAccTech );
  3948         OstTraceExt1( TRACE_NORMAL,  DUP1_CSATMESSHANDLER_NETRATIND_TD, "CSatMessHandler::NetRatInd - Current Acc Tech: %hhu", iCurrentAccTech );
  3925         }
  3949         }
  3926 
  3950 
  3927     }
  3951     }
  3928 
  3952 
  3929 // -----------------------------------------------------------------------------
  3953 // -----------------------------------------------------------------------------
  3931 // Getter for location information structure
  3955 // Getter for location information structure
  3932 // -----------------------------------------------------------------------------
  3956 // -----------------------------------------------------------------------------
  3933 //
  3957 //
  3934 const CSatMessHandler::TLocationInfo& CSatMessHandler::LocationInfo()
  3958 const CSatMessHandler::TLocationInfo& CSatMessHandler::LocationInfo()
  3935     {
  3959     {
  3936     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_LOCATIONINFO, "CSatMessHandler::LocationInfo" );
  3960     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_LOCATIONINFO_TD, "CSatMessHandler::LocationInfo" );
  3937     // Extended Cell Id is provided only if both USIM and
  3961     // Extended Cell Id is provided only if both USIM and
  3938     // 3G network are present.
  3962     // 3G network are present.
  3939     if ( KNetworkModeUtran != iCurrentAccTech
  3963     if ( KNetworkModeUtran != iCurrentAccTech
  3940         || UICC_CARD_TYPE_UICC != iCardType )
  3964         || UICC_CARD_TYPE_UICC != iCardType )
  3941         {
  3965         {
  3950 
  3974 
  3951     return iLocInfo;
  3975     return iLocInfo;
  3952     }
  3976     }
  3953 
  3977 
  3954 // -----------------------------------------------------------------------------
  3978 // -----------------------------------------------------------------------------
  3955 // CSatMessHandler::SendPnAtkMessage
       
  3956 // Sends a PN_ATK message with the given data, sets also possible filler bytes
       
  3957 // -----------------------------------------------------------------------------
       
  3958 //
       
  3959 TInt CSatMessHandler::SendPnAtkMessage
       
  3960         (
       
  3961         const TUint8 aReceiverObject,
       
  3962         const TUint8 aTransactionId,
       
  3963         const TInt aMessageId,
       
  3964         const TDesC8& aData
       
  3965         )
       
  3966     {
       
  3967     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SENDPNATKMESSAGE, "CSatMessHandler::SendPnAtkMessage" );
       
  3968     TFLOGSTRING("TSY:CSatMessHandler::SendPnAtkMessage");
       
  3969 
       
  3970     TBuf8<KLengthTwoBytes> data;
       
  3971     data.Append( aTransactionId );
       
  3972     data.Append( aMessageId );
       
  3973 
       
  3974     // Create send buffer (sets the msg length to NULL)
       
  3975     TIsiSend isimsg( iPnSend->SendBufferDes() );
       
  3976 
       
  3977     // Set the receiver object and resource ID
       
  3978     isimsg.Set8bit( ISI_HEADER_OFFSET_RECEIVEROBJECT, aReceiverObject );
       
  3979     isimsg.Set8bit( ISI_HEADER_OFFSET_RESOURCEID, PN_ATK );
       
  3980     // Set Transaction ID and Msg ID at the end of the message buffer
       
  3981     isimsg.CopyData( ISI_HEADER_SIZE, data );
       
  3982     // Copy the message data at the end of the message buffer
       
  3983     isimsg.CopyData( ( ISI_HEADER_SIZE + KLengthTwoBytes ), aData );
       
  3984 
       
  3985     // Add padding(s)
       
  3986     while ( iPnSend->SendBufferDes().Length() % 4 )
       
  3987         {
       
  3988         iPnSend->SendBufferDes().Append( 0x00 );
       
  3989         }
       
  3990 
       
  3991     // Send message
       
  3992     return iPnSend->Send( isimsg.Complete() );
       
  3993     }
       
  3994 
       
  3995 // -----------------------------------------------------------------------------
       
  3996 // CSatMessHandler::UiccApplCmdResp
  3979 // CSatMessHandler::UiccApplCmdResp
  3997 // (other items were commented in a header).
  3980 // (other items were commented in a header).
  3998 // -----------------------------------------------------------------------------
  3981 // -----------------------------------------------------------------------------
  3999 //
  3982 //
  4000 void CSatMessHandler::UiccApplCmdResp( const TIsiReceiveC& aIsiMessage )
  3983 void CSatMessHandler::UiccApplCmdResp( const TIsiReceiveC& aIsiMessage )
  4001     {
  3984     {
  4002     TFLOGSTRING("TSY: CSatMessHandler::UiccApplCmdResp");
  3985     TFLOGSTRING("TSY: CSatMessHandler::UiccApplCmdResp");
  4003     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_UICCAPPLCMDRESP, "CSatMessHandler::UiccApplCmdResp" );
  3986     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_UICCAPPLCMDRESP_TD, "CSatMessHandler::UiccApplCmdResp" );
  4004 
  3987 
  4005     TInt error( KErrNone );
  3988     TInt error( KErrNone );
  4006     // Get transaction ID, status and service type
  3989     // Get transaction ID, status and service type
  4007     TUint8 trId( aIsiMessage.Get8bit(
  3990     TUint8 trId( aIsiMessage.Get8bit(
  4008         ISI_HEADER_SIZE + UICC_APPL_CMD_RESP_OFFSET_TRANSID ) );
  3991         ISI_HEADER_SIZE + UICC_APPL_CMD_RESP_OFFSET_TRANSID ) );
  4033             fileDataLength ) );
  4016             fileDataLength ) );
  4034         }
  4017         }
  4035     else // Subblock is mandatory
  4018     else // Subblock is mandatory
  4036         {
  4019         {
  4037         TFLOGSTRING("TSY: CSatMessHandler::UiccApplCmdResp - Mandatory subblock UICC_SB_FILE_DATA not found");
  4020         TFLOGSTRING("TSY: CSatMessHandler::UiccApplCmdResp - Mandatory subblock UICC_SB_FILE_DATA not found");
  4038         OstTrace0( TRACE_NORMAL, DUP1_CSATMESSHANDLER_UICCAPPLCMDRESP, "CSatMessHandler::UiccApplCmdResp - Mandatory subblock UICC_SB_FILE_DATA not found" );
  4021         OstTrace0( TRACE_NORMAL,  DUP1_CSATMESSHANDLER_UICCAPPLCMDRESP_TD, "CSatMessHandler::UiccApplCmdResp - Mandatory subblock UICC_SB_FILE_DATA not found" );
  4039         error = KErrNotFound;
  4022         error = KErrNotFound;
  4040         }
  4023         }
  4041 
  4024 
  4042     switch( trId )
  4025     switch( trId )
  4043         {
  4026         {
  4044         // Call control, SMS PP DD, USIM MO-SMS control
  4027         // Call control, SMS PP DD, USIM MO-SMS control
  4045         case KUiccTrIdServiceTableByte4:
  4028         case KUiccTrIdServiceTableByte4:
  4046             {
  4029             {
  4047             if ( KErrNone == error )
  4030             if ( KErrNone == error )
  4048                 {
  4031                 {
  4049                 TUint8 usedBitMaskSmsPpDd( KSmsPpDdBitMaskUsim );
  4032                 // MO SMS control status, only in case of USIM
  4050                 if ( UICC_CARD_TYPE_ICC == iCardType )
  4033                 SimMoSmsControlAvail(
       
  4034                     fileData[0] & KMoSmsControlBitMaskUsim );
       
  4035 
       
  4036                 iTsySatMessaging->GetDataDownload()->SmsPpDlSupported( 
       
  4037                     fileData[0] & KSmsPpDdBitMaskUsim );
       
  4038                 }
       
  4039             break;
       
  4040             }
       
  4041         // MO SMS control ( this transaction ID is used for SIM only )
       
  4042         case KUiccTrIdServiceTableByte10:
       
  4043             {
       
  4044             if ( KErrNone == error )
       
  4045                 {
       
  4046                 // MO SMS control status, only in case of USIM
       
  4047                 SimMoSmsControlAvail( 
       
  4048                     KMoSmsControlBitMaskSim == ( fileData[0] & KMoSmsControlBitMaskSim ) );
       
  4049                 }
       
  4050             break;
       
  4051             }
       
  4052         // USSD in Call Control ( this transaction ID is used for SIM only )
       
  4053         case KUiccTrIdServiceTableByte11:
       
  4054             {
       
  4055             iTsySatMessaging->SetStatusOfUssdSupport(
       
  4056                 KMoUssdCallControlBitMaskSim == ( fileData[0] & KMoUssdCallControlBitMaskSim ) );
       
  4057             break;
       
  4058             }
       
  4059         // SMS PP Datadownload ( this transaction ID is used for SIM only )
       
  4060         case KUiccTrIdServiceTableByte7:
       
  4061             {
       
  4062             if ( UICC_CARD_TYPE_UICC == iCardType )
       
  4063                 {
       
  4064                 TBool ppDdSupported( EFalse );
       
  4065                 if( KSmsPpDdBitMaskSim == ( fileData[0] & KSmsPpDdBitMaskSim ) )
  4051                     {
  4066                     {
  4052                     usedBitMaskSmsPpDd = KSmsPpDdBitMaskSim;
  4067                     ppDdSupported = ETrue;
  4053                     }
  4068                     }
  4054                 else
  4069                 iTsySatMessaging->GetDataDownload()->SmsPpDlSupported( ppDdSupported );
  4055                     {
  4070                 }
  4056                     // MO SMS control status, only in case of USIM
       
  4057                     SimMoSmsControlAvail(
       
  4058                         fileData[0] & KMoSmsControlBitMaskUsim );
       
  4059                     }
       
  4060                 // Get status of SMS PP DD and report to DataDownload
       
  4061                 iTsySatMessaging->GetDataDownload()->SmsPpDlSupported(
       
  4062                     ( fileData[0] & usedBitMaskSmsPpDd ) ? ETrue : EFalse );
       
  4063                 }
       
  4064             break;
       
  4065             }
       
  4066         // MO SMS control ( this transaction ID is used for SIM only )
       
  4067         case KUiccTrIdServiceTableByte5:
       
  4068             {
       
  4069             if ( KErrNone == error )
       
  4070                 {
       
  4071                 SimMoSmsControlAvail( fileData[0] & KMoSmsControlBitMaskSim );
       
  4072                 }
       
  4073             break;
       
  4074             }
       
  4075         // USSD in Call Control ( this transaction ID is used for SIM only )
       
  4076         case KUiccTrIdServiceTableByte6:
       
  4077             {
       
  4078             iTsySatMessaging->SetStatusOfUssdSupport(
       
  4079                 fileData[0] & KMoUssdCallControlBitMaskSim );
       
  4080             break;
  4071             break;
  4081             }
  4072             }
  4082         // SAT icon
  4073         // SAT icon
  4083         case KUiccTrIdReadSatIcon:
  4074         case KUiccTrIdReadSatIcon:
  4084             {
  4075             {
  4166         } // End of switch( trId )
  4157         } // End of switch( trId )
  4167     }
  4158     }
  4168 
  4159 
  4169 
  4160 
  4170 // -----------------------------------------------------------------------------
  4161 // -----------------------------------------------------------------------------
  4171 // CSatMessHandler::UiccCatInd
  4162 // CSatMessHandler::UiccCatIndL
  4172 // Breaks UICC_CAT_IND ISI-message.
  4163 // Breaks UICC_CAT_IND ISI-message.
  4173 // -----------------------------------------------------------------------------
  4164 // -----------------------------------------------------------------------------
  4174 //
  4165 //
  4175 void CSatMessHandler::UiccCatInd
  4166 void CSatMessHandler::UiccCatIndL
  4176     (
  4167     (
  4177     const TIsiReceiveC& aIsiMessage // Received ISI message
  4168     const TIsiReceiveC& aIsiMessage // Received ISI message
  4178     )
  4169     )
  4179     {
  4170     {
  4180     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_UICCCATIND, "CSatMessHandler::UiccCatInd" );
  4171     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_UICCCATINDL_TD, "CSatMessHandler::UiccCatIndL" );
  4181     TFLOGSTRING("TSY: CSatMessHandler::UiccCatInd");
  4172     TFLOGSTRING("TSY: CSatMessHandler::UiccCatIndL");
  4182 
  4173 
  4183     // UICC status
  4174     // UICC status
  4184     TUint8 serviceType( aIsiMessage.Get8bit(
  4175     TUint8 serviceType( aIsiMessage.Get8bit(
  4185         ISI_HEADER_SIZE + UICC_CAT_IND_OFFSET_SERVICETYPE ) );
  4176         ISI_HEADER_SIZE + UICC_CAT_IND_OFFSET_SERVICETYPE ) );
  4186 
  4177 
  4219             {
  4210             {
  4220             iTsySatMessaging->PCmdReceivedL( aIsiMessage );
  4211             iTsySatMessaging->PCmdReceivedL( aIsiMessage );
  4221             }
  4212             }
  4222         else
  4213         else
  4223             {
  4214             {
  4224             TFLOGSTRING("TSY: Received SAT message was not valid!");
  4215             TFLOGSTRING("TSY: CSatMessHandler::UiccCatIndL: Received SAT message was not valid!");
  4225             OstTrace0( TRACE_NORMAL, DUP1_CSATMESSHANDLER_UICCCATIND, "CSatMessHandler::UiccCatInd. Received SAT message was not valid!" );
  4216             OstTrace0( TRACE_NORMAL,  DUP1_CSATMESSHANDLER_UICCCATINDL_TD, "CSatMessHandler::UiccCatIndL. Received SAT message was not valid!" );
  4226             }
  4217             }
  4227         }
  4218         }
  4228     }
  4219     }
  4229 
  4220 
  4230 // -----------------------------------------------------------------------------
  4221 // -----------------------------------------------------------------------------
  4231 // CSatMessHandler::InfoPpReadReq
  4222 // CSatMessHandler::InfoPpReadReq
  4232 // Construct a INFO_PP_READ_REQ ISI message
  4223 // Construct a INFO_PP_READ_REQ ISI message
  4233 // -----------------------------------------------------------------------------
  4224 // -----------------------------------------------------------------------------
  4234 //
  4225 //
  4235 TInt CSatMessHandler::InfoPpReadReq
  4226 /*TInt CSatMessHandler::InfoPpReadReq
  4236         (
  4227         (
  4237         const TUint8 aReqType // request type
  4228         const TUint8 aReqType // request type
  4238         )
  4229         )
  4239     {
  4230     {
  4240     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_INFOPPREADREQ, "CSatMessHandler::InfoPpReadReq" );
  4231     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_INFOPPREADREQ_TD, "CSatMessHandler::InfoPpReadReq" );
  4241     TFLOGSTRING("TSY: CSatMessHandler::InfoPpReadReq" );
  4232     TFLOGSTRING("TSY: CSatMessHandler::InfoPpReadReq" );
  4242 
  4233 
  4243     // Construct INFO_PP_READ_REQ message (INFO_BATCH_TYPE +
  4234     // Construct INFO_PP_READ_REQ message (INFO_BATCH_TYPE +
  4244     // sub block count + INFO_SB_PP sub block)
  4235     // sub block count + INFO_SB_PP sub block)
  4245     TBuf8<2 + SIZE_INFO_SB_PP> infoPpReadReq;
  4236     TBuf8<2 + SIZE_INFO_SB_PP> infoPpReadReq;
  4285     return iPnSend->Send(
  4276     return iPnSend->Send(
  4286         PN_INFO,
  4277         PN_INFO,
  4287         tempTraId,
  4278         tempTraId,
  4288         INFO_PP_READ_REQ,
  4279         INFO_PP_READ_REQ,
  4289         infoPpReadReq );
  4280         infoPpReadReq );
  4290     }
  4281     }*/
  4291 
  4282 
  4292 // -----------------------------------------------------------------------------
  4283 // -----------------------------------------------------------------------------
  4293 // CSatMessHandler::InfoPpReadResp
  4284 // CSatMessHandler::InfoPpReadRespL
  4294 // Breaks a INFO_PP_READ_RESP ISI-message.
  4285 // Breaks a INFO_PP_READ_RESP ISI-message.
  4295 // -----------------------------------------------------------------------------
  4286 // -----------------------------------------------------------------------------
  4296 //
  4287 //
  4297 void CSatMessHandler::InfoPpReadResp
  4288 /*void CSatMessHandler::InfoPpReadRespL
  4298         (
  4289         (
  4299         const TIsiReceiveC& aIsiMessage
  4290         const TIsiReceiveC& aIsiMessage
  4300         )
  4291         )
  4301     {
  4292     {
  4302     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_INFOPPREADRESP, "CSatMessHandler::InfoPpReadResp" );
  4293     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_INFOPPREADRESPL_TD, "CSatMessHandler::InfoPpReadRespL" );
  4303     TFLOGSTRING("TSY: CSatMessHandler::InfoPpReadResp" );
  4294     TFLOGSTRING("TSY: CSatMessHandler::InfoPpReadRespL" );
  4304 
  4295 
  4305     TUint8 traId( aIsiMessage.Get8bit( ISI_HEADER_SIZE +
  4296     TUint8 traId( aIsiMessage.Get8bit( ISI_HEADER_SIZE +
  4306                             INFO_PP_READ_RESP_OFFSET_TRANSID ) );
  4297                             INFO_PP_READ_RESP_OFFSET_TRANSID ) );
  4307 
  4298 
  4308     TUint8 status( aIsiMessage.Get8bit( ISI_HEADER_SIZE +
  4299     TUint8 status( aIsiMessage.Get8bit( ISI_HEADER_SIZE +
  4309                             INFO_PP_READ_RESP_OFFSET_STATUS ) );
  4300                             INFO_PP_READ_RESP_OFFSET_STATUS ) );
  4310 
  4301 
  4311     TFLOGSTRING2("TSY: CSatMessHandler::InfoPpReadResp - Status: %d",
  4302     TFLOGSTRING2("TSY: CSatMessHandler::InfoPpReadRespL - Status: %d",
  4312         status );
  4303         status );
  4313     OstTraceExt1( TRACE_NORMAL, DUP1_CSATMESSHANDLER_INFOPPREADRESP, "CSatMessHandler::InfoPpReadResp - Status: %hhu", status );
  4304 OstTraceExt1( TRACE_NORMAL, DUP1_CSATMESSHANDLER_INFOPPREADRESPL_TD, "CSatMessHandler::InfoPpReadRespL - Status: %hhu", status );
  4314 
  4305 
  4315 
  4306 
  4316     switch ( status )
  4307     switch ( status )
  4317         {
  4308         {
  4318         case INFO_OK:
  4309         case INFO_OK:
  4344                     if ( INFO_PP_ATK_MO_SM_CONTROL == pPFeatures [0] )
  4335                     if ( INFO_PP_ATK_MO_SM_CONTROL == pPFeatures [0] )
  4345                         {
  4336                         {
  4346                         //Get the value of the MO SMS control feature
  4337                         //Get the value of the MO SMS control feature
  4347                         if ( INFO_PP_FALSE != pPFeatures [1] )
  4338                         if ( INFO_PP_FALSE != pPFeatures [1] )
  4348                             {
  4339                             {
  4349                             TFLOGSTRING("TSY: CSatMessHandler::InfoPpReadResp, MO SMS control supported by ME product profile" );
  4340                             TFLOGSTRING("TSY: CSatMessHandler::InfoPpReadRespL, MO SMS control supported by ME product profile" );
  4350                             OstTrace0( TRACE_NORMAL, DUP2_CSATMESSHANDLER_INFOPPREADRESP, "CSatMessHandler::InfoPpReadResp, MO SMS control supported by ME product profile" );
  4341                             OstTrace0( TRACE_NORMAL, DUP2_CSATMESSHANDLER_INFOPPREADRESPL_TD, "CSatMessHandler::InfoPpReadRespL, MO SMS control supported by ME product profile" );
  4351                             iMoSmsSupportedInPp = ETrue;
  4342                             iMoSmsSupportedInPp = ETrue;
       
  4343                             TInt ret( KErrNone );
  4352                             // Continue MO SMS control check by checking
  4344                             // Continue MO SMS control check by checking
  4353                             // feature availability from USIM
  4345                             // feature availability from USIM
  4354                             if ( UICC_CARD_TYPE_UICC == iCardType )
  4346                             if ( UICC_CARD_TYPE_UICC == iCardType )
  4355                                 {
  4347                                 {
  4356                                 // USIM: Read MO-SMS control from byte 4
  4348                                 // USIM: Read MO-SMS control from byte 4
  4357                                 UiccReadServiceTableReq( KUiccTrIdServiceTableByte4, 5 );
  4349                                 ret = UiccReadServiceTableReq( KUiccTrIdServiceTableByte4, 3 );
       
  4350                                 User::LeaveIfError( ret );
  4358                                 }
  4351                                 }
  4359                             else if ( UICC_CARD_TYPE_ICC == iCardType )
  4352                             else if ( UICC_CARD_TYPE_ICC == iCardType )
  4360                                 {
  4353                                 {
  4361                                 // SIM: Read MO-SMS control from byte 5
  4354                                 // SIM: Read MO-SMS control from byte 10
  4362                                 UiccReadServiceTableReq( KUiccTrIdServiceTableByte5, 6 );
  4355                                 ret = UiccReadServiceTableReq( KUiccTrIdServiceTableByte10, 9 );
       
  4356                                 User::LeaveIfError( ret );
  4363                                 }
  4357                                 }
  4364                             }
  4358                             }
  4365                         else
  4359                         else
  4366                             {
  4360                             {
  4367                             TFLOGSTRING("TSY: CSatMessHandler::InfoPpReadResp, MO SMS control not supported by ME product profile" );
  4361                             TFLOGSTRING("TSY: CSatMessHandler::InfoPpReadRespL, MO SMS control not supported by ME product profile" );
  4368                             OstTrace0( TRACE_NORMAL, DUP3_CSATMESSHANDLER_INFOPPREADRESP, "CSatMessHandler::InfoPpReadResp, MO SMS control not supported by ME product profile" );
  4362                             OstTrace0( TRACE_NORMAL, DUP3_CSATMESSHANDLER_INFOPPREADRESPL_TD, "CSatMessHandler::InfoPpReadRespL, MO SMS control not supported by ME product profile" );
  4369                             iMoSmsSupportedInPp = EFalse;
  4363                             iMoSmsSupportedInPp = EFalse;
  4370                             // Feature was not activated in product profile
  4364                             // Feature was not activated in product profile
  4371                             // Set MoSmsCtrl object´s member
  4365                             // Set MoSmsCtrl object´s member
  4372                             // iIsMoSmsCtrlActivated to EFalse
  4366                             // iIsMoSmsCtrlActivated to EFalse
  4373                             iTsySatMessaging->GetMoSmsCtrl()->Deactivate();
  4367                             iTsySatMessaging->GetMoSmsCtrl()->Deactivate();
  4379                     if ( INFO_PP_ENHANCED_NETWORK_SELECTION == pPFeatures [0] )
  4373                     if ( INFO_PP_ENHANCED_NETWORK_SELECTION == pPFeatures [0] )
  4380                         {
  4374                         {
  4381                         //Get the value of the ENS feature
  4375                         //Get the value of the ENS feature
  4382                         if ( INFO_PP_FALSE != pPFeatures [1] )
  4376                         if ( INFO_PP_FALSE != pPFeatures [1] )
  4383                             {
  4377                             {
  4384                             TFLOGSTRING("TSY: CSatMessHandler::InfoPpReadResp, INFO_PP_ENHANCED_NETWORK_SELECTION supported by ME product profile" );
  4378                             TFLOGSTRING("TSY: CSatMessHandler::InfoPpReadRespL, INFO_PP_ENHANCED_NETWORK_SELECTION supported by ME product profile" );
  4385                             OstTrace0( TRACE_NORMAL, DUP8_CSATMESSHANDLER_INFOPPREADRESP, "CSatMessHandler::InfoPpReadResp, INFO_PP_ENHANCED_NETWORK_SELECTION supported by ME product profile" );
  4379                             OstTrace0( TRACE_NORMAL, DUP8_CSATMESSHANDLER_INFOPPREADRESPL_TD, "CSatMessHandler::InfoPpReadRespL, INFO_PP_ENHANCED_NETWORK_SELECTION supported by ME product profile" );
  4386                             iEnsSupportedInPp = ETrue;
  4380                             iEnsSupportedInPp = ETrue;
  4387                             }
  4381                             }
  4388                         else
  4382                         else
  4389                             {
  4383                             {
  4390                             TFLOGSTRING("TSY: CSatMessHandler::InfoPpReadResp, INFO_PP_ENHANCED_NETWORK_SELECTION not supported by ME product profile" );
  4384                             TFLOGSTRING("TSY: CSatMessHandler::InfoPpReadRespL, INFO_PP_ENHANCED_NETWORK_SELECTION not supported by ME product profile" );
  4391                             OstTrace0( TRACE_NORMAL, DUP9_CSATMESSHANDLER_INFOPPREADRESP, "CSatMessHandler::InfoPpReadResp, INFO_PP_ENHANCED_NETWORK_SELECTION not supported by ME product profile" );
  4385                             OstTrace0( TRACE_NORMAL, DUP9_CSATMESSHANDLER_INFOPPREADRESPL_TD, "CSatMessHandler::InfoPpReadRespL, INFO_PP_ENHANCED_NETWORK_SELECTION not supported by ME product profile" );
  4392                             iEnsSupportedInPp = EFalse;
  4386                             iEnsSupportedInPp = EFalse;
  4393                             }
  4387                             }
  4394                         }
  4388                         }
  4395 #endif // INFO_PP_ENHANCED_NETWORK_SELECTION
  4389 #endif // INFO_PP_ENHANCED_NETWORK_SELECTION
  4396 
  4390 
  4398                     if ( INFO_PP_SIM_OLD_POLL_INTERVAL == pPFeatures [0] )
  4392                     if ( INFO_PP_SIM_OLD_POLL_INTERVAL == pPFeatures [0] )
  4399                         {
  4393                         {
  4400                         //Get the value of the SIM_POLL_INTERVAL control feature
  4394                         //Get the value of the SIM_POLL_INTERVAL control feature
  4401                         if ( INFO_PP_FALSE != pPFeatures [1] )
  4395                         if ( INFO_PP_FALSE != pPFeatures [1] )
  4402                             {
  4396                             {
  4403                             TFLOGSTRING("TSY: CSatMessHandler::InfoPpReadResp, INFO_PP_SIM_OLD_POLL_INTERVAL supported by ME product profile" );
  4397                             TFLOGSTRING("TSY: CSatMessHandler::InfoPpReadRespL, INFO_PP_SIM_OLD_POLL_INTERVAL supported by ME product profile" );
  4404                             OstTrace0( TRACE_NORMAL, DUP4_CSATMESSHANDLER_INFOPPREADRESP, "CSatMessHandler::InfoPpReadResp, INFO_PP_SIM_OLD_POLL_INTERVAL supported by ME product profile" );
  4398                             OstTrace0( TRACE_NORMAL, DUP4_CSATMESSHANDLER_INFOPPREADRESPL_TD, "CSatMessHandler::InfoPpReadRespL, INFO_PP_SIM_OLD_POLL_INTERVAL supported by ME product profile" );
  4405                             iOldPollIntervalSupportedInPp = ETrue;
  4399                             iOldPollIntervalSupportedInPp = ETrue;
  4406                             }
  4400                             }
  4407                         else
  4401                         else
  4408                             {
  4402                             {
  4409                             TFLOGSTRING("TSY: CSatMessHandler::InfoPpReadResp, INFO_PP_SIM_OLD_POLL_INTERVAL not supported by ME product profile" );
  4403                             TFLOGSTRING("TSY: CSatMessHandler::InfoPpReadRespL, INFO_PP_SIM_OLD_POLL_INTERVAL not supported by ME product profile" );
  4410                             OstTrace0( TRACE_NORMAL, DUP5_CSATMESSHANDLER_INFOPPREADRESP, "CSatMessHandler::InfoPpReadResp, INFO_PP_SIM_OLD_POLL_INTERVAL not supported by ME product profile" );
  4404                             OstTrace0( TRACE_NORMAL, DUP5_CSATMESSHANDLER_INFOPPREADRESPL_TD, "CSatMessHandler::InfoPpReadRespL, INFO_PP_SIM_OLD_POLL_INTERVAL not supported by ME product profile" );
  4411                             iOldPollIntervalSupportedInPp = EFalse;
  4405                             iOldPollIntervalSupportedInPp = EFalse;
  4412                             }
  4406                             }
  4413                         }
  4407                         }
  4414 #endif // INFO_PP_SIM_OLD_POLL_INTERVAL
  4408 #endif // INFO_PP_SIM_OLD_POLL_INTERVAL
  4415                     //no else
  4409                     //no else
  4417                 }
  4411                 }
  4418             break;
  4412             break;
  4419             }
  4413             }
  4420         case INFO_NO_NUMBER:
  4414         case INFO_NO_NUMBER:
  4421             {
  4415             {
  4422             TFLOGSTRING("TSY: CSatMessHandler::InfoPpReadResp, Requested feature not defined in product profile" );
  4416             TFLOGSTRING("TSY: CSatMessHandler::InfoPpReadRespL, Requested feature not defined in product profile" );
  4423             OstTrace0( TRACE_NORMAL, DUP6_CSATMESSHANDLER_INFOPPREADRESP, "CSatMessHandler::InfoPpReadResp, Requested feature not defined in product profile" );
  4417 OstTrace0( TRACE_NORMAL, DUP6_CSATMESSHANDLER_INFOPPREADRESPL_TD, "CSatMessHandler::InfoPpReadRespL, Requested feature not defined in product profile" );
  4424 #ifdef INFO_PP_ATK_MO_SM_CONTROL
  4418 #ifdef INFO_PP_ATK_MO_SM_CONTROL
  4425             // Request was for INFO_PP_ATK_MO_SM_CONTROL
  4419             // Request was for INFO_PP_ATK_MO_SM_CONTROL
  4426             if ( traId == iInfoPpMoSmsTraId )
  4420             if ( traId == iInfoPpMoSmsTraId )
  4427                 {
  4421                 {
  4428                 // If the MO SMS feature is not defined in product profile,
  4422                 // If the MO SMS feature is not defined in product profile,
  4429                 // internal Boolean used as feature supported ( for refresh )
  4423                 // internal Boolean used as feature supported ( for refresh )
  4430                 iMoSmsSupportedInPp = ETrue;
  4424                 iMoSmsSupportedInPp = ETrue;
       
  4425                 TInt ret( KErrNone );
  4431                 // Continue as usual by checking feature avalability from USIM
  4426                 // Continue as usual by checking feature avalability from USIM
  4432                 if ( UICC_CARD_TYPE_UICC == iCardType )
  4427                 if ( UICC_CARD_TYPE_UICC == iCardType )
  4433                     {
  4428                     {
  4434                     // USIM: Read MO-SMS control from byte 4
  4429                     // USIM: Read MO-SMS control from byte 4
  4435                     UiccReadServiceTableReq( KUiccTrIdServiceTableByte4, 5 );
  4430                     ret = UiccReadServiceTableReq( KUiccTrIdServiceTableByte4, 3 );
       
  4431                     User::LeaveIfError( ret );
  4436                     }
  4432                     }
  4437                 else if ( UICC_CARD_TYPE_ICC == iCardType )
  4433                 else if ( UICC_CARD_TYPE_ICC == iCardType )
  4438                     {
  4434                     {
  4439                     // SIM: Read MO-SMS control from byte 5
  4435                     // SIM: Read MO-SMS control from byte 10
  4440                     UiccReadServiceTableReq( KUiccTrIdServiceTableByte5, 6 );
  4436                     ret = UiccReadServiceTableReq( KUiccTrIdServiceTableByte10, 9 );
       
  4437                     User::LeaveIfError( ret );
  4441                     }
  4438                     }
  4442                 }
  4439                 }
  4443 #endif // INFO_PP_ATK_MO_SM_CONTROL
  4440 #endif // INFO_PP_ATK_MO_SM_CONTROL
  4444 
  4441 
  4445             break;
  4442             break;
  4446             }
  4443             }
  4447         case INFO_FAIL:
  4444         case INFO_FAIL:
  4448         default:
  4445         default:
  4449             {
  4446             {
  4450             TFLOGSTRING("TSY: CSatMessHandler::InfoPpReadResp, - default Requested feature not supported by ME product profile" );
  4447             TFLOGSTRING("TSY: CSatMessHandler::InfoPpReadRespL, - default Requested feature not supported by ME product profile" );
  4451             OstTrace0( TRACE_NORMAL, DUP7_CSATMESSHANDLER_INFOPPREADRESP, "CSatMessHandler::InfoPpReadResp, - default Requested feature not supported by ME product profile" );
  4448 OstTrace0( TRACE_NORMAL, DUP7_CSATMESSHANDLER_INFOPPREADRESPL_TD, "CSatMessHandler::InfoPpReadRespL, - default Requested feature not supported by ME product profile" );
  4452 #ifdef INFO_PP_ATK_MO_SM_CONTROL
  4449 #ifdef INFO_PP_ATK_MO_SM_CONTROL
  4453             // Request was for INFO_PP_ATK_MO_SM_CONTROL
  4450             // Request was for INFO_PP_ATK_MO_SM_CONTROL
  4454             if ( traId == iInfoPpMoSmsTraId )
  4451             if ( traId == iInfoPpMoSmsTraId )
  4455                 {
  4452                 {
  4456                 iMoSmsSupportedInPp = EFalse;
  4453                 iMoSmsSupportedInPp = EFalse;
  4464     // Zero iInfoPpMoSmsTraId if used. Not used by default.
  4461     // Zero iInfoPpMoSmsTraId if used. Not used by default.
  4465     if ( traId == iInfoPpMoSmsTraId )
  4462     if ( traId == iInfoPpMoSmsTraId )
  4466         {
  4463         {
  4467         iInfoPpMoSmsTraId = 0;
  4464         iInfoPpMoSmsTraId = 0;
  4468         }
  4465         }
  4469     }
  4466     }*/
  4470 
  4467 
  4471 
  4468 
  4472 // -----------------------------------------------------------------------------
  4469 // -----------------------------------------------------------------------------
  4473 // CSatMessHandler::CheckTlvObjects
  4470 // CSatMessHandler::CheckTlvObjects
  4474 // Validates every simple tlv object from proactive command
  4471 // Validates every simple tlv object from proactive command
  4475 // -----------------------------------------------------------------------------
  4472 // -----------------------------------------------------------------------------
  4476 //
  4473 //
  4477 TInt CSatMessHandler::CheckTlvObjects( CBerTlv& berTlv )
  4474 TInt CSatMessHandler::CheckTlvObjects( CBerTlv& berTlv )
  4478     {
  4475     {
  4479     TFLOGSTRING("TSY: CSatMessHandler::CheckTlvObjects" );
  4476     TFLOGSTRING("TSY: CSatMessHandler::CheckTlvObjects" );
  4480     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_CHECKTLVOBJECTS, "CSatMessHandler::CheckTlvObjects" );
  4477     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_CHECKTLVOBJECTS_TD, "CSatMessHandler::CheckTlvObjects" );
  4481 
  4478 
  4482     TInt ret( KErrNone );
  4479     TInt ret( KErrNone );
  4483     TPtrC8 dataPtr = berTlv.Data();
  4480     TPtrC8 dataPtr = berTlv.Data();
  4484     TUint16 berTlvLength( berTlv.GetLength() );
  4481     TUint16 berTlvLength( berTlv.GetLength() );
  4485     TInt totalLength = 0;
  4482     TInt totalLength = 0;
  4518             // length of the simple TLV value must be 128-255, otherwise
  4515             // length of the simple TLV value must be 128-255, otherwise
  4519             // it is treaded as error
  4516             // it is treaded as error
  4520             if( 0x80 > dataPtr[index] || 0xFF < dataPtr[index] )
  4517             if( 0x80 > dataPtr[index] || 0xFF < dataPtr[index] )
  4521                 {
  4518                 {
  4522                 TFLOGSTRING2("TSY: CSatMessHandler::CheckTlvObjects: corrupted simple tlv obj, len: %d even it should be 128-255", dataPtr[index] );
  4519                 TFLOGSTRING2("TSY: CSatMessHandler::CheckTlvObjects: corrupted simple tlv obj, len: %d even it should be 128-255", dataPtr[index] );
  4523 OstTrace1( TRACE_NORMAL, DUP1_CSATMESSHANDLER_CHECKTLVOBJECTS, "CSatMessHandler::CheckTlvObjects; corrupted simple tlv obj, len: %d even it should be 128-255", dataPtr[index] );
  4520 OstTrace1( TRACE_NORMAL,  DUP1_CSATMESSHANDLER_CHECKTLVOBJECTS_TD, "CSatMessHandler::CheckTlvObjects; corrupted simple tlv obj, len: %d even it should be 128-255", dataPtr[index] );
  4524                 ret = KErrCorrupt;
  4521                 ret = KErrCorrupt;
  4525                 break;
  4522                 break;
  4526                 }
  4523                 }
  4527             }
  4524             }
  4528 
  4525 
  4532             // length of the simple TLV value must be 0-127, otherwise
  4529             // length of the simple TLV value must be 0-127, otherwise
  4533             // it is treaded as error
  4530             // it is treaded as error
  4534             if( 0x80 <= dataPtr[index] )
  4531             if( 0x80 <= dataPtr[index] )
  4535                 {
  4532                 {
  4536                 TFLOGSTRING2("TSY: CSatMessHandler::CheckTlvObjects: corrupted simple tlv obj, len: %d even it should be 0-127", dataPtr[index] );
  4533                 TFLOGSTRING2("TSY: CSatMessHandler::CheckTlvObjects: corrupted simple tlv obj, len: %d even it should be 0-127", dataPtr[index] );
  4537 OstTrace1( TRACE_NORMAL, DUP2_CSATMESSHANDLER_CHECKTLVOBJECTS, "CSatMessHandler::CheckTlvObjects; corrupted simple tlv obj, len: %d even it should be 0-127", dataPtr[index] );
  4534 OstTrace1( TRACE_NORMAL,  DUP2_CSATMESSHANDLER_CHECKTLVOBJECTS_TD, "CSatMessHandler::CheckTlvObjects; corrupted simple tlv obj, len: %d even it should be 0-127", dataPtr[index] );
  4538                 ret = KErrCorrupt;
  4535                 ret = KErrCorrupt;
  4539                 break;
  4536                 break;
  4540                 }
  4537                 }
  4541             }
  4538             }
  4542 
  4539 
  4553     // let's check does length from proactive command match to
  4550     // let's check does length from proactive command match to
  4554     // calculated length
  4551     // calculated length
  4555     if( berTlvLength != totalLength )
  4552     if( berTlvLength != totalLength )
  4556         {
  4553         {
  4557         TFLOGSTRING3("TSY: CSatMessHandler::CheckTlvObjects: proactive command len (%d) and calculated len (%d) doesn't match", berTlvLength, totalLength );
  4554         TFLOGSTRING3("TSY: CSatMessHandler::CheckTlvObjects: proactive command len (%d) and calculated len (%d) doesn't match", berTlvLength, totalLength );
  4558 OstTraceExt2( TRACE_NORMAL, DUP3_CSATMESSHANDLER_CHECKTLVOBJECTS, "CSatMessHandler::CheckTlvObjects; proactive command len (%d) and calculated len (%d) doesn't match", berTlvLength, totalLength );
  4555 OstTraceExt2( TRACE_NORMAL,  DUP3_CSATMESSHANDLER_CHECKTLVOBJECTS_TD, "CSatMessHandler::CheckTlvObjects; proactive command len (%d) and calculated len (%d) doesn't match", berTlvLength, totalLength );
  4559         ret = KErrCorrupt;
  4556         ret = KErrCorrupt;
  4560         }
  4557         }
  4561 
  4558 
  4562     return ret;
  4559     return ret;
  4563     }
  4560     }
  4569 // -----------------------------------------------------------------------------
  4566 // -----------------------------------------------------------------------------
  4570 //
  4567 //
  4571 void CSatMessHandler::SimMoSmsControlAvail( TUint8 aStatus )
  4568 void CSatMessHandler::SimMoSmsControlAvail( TUint8 aStatus )
  4572     {
  4569     {
  4573     TFLOGSTRING("TSY: CSatMessHandler::SimMoSmsControlAvail" );
  4570     TFLOGSTRING("TSY: CSatMessHandler::SimMoSmsControlAvail" );
  4574     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SIMMOSMSCONTROLAVAIL, "CSatMessHandler::SimMoSmsControlAvail" );
  4571     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_SIMMOSMSCONTROLAVAIL_TD, "CSatMessHandler::SimMoSmsControlAvail" );
  4575 
  4572 
  4576     if( SIM_SERV_OK == aStatus )
  4573     // Activate the MO-SMS Control in SMS server. This is done by
       
  4574     // sending a request SMS_RESOURCE_CONF_REQ to SMS server
       
  4575     TBuf8<SIZE_SMS_RESOURCE_CONF_REQ + SIZE_SMS_SB_RESOURCE_CONF> data;
       
  4576     // Append Configuration operation
       
  4577     data.Append( SMS_RES_CONF_SET );
       
  4578     // Number of Subblocks
       
  4579     data.Append( 1 );
       
  4580     // Add Subblock
       
  4581     TIsiSubBlock ResourceConfReqSb(
       
  4582         data,
       
  4583         SMS_SB_RESOURCE_CONF,
       
  4584         EIsiSubBlockTypeId16Len16 );
       
  4585 
       
  4586     if( aStatus )
  4577         {
  4587         {
  4578         // Set MoSmsCtrl object´s member iIsMoSmsCtrlActivated to ETrue
  4588         // Set MoSmsCtrl object´s member iIsMoSmsCtrlActivated to ETrue
  4579         iTsySatMessaging->GetMoSmsCtrl()->Activate();
  4589         iTsySatMessaging->GetMoSmsCtrl()->Activate();
  4580         // Activate the MO-SMS Control in SMS server. This is done by
       
  4581         // sending a request SMS_RESOURCE_CONF_REQ to SMS server
       
  4582         TBuf8<SIZE_SMS_RESOURCE_CONF_REQ + SIZE_SMS_SB_RESOURCE_CONF> data;
       
  4583         // Append Configuration operation
       
  4584         data.Append( SMS_RES_CONF_SET );
       
  4585         // Number of Subblocks
       
  4586         data.Append( 1 );
       
  4587         // Add Subblock
       
  4588         //SMS_RESOURCE_IDS to zero SMS_RES_ID_MASK_MO_SM_INIT 
       
  4589         TIsiSubBlock ResourceConfReqSb(
       
  4590             data,
       
  4591             SMS_SB_RESOURCE_CONF,
       
  4592             EIsiSubBlockTypeId16Len16 );
       
  4593     
       
  4594         TSatUtility::AppendWord( SMS_RES_ID_MO_SM_INIT, data );
  4590         TSatUtility::AppendWord( SMS_RES_ID_MO_SM_INIT, data );
  4595         TSatUtility::AppendWord( SMS_RES_ID_MASK_MO_SM_INIT, data);
  4591         }
  4596 
       
  4597         ResourceConfReqSb.CompleteSubBlock();
       
  4598         SmsResoureConfReq(
       
  4599             iTsySatMessaging->GetTransactionId(),
       
  4600             SMS_RESOURCE_CONF_REQ,
       
  4601             data );
       
  4602       }
       
  4603     // should not send SMS_RESOURCE_CONF_REQ if there is no MO SMS control enabled in SIM card
       
  4604     else
  4592     else
  4605       {
  4593         {
  4606       // Set MoSmsCtrl object´s member IsMoSmsCtrlDeActivated to EFalse
  4594         // Set MoSmsCtrl object´s member IsMoSmsCtrlDeActivated to EFalse
  4607       iTsySatMessaging->GetMoSmsCtrl()->Deactivate();
  4595         iTsySatMessaging->GetMoSmsCtrl()->Deactivate();
  4608       }
  4596         TSatUtility::AppendWord( 0x0000, data);
       
  4597         }
       
  4598     // SMS_RES_ID_MASK_MO_SM_INIT is the only "official" value for mask
       
  4599     TSatUtility::AppendWord( SMS_RES_ID_MASK_MO_SM_INIT, data);
       
  4600 
       
  4601     ResourceConfReqSb.CompleteSubBlock();
       
  4602     SmsResoureConfReq(
       
  4603         iTsySatMessaging->GetTransactionId(),
       
  4604         SMS_RESOURCE_CONF_REQ,
       
  4605         data );
  4609     }
  4606     }
  4610 
  4607 
  4611 // -----------------------------------------------------------------------------
  4608 // -----------------------------------------------------------------------------
  4612 // CSatMessHandler::UiccTerminalProfileReq
  4609 // CSatMessHandler::UiccTerminalProfileReq
  4613 // Send terminal profile
  4610 // Send terminal profile
  4614 // -----------------------------------------------------------------------------
  4611 // -----------------------------------------------------------------------------
  4615 //
  4612 //
  4616 void CSatMessHandler::UiccTerminalProfileReq()
  4613 void CSatMessHandler::UiccTerminalProfileReq()
  4617     {
  4614     {
  4618     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_UICCTERMINALPROFILEREQ, "CSatMessHandler::UiccTerminalProfileReq" );
  4615     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_UICCTERMINALPROFILEREQ_TD, "CSatMessHandler::UiccTerminalProfileReq" );
  4619     TFLOGSTRING("TSY: CSatMessHandler::UiccTerminalProfileReq");
  4616     TFLOGSTRING("TSY: CSatMessHandler::UiccTerminalProfileReq");
  4620 
  4617 
  4621     // Pointer to terminal profile buffer
  4618     // Pointer to terminal profile buffer
  4622     const TUint8* terminalProfilePtr( NULL );
  4619     const TUint8* terminalProfilePtr( NULL );
  4623     // Size of terminal profile
  4620     // Size of terminal profile
  4683 TInt CSatMessHandler::UiccReadServiceTableReq(
  4680 TInt CSatMessHandler::UiccReadServiceTableReq(
  4684     TUint8 aTrId,
  4681     TUint8 aTrId,
  4685     TUint16 aFileOffset )
  4682     TUint16 aFileOffset )
  4686     {
  4683     {
  4687     TFLOGSTRING2("TSY: CSatMessHandler::UiccReadServiceTableReq, transaction ID: %d", aTrId );
  4684     TFLOGSTRING2("TSY: CSatMessHandler::UiccReadServiceTableReq, transaction ID: %d", aTrId );
  4688     OstTraceExt1( TRACE_NORMAL, CSATMESSHANDLER_UICCREADSERVICETABLE, "CSatMessHandler::UiccReadServiceTableReq;aTrId=%hhu", aTrId );
  4685     OstTraceExt1( TRACE_NORMAL,  CSATMESSHANDLER_UICCREADSERVICETABLE_TD, "CSatMessHandler::UiccReadServiceTableReq;aTrId=%hhu", aTrId );
  4689 
  4686 
  4690     TIsiSend isiMsg( iPnSend->SendBufferDes() );
  4687     TIsiSend isiMsg( iPnSend->SendBufferDes() );
  4691     isiMsg.Set8bit( ISI_HEADER_OFFSET_RESOURCEID, PN_UICC );
  4688     isiMsg.Set8bit( ISI_HEADER_OFFSET_RESOURCEID, PN_UICC );
  4692     isiMsg.Set8bit(
  4689     isiMsg.Set8bit(
  4693         ISI_HEADER_SIZE + UICC_APPL_CMD_REQ_OFFSET_TRANSID,
  4690         ISI_HEADER_SIZE + UICC_APPL_CMD_REQ_OFFSET_TRANSID,
  4982 // -----------------------------------------------------------------------------
  4979 // -----------------------------------------------------------------------------
  4983 //
  4980 //
  4984 TInt CSatMessHandler::UiccCatReq( TUint8 aCommand )
  4981 TInt CSatMessHandler::UiccCatReq( TUint8 aCommand )
  4985     {
  4982     {
  4986     TFLOGSTRING("TSY: CSatMessHandler::UiccCatReq");
  4983     TFLOGSTRING("TSY: CSatMessHandler::UiccCatReq");
  4987     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_UICCCATREQ, "CSatMessHandler::UiccCatReq" );
  4984     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_UICCCATREQ_TD, "CSatMessHandler::UiccCatReq" );
  4988 
  4985 
  4989     TIsiSend isiMsg( iPnSend->SendBufferDes() );
  4986     TIsiSend isiMsg( iPnSend->SendBufferDes() );
  4990     isiMsg.Set8bit( ISI_HEADER_OFFSET_RESOURCEID, PN_UICC );
  4987     isiMsg.Set8bit( ISI_HEADER_OFFSET_RESOURCEID, PN_UICC );
  4991     isiMsg.Set8bit(
  4988     isiMsg.Set8bit(
  4992         ISI_HEADER_SIZE + UICC_CAT_REQ_OFFSET_TRANSID,
  4989         ISI_HEADER_SIZE + UICC_CAT_REQ_OFFSET_TRANSID,
  5017     const TUint8 aServiceType,    // Type of refresh
  5014     const TUint8 aServiceType,    // Type of refresh
  5018     TDes8& aFileList,             // List of files
  5015     TDes8& aFileList,             // List of files
  5019     const TDesC8& aAid )          // Application ID (USIM)
  5016     const TDesC8& aAid )          // Application ID (USIM)
  5020     {
  5017     {
  5021     TFLOGSTRING("TSY: CSatMessHandler::UiccCatReqRefresh");
  5018     TFLOGSTRING("TSY: CSatMessHandler::UiccCatReqRefresh");
  5022     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_UICCCATREQREFRESH, "CSatMessHandler::UiccCatReqRefresh" );
  5019     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_UICCCATREQREFRESH_TD, "CSatMessHandler::UiccCatReqRefresh" );
  5023 
  5020 
  5024     TUint8 numOfSubblocks( 1 ); // One mandatory subblock UICC_SB_REFRESH
  5021     TUint8 numOfSubblocks( 1 ); // One mandatory subblock UICC_SB_REFRESH
  5025     TUint8 uiccSbOffset(
  5022     TUint8 uiccSbOffset(
  5026         ISI_HEADER_SIZE + SIZE_UICC_CAT_REQ + SIZE_UICC_SB_REFRESH );
  5023         ISI_HEADER_SIZE + SIZE_UICC_CAT_REQ + SIZE_UICC_SB_REFRESH );
  5027 
  5024 
  5083         TInt position( aFileList.LocateReverse( KRefreshMasterFileHeader ) );
  5080         TInt position( aFileList.LocateReverse( KRefreshMasterFileHeader ) );
  5084         if ( KErrNotFound == position )
  5081         if ( KErrNotFound == position )
  5085             {
  5082             {
  5086             // File path is corrupted
  5083             // File path is corrupted
  5087             TFLOGSTRING("TSY: CSatMessHandler::SimAtkReq, File path is corrupted");
  5084             TFLOGSTRING("TSY: CSatMessHandler::SimAtkReq, File path is corrupted");
  5088             OstTrace0( TRACE_NORMAL, DUP1_CSATMESSHANDLER_UICCCATREQREFRESH, "CSatMessHandler::UiccCatReqRefresh,File path is corrupted" );
  5085             OstTrace0( TRACE_NORMAL,  DUP1_CSATMESSHANDLER_UICCCATREQREFRESH_TD, "CSatMessHandler::UiccCatReqRefresh,File path is corrupted" );
  5089             break;
  5086             break;
  5090             }
  5087             }
  5091 
  5088 
  5092         // Length of file path
  5089         // Length of whole file path (file path + file id)
  5093         TUint8 length( (TUint8) ( aFileList.Length() - position ) );
  5090         TUint8 length( (TUint8) ( aFileList.Length() - position ) );
       
  5091         // length of file path (without file id)
       
  5092         TUint8 pathLength( (TUint8) ( length - KUiccFileIdLength ) );
  5094         // File path
  5093         // File path
  5095         TBuf8<KUiccFilePathLength> filePath(
  5094         TBuf8<KUiccFilePathLength> filePath(
  5096             aFileList.Mid( position, length ) );
  5095             aFileList.Mid( position, length ) );
  5097         // File ID is two last bytes
  5096         // File ID is two last bytes
  5098         TBuf8<KUiccFileIdLength> fileId(
  5097         TBuf8<KUiccFileIdLength> fileId(
  5109         // File ID SFI is not known
  5108         // File ID SFI is not known
  5110         uiccSbApplPathBuf.Append( UICC_SFI_NOT_PRESENT );
  5109         uiccSbApplPathBuf.Append( UICC_SFI_NOT_PRESENT );
  5111         // Filler
  5110         // Filler
  5112         uiccSbApplPathBuf.Append( KUiccPadding );
  5111         uiccSbApplPathBuf.Append( KUiccPadding );
  5113         // File path length in bytes
  5112         // File path length in bytes
  5114         uiccSbApplPathBuf.Append( length );
  5113         uiccSbApplPathBuf.Append( pathLength );
  5115         // Filler
  5114         // Filler
  5116         uiccSbApplPathBuf.Append( KUiccPadding );
  5115         uiccSbApplPathBuf.Append( KUiccPadding );
  5117         // File path
  5116         // File path
  5118         uiccSbApplPathBuf.Append( filePath );
  5117         uiccSbApplPathBuf.Append( filePath.Mid( 0, pathLength ) );
  5119         // Append subblock to ISI message
  5118         // Append subblock to ISI message
  5120         isiMsg.CopyData( uiccSbOffset, uiccSbApplPath.CompleteSubBlock() );
  5119         isiMsg.CopyData( uiccSbOffset, uiccSbApplPath.CompleteSubBlock() );
  5121         // Update subblock offset
  5120         // Update subblock offset
  5122         uiccSbOffset += uiccSbApplPathBuf.Length();
  5121         uiccSbOffset += uiccSbApplPathBuf.Length();
  5123 
  5122 
  5147     const TDes8& aCommandDetails,         // Command details tlv
  5146     const TDes8& aCommandDetails,         // Command details tlv
  5148     const TDesC8& aBerTlvSpecificData,    // BER-TLV specific data
  5147     const TDesC8& aBerTlvSpecificData,    // BER-TLV specific data
  5149     const TUint8 aTransId )
  5148     const TUint8 aTransId )
  5150     {
  5149     {
  5151     TFLOGSTRING("TSY: CSatMessHandler::UiccCatReqTerminalResponse");
  5150     TFLOGSTRING("TSY: CSatMessHandler::UiccCatReqTerminalResponse");
  5152     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_UICCCATREQTERMINALRESPONSE, "CSatMessHandler::UiccCatReqTerminalResponse" );
  5151     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_UICCCATREQTERMINALRESPONSE_TD, "CSatMessHandler::UiccCatReqTerminalResponse" );
  5153 
  5152 
  5154     TIsiSend isiMsg( iPnSend->SendBufferDes() );
  5153     TIsiSend isiMsg( iPnSend->SendBufferDes() );
  5155     isiMsg.Set8bit( ISI_HEADER_OFFSET_RESOURCEID, PN_UICC );
  5154     isiMsg.Set8bit( ISI_HEADER_OFFSET_RESOURCEID, PN_UICC );
  5156     isiMsg.Set8bit(
  5155     isiMsg.Set8bit(
  5157         ISI_HEADER_SIZE + UICC_CAT_REQ_OFFSET_TRANSID,
  5156         ISI_HEADER_SIZE + UICC_CAT_REQ_OFFSET_TRANSID,
  5210         }
  5209         }
  5211 
  5210 
  5212     // Save terminal resp transaction id
  5211     // Save terminal resp transaction id
  5213     iTerminalRespTraId = aTransId;
  5212     iTerminalRespTraId = aTransId;
  5214     TFLOGSTRING2("TSY: CSatMessHandler::UiccCatReqTerminalResponse iTerminalRespTraId=%d", iTerminalRespTraId);
  5213     TFLOGSTRING2("TSY: CSatMessHandler::UiccCatReqTerminalResponse iTerminalRespTraId=%d", iTerminalRespTraId);
  5215     OstTrace1( TRACE_NORMAL, DUP1_CSATMESSHANDLER_UICCCATREQTERMINALRESPONSE, "CSatMessHandler::UiccCatReqTerminalResponse;iTerminalRespTraId=%d", iTerminalRespTraId );
  5214     OstTrace1( TRACE_NORMAL,  DUP1_CSATMESSHANDLER_UICCCATREQTERMINALRESPONSE_TD, "CSatMessHandler::UiccCatReqTerminalResponse;iTerminalRespTraId=%d", iTerminalRespTraId );
  5216 
  5215 
  5217     // Append subblock to ISI message
  5216     // Append subblock to ISI message
  5218     isiMsg.CopyData(
  5217     isiMsg.CopyData(
  5219         ISI_HEADER_SIZE + SIZE_UICC_CAT_REQ,
  5218         ISI_HEADER_SIZE + SIZE_UICC_CAT_REQ,
  5220         uiccSbTerminalResponse.CompleteSubBlock() );
  5219         uiccSbTerminalResponse.CompleteSubBlock() );
  5227 // Handles UICC response for envelope
  5226 // Handles UICC response for envelope
  5228 // -----------------------------------------------------------------------------
  5227 // -----------------------------------------------------------------------------
  5229 //
  5228 //
  5230 TBool CSatMessHandler::UiccCatRespEnvelope( const TIsiReceiveC& aIsiMessage )
  5229 TBool CSatMessHandler::UiccCatRespEnvelope( const TIsiReceiveC& aIsiMessage )
  5231     {
  5230     {
  5232     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_UICCCATENVELOPERESP, "CSatMessHandler::UiccCatRespEnvelope" );
  5231     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_UICCCATENVELOPERESP_TD, "CSatMessHandler::UiccCatRespEnvelope" );
  5233     TFLOGSTRING("TSY:CSatMessHandler::UiccCatRespEnvelope");
  5232     TFLOGSTRING("TSY:CSatMessHandler::UiccCatRespEnvelope");
  5234 
  5233 
  5235     TBool handled( EFalse );
  5234     TBool handled( EFalse );
  5236     TUint8 trId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_TRANSID ) );
  5235     TUint8 trId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_TRANSID ) );
  5237 
  5236 
  5255         if ( KAtkSwDataNtfSw1NormalEnding == sw1
  5254         if ( KAtkSwDataNtfSw1NormalEnding == sw1
  5256             && KAtkSwDataNtfSw2NormalEnding == sw2 )
  5255             && KAtkSwDataNtfSw2NormalEnding == sw2 )
  5257             {
  5256             {
  5258             // SIM responded OK. Remove stored envelope.
  5257             // SIM responded OK. Remove stored envelope.
  5259             iTsySatMessaging->GetSatTimer()->RemoveEnvelope( trId );
  5258             iTsySatMessaging->GetSatTimer()->RemoveEnvelope( trId );
       
  5259 
       
  5260             if ( iTerminalRespTraId == trId )
       
  5261                 {
       
  5262                 iTsySatMessaging->SessionEnd( aIsiMessage );
       
  5263                 iTerminalRespTraId = KNoTransactionOngoing;
       
  5264                 }
  5260             }
  5265             }
  5261         else
  5266         else
  5262             {
  5267             {
  5263             // Problems in envelope sending, resend envelope if appropriate.
  5268             // Problems in envelope sending, resend envelope if appropriate.
  5264             if ( KErrNone == iTsySatMessaging->GetSatTimer()->
  5269             if ( KErrNone == iTsySatMessaging->GetSatTimer()->
  5265                 ActivateEnvelopeResend( trId, sw1 ) )
  5270                 ActivateEnvelopeResend( trId, sw1 ) )
  5266                 {
  5271                 {
  5267                 TFLOGSTRING( "TSY:CSatMessHandler::UiccCatRespEnvelope, resending of envelope" );
  5272                 TFLOGSTRING( "TSY:CSatMessHandler::UiccCatRespEnvelope, resending of envelope" );
  5268                 OstTrace0( TRACE_NORMAL, DUP2_CSATMESSHANDLER_UICCCATENVELOPERESP, "CSatMessHandler::UiccCatRespEnvelope,resending of envelope" );
  5273                 OstTrace0( TRACE_NORMAL,  DUP2_CSATMESSHANDLER_UICCCATENVELOPERESP_TD, "CSatMessHandler::UiccCatRespEnvelope,resending of envelope" );
  5269                 // Envelope will be resent, mark as handled
  5274                 // Envelope will be resent, mark as handled
  5270                 handled = ETrue;
  5275                 handled = ETrue;
  5271                 }
  5276                 }
  5272             }
  5277             }
  5273         }
  5278         }
  5274     else // Subblock is mandatory
  5279     else // Subblock is mandatory
  5275         {
  5280         {
  5276         TFLOGSTRING("TSY: CSatMessHandler::UiccCatRespEnvelope - Mandatory subblock UICC_SB_APDU not found");
  5281         TFLOGSTRING("TSY: CSatMessHandler::UiccCatRespEnvelope - Mandatory subblock UICC_SB_APDU not found");
  5277         OstTrace0( TRACE_NORMAL, DUP1_CSATMESSHANDLER_UICCCATENVELOPERESP, "CSatMessHandler::UiccCatRespEnvelope- Mandatory subblock UICC_SB_APDU not found" );
  5282         OstTrace0( TRACE_NORMAL,  DUP1_CSATMESSHANDLER_UICCCATENVELOPERESP_TD, "CSatMessHandler::UiccCatRespEnvelope- Mandatory subblock UICC_SB_APDU not found" );
  5278         }
  5283         }
  5279 
  5284 
  5280     return handled;
  5285     return handled;
  5281     }
  5286     }
  5282 
  5287 
  5287 // -----------------------------------------------------------------------------
  5292 // -----------------------------------------------------------------------------
  5288 //
  5293 //
  5289 TBool CSatMessHandler::UiccCatRespTerminalResponse(
  5294 TBool CSatMessHandler::UiccCatRespTerminalResponse(
  5290     const TIsiReceiveC& aIsiMessage )
  5295     const TIsiReceiveC& aIsiMessage )
  5291     {
  5296     {
  5292     OstTrace0( TRACE_NORMAL, DUP2_CSATMESSHANDLER_UICCCATRESPTERMINALRESPONSE, "CSatMessHandler::UiccCatRespTerminalResponse" );
  5297     OstTrace0( TRACE_NORMAL,  DUP2_CSATMESSHANDLER_UICCCATRESPTERMINALRESPONSE_TD, "CSatMessHandler::UiccCatRespTerminalResponse" );
  5293     TFLOGSTRING("TSY:CSatMessHandler::UiccCatRespTerminalResponse");
  5298     TFLOGSTRING("TSY:CSatMessHandler::UiccCatRespTerminalResponse");
  5294 
  5299 
  5295     TBool handled( EFalse );
  5300     TBool handled( EFalse );
  5296     TUint8 trId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_TRANSID ) );
  5301     TUint8 trId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_TRANSID ) );
  5297 
  5302 
  5314 
  5319 
  5315         if ( KAtkSwDataNtfSw1NormalEnding == sw1
  5320         if ( KAtkSwDataNtfSw1NormalEnding == sw1
  5316             && KAtkSwDataNtfSw2NormalEnding == sw2 )
  5321             && KAtkSwDataNtfSw2NormalEnding == sw2 )
  5317             {
  5322             {
  5318             TFLOGSTRING("CSatMessHandler::UiccCatRespTerminalResponse, - SIM SESSION END, 90 00 -");
  5323             TFLOGSTRING("CSatMessHandler::UiccCatRespTerminalResponse, - SIM SESSION END, 90 00 -");
  5319             OstTrace0( TRACE_NORMAL, DUP1_CSATMESSHANDLER_UICCCATRESPTERMINALRESPONSE, "CSatMessHandler::UiccCatRespTerminalResponse" );
  5324             OstTrace0( TRACE_NORMAL,  DUP1_CSATMESSHANDLER_UICCCATRESPTERMINALRESPONSE_TD, "CSatMessHandler::UiccCatRespTerminalResponse" );
  5320 
  5325 
  5321             iTsySatMessaging->SessionEnd( aIsiMessage );
  5326             iTsySatMessaging->SessionEnd( aIsiMessage );
  5322 
  5327 
  5323             // Set flag to indicate that terminal response has been
  5328             // Set flag to indicate that terminal response has been
  5324             // processed by the SIM with status '90 00'.
  5329             // processed by the SIM with status '90 00'.
  5325             iTsySatMessaging->GetSatTimer()->
  5330             iTsySatMessaging->GetSatTimer()->
  5326                 SetProactiveCommandOnGoingStatus( EFalse );
  5331                 SetProactiveCommandOnGoingStatus( EFalse );
       
  5332             iTerminalRespTraId = KNoTransactionOngoing;
  5327             }
  5333             }
  5328         handled = ETrue;
  5334         handled = ETrue;
  5329 
  5335 
  5330 #ifdef INFO_PP_ENHANCED_NETWORK_SELECTION
  5336 #ifdef INFO_PP_ENHANCED_NETWORK_SELECTION
  5331         // Only if SET UP EVENT LIST TR is sent
  5337         // Only if SET UP EVENT LIST TR is sent
  5337 #endif // INFO_PP_ENHANCED_NETWORK_SELECTION
  5343 #endif // INFO_PP_ENHANCED_NETWORK_SELECTION
  5338         }
  5344         }
  5339     else // Subblock is not found
  5345     else // Subblock is not found
  5340         {
  5346         {
  5341         TFLOGSTRING("TSY: CSatMessHandler::UiccCatRespTerminalResponse - Subblock UICC_SB_APDU not found");
  5347         TFLOGSTRING("TSY: CSatMessHandler::UiccCatRespTerminalResponse - Subblock UICC_SB_APDU not found");
  5342         OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_UICCCATRESPTERMINALRESPONSE, "CSatMessHandler::UiccCatRespTerminalResponse" );
  5348         OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_UICCCATRESPTERMINALRESPONSE_TD, "CSatMessHandler::UiccCatRespTerminalResponse" );
  5343         }
  5349         }
  5344 
  5350 
  5345     return handled;
  5351     return handled;
  5346     }
  5352     }
  5347 
  5353 
  5352 // -----------------------------------------------------------------------------
  5358 // -----------------------------------------------------------------------------
  5353 //
  5359 //
  5354 const TDesC8& CSatMessHandler::GetApplicationFileId()
  5360 const TDesC8& CSatMessHandler::GetApplicationFileId()
  5355     {
  5361     {
  5356     TFLOGSTRING("TSY: CSatMessHandler::GetApplicationId");
  5362     TFLOGSTRING("TSY: CSatMessHandler::GetApplicationId");
  5357     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_GETAPPLICATIONID, "CSatMessHandler::GetApplicationId" );
  5363     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_GETAPPLICATIONID_TD, "CSatMessHandler::GetApplicationId" );
  5358     return iApplFileId;
  5364     return iApplFileId;
  5359     }
  5365     }
  5360 
  5366 
  5361 
  5367 
  5362 // -----------------------------------------------------------------------------
  5368 // -----------------------------------------------------------------------------
  5364 // Set status of iSatReady flag
  5370 // Set status of iSatReady flag
  5365 // -----------------------------------------------------------------------------
  5371 // -----------------------------------------------------------------------------
  5366 //
  5372 //
  5367 void CSatMessHandler::SetSatReadyStatus( TBool aSatReadyStatus )
  5373 void CSatMessHandler::SetSatReadyStatus( TBool aSatReadyStatus )
  5368     {
  5374     {
  5369     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SETSATREADYSTATUS, "CSatMessHandler::SetSatReadyStatus" );
  5375     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_SETSATREADYSTATUS_TD, "CSatMessHandler::SetSatReadyStatus" );
  5370     TFLOGSTRING("TSY: CSatMessHandler::SetSatReadyStatus");
  5376     TFLOGSTRING("TSY: CSatMessHandler::SetSatReadyStatus");
  5371     iSatReady = aSatReadyStatus;
  5377     iSatReady = aSatReadyStatus;
  5372     }
  5378     }
  5373 
  5379 
  5374 
  5380 
  5378 // -----------------------------------------------------------------------------
  5384 // -----------------------------------------------------------------------------
  5379 //
  5385 //
  5380 TBool CSatMessHandler::GetSatReadyStatus()
  5386 TBool CSatMessHandler::GetSatReadyStatus()
  5381     {
  5387     {
  5382     TFLOGSTRING("TSY: CSatMessHandler::GetSatReadyStatus");
  5388     TFLOGSTRING("TSY: CSatMessHandler::GetSatReadyStatus");
  5383     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_GETSATREADYSTATUS, "CSatMessHandler::GetSatReadyStatus" );
  5389     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_GETSATREADYSTATUS_TD, "CSatMessHandler::GetSatReadyStatus" );
  5384     return iSatReady;
  5390     return iSatReady;
  5385     }
  5391     }
  5386 
  5392 
  5387 
  5393 
  5388 // -----------------------------------------------------------------------------
  5394 // -----------------------------------------------------------------------------
  5391 // -----------------------------------------------------------------------------
  5397 // -----------------------------------------------------------------------------
  5392 //
  5398 //
  5393 TBool CSatMessHandler::GetTerminalProfileStatus()
  5399 TBool CSatMessHandler::GetTerminalProfileStatus()
  5394     {
  5400     {
  5395     TFLOGSTRING("TSY: CSatMessHandler::GetTerminalProfileStatus");
  5401     TFLOGSTRING("TSY: CSatMessHandler::GetTerminalProfileStatus");
  5396     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_GETTERMINALPROFILESTATUS, "CSatMessHandler::GetTerminalProfileStatus" );
  5402     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_GETTERMINALPROFILESTATUS_TD, "CSatMessHandler::GetTerminalProfileStatus" );
  5397     return iTerminalProfileSent;
  5403     return iTerminalProfileSent;
  5398     }
  5404     }
  5399 
  5405 
  5400 
  5406 
  5401 // -----------------------------------------------------------------------------
  5407 // -----------------------------------------------------------------------------
  5404 // -----------------------------------------------------------------------------
  5410 // -----------------------------------------------------------------------------
  5405 //
  5411 //
  5406 const TDesC8& CSatMessHandler::GetClut()
  5412 const TDesC8& CSatMessHandler::GetClut()
  5407     {
  5413     {
  5408     TFLOGSTRING("TSY: CSatMessHandler::SetImageInstanceRequestStatus");
  5414     TFLOGSTRING("TSY: CSatMessHandler::SetImageInstanceRequestStatus");
  5409     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_GETCLUT, "CSatMessHandler::GetClut" );
  5415     OstTrace0( TRACE_NORMAL,  CSATMESSHANDLER_GETCLUT_TD, "CSatMessHandler::GetClut" );
  5410     return iClutData;
  5416     return iClutData;
  5411     }
  5417     }
  5412 
  5418 
  5413 
  5419 
  5414 // End of file
  5420 // End of file