adaptationlayer/tsy/simatktsy_dll/src/satdatadownload.cpp
changeset 9 8486d82aef45
parent 8 6295dc2169f3
equal deleted inserted replaced
8:6295dc2169f3 9:8486d82aef45
     1 /*
     1 /*
     2 * Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 * Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
     3 * All rights reserved.
     3 * All rights reserved.
     4 * This component and the accompanying materials are made available
     4 * This component and the accompanying materials are made available
     5 * under the terms of the License "Eclipse Public License v1.0"
     5 * under the terms of the License "Eclipse Public License v1.0"
     6 * which accompanies this distribution, and is available
     6 * which accompanies this distribution, and is available
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
    48 const TUint8 KParamIndicatorsLength     = 1;
    48 const TUint8 KParamIndicatorsLength     = 1;
    49 // Max Info Length
    49 // Max Info Length
    50 const TUint8 KMaxInfoLength             = 82;
    50 const TUint8 KMaxInfoLength             = 82;
    51 // SMS Delivery report buffer size
    51 // SMS Delivery report buffer size
    52 const TUint8 KDeliveryReportSize        = 248;
    52 const TUint8 KDeliveryReportSize        = 248;
       
    53 // Length of sw1 and sw2
       
    54 const TUint8 KSw1Sw2Length              = 2;
    53 
    55 
    54 
    56 
    55 // ==================== MEMBER FUNCTIONS ====================================
    57 // ==================== MEMBER FUNCTIONS ====================================
    56 
    58 
    57 // -----------------------------------------------------------------------------
    59 // -----------------------------------------------------------------------------
    72         iSmsPpDcs( KZero ),
    74         iSmsPpDcs( KZero ),
    73         iSmsPpTransactionId( KZero ),
    75         iSmsPpTransactionId( KZero ),
    74         iSmsPpDdOngoing( EFalse ), // No SMS PP DD on going during construction
    76         iSmsPpDdOngoing( EFalse ), // No SMS PP DD on going during construction
    75         iSmsPpDdSupported( ETrue ) // Most likely SIM supports SMS PP DD
    77         iSmsPpDdSupported( ETrue ) // Most likely SIM supports SMS PP DD
    76     {
    78     {
    77     OstTrace0( TRACE_NORMAL, CSATDATADOWNLOAD_CSATDATADOWNLOAD, "CSatDataDownload::CSatDataDownload" );
    79     OstTrace0( TRACE_NORMAL,  CSATDATADOWNLOAD_CSATDATADOWNLOAD_TD, "CSatDataDownload::CSatDataDownload" );
    78     }
    80     }
    79 
    81 
    80 
    82 
    81 // -----------------------------------------------------------------------------
    83 // -----------------------------------------------------------------------------
    82 // CSatDataDownload::ConstructL
    84 // CSatDataDownload::ConstructL
    83 // Symbian 2nd phase constructor can leave.
    85 // Symbian 2nd phase constructor can leave.
    84 // -----------------------------------------------------------------------------
    86 // -----------------------------------------------------------------------------
    85 //
    87 //
    86 void CSatDataDownload::ConstructL()
    88 void CSatDataDownload::ConstructL()
    87     {
    89     {
    88     OstTrace0( TRACE_NORMAL, CSATDATADOWNLOAD_CONSTRUCTL, "CSatDataDownload::ConstructL" );
    90     OstTrace0( TRACE_NORMAL,  CSATDATADOWNLOAD_CONSTRUCTL_TD, "CSatDataDownload::ConstructL" );
    89     }
    91     }
    90 
    92 
    91 // -----------------------------------------------------------------------------
    93 // -----------------------------------------------------------------------------
    92 // CSatDataDownload::NewL
    94 // CSatDataDownload::NewL
    93 // Two-phased constructor.
    95 // Two-phased constructor.
    97         (
    99         (
    98         CSatMessHandler*    aSatMessHandler,
   100         CSatMessHandler*    aSatMessHandler,
    99         CTsySatMessaging*   aSatMessaging
   101         CTsySatMessaging*   aSatMessaging
   100         )
   102         )
   101     {
   103     {
   102     OstTrace0( TRACE_NORMAL, CSATDATADOWNLOAD_NEWL, "CSatDataDownload::NewL" );
   104     OstTrace0( TRACE_NORMAL,  CSATDATADOWNLOAD_NEWL_TD, "CSatDataDownload::NewL" );
   103     TFLOGSTRING("TSY: CSatDataDownload::NewL");
   105     TFLOGSTRING("TSY: CSatDataDownload::NewL");
   104 
   106 
   105     CSatDataDownload* self =
   107     CSatDataDownload* self =
   106         new ( ELeave ) CSatDataDownload( aSatMessHandler, aSatMessaging );
   108         new ( ELeave ) CSatDataDownload( aSatMessHandler, aSatMessaging );
   107 
   109 
   118 // C++ destructor
   120 // C++ destructor
   119 // -----------------------------------------------------------------------------
   121 // -----------------------------------------------------------------------------
   120 //
   122 //
   121 CSatDataDownload::~CSatDataDownload()
   123 CSatDataDownload::~CSatDataDownload()
   122     {
   124     {
   123     OstTrace0( TRACE_NORMAL, DUP1_CSATDATADOWNLOAD_CSATDATADOWNLOAD, "CSatDataDownload::~CSatDataDownload" );
   125     OstTrace0( TRACE_NORMAL,  DUP1_CSATDATADOWNLOAD_CSATDATADOWNLOAD_TD, "CSatDataDownload::~CSatDataDownload" );
   124     TFLOGSTRING("TSY: CSatDataDownload::~CSatDataDownload");
   126     TFLOGSTRING("TSY: CSatDataDownload::~CSatDataDownload");
   125     }
   127     }
   126 
   128 
   127 
   129 
   128 // -----------------------------------------------------------------------------
   130 // -----------------------------------------------------------------------------
   132 //
   134 //
   133 void CSatDataDownload::UiccCatRespEnvelopeReceived(
   135 void CSatDataDownload::UiccCatRespEnvelopeReceived(
   134     const TIsiReceiveC& aIsiMessage
   136     const TIsiReceiveC& aIsiMessage
   135     )
   137     )
   136     {
   138     {
   137     OstTrace0( TRACE_NORMAL, CSATDATADOWNLOAD_UICCCATRESPENVELOPERECEIVED, "CSatDataDownload::UiccCatRespEnvelopeReceived" );
   139     OstTrace0( TRACE_NORMAL,  CSATDATADOWNLOAD_UICCCATRESPENVELOPERECEIVED_TD, "CSatDataDownload::UiccCatRespEnvelopeReceived" );
   138     TFLOGSTRING("TSY:CSatDataDownload::UiccCatRespEnvelopeReceived");
   140     TFLOGSTRING("TSY:CSatDataDownload::UiccCatRespEnvelopeReceived");
   139 
   141 
   140     TUint8 status( aIsiMessage.Get8bit(
   142     TUint8 status( aIsiMessage.Get8bit(
   141         ISI_HEADER_SIZE + UICC_CAT_RESP_OFFSET_STATUS ) );
   143         ISI_HEADER_SIZE + UICC_CAT_RESP_OFFSET_STATUS ) );
   142 
   144 
   156             TUint16 apduLength( aIsiMessage.Get16bit(
   158             TUint16 apduLength( aIsiMessage.Get16bit(
   157                 uiccSbApduOffset + UICC_SB_APDU_OFFSET_APDULENGTH ) );
   159                 uiccSbApduOffset + UICC_SB_APDU_OFFSET_APDULENGTH ) );
   158             apduData.Set( aIsiMessage.GetData(
   160             apduData.Set( aIsiMessage.GetData(
   159                 uiccSbApduOffset + UICC_SB_APDU_OFFSET_APDU,
   161                 uiccSbApduOffset + UICC_SB_APDU_OFFSET_APDU,
   160                 apduLength ) );
   162                 apduLength ) );
   161             // Status bytes are two last bytes in APDU
   163             if( KSw1Sw2Length <= apduLength )
   162             TUint8 sw1( apduData[apduLength - 2] );
   164                 {
   163             TUint8 sw2( apduData[apduLength - 1] );
   165                 // Status bytes are two last bytes in APDU
       
   166                 sw1 = apduData[apduLength - 2];
       
   167                 sw2 = apduData[apduLength - 1];
       
   168                 }
   164             }
   169             }
   165         else // Subblock is mandatory
   170         else // Subblock is mandatory
   166             {
   171             {
   167             TFLOGSTRING("TSY: CSatMessHandler::UiccCatRespEnvelopeReceived - Mandatory subblock UICC_SB_APDU not found");
   172             TFLOGSTRING("TSY: CSatMessHandler::UiccCatRespEnvelopeReceived - Mandatory subblock UICC_SB_APDU not found");
   168             OstTrace0( TRACE_NORMAL, DUP1_CSATDATADOWNLOAD_UICCCATRESPENVELOPERECEIVED, "CSatDataDownload::UiccCatRespEnvelopeReceived- Mandatory subblock UICC_SB_APDU not found" );
   173             OstTrace0( TRACE_NORMAL,  DUP1_CSATDATADOWNLOAD_UICCCATRESPENVELOPERECEIVED_TD, "CSatDataDownload::UiccCatRespEnvelopeReceived- Mandatory subblock UICC_SB_APDU not found" );
   169             }
   174             }
   170         }
   175         }
       
   176 
       
   177     TTpFailure result;
   171 
   178 
   172     // Create delivery report according to SW result
   179     // Create delivery report according to SW result
   173     if ( KError != TSatUtility::Sw1Sw2Check( sw1, sw2 ) )
   180     if ( KError != TSatUtility::Sw1Sw2Check( sw1, sw2 ) )
   174         {
   181         {
   175         TFLOGSTRING("TSY: CSatDataDownload::UiccCatRespEnvelopeReceived, OK");
   182         TFLOGSTRING("TSY: CSatDataDownload::UiccCatRespEnvelopeReceived, OK");
   176         OstTrace0( TRACE_NORMAL, DUP2_CSATDATADOWNLOAD_UICCCATRESPENVELOPERECEIVED, "CSatDataDownload::UiccCatRespEnvelopeReceived" );
   183         OstTrace0( TRACE_NORMAL,  DUP2_CSATDATADOWNLOAD_UICCCATRESPENVELOPERECEIVED_TD, "CSatDataDownload::UiccCatRespEnvelopeReceived" );
   177         BuildSimMsgReport( ENone, apduData );
   184         result = ENone;
   178         }
   185         }
   179     else if ( KAtkSwDataNtfSw1busy == sw1 )
   186     else if ( KAtkSwDataNtfSw1busy == sw1 )
   180         {
   187         {
   181         TFLOGSTRING("TSY:CSatDataDownload::UiccCatRespEnvelopeReceived, SIM Busy");
   188         TFLOGSTRING("TSY:CSatDataDownload::UiccCatRespEnvelopeReceived, SIM Busy");
   182         OstTrace0( TRACE_NORMAL, DUP3_CSATDATADOWNLOAD_UICCCATRESPENVELOPERECEIVED, "CSatDataDownload::UiccCatRespEnvelopeReceived" );
   189         OstTrace0( TRACE_NORMAL,  DUP3_CSATDATADOWNLOAD_UICCCATRESPENVELOPERECEIVED_TD, "CSatDataDownload::UiccCatRespEnvelopeReceived" );
   183         BuildSimMsgReport( ESatBusy, apduData );
   190         result = ESatBusy;
   184         }
   191         }
   185     else
   192     else
   186         {
   193         {
   187         TFLOGSTRING("TSY:CSatDataDownload::UiccCatRespEnvelopeReceived, Data Download Error");
   194         TFLOGSTRING("TSY:CSatDataDownload::UiccCatRespEnvelopeReceived, Data Download Error");
   188         OstTrace0( TRACE_NORMAL, DUP4_CSATDATADOWNLOAD_UICCCATRESPENVELOPERECEIVED, "CSatDataDownload::UiccCatRespEnvelopeReceived" );
   195         OstTrace0( TRACE_NORMAL,  DUP4_CSATDATADOWNLOAD_UICCCATRESPENVELOPERECEIVED_TD, "CSatDataDownload::UiccCatRespEnvelopeReceived" );
   189         BuildSimMsgReport( ESatDlError, apduData );
   196         result = ESatDlError;
       
   197         }
       
   198 
       
   199     if( KSw1Sw2Length <= apduData.Length() )
       
   200         {
       
   201         BuildSimMsgReport( result, apduData.Mid( 0, apduData.Length() - KSw1Sw2Length ) );
       
   202         }
       
   203     else
       
   204         {
       
   205         BuildSimMsgReport( result, KNullDesC8 );
   190         }
   206         }
   191     }
   207     }
   192 
   208 
   193 
   209 
   194 // -----------------------------------------------------------------------------
   210 // -----------------------------------------------------------------------------
   202         (
   218         (
   203         const TTpFailure aTpFailure,
   219         const TTpFailure aTpFailure,
   204         const TDesC8& aUserData
   220         const TDesC8& aUserData
   205         )
   221         )
   206     {
   222     {
   207     OstTraceExt2( TRACE_NORMAL, CSATDATADOWNLOAD_BUILDSIMMSGREPORT, "CSatDataDownload::BuildSimMsgReport TpFailure: %{TTpFailure}, UserDataLen: %d", aTpFailure, aUserData.Length() );
   223     OstTraceExt2( TRACE_NORMAL,  CSATDATADOWNLOAD_BUILDSIMMSGREPORT_TD, "CSatDataDownload::BuildSimMsgReport TpFailure: %{TTpFailure}, UserDataLen: %d", aTpFailure, aUserData.Length() );
   208     TFLOGSTRING3("TSY:CSatDataDownload::BuildSimMsgReport TpFailure: %x, UserDataLen: %d", aTpFailure, aUserData.Length() );
   224     TFLOGSTRING3("TSY:CSatDataDownload::BuildSimMsgReport TpFailure: %x, UserDataLen: %d", aTpFailure, aUserData.Length() );
   209 
   225 
   210     // Select Cause and CauseType according to routing result
   226     // Select Cause and CauseType according to routing result
   211     TUint8 causeType( ENone == aTpFailure ?
   227     TUint8 causeType( ENone == aTpFailure ?
   212         SMS_CAUSE_TYPE_COMMON : SMS_CAUSE_TYPE_EXT );
   228         SMS_CAUSE_TYPE_COMMON : SMS_CAUSE_TYPE_EXT );
   235     msgBuffer.Append( smsCause );
   251     msgBuffer.Append( smsCause );
   236     msgBuffer.AppendFill( KPadding, 3 );
   252     msgBuffer.AppendFill( KPadding, 3 );
   237     msgBuffer.Append( 0 );           // no of sublocks
   253     msgBuffer.Append( 0 );           // no of sublocks
   238 
   254 
   239     // Add SMS_SB_DELIVER_REPORT subblock if any failure is there
   255     // Add SMS_SB_DELIVER_REPORT subblock if any failure is there
   240     if( ENone != aTpFailure || 
   256     if( ENone != aTpFailure ||
   241         0 < dataLen )
   257         0 < dataLen )
   242         {
   258         {
   243         TFLOGSTRING("TSY:CSatDataDownload::BuildSimMsgReport \
   259         TFLOGSTRING("TSY:CSatDataDownload::BuildSimMsgReport \
   244                  Adding SMS_SB_DELIVER_REPORT" );
   260                  Adding SMS_SB_DELIVER_REPORT" );
   245         OstTrace0( TRACE_NORMAL, DUP1_CSATDATADOWNLOAD_BUILDSIMMSGREPORT, "CSatDataDownload::BuildSimMsgReport Adding SMS_SB_DELIVER_REPORT" );
   261         OstTrace0( TRACE_NORMAL,  DUP1_CSATDATADOWNLOAD_BUILDSIMMSGREPORT_TD, "CSatDataDownload::BuildSimMsgReport Adding SMS_SB_DELIVER_REPORT" );
   246 
   262 
   247         TIsiSubBlock deliverReport( msgBuffer, SMS_SB_DELIVER_REPORT,EIsiSubBlockTypeId16Len16 );
   263         TIsiSubBlock deliverReport( msgBuffer, SMS_SB_DELIVER_REPORT,EIsiSubBlockTypeId16Len16 );
   248 
   264 
   249         // set message parameters zero as in S40 ATK server also
   265         // set message parameters zero as in S40 ATK server also
   250         // First octet of SMS-Deliver-Report TPDU. Contains TP-UDHI and TP-MTI
   266         // First octet of SMS-Deliver-Report TPDU. Contains TP-UDHI and TP-MTI
   262     // Add SMS_SB_PRSM_INDICATOR and SMS_SB_USER_DATA subblock
   278     // Add SMS_SB_PRSM_INDICATOR and SMS_SB_USER_DATA subblock
   263     if ( dataLen )
   279     if ( dataLen )
   264         {
   280         {
   265         TFLOGSTRING("TSY:CSatDataDownload::BuildSimMsgReport \
   281         TFLOGSTRING("TSY:CSatDataDownload::BuildSimMsgReport \
   266               Adding SMS_SB_PARAM_INDICATOR & SMS_SB_USER_DATA" );
   282               Adding SMS_SB_PARAM_INDICATOR & SMS_SB_USER_DATA" );
   267         OstTrace0( TRACE_NORMAL, DUP2_CSATDATADOWNLOAD_BUILDSIMMSGREPORT, "CSatDataDownload::BuildSimMsgReport Adding SMS_SB_PARAM_INDICATOR AND SMS_SB_USER_DATA" );
   283         OstTrace0( TRACE_NORMAL,  DUP2_CSATDATADOWNLOAD_BUILDSIMMSGREPORT_TD, "CSatDataDownload::BuildSimMsgReport Adding SMS_SB_PARAM_INDICATOR AND SMS_SB_USER_DATA" );
   268 
   284 
   269         // Add two more Sublock:
   285         // Add two more Sublock:
   270         // SMS_SB_PARAM_INDICATOR
   286         // SMS_SB_PARAM_INDICATOR
   271         /////////////////////////
   287         /////////////////////////
   272         TIsiSubBlock paramInd( msgBuffer, SMS_SB_PARAM_INDICATOR,
   288         TIsiSubBlock paramInd( msgBuffer, SMS_SB_PARAM_INDICATOR,
   337 void CSatDataDownload::CellBroadcastReceived
   353 void CSatDataDownload::CellBroadcastReceived
   338         (
   354         (
   339         const TIsiReceiveC& aIsiMessage // SMS_GSM(_TEMP)_CB_ROUTING_NTF
   355         const TIsiReceiveC& aIsiMessage // SMS_GSM(_TEMP)_CB_ROUTING_NTF
   340         )
   356         )
   341     {
   357     {
   342     OstTrace0( TRACE_NORMAL, CSATDATADOWNLOAD_CELLBROADCASTRECEIVED, "CSatDataDownload::CellBroadcastReceived" );
   358     OstTrace0( TRACE_NORMAL,  CSATDATADOWNLOAD_CELLBROADCASTRECEIVED_TD, "CSatDataDownload::CellBroadcastReceived" );
   343     TFLOGSTRING( "TSY:CSatDataDownload::CellBroadcastReceived" );
   359     TFLOGSTRING( "TSY:CSatDataDownload::CellBroadcastReceived" );
   344 
   360 
   345     TBuf8<KCbsMsgMaxLength> cbsMsg;
   361     TBuf8<KCbsMsgMaxLength> cbsMsg;
   346 
   362 
   347     // For each subblock i
   363     // For each subblock i
   421             }
   437             }
   422         }
   438         }
   423     }
   439     }
   424 
   440 
   425 // -----------------------------------------------------------------------------
   441 // -----------------------------------------------------------------------------
   426 // CSatDataDownload::SmsSimMsgIndReceived
   442 // CSatDataDownload::SmsSimMsgIndReceivedL
   427 // Breaks a sms point to point isi message
   443 // Breaks a sms point to point isi message
   428 // Sends envelope
   444 // Sends envelope
   429 // -----------------------------------------------------------------------------
   445 // -----------------------------------------------------------------------------
   430 //
   446 //
   431 
   447 
   432 void CSatDataDownload::SmsSimMsgIndReceived
   448 void CSatDataDownload::SmsSimMsgIndReceivedL
   433         (
   449         (
   434          const TIsiReceiveC& aIsiMessage
   450          const TIsiReceiveC& aIsiMessage
   435         )
   451         )
   436     {
   452     {
   437     OstTrace0( TRACE_NORMAL, CSATDATADOWNLOAD_SMSSIMMSGINDRECEIVED, "CSatDataDownload::SmsSimMsgIndReceived" );
   453     OstTrace0( TRACE_NORMAL,  CSATDATADOWNLOAD_SMSSIMMSGINDRECEIVEDL_TD, "CSatDataDownload::SmsSimMsgIndReceivedL" );
   438     TFLOGSTRING( "TSY:CSatDataDownload::SmsSimMsgIndReceived" );
   454     TFLOGSTRING( "TSY:CSatDataDownload::SmsSimMsgIndReceivedL" );
   439 
   455 
   440     TBuf8<KAddrMaxLength> bcdSmscAddress;          // to store Service centre number
   456     TBuf8<KAddrMaxLength> bcdSmscAddress;          // to store Service centre number
   441     TBuf8<KTtpduMaxSize> smsTpdu;                  // Temporary buffer to store TPDU data
   457     TBuf8<KTtpduMaxSize> smsTpdu;                  // Temporary buffer to store TPDU data
   442     TUint sbDeliver( 0 );
   458     TUint sbDeliver( 0 );
   443 
   459 
   476         // SMS_SB_TPDU subblock,
   492         // SMS_SB_TPDU subblock,
   477         // which contain the message payload data.
   493         // which contain the message payload data.
   478         smsTpdu.Append( aIsiMessage.GetData(
   494         smsTpdu.Append( aIsiMessage.GetData(
   479             sbDeliver + SMS_SB_TPDU_OFFSET_DATABYTES, userDataLen ));
   495             sbDeliver + SMS_SB_TPDU_OFFSET_DATABYTES, userDataLen ));
   480         // Destination Address Length
   496         // Destination Address Length
   481         // 1st Byte of destination address contains no os semioctets 
   497         // 1st Byte of destination address contains no os semioctets
   482         //in address bytes
   498         //in address bytes
   483 
   499 
   484         // +1 to calculate correct nos of bytes in address
   500         // +1 to calculate correct nos of bytes in address
   485         // divide by 2 to convert semioctets to no of octets
   501         // divide by 2 to convert semioctets to no of octets
   486         // +2 to add type of address byte and no of
   502         // +2 to add type of address byte and no of
   487         TUint8 tpduIndexCalc( ( ( smsTpdu[1] + 1 )/2 ) + 2 ); 
   503         TUint8 tpduIndexCalc( ( ( smsTpdu[1] + 1 )/2 ) + 2 );
   488 
   504 
   489         // Storing protocol id and datacoding scheme from TPDU data buffer
   505         // Storing protocol id and datacoding scheme from TPDU data buffer
   490         iSmsPpProtocolId = smsTpdu[ tpduIndexCalc + 1 ];
   506         iSmsPpProtocolId = smsTpdu[ tpduIndexCalc + 1 ];
   491         iSmsPpDcs = smsTpdu[ tpduIndexCalc + 2 ];
   507         iSmsPpDcs = smsTpdu[ tpduIndexCalc + 2 ];
   492         }
   508         }
   494     // Either Envelope sending or SMS storing is going on
   510     // Either Envelope sending or SMS storing is going on
   495     iSmsPpDdOngoing = ETrue;
   511     iSmsPpDdOngoing = ETrue;
   496 
   512 
   497     if( iSmsPpDdSupported ) // Check for SMS PP-DATA Download supported
   513     if( iSmsPpDdSupported ) // Check for SMS PP-DATA Download supported
   498         {
   514         {
   499         TFLOGSTRING( "TSY:CSatDataDownload::SmsSimMsgIndReceived SMS SIM Supported, sending Envelope..." );
   515         TFLOGSTRING( "TSY:CSatDataDownload::SmsSimMsgIndReceivedL SMS SIM Supported, sending Envelope..." );
   500         OstTrace0( TRACE_NORMAL, DUP1_CSATDATADOWNLOAD_SMSSIMMSGINDRECEIVED, "CSatDataDownload::SmsSimMsgIndReceived SMS Sim Supported, sending Envelope..." );
   516         OstTrace0( TRACE_NORMAL,  DUP1_CSATDATADOWNLOAD_SMSSIMMSGINDRECEIVEDL_TD, "CSatDataDownload::SmsSimMsgIndReceivedL SMS Sim Supported, sending Envelope..." );
   501 
   517 
   502         iSmsPpTransactionId = iSatMessaging->GetTransactionId();
   518         iSmsPpTransactionId = iSatMessaging->GetTransactionId();
   503         // Data Download supported, send envelope
   519         // Data Download supported, send envelope
   504         SendSmsPpDdlEnvelope(
   520         SendSmsPpDdlEnvelope(
   505             iSmsPpTransactionId,
   521             iSmsPpTransactionId,
   506             bcdSmscAddress,
   522             bcdSmscAddress,
   507             smsTpdu );
   523             smsTpdu );
   508         }
   524         }
   509     else
   525     else
   510         {
   526         {
   511         TFLOGSTRING( "TSY:CSatDataDownload::SmsSimMsgIndReceived SMS SIM not supported, storing SMS..." );
   527         TFLOGSTRING( "TSY:CSatDataDownload::SmsSimMsgIndReceivedL SMS SIM not supported, storing SMS..." );
   512         OstTrace0( TRACE_NORMAL, DUP2_CSATDATADOWNLOAD_SMSSIMMSGINDRECEIVED, "CSatDataDownload::SmsSimMsgIndReceived SMS SIM not supported, storing SMS..." );
   528         OstTrace0( TRACE_NORMAL,  DUP2_CSATDATADOWNLOAD_SMSSIMMSGINDRECEIVEDL_TD, "CSatDataDownload::SmsSimMsgIndReceivedL SMS SIM not supported, storing SMS..." );
   513 
   529 
   514         // Save the SMS instead.
   530         // Save the SMS instead.
   515         RMobileSmsStore::TMobileGsmSmsEntryV1 smsEntry;
   531         RMobileSmsStore::TMobileGsmSmsEntryV1 smsEntry;
   516 
   532 
   517         // if SMSC present
   533         // if SMSC present
   551         (
   567         (
   552         TUint8 aTransId,
   568         TUint8 aTransId,
   553         TDesC8& aPdu
   569         TDesC8& aPdu
   554         )
   570         )
   555     {
   571     {
   556     OstTrace0( TRACE_NORMAL, CSATDATADOWNLOAD_SENDCELLBROADCASTDDLENVELOPE, "CSatDataDownload::SendCellBroadcastDdlEnvelope" );
   572     OstTrace0( TRACE_NORMAL,  CSATDATADOWNLOAD_SENDCELLBROADCASTDDLENVELOPE_TD, "CSatDataDownload::SendCellBroadcastDdlEnvelope" );
   557     TFLOGSTRING( "TSY:CSatDataDownload::SendEnvelopeForCellBroadcast" );
   573     TFLOGSTRING( "TSY:CSatDataDownload::SendEnvelopeForCellBroadcast" );
   558 
   574 
   559     TTlv envelope;
   575     TTlv envelope;
   560     //Tag
   576     //Tag
   561     envelope.Begin( KBerTlvCellBroadcastTag );
   577     envelope.Begin( KBerTlvCellBroadcastTag );
   581         TUint8 aTransId,
   597         TUint8 aTransId,
   582         TDesC8& aSmsScAddress,
   598         TDesC8& aSmsScAddress,
   583         TDesC8& aPdu
   599         TDesC8& aPdu
   584         )
   600         )
   585     {
   601     {
   586     OstTrace0( TRACE_NORMAL, CSATDATADOWNLOAD_SENDSMSPPDDLENVELOPE, "CSatDataDownload::SendSmsPpDdlEnvelope" );
   602     OstTrace0( TRACE_NORMAL,  CSATDATADOWNLOAD_SENDSMSPPDDLENVELOPE_TD, "CSatDataDownload::SendSmsPpDdlEnvelope" );
   587     TFLOGSTRING( "TSY:CSatDataDownload::SendEnvelopeForSmsPpDownload" );
   603     TFLOGSTRING( "TSY:CSatDataDownload::SendEnvelopeForSmsPpDownload" );
   588 
   604 
   589     TTlv envelope;
   605     TTlv envelope;
   590 
   606 
   591     envelope.Begin( KBerTlvSmsPpDownloadTag );
   607     envelope.Begin( KBerTlvSmsPpDownloadTag );
   610 void CSatDataDownload::SmsPpDlSupported
   626 void CSatDataDownload::SmsPpDlSupported
   611         (
   627         (
   612         TBool aStatus
   628         TBool aStatus
   613         )
   629         )
   614     {
   630     {
   615     OstTrace1( TRACE_NORMAL, CSATDATADOWNLOAD_SMSPPDLSUPPORTED, "CSatDataDownload::SmsPpDlSupported: %d", aStatus );
   631     OstTrace1( TRACE_NORMAL,  CSATDATADOWNLOAD_SMSPPDLSUPPORTED_TD, "CSatDataDownload::SmsPpDlSupported: %d", aStatus );
   616     TFLOGSTRING2( "TSY: CSatDataDownload::SmsPpDlSupported: %d", aStatus );
   632     TFLOGSTRING2( "TSY: CSatDataDownload::SmsPpDlSupported: %d", aStatus );
   617 
   633 
   618     iSmsPpDdSupported = aStatus;
   634     iSmsPpDdSupported = aStatus;
   619     }
   635     }
   620 
   636 
   628 void CSatDataDownload::MessageReceivedL
   644 void CSatDataDownload::MessageReceivedL
   629         (
   645         (
   630         const TIsiReceiveC& aIsiMessage
   646         const TIsiReceiveC& aIsiMessage
   631         )
   647         )
   632     {
   648     {
   633     OstTrace0( TRACE_NORMAL, CSATDATADOWNLOAD_MESSAGERECEIVEDL, "CSatDataDownload::MessageReceivedL" );
   649     OstTrace0( TRACE_NORMAL,  CSATDATADOWNLOAD_MESSAGERECEIVEDL_TD, "CSatDataDownload::MessageReceivedL" );
   634     TFLOGSTRING( "TSY:CSatDataDownload::MessageReceivedL" );
   650     TFLOGSTRING( "TSY:CSatDataDownload::MessageReceivedL" );
   635 
   651 
   636     TInt resource( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_RESOURCEID ) );
   652     TInt resource( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_RESOURCEID ) );
   637     TInt messageId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ) );
   653     TInt messageId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ) );
   638 
   654 
   651                 }
   667                 }
   652             case SMS_RECEIVED_SIM_MSG_IND:
   668             case SMS_RECEIVED_SIM_MSG_IND:
   653                 {
   669                 {
   654                 // Receive SMS PP Data Download Indication , Send by SMS Server
   670                 // Receive SMS PP Data Download Indication , Send by SMS Server
   655                 // on reception of message on network
   671                 // on reception of message on network
   656                 SmsSimMsgIndReceived(aIsiMessage);
   672                 SmsSimMsgIndReceivedL(aIsiMessage);
   657                 break;
   673                 break;
   658                 }
   674                 }
   659             default:
   675             default:
   660                 {
   676                 {
   661                 // none
   677                 // none