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 |
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 |
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 |
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, |