adaptationlayer/tsy/simatktsy_dll/src/satmesshandler.cpp
changeset 5 8ccc39f9d787
parent 0 63b37f68c1ce
child 8 6295dc2169f3
equal deleted inserted replaced
4:510c70acdbf6 5:8ccc39f9d787
     9 * Initial Contributors:
     9 * Initial Contributors:
    10 * Nokia Corporation - initial contribution.
    10 * Nokia Corporation - initial contribution.
    11 *
    11 *
    12 * Contributors:
    12 * Contributors:
    13 *
    13 *
    14 * Description: 
    14 * Description:
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 
    18 
    19 
    19 
    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>
    46 #include <atk_sharedisi.h>
    47 #include <call_sharedisi.h>
    47 #include <call_sharedisi.h>
    48 #include "osttracedefinitions.h"
    48 #include <info_sharedisi.h>
       
    49 #include "OstTraceDefinitions.h"
    49 #ifdef OST_TRACE_COMPILER_IN_USE
    50 #ifdef OST_TRACE_COMPILER_IN_USE
    50 #include "satmesshandlertraces.h"
    51 #include "satmesshandlerTraces.h"
    51 #endif
    52 #endif
    52 
    53 
    53 
    54 
    54 
    55 
    55 // CONSTANTS
    56 // CONSTANTS
   122     iTerminalRespTraId              = KNoTransactionOngoing;
   123     iTerminalRespTraId              = KNoTransactionOngoing;
   123     iGetIconSimReadFieldTraId       = KNoTransactionOngoing;
   124     iGetIconSimReadFieldTraId       = KNoTransactionOngoing;
   124     iDataDownloadSimReadFieldTraId  = KNoTransactionOngoing;
   125     iDataDownloadSimReadFieldTraId  = KNoTransactionOngoing;
   125 
   126 
   126     iCardId                         = KZero;
   127     iCardId                         = KZero;
   127     iSerialNumberReadReceived       = EFalse;
   128     iImeiAvailable                  = EFalse;
       
   129     iImeiSvAvailable                = EFalse;
   128     // By default, there's no need to request routing from SMS server
   130     // By default, there's no need to request routing from SMS server
   129     iSmsCbRoutingComplete           = ETrue;
   131     iSmsCbRoutingComplete           = ETrue;
   130     iRefreshRequestIsOn             = EFalse;
   132     iRefreshRequestIsOn             = EFalse;
   131     iTimingAdvance                  = GSS_TIMING_ADVANCE_NOT_AVAILABLE;
   133     iTimingAdvance                  = GSS_TIMING_ADVANCE_NOT_AVAILABLE;
   132     iTaStatus                       = GSS_TIMING_ADVANCE_NOT_VALID;
   134     iTaStatus                       = GSS_TIMING_ADVANCE_NOT_VALID;
  1820                     }
  1822                     }
  1821 
  1823 
  1822                 TSatUtility::AsciiToBCD( iIMEI, bcdImei );
  1824                 TSatUtility::AsciiToBCD( iIMEI, bcdImei );
  1823                 // Add IMEI code to the terminal response
  1825                 // Add IMEI code to the terminal response
  1824                 tlvData.AddData( bcdImei );
  1826                 tlvData.AddData( bcdImei );
       
  1827                 break;
       
  1828                 }
       
  1829             case RSat::KProvideLocalInfoIMEISV:
       
  1830                 {
       
  1831                 tlvData.AddTag( KTlvImeisvTag );
       
  1832                 tlvData.AddData( iIMEIsv );
  1825                 break;
  1833                 break;
  1826                 }
  1834                 }
  1827             case RSat::KProvideLocalInformationNmr:
  1835             case RSat::KProvideLocalInformationNmr:
  1828                 {
  1836                 {
  1829                 // Check if NMR's were for UTRAN
  1837                 // Check if NMR's were for UTRAN
  1995     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_INFOSERIALNUMBERREADRESP, "CSatMessHandler::InfoSerialNumberReadResp" );
  2003     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_INFOSERIALNUMBERREADRESP, "CSatMessHandler::InfoSerialNumberReadResp" );
  1996     TFLOGSTRING("TSY:CSatMessHandler::InfoSerialNumberReadResp");
  2004     TFLOGSTRING("TSY:CSatMessHandler::InfoSerialNumberReadResp");
  1997 
  2005 
  1998     TUint sbStartOffset( 0 );
  2006     TUint sbStartOffset( 0 );
  1999 
  2007 
  2000     TInt retValue( aIsiMessage.FindSubBlockOffsetById(
       
  2001                     ISI_HEADER_SIZE + SIZE_INFO_SERIAL_NUMBER_READ_RESP,
       
  2002                     INFO_SB_SN_IMEI_PLAIN, EIsiSubBlockTypeId8Len8,
       
  2003                     sbStartOffset ) );
       
  2004     //check if INFO_SB_SN_IMEI_PLAIN sub block is present
  2008     //check if INFO_SB_SN_IMEI_PLAIN sub block is present
  2005     if ( KErrNone == retValue )
  2009     if ( KErrNone == aIsiMessage.FindSubBlockOffsetById(
       
  2010         ISI_HEADER_SIZE + SIZE_INFO_SERIAL_NUMBER_READ_RESP,
       
  2011         INFO_SB_SN_IMEI_PLAIN, EIsiSubBlockTypeId8Len8,
       
  2012         sbStartOffset ) )
  2006         {
  2013         {
  2007         //store imei code
  2014         //store imei code
  2008         iIMEI.Copy( aIsiMessage.GetData(
  2015         iIMEI.Copy( aIsiMessage.GetData(
  2009                     sbStartOffset + INFO_SB_SN_IMEI_PLAIN_OFFSET_IMEIPLAINU8,
  2016             sbStartOffset + INFO_SB_SN_IMEI_PLAIN_OFFSET_IMEIPLAINU8,
  2010                     aIsiMessage.Get8bit( sbStartOffset +
  2017             aIsiMessage.Get8bit( sbStartOffset +
  2011                     INFO_SB_SN_IMEI_PLAIN_OFFSET_STRLEN ) - 1 ) );
  2018             INFO_SB_SN_IMEI_PLAIN_OFFSET_STRLEN ) - 1 ) );
  2012         //Set the flag to inform that needed data has been received
  2019         //Set the flag to inform that needed data has been received
  2013         iSerialNumberReadReceived = ETrue;
  2020         iImeiAvailable = ETrue;
  2014         TFLOGSTRING("TSY: SAT, Imei received.");
  2021 TFLOGSTRING("TSY: SAT, Imei received.");
  2015         OstTrace0( TRACE_NORMAL, DUP1_CSATMESSHANDLER_INFOSERIALNUMBERREADRESP, "SAT, Imei received." );
  2022 OstTrace0( TRACE_NORMAL, DUP1_CSATMESSHANDLER_INFOSERIALNUMBERREADRESP, "SAT, Imei received." );
       
  2023         }
       
  2024     //check if INFO_SB_SN_IMEI_SV_TO_NET sub block is present
       
  2025     else if ( KErrNone == aIsiMessage.FindSubBlockOffsetById(
       
  2026         ISI_HEADER_SIZE + SIZE_INFO_SERIAL_NUMBER_READ_RESP,
       
  2027         INFO_SB_SN_IMEI_SV_TO_NET, EIsiSubBlockTypeId8Len8,
       
  2028         sbStartOffset ) )
       
  2029         {
       
  2030         // store imeisv code
       
  2031         iIMEIsv.Copy( aIsiMessage.GetData(
       
  2032             sbStartOffset + INFO_SB_SN_IMEI_SV_TO_NET_OFFSET_IMEISVU8,
       
  2033             aIsiMessage.Get8bit( sbStartOffset +
       
  2034             INFO_SB_SN_IMEI_SV_TO_NET_OFFSET_STRLEN ) ) );
       
  2035         iImeiSvAvailable = ETrue;
       
  2036 TFLOGSTRING("TSY: CSatMessHandler::InfoSerialNumberReadResp IMEISV received");
       
  2037 OstTrace0( TRACE_NORMAL, DUP2_CSATMESSHANDLER_INFOSERIALNUMBERREADRESP, "CSatMessHandler::InfoSerialNumberReadResp IMEISV received" );
  2016         }
  2038         }
  2017     }
  2039     }
  2018 
  2040 
  2019 // -----------------------------------------------------------------------------
  2041 // -----------------------------------------------------------------------------
  2020 // CSatMessHandler::NetNeighbourCellsReq
  2042 // CSatMessHandler::NetNeighbourCellsReq
  2037         PN_MODEM_NETWORK,
  2059         PN_MODEM_NETWORK,
  2038         aTransId,
  2060         aTransId,
  2039         NET_NEIGHBOUR_CELLS_REQ,
  2061         NET_NEIGHBOUR_CELLS_REQ,
  2040         data );
  2062         data );
  2041     }
  2063     }
  2042 
       
  2043 
  2064 
  2044 // -----------------------------------------------------------------------------
  2065 // -----------------------------------------------------------------------------
  2045 // CSatMessHandler::NetNeighbourCellResp
  2066 // CSatMessHandler::NetNeighbourCellResp
  2046 // Parse NET_NEIGHBOUR_CELLS_RESP message and read from it BCCH
  2067 // Parse NET_NEIGHBOUR_CELLS_RESP message and read from it BCCH
  2047 // channel list and Network measurement results.
  2068 // channel list and Network measurement results.
  2179 // -----------------------------------------------------------------------------
  2200 // -----------------------------------------------------------------------------
  2180 // CSatMessHandler::CallModemResourceReq
  2201 // CSatMessHandler::CallModemResourceReq
  2181 // Sends a CALL_MODEM_RESOURCE_REQ ISI message.
  2202 // Sends a CALL_MODEM_RESOURCE_REQ ISI message.
  2182 // -----------------------------------------------------------------------------
  2203 // -----------------------------------------------------------------------------
  2183 //
  2204 //
  2184 TInt CSatMessHandler::CallModemResourceReq( 
  2205 TInt CSatMessHandler::CallModemResourceReq(
  2185     TUint8 aTransId,
  2206     TUint8 aTransId,
  2186     const TDesC8& aMsg 
  2207     const TDesC8& aMsg
  2187     )
  2208     )
  2188     {
  2209     {
  2189     TFLOGSTRING("TSY:CSatMessHandler::CallModemResourceReq");
  2210     TFLOGSTRING("TSY:CSatMessHandler::CallModemResourceReq");
  2190     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_CALLMODEMRESOURCEREQ, "TSY:CSatMessHandler::CallModemResourceReq" );
  2211     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_CALLMODEMRESOURCEREQ, "TSY:CSatMessHandler::CallModemResourceReq" );
  2191 
  2212 
  2202     TUint16 aResourceIdMask )
  2223     TUint16 aResourceIdMask )
  2203     {
  2224     {
  2204     TFLOGSTRING("TSY:CSatMessHandler::CallModemResourceConfReq");
  2225     TFLOGSTRING("TSY:CSatMessHandler::CallModemResourceConfReq");
  2205     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_CALLMODEMRESOURCECONFREQ, "TSY:CSatMessHandler::CallModemResourceConfReq" );
  2226     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_CALLMODEMRESOURCECONFREQ, "TSY:CSatMessHandler::CallModemResourceConfReq" );
  2206 
  2227 
  2207     TBuf8< SIZE_CALL_MODEM_RESOURCE_CONF_REQ + 
  2228     TBuf8< SIZE_CALL_MODEM_RESOURCE_CONF_REQ +
  2208         SIZE_CALL_MODEM_SB_RESOURCE_CONF> msg;
  2229         SIZE_CALL_MODEM_SB_RESOURCE_CONF> msg;
  2209 
  2230 
  2210     // CALL_MODEM_RES_CONF_OPERATION
  2231     // CALL_MODEM_RES_CONF_OPERATION
  2211     msg.Append( CALL_MODEM_RES_CONF_SET );
  2232     msg.Append( CALL_MODEM_RES_CONF_SET );
  2212     // Nbr of sb's
  2233     // Nbr of sb's
  2213     msg.Append( 1 );
  2234     msg.Append( 1 );
  2214     
  2235 
  2215     TIsiSubBlock sbResourceConf(
  2236     TIsiSubBlock sbResourceConf(
  2216         msg,
  2237         msg,
  2217         CALL_MODEM_SB_RESOURCE_CONF,
  2238         CALL_MODEM_SB_RESOURCE_CONF,
  2218         EIsiSubBlockTypeId8Len8 );
  2239         EIsiSubBlockTypeId8Len8 );
  2219     
  2240 
  2220     TSatUtility::AppendWord( aResourceId, msg );
  2241     TSatUtility::AppendWord( aResourceId, msg );
  2221     TSatUtility::AppendWord( aResourceIdMask, msg);
  2242     TSatUtility::AppendWord( aResourceIdMask, msg);
  2222     
  2243 
  2223     sbResourceConf.CompleteSubBlock();
  2244     sbResourceConf.CompleteSubBlock();
  2224     
  2245 
  2225     return iPnSend->Send( 
  2246     return iPnSend->Send(
  2226         PN_MODEM_CALL, 
  2247         PN_MODEM_CALL,
  2227         iTsySatMessaging->GetTransactionId(),
  2248         iTsySatMessaging->GetTransactionId(),
  2228         CALL_MODEM_RESOURCE_CONF_REQ,
  2249         CALL_MODEM_RESOURCE_CONF_REQ,
  2229         msg );
  2250         msg );
  2230     }
  2251     }
  2231 
  2252 
  2236 //
  2257 //
  2237 TInt CSatMessHandler::SsResourceConfReq()
  2258 TInt CSatMessHandler::SsResourceConfReq()
  2238     {
  2259     {
  2239     TFLOGSTRING("TSY:CSatMessHandler::SsResourceConfReq");
  2260     TFLOGSTRING("TSY:CSatMessHandler::SsResourceConfReq");
  2240     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SSRESOURCECONFREQ, "TSY:CSatMessHandler::SsResourceConfReq" );
  2261     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SSRESOURCECONFREQ, "TSY:CSatMessHandler::SsResourceConfReq" );
  2241      
  2262 
  2242     TBuf8< SIZE_SS_RESOURCE_CONF_REQ  + 
  2263     TBuf8< SIZE_SS_RESOURCE_CONF_REQ  +
  2243         SIZE_SS_SB_RESOURCE_CONF > msg;
  2264         SIZE_SS_SB_RESOURCE_CONF > msg;
  2244 
  2265 
  2245     // SS_RESOURCE_CONF_OPERATION 
  2266     // SS_RESOURCE_CONF_OPERATION
  2246     msg.Append( SS_RESOURCE_CONF_SET );
  2267     msg.Append( SS_RESOURCE_CONF_SET );
  2247     // Nbr of sb's
  2268     // Nbr of sb's
  2248     msg.Append( 1 );
  2269     msg.Append( 1 );
  2249     
  2270 
  2250     TIsiSubBlock sbResourceConf(
  2271     TIsiSubBlock sbResourceConf(
  2251         msg,
  2272         msg,
  2252         SS_SB_RESOURCE_CONF,
  2273         SS_SB_RESOURCE_CONF,
  2253         EIsiSubBlockTypeId8Len8 );
  2274         EIsiSubBlockTypeId8Len8 );
  2254     
  2275 
  2255     TSatUtility::AppendWord( SS_RES_ID_MO_SS_OPERATION, msg );
  2276     TSatUtility::AppendWord( SS_RES_ID_MO_SS_OPERATION, msg );
  2256     TSatUtility::AppendWord( SS_RES_ID_MO_SS_OPERATION_MASK, msg);
  2277     TSatUtility::AppendWord( SS_RES_ID_MO_SS_OPERATION_MASK, msg);
  2257     
  2278 
  2258     sbResourceConf.CompleteSubBlock();
  2279     sbResourceConf.CompleteSubBlock();
  2259     
  2280 
  2260     return iPnSend->Send( 
  2281     return iPnSend->Send(
  2261         PN_SS, 
  2282         PN_SS,
  2262         iTsySatMessaging->GetTransactionId(),
  2283         iTsySatMessaging->GetTransactionId(),
  2263         SS_RESOURCE_CONF_REQ,
  2284         SS_RESOURCE_CONF_REQ,
  2264         msg );
  2285         msg );
  2265     }
  2286     }
  2266 
  2287 
  2267 // -----------------------------------------------------------------------------
  2288 // -----------------------------------------------------------------------------
  2268 // CSatMessHandler::SsResourceControlReq
  2289 // CSatMessHandler::SsResourceControlReq
  2269 // Sends a SS_RESOURCE_CONNTROL_REQ ISI message.
  2290 // Sends a SS_RESOURCE_CONNTROL_REQ ISI message.
  2270 // -----------------------------------------------------------------------------
  2291 // -----------------------------------------------------------------------------
  2271 //
  2292 //
  2272 TInt CSatMessHandler::SsResourceControlReq( 
  2293 TInt CSatMessHandler::SsResourceControlReq(
  2273     TUint8 aTransId,
  2294     TUint8 aTransId,
  2274     const TDesC8& aMsg 
  2295     const TDesC8& aMsg
  2275     )
  2296     )
  2276     {
  2297     {
  2277     TFLOGSTRING("TSY:CSatMessHandler::SsResourceControlReq");
  2298     TFLOGSTRING("TSY:CSatMessHandler::SsResourceControlReq");
  2278     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SSRESOURCECONTROLREQ, "TSY:CSatMessHandler::SsResourceControlReq" );
  2299     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_SSRESOURCECONTROLREQ, "TSY:CSatMessHandler::SsResourceControlReq" );
  2279 
  2300 
  2291 //
  2312 //
  2292 TInt CSatMessHandler::GpdsResourceConfReq()
  2313 TInt CSatMessHandler::GpdsResourceConfReq()
  2293     {
  2314     {
  2294     TFLOGSTRING("TSY:CSatMessHandler::GpdsResourceConfReq");
  2315     TFLOGSTRING("TSY:CSatMessHandler::GpdsResourceConfReq");
  2295     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_GPDSRESOURCECONFREQ, "TSY:CSatMessHandler::GpdsResourceConfReq" );
  2316     OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_GPDSRESOURCECONFREQ, "TSY:CSatMessHandler::GpdsResourceConfReq" );
  2296     
  2317 
  2297     TBuf8< SIZE_GPDS_RESOURCE_CONF_REQ  + 
  2318     TBuf8< SIZE_GPDS_RESOURCE_CONF_REQ  +
  2298         SIZE_GPDS_RESOURCE_CONF > msg;
  2319         SIZE_GPDS_RESOURCE_CONF > msg;
  2299 
  2320 
  2300     // SS_RESOURCE_CONF_OPERATION 
  2321     // SS_RESOURCE_CONF_OPERATION
  2301     msg.Append( GPDS_RESOURCE_CONF_SET );
  2322     msg.Append( GPDS_RESOURCE_CONF_SET );
  2302     // Nbr of sb's
  2323     // Nbr of sb's
  2303     msg.Append( 1 );
  2324     msg.Append( 1 );
  2304 
  2325 
  2305     TIsiSubBlock sbResourceConf(
  2326     TIsiSubBlock sbResourceConf(
  2310     TSatUtility::AppendWord( GPDS_RES_ID_CC_FOR_GPRS, msg );
  2331     TSatUtility::AppendWord( GPDS_RES_ID_CC_FOR_GPRS, msg );
  2311     TSatUtility::AppendWord( GPDS_RES_ID_MASK_CC_FOR_GPRS, msg);
  2332     TSatUtility::AppendWord( GPDS_RES_ID_MASK_CC_FOR_GPRS, msg);
  2312 
  2333 
  2313     sbResourceConf.CompleteSubBlock();
  2334     sbResourceConf.CompleteSubBlock();
  2314 
  2335 
  2315     return iPnSend->Send( 
  2336     return iPnSend->Send(
  2316         PN_GPDS, 
  2337         PN_GPDS,
  2317         iTsySatMessaging->GetTransactionId(),
  2338         iTsySatMessaging->GetTransactionId(),
  2318         GPDS_RESOURCE_CONF_REQ,
  2339         GPDS_RESOURCE_CONF_REQ,
  2319         msg );
  2340         msg );
  2320         }
  2341         }
  2321 
  2342 
  2322 // -----------------------------------------------------------------------------
  2343 // -----------------------------------------------------------------------------
  2323 // CSatMessHandler::GpdsResourceControlReq
  2344 // CSatMessHandler::GpdsResourceControlReq
  2324 // Sends a GPDS_RESOURCE_CONNTROL_REQ ISI message.
  2345 // Sends a GPDS_RESOURCE_CONNTROL_REQ ISI message.
  2325 // -----------------------------------------------------------------------------
  2346 // -----------------------------------------------------------------------------
  2326 //
  2347 //
  2327 TInt CSatMessHandler::GpdsResourceControlReq( 
  2348 TInt CSatMessHandler::GpdsResourceControlReq(
  2328     TUint8 aTransId,
  2349     TUint8 aTransId,
  2329     const TDesC8& aMsg 
  2350     const TDesC8& aMsg
  2330     )
  2351     )
  2331     {
  2352     {
  2332     TFLOGSTRING("TSY:CSatMessHandler::GpdsResourceControlReq");
  2353     TFLOGSTRING("TSY:CSatMessHandler::GpdsResourceControlReq");
  2333 OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_GPDSRESOURCECONTROLREQ, "CSatMessHandler::GpdsResourceControlReq" );
  2354 OstTrace0( TRACE_NORMAL, CSATMESSHANDLER_GPDSRESOURCECONTROLREQ, "CSatMessHandler::GpdsResourceControlReq" );
  2334 
  2355 
  2799             }
  2820             }
  2800 
  2821 
  2801         if ( KErrCorrupt == ret )
  2822         if ( KErrCorrupt == ret )
  2802             {
  2823             {
  2803             if ( !berTlv.TlvByTagValue( &commandDetails,
  2824             if ( !berTlv.TlvByTagValue( &commandDetails,
  2804                 KTlvCommandDetailsTag ) && 
  2825                 KTlvCommandDetailsTag ) &&
  2805                 5 == commandDetails.GetSize()  )
  2826                 5 == commandDetails.GetSize()  )
  2806                 {
  2827                 {
  2807                 commandDetailsTlv.Copy( commandDetails.Data() );
  2828                 commandDetailsTlv.Copy( commandDetails.Data() );
  2808                 }
  2829                 }
  2809             else
  2830             else
  2891         iSmsCbRoutingComplete = EFalse;
  2912         iSmsCbRoutingComplete = EFalse;
  2892 
  2913 
  2893         // TBuf8<SIZE_SMS_CB_ROUTING_REQ> because we are sending [U]SIM EF CBMID Message
  2914         // TBuf8<SIZE_SMS_CB_ROUTING_REQ> because we are sending [U]SIM EF CBMID Message
  2894         // Subscription;
  2915         // Subscription;
  2895         TBuf8<SIZE_SMS_CB_ROUTING_REQ> data;
  2916         TBuf8<SIZE_SMS_CB_ROUTING_REQ> data;
  2896         
  2917 
  2897         // Append Routing command
  2918         // Append Routing command
  2898         data.Append( aRoutingCommand );
  2919         data.Append( aRoutingCommand );
  2899         // Append Subscription number
  2920         // Append Subscription number
  2900         data.Append( SMS_NEW_SUBSCRIPTION );
  2921         data.Append( SMS_NEW_SUBSCRIPTION );
  2901         // append Subscription type
  2922         // append Subscription type
  2903         // Append Filler bytes
  2924         // Append Filler bytes
  2904         data.AppendFill( KPadding, 2 );
  2925         data.AppendFill( KPadding, 2 );
  2905         // Append no of Subblocks
  2926         // Append no of Subblocks
  2906         data.Append( 0 );
  2927         data.Append( 0 );
  2907 
  2928 
  2908         // Send Subscription request 
  2929         // Send Subscription request
  2909         ret = iPnSend->Send( PN_SMS, aTransId, SMS_CB_ROUTING_REQ,
  2930         ret = iPnSend->Send( PN_SMS, aTransId, SMS_CB_ROUTING_REQ,
  2910                 data );
  2931                 data );
  2911 
  2932 
  2912     return ret;
  2933     return ret;
  2913     }
  2934     }
  2955     }
  2976     }
  2956 
  2977 
  2957 
  2978 
  2958 // -----------------------------------------------------------------------------
  2979 // -----------------------------------------------------------------------------
  2959 // CSatMessHandler::SmsResourceConfInd
  2980 // CSatMessHandler::SmsResourceConfInd
  2960 // Handles Indication from SMS Server for resource configuration Startup 
  2981 // Handles Indication from SMS Server for resource configuration Startup
  2961 // and reconfigure condition .
  2982 // and reconfigure condition .
  2962 // -----------------------------------------------------------------------------
  2983 // -----------------------------------------------------------------------------
  2963 //
  2984 //
  2964 
  2985 
  2965 void CSatMessHandler::SmsResourceConfInd
  2986 void CSatMessHandler::SmsResourceConfInd
  2973     // To check The receive indication is for startup or reconfiguration
  2994     // To check The receive indication is for startup or reconfiguration
  2974     if ( SMS_RES_CONF_STARTUP == aIsiMessage.Get8bit( ISI_HEADER_SIZE
  2995     if ( SMS_RES_CONF_STARTUP == aIsiMessage.Get8bit( ISI_HEADER_SIZE
  2975         + SMS_RESOURCE_CONF_IND_OFFSET_CONFSTATUS ) )
  2996         + SMS_RESOURCE_CONF_IND_OFFSET_CONFSTATUS ) )
  2976         {
  2997         {
  2977         TUint sbStartOffset( 0 );
  2998         TUint sbStartOffset( 0 );
  2978         TInt retValue( KErrNotFound );
       
  2979         // Check if resource control is requested for MO SM.
  2999         // Check if resource control is requested for MO SM.
  2980         if ( KErrNone == aIsiMessage.FindSubBlockOffsetById(
  3000         if ( KErrNone == aIsiMessage.FindSubBlockOffsetById(
  2981             ISI_HEADER_SIZE + SIZE_SMS_RESOURCE_CONF_IND,
  3001             ISI_HEADER_SIZE + SIZE_SMS_RESOURCE_CONF_IND,
  2982             SMS_SB_RESOURCE_CONF_REQUIRED,
  3002             SMS_SB_RESOURCE_CONF_REQUIRED,
  2983             EIsiSubBlockTypeId16Len16,
  3003             EIsiSubBlockTypeId16Len16,