165 // ----------------------------------------------------------------------------- |
165 // ----------------------------------------------------------------------------- |
166 // |
166 // |
167 CMmCustomMessHandler::CMmCustomMessHandler() |
167 CMmCustomMessHandler::CMmCustomMessHandler() |
168 { |
168 { |
169 TFLOGSTRING("TSY: CMmCustomMessHandler::CMmCustomMessHandler.\n" ); |
169 TFLOGSTRING("TSY: CMmCustomMessHandler::CMmCustomMessHandler.\n" ); |
170 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_CMMCUSTOMMESSHANDLER, "CMmCustomMessHandler::CMmCustomMessHandler" ); |
170 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_CMMCUSTOMMESSHANDLER_TD, "CMmCustomMessHandler::CMmCustomMessHandler" ); |
171 iSimCBTopicToBeDeleted = KUnusedCbMsgId; |
171 iSimCBTopicToBeDeleted = KUnusedCbMsgId; |
172 // Set to true because it doesn't delete topic at start up |
172 // Set to true because it doesn't delete topic at start up |
173 iTopicInSimMemoryDelete = ETrue; |
173 iTopicInSimMemoryDelete = ETrue; |
174 } |
174 } |
175 |
175 |
179 // ----------------------------------------------------------------------------- |
179 // ----------------------------------------------------------------------------- |
180 // |
180 // |
181 CMmCustomMessHandler::~CMmCustomMessHandler() |
181 CMmCustomMessHandler::~CMmCustomMessHandler() |
182 { |
182 { |
183 TFLOGSTRING("TSY: CMmCustomMessHandler::~CMmCustomMessHandler.\n" ); |
183 TFLOGSTRING("TSY: CMmCustomMessHandler::~CMmCustomMessHandler.\n" ); |
184 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_CMMCUSTOMMESSHANDLER, "CMmCustomMessHandler::~CMmCustomMessHandler" ); |
184 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_CMMCUSTOMMESSHANDLER_TD, "CMmCustomMessHandler::~CMmCustomMessHandler" ); |
185 |
185 |
186 if( iListOfCiphValues ) |
186 if( iListOfCiphValues ) |
187 { |
187 { |
188 //close the array of ciphering values |
188 //close the array of ciphering values |
189 iListOfCiphValues->Close(); |
189 iListOfCiphValues->Close(); |
206 CMmMessageRouter* aMessageRouter, //pointer to the message router |
206 CMmMessageRouter* aMessageRouter, //pointer to the message router |
207 CMmUiccMessHandler* aUiccMessHandler |
207 CMmUiccMessHandler* aUiccMessHandler |
208 ) |
208 ) |
209 { |
209 { |
210 TFLOGSTRING("TSY: CMmCustomMessHandler::NewL.\n" ); |
210 TFLOGSTRING("TSY: CMmCustomMessHandler::NewL.\n" ); |
211 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_NEWL, "CMmCustomMessHandler::NewL" ); |
211 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_NEWL_TD, "CMmCustomMessHandler::NewL" ); |
212 |
212 |
213 CMmCustomMessHandler* customMessHandler = |
213 CMmCustomMessHandler* customMessHandler = |
214 new( ELeave ) CMmCustomMessHandler(); |
214 new( ELeave ) CMmCustomMessHandler(); |
215 |
215 |
216 CleanupStack::PushL( customMessHandler ); |
216 CleanupStack::PushL( customMessHandler ); |
307 // ----------------------------------------------------------------------------- |
307 // ----------------------------------------------------------------------------- |
308 // |
308 // |
309 void CMmCustomMessHandler::ConstructL() |
309 void CMmCustomMessHandler::ConstructL() |
310 { |
310 { |
311 TFLOGSTRING("TSY: CMmCustomMessHandler::ConstructL.\n" ); |
311 TFLOGSTRING("TSY: CMmCustomMessHandler::ConstructL.\n" ); |
312 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_CONSTRUCTL, "CMmCustomMessHandler::ConstructL" ); |
312 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_CONSTRUCTL_TD, "CMmCustomMessHandler::ConstructL" ); |
313 |
313 |
314 // Initialize iListOfCiphValues |
314 // Initialize iListOfCiphValues |
315 iListOfCiphValues = new ( ELeave ) RArray<TCiphListEntry>( 1 ); |
315 iListOfCiphValues = new ( ELeave ) RArray<TCiphListEntry>( 1 ); |
316 |
316 |
317 // Initialize refresh indication boolean |
317 // Initialize refresh indication boolean |
347 { |
347 { |
348 TInt resource( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_RESOURCEID ) ); |
348 TInt resource( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_RESOURCEID ) ); |
349 TInt messageId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ) ); |
349 TInt messageId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ) ); |
350 |
350 |
351 TFLOGSTRING3("TSY: CMmCustomMessHandler::ReceiveMessageL, Resource: %d, Message: %d", resource, messageId); |
351 TFLOGSTRING3("TSY: CMmCustomMessHandler::ReceiveMessageL, Resource: %d, Message: %d", resource, messageId); |
352 OstTraceExt2( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_RECEIVEMESSAGEL, "CMmCustomMessHandler::ReceiveMessageL;resource=%d;messageId=%d", resource, messageId ); |
352 OstTraceExt2( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_RECEIVEMESSAGEL_TD, "CMmCustomMessHandler::ReceiveMessageL;resource=%d;messageId=%d", resource, messageId ); |
353 |
353 |
354 switch( resource ) |
354 switch( resource ) |
355 { |
355 { |
356 case PN_MODEM_CALL: |
356 case PN_MODEM_CALL: |
357 { |
357 { |
502 // switch according to the message id |
502 // switch according to the message id |
503 // and call the appropriate messagehandler method |
503 // and call the appropriate messagehandler method |
504 switch( messageId ) |
504 switch( messageId ) |
505 { |
505 { |
506 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING |
506 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING |
507 // TO BE DONE WITH INFO_PP_DATA_READ_RESP |
|
508 case INFO_PP_READ_RESP: |
507 case INFO_PP_READ_RESP: |
509 { |
508 { |
510 InfoPpReadResp( aIsiMessage ); |
509 InfoPpReadResp( aIsiMessage ); |
511 break; |
510 break; |
512 } |
511 } |
513 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
512 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
514 default: |
513 default: |
515 { |
514 { |
516 TFLOGSTRING("TSY: CMmCustomMessHandler::ReceiveMessageL - switch resource - case PN_INFO, switch messageId - default"); |
515 TFLOGSTRING("TSY: CMmCustomMessHandler::ReceiveMessageL - switch resource - case PN_INFO, switch messageId - default"); |
517 OstTrace0( TRACE_NORMAL, DUP6_CMMCUSTOMMESSHANDLER_RECEIVEMESSAGEL, "CMmCustomMessHandler::ReceiveMessageL- switch resource - case PN_INFO, switch messageId - default" ); |
516 OstTrace0( TRACE_NORMAL, DUP6_CMMCUSTOMMESSHANDLER_RECEIVEMESSAGEL_TD, "CMmCustomMessHandler::ReceiveMessageL- switch resource - case PN_INFO, switch messageId - default" ); |
518 break; |
517 break; |
519 } |
518 } |
520 } |
519 } |
521 break; |
520 break; |
522 } |
521 } |
569 |
568 |
570 default: |
569 default: |
571 { |
570 { |
572 TFLOGSTRING("TSY: CMmCustomMessHandler::ReceiveMessageL\ |
571 TFLOGSTRING("TSY: CMmCustomMessHandler::ReceiveMessageL\ |
573 - switch resource - case PN_PERMANENT_DATA, switch messageId - default.\n"); |
572 - switch resource - case PN_PERMANENT_DATA, switch messageId - default.\n"); |
574 OstTrace0( TRACE_NORMAL, DUP16_CMMCUSTOMMESSHANDLER_RECEIVEMESSAGEL, "CMmCustomMessHandler::ReceiveMessageL - switch resource - case PN_PERMANENT_DATA, switch messageId - default." ); |
573 OstTrace0( TRACE_NORMAL, DUP16_CMMCUSTOMMESSHANDLER_RECEIVEMESSAGEL_TD, "CMmCustomMessHandler::ReceiveMessageL - switch resource - case PN_PERMANENT_DATA, switch messageId - default." ); |
575 break; |
574 break; |
576 } |
575 } |
577 } |
576 } |
578 TFLOGSTRING("TSY: CMmCustomMessHandler::ReceiveMessageL\ |
577 TFLOGSTRING("TSY: CMmCustomMessHandler::ReceiveMessageL\ |
579 - switch resource - case PN_PERMANENT_DATA, transaction id is not KCustomTransId\n"); |
578 - switch resource - case PN_PERMANENT_DATA, transaction id is not KCustomTransId\n"); |
580 OstTrace0( TRACE_NORMAL, DUP14_CMMCUSTOMMESSHANDLER_RECEIVEMESSAGEL, "CMmCustomMessHandler::ReceiveMessageL - switch resource - case PN_PERMANENT_DATA, transaction id is not KCustomTransId" ); |
579 OstTrace0( TRACE_NORMAL, DUP14_CMMCUSTOMMESSHANDLER_RECEIVEMESSAGEL_TD, "CMmCustomMessHandler::ReceiveMessageL - switch resource - case PN_PERMANENT_DATA, transaction id is not KCustomTransId" ); |
581 } |
580 } |
582 break; |
581 break; |
583 }*/ |
582 }*/ |
584 |
583 |
585 case PN_UICC: |
584 case PN_UICC: |
612 TUint8 aCallId, //call id |
611 TUint8 aCallId, //call id |
613 TUint8 aCause //cause value for releasing the call |
612 TUint8 aCause //cause value for releasing the call |
614 ) |
613 ) |
615 { |
614 { |
616 TFLOGSTRING("TSY: CMmCustomMessHandler::CallReleaseReq.\n" ); |
615 TFLOGSTRING("TSY: CMmCustomMessHandler::CallReleaseReq.\n" ); |
617 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_CALLRELEASEREQ, "CMmCustomMessHandler::CallReleaseReq" ); |
616 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_CALLRELEASEREQ_TD, "CMmCustomMessHandler::CallReleaseReq" ); |
618 |
617 |
619 iReleaseCauseValueSent = aCause; |
618 iReleaseCauseValueSent = aCause; |
620 |
619 |
621 //Append data for ISI message |
620 //Append data for ISI message |
622 TBuf8< 2 + SIZE_CALL_MODEM_SB_CAUSE > messageBuf; |
621 TBuf8< 2 + SIZE_CALL_MODEM_SB_CAUSE > messageBuf; |
709 EIsiSubBlockTypeId8Len8, |
708 EIsiSubBlockTypeId8Len8, |
710 sbStartOffSet ) ) |
709 sbStartOffSet ) ) |
711 { |
710 { |
712 TFLOGSTRING("TSY: CMmCustomMessHandler::CallMoAlertInd,\ |
711 TFLOGSTRING("TSY: CMmCustomMessHandler::CallMoAlertInd,\ |
713 - CALL_MODEM_SB_ALERTING_INFO sub block found."); |
712 - CALL_MODEM_SB_ALERTING_INFO sub block found."); |
714 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_CALLMOALERTIND, "CMmCustomMessHandler::CallMoAlertInd, CALL_MODEM_SB_ALERTING_INFO sub block found" ); |
713 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_CALLMOALERTIND_TD, "CMmCustomMessHandler::CallMoAlertInd, CALL_MODEM_SB_ALERTING_INFO sub block found" ); |
715 |
714 |
716 // Get alerting info |
715 // Get alerting info |
717 TUint8 callAlertingInfo( aIsiMsg.Get8bit( |
716 TUint8 callAlertingInfo( aIsiMsg.Get8bit( |
718 sbStartOffSet + CALL_MODEM_SB_ALERTING_INFO_OFFSET_ALERTINGINFO ) ); |
717 sbStartOffSet + CALL_MODEM_SB_ALERTING_INFO_OFFSET_ALERTINGINFO ) ); |
719 |
718 |
740 // ----------------------------------------------------------------------------- |
739 // ----------------------------------------------------------------------------- |
741 // |
740 // |
742 TInt CMmCustomMessHandler::UiccReadCiReq( TInt aTrId ) |
741 TInt CMmCustomMessHandler::UiccReadCiReq( TInt aTrId ) |
743 { |
742 { |
744 TFLOGSTRING2("TSY: CMmCustomMessHandler::UiccReadCiReq, transaction ID: %d", aTrId ); |
743 TFLOGSTRING2("TSY: CMmCustomMessHandler::UiccReadCiReq, transaction ID: %d", aTrId ); |
745 OstTrace1( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCREADCIREQ, "CMmCustomMessHandler::UiccReadCiReq;aTrId=%d", aTrId ); |
744 OstTrace1( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCREADCIREQ_TD, "CMmCustomMessHandler::UiccReadCiReq;aTrId=%d", aTrId ); |
746 |
745 |
747 // Set parameters for UICC_APPL_CMD_REQ message |
746 // Set parameters for UICC_APPL_CMD_REQ message |
748 TUiccReadTransparent params; |
747 TUiccReadTransparent params; |
749 params.messHandlerPtr = static_cast<MUiccOperationBase*>( this ); |
748 params.messHandlerPtr = static_cast<MUiccOperationBase*>( this ); |
750 params.trId = static_cast<TUiccTrId>( aTrId ); |
749 params.trId = static_cast<TUiccTrId>( aTrId ); |
849 // ----------------------------------------------------------------------------- |
848 // ----------------------------------------------------------------------------- |
850 // |
849 // |
851 TInt CMmCustomMessHandler::NetCsWakeupReq( TUint8 aTransId ) |
850 TInt CMmCustomMessHandler::NetCsWakeupReq( TUint8 aTransId ) |
852 { |
851 { |
853 TFLOGSTRING("TSY: CMmCustomMessHandler::NetCsWakeupReq.\n" ); |
852 TFLOGSTRING("TSY: CMmCustomMessHandler::NetCsWakeupReq.\n" ); |
854 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_NETCSWAKEUPREQ, "CMmCustomMessHandler::NetCsWakeupReq" ); |
853 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_NETCSWAKEUPREQ_TD, "CMmCustomMessHandler::NetCsWakeupReq" ); |
855 |
854 |
856 //Data buffer length is 2 |
855 //Data buffer length is 2 |
857 TBuf8<2> data; |
856 TBuf8<2> data; |
858 data.Append( aTransId ); |
857 data.Append( aTransId ); |
859 data.Append( NET_CS_WAKEUP_REQ ); |
858 data.Append( NET_CS_WAKEUP_REQ ); |
873 // ----------------------------------------------------------------------------- |
872 // ----------------------------------------------------------------------------- |
874 // |
873 // |
875 void CMmCustomMessHandler::NetCsWakeupResp() |
874 void CMmCustomMessHandler::NetCsWakeupResp() |
876 { |
875 { |
877 TFLOGSTRING("TSY: CMmCustomMessHandler::NetCsWakeupResp.\n" ); |
876 TFLOGSTRING("TSY: CMmCustomMessHandler::NetCsWakeupResp.\n" ); |
878 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_NETCSWAKEUPRESP, "CMmCustomMessHandler::NetCsWakeupResp" ); |
877 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_NETCSWAKEUPRESP_TD, "CMmCustomMessHandler::NetCsWakeupResp" ); |
879 |
878 |
880 //getting this message indicates that the wakeup was successful |
879 //getting this message indicates that the wakeup was successful |
881 //complete NetWakeup method (no packed parameters) |
880 //complete NetWakeup method (no packed parameters) |
882 iMessageRouter->Complete( ECustomNetWakeupIPC, KErrNone ); |
881 iMessageRouter->Complete( ECustomNetWakeupIPC, KErrNone ); |
883 |
882 |
893 // |
892 // |
894 void CMmCustomMessHandler::NetCipheringInd( |
893 void CMmCustomMessHandler::NetCipheringInd( |
895 const TIsiReceiveC &aIsiMsg ) |
894 const TIsiReceiveC &aIsiMsg ) |
896 { |
895 { |
897 TFLOGSTRING("TSY: CMmCustomMessHandler::NetCipheringInd.\n" ); |
896 TFLOGSTRING("TSY: CMmCustomMessHandler::NetCipheringInd.\n" ); |
898 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_NETCIPHERINGIND, "CMmCustomMessHandler::NetCipheringInd" ); |
897 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_NETCIPHERINGIND_TD, "CMmCustomMessHandler::NetCipheringInd" ); |
899 |
898 |
900 //set chipering to False |
899 //set chipering to False |
901 TBool cipher( EFalse ); |
900 TBool cipher( EFalse ); |
902 |
901 |
903 //get the ciphering status |
902 //get the ciphering status |
972 } |
971 } |
973 case NET_REG_STATUS_NOSERV_NOSIM: |
972 case NET_REG_STATUS_NOSERV_NOSIM: |
974 case NET_REG_STATUS_NOSERV_SIM_REJECTED_BY_NW: |
973 case NET_REG_STATUS_NOSERV_SIM_REJECTED_BY_NW: |
975 { |
974 { |
976 TFLOGSTRING("TSY: CMmCustomMessHandler::NetModemRegStatusInd, No SIM"); |
975 TFLOGSTRING("TSY: CMmCustomMessHandler::NetModemRegStatusInd, No SIM"); |
977 OstTrace0( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_NETMODEMREGSTATUSIND, "CMmCustomMessHandler::NetModemRegStatusInd, No SIM" ); |
976 OstTrace0( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_NETMODEMREGSTATUSIND_TD, "CMmCustomMessHandler::NetModemRegStatusInd, No SIM" ); |
978 // Complete NetworkConnectionFailure notification |
977 // Complete NetworkConnectionFailure notification |
979 // (no packed parameters). |
978 // (no packed parameters). |
980 // If puk code is required notification shouldn't |
979 // If puk code is required notification shouldn't |
981 // be completed. |
980 // be completed. |
982 TBool pukCodeRequired( iSecurityMessHandler->GetPukCodeReq() ); |
981 TBool pukCodeRequired( iSecurityMessHandler->GetPukCodeReq() ); |
983 if( !pukCodeRequired ) |
982 if( !pukCodeRequired ) |
984 { |
983 { |
985 TFLOGSTRING("TSY: CMmCustomMessHandler::NetModemRegStatusInd - Complete network connection failure"); |
984 TFLOGSTRING("TSY: CMmCustomMessHandler::NetModemRegStatusInd - Complete network connection failure"); |
986 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_NETMODEMREGSTATUSIND, "CMmCustomMessHandler::NetModemRegStatusInd - Complete network connection failure" ); |
985 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_NETMODEMREGSTATUSIND_TD, "CMmCustomMessHandler::NetModemRegStatusInd - Complete network connection failure" ); |
987 |
986 |
988 iMessageRouter->Complete( |
987 iMessageRouter->Complete( |
989 ECustomNotifyNetworkConnectionFailureIPC, |
988 ECustomNotifyNetworkConnectionFailureIPC, |
990 KErrNone ); |
989 KErrNone ); |
991 } |
990 } |
992 break; |
991 break; |
993 } |
992 } |
994 default: |
993 default: |
995 { |
994 { |
996 TFLOGSTRING("TSY: CMmCustomMessHandler::NetModemRegStatusInd, switch registrationStatus - default"); |
995 TFLOGSTRING("TSY: CMmCustomMessHandler::NetModemRegStatusInd, switch registrationStatus - default"); |
997 OstTrace0( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_NETMODEMREGSTATUSIND, "CMmCustomMessHandler::NetModemRegStatusInd, switch registrationStatus - default" ); |
996 OstTrace0( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_NETMODEMREGSTATUSIND_TD, "CMmCustomMessHandler::NetModemRegStatusInd, switch registrationStatus - default" ); |
998 break; |
997 break; |
999 } |
998 } |
1000 } |
999 } |
1001 |
1000 |
1002 // Inform of the status of NSPS. |
1001 // Inform of the status of NSPS. |
1023 // ----------------------------------------------------------------------------- |
1022 // ----------------------------------------------------------------------------- |
1024 // |
1023 // |
1025 TInt CMmCustomMessHandler::UiccReadDynamic2FlagsReq() |
1024 TInt CMmCustomMessHandler::UiccReadDynamic2FlagsReq() |
1026 { |
1025 { |
1027 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccReadDynamic2FlagsReq"); |
1026 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccReadDynamic2FlagsReq"); |
1028 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCREADDYNAMIC2FLAGSREQ, "CMmCustomMessHandler::UiccReadDynamic2FlagsReq" ); |
1027 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCREADDYNAMIC2FLAGSREQ_TD, "CMmCustomMessHandler::UiccReadDynamic2FlagsReq" ); |
1029 // Set parameters for UICC_APPL_CMD_REQ message |
1028 // Set parameters for UICC_APPL_CMD_REQ message |
1030 TUiccWriteTransparent params; |
1029 TUiccWriteTransparent params; |
1031 params.messHandlerPtr = static_cast<MUiccOperationBase*>( this ); |
1030 params.messHandlerPtr = static_cast<MUiccOperationBase*>( this ); |
1032 params.trId = ETrIdReadDynamic2Flags; |
1031 params.trId = ETrIdReadDynamic2Flags; |
1033 params.dataOffset = 0; |
1032 params.dataOffset = 0; |
1051 void CMmCustomMessHandler::UiccReadDynamic2FlagsResp( |
1050 void CMmCustomMessHandler::UiccReadDynamic2FlagsResp( |
1052 TInt aStatus, |
1051 TInt aStatus, |
1053 const TDesC8& aFileData ) |
1052 const TDesC8& aFileData ) |
1054 { |
1053 { |
1055 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccReadDynamic2FlagsResp"); |
1054 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccReadDynamic2FlagsResp"); |
1056 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCREADDYNAMIC2FLAGSRESP, "CMmCustomMessHandler::UiccReadDynamic2FlagsResp" ); |
1055 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCREADDYNAMIC2FLAGSRESP_TD, "CMmCustomMessHandler::UiccReadDynamic2FlagsResp" ); |
1057 |
1056 |
1058 TInt ret( KErrNone ); |
1057 TInt ret( KErrNone ); |
1059 RMmCustomAPI::TGetAlsBlockStatus blockStatus |
1058 RMmCustomAPI::TGetAlsBlockStatus blockStatus |
1060 ( RMmCustomAPI::EBlockStatusUnknown ); |
1059 ( RMmCustomAPI::EBlockStatusUnknown ); |
1061 |
1060 |
1092 // ----------------------------------------------------------------------------- |
1091 // ----------------------------------------------------------------------------- |
1093 // |
1092 // |
1094 TInt CMmCustomMessHandler::UiccWriteDynamic2FlagsReq( TUint8 aInfo ) |
1093 TInt CMmCustomMessHandler::UiccWriteDynamic2FlagsReq( TUint8 aInfo ) |
1095 { |
1094 { |
1096 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccWriteDynamic2FlagsReq"); |
1095 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccWriteDynamic2FlagsReq"); |
1097 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCWRITEDYNAMIC2FLAGSREQ, "CMmCustomMessHandler::UiccWriteDynamic2FlagsReq" ); |
1096 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCWRITEDYNAMIC2FLAGSREQ_TD, "CMmCustomMessHandler::UiccWriteDynamic2FlagsReq" ); |
1098 |
1097 |
1099 // Set parameters for UICC_APPL_CMD_REQ message |
1098 // Set parameters for UICC_APPL_CMD_REQ message |
1100 TUiccWriteTransparent params; |
1099 TUiccWriteTransparent params; |
1101 params.messHandlerPtr = static_cast<MUiccOperationBase*>( this ); |
1100 params.messHandlerPtr = static_cast<MUiccOperationBase*>( this ); |
1102 params.trId = ETrIdWriteDynamic2Flags; |
1101 params.trId = ETrIdWriteDynamic2Flags; |
1177 if ( 0 != ssDiagnostics ) |
1176 if ( 0 != ssDiagnostics ) |
1178 { |
1177 { |
1179 ssDiagnostics |= 0x80; // binary 10000000 |
1178 ssDiagnostics |= 0x80; // binary 10000000 |
1180 TFLOGSTRING3("TSY:CMmCustomMessHandler::CallTerminatedInd: Diagnostic octet=%d received for call id=%d", |
1179 TFLOGSTRING3("TSY:CMmCustomMessHandler::CallTerminatedInd: Diagnostic octet=%d received for call id=%d", |
1181 ssDiagnostics, callId ); |
1180 ssDiagnostics, callId ); |
1182 OstTraceExt2( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_CALLTERMINATEIND, "CMmCustomMessHandler::CallTerminateInd;Diagnostic octet==%hhu received for call id=%d", ssDiagnostics, callId ); |
1181 OstTraceExt2( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_CALLTERMINATEIND_TD, "CMmCustomMessHandler::CallTerminateInd;Diagnostic octet==%hhu received for call id=%d", ssDiagnostics, callId ); |
1183 } |
1182 } |
1184 } |
1183 } |
1185 |
1184 |
1186 // set the diagnostics in call object (might be zero) |
1185 // set the diagnostics in call object (might be zero) |
1187 // parameters for SOS layer: Call id and TUint8 with diagnostics |
1186 // parameters for SOS layer: Call id and TUint8 with diagnostics |
1235 if ( 0 != ssDiagnostics ) |
1234 if ( 0 != ssDiagnostics ) |
1236 { |
1235 { |
1237 ssDiagnostics |= 0x80; // binary 10000000 |
1236 ssDiagnostics |= 0x80; // binary 10000000 |
1238 TFLOGSTRING3("TSY:CMmCustomMessHandler::CallReleaseInd: Diagnostic octet=%d received for call id=%d", |
1237 TFLOGSTRING3("TSY:CMmCustomMessHandler::CallReleaseInd: Diagnostic octet=%d received for call id=%d", |
1239 ssDiagnostics, callId ); |
1238 ssDiagnostics, callId ); |
1240 OstTraceExt2( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_CALLRELEASEIND, "CMmCustomMessHandler::CallReleaseInd;Diagnostic octet==%hhu received for call id=%d", ssDiagnostics, callId ); |
1239 OstTraceExt2( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_CALLRELEASEIND_TD, "CMmCustomMessHandler::CallReleaseInd;Diagnostic octet==%hhu received for call id=%d", ssDiagnostics, callId ); |
1241 } |
1240 } |
1242 } |
1241 } |
1243 |
1242 |
1244 // set the diagnostics in call object (might be zero) |
1243 // set the diagnostics in call object (might be zero) |
1245 // parameters for SOS layer: Call id and TUint8 with diagnostics |
1244 // parameters for SOS layer: Call id and TUint8 with diagnostics |
1264 ( |
1263 ( |
1265 TProductProfileRequestType aReqType // request type, used as |
1264 TProductProfileRequestType aReqType // request type, used as |
1266 ) |
1265 ) |
1267 { |
1266 { |
1268 TFLOGSTRING("TSY: CMmCustomMessHandler::InfoPpReadReq.\n" ); |
1267 TFLOGSTRING("TSY: CMmCustomMessHandler::InfoPpReadReq.\n" ); |
1269 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_INFOPPREADREQ, "CMmCustomMessHandler::InfoPpReadReq" ); |
1268 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_INFOPPREADREQ_TD, "CMmCustomMessHandler::InfoPpReadReq" ); |
1270 |
1269 |
1271 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING |
1270 #ifdef INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING |
1272 //create the buffer for SB_PP subblock |
1271 //create the buffer for SB_PP subblock |
1273 TBuf8<SIZE_INFO_SB_PP> sbPPSubBlockBuf( 0 ); |
1272 TBuf8<SIZE_INFO_SB_PP> sbPPSubBlockBuf( 0 ); |
1274 TIsiSubBlock sbPPSubBlock( sbPPSubBlockBuf, INFO_SB_PP, EIsiSubBlockTypeId8Len8 ); |
1273 TIsiSubBlock sbPPSubBlock( sbPPSubBlockBuf, INFO_SB_PP, EIsiSubBlockTypeId8Len8 ); |
1287 } |
1286 } |
1288 else if ( ECheckTwoDigitDialSupport == aReqType ) |
1287 else if ( ECheckTwoDigitDialSupport == aReqType ) |
1289 { |
1288 { |
1290 sbPPSubBlockBuf.Append( KinfoPpTwoDigitDial ); |
1289 sbPPSubBlockBuf.Append( KinfoPpTwoDigitDial ); |
1291 } |
1290 } |
1292 else |
1291 else |
1293 { |
1292 { |
1294 // not supported |
1293 // not supported |
1295 return KErrArgument; |
1294 return KErrArgument; |
1296 } |
1295 } |
1297 |
1296 |
1298 //value of the product profile is 0x00, not need cause we are reading |
1297 //value of the product profile is 0x00, not need cause we are reading |
1299 sbPPSubBlockBuf.Append( 0x00 ); |
1298 sbPPSubBlockBuf.Append( 0x00 ); |
1300 |
1299 |
1301 // Construct INFO_PP_READ_REQ message (1 data byte + |
1300 // Construct INFO_PP_READ_REQ message (1 data byte + |
1302 // sub block count + INFO_SB_PP sub block) |
1301 // sub block count + INFO_SB_PP sub block) |
1303 TBuf8< 2 + SIZE_INFO_SB_PP > infoPpReadReq; |
1302 TBuf8< 2 + SIZE_INFO_SB_PP > infoPpReadReq; |
1304 |
1303 |
1305 //set pp batch reading to read specific product profile, thus 0. |
1304 //set pp batch reading to read specific product profile, thus 0. |
1306 infoPpReadReq.Append( INFO_PP_PROD_PROFILE_FEATURE ); |
1305 infoPpReadReq.Append( INFO_PP_PROD_PROFILE_FEATURE ); |
1307 |
1306 |
1308 // add sub block |
1307 // add sub block |
1309 infoPpReadReq.Append( 1 ); // number of sub blocks |
1308 infoPpReadReq.Append( 1 ); // number of sub blocks |
1310 infoPpReadReq.Append( sbPPSubBlock.CompleteSubBlock() ); |
1309 infoPpReadReq.Append( sbPPSubBlock.CompleteSubBlock() ); |
1311 |
1310 |
1312 //create the isi message |
1311 //create the isi message |
1313 //transaction id = request type |
1312 //transaction id = request type |
1314 TUint8 transId = static_cast<TUint8>( aReqType ); |
1313 TUint8 transId = static_cast<TUint8>( aReqType ); |
1315 |
1314 |
1316 return iPhoNetSender->Send( PN_INFO, transId, INFO_PP_READ_REQ, infoPpReadReq ); |
1315 return iPhoNetSender->Send( PN_INFO, transId, INFO_PP_READ_REQ, infoPpReadReq ); |
1317 |
1316 |
1318 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
1317 #endif /* INTERNAL_TESTING_OLD_IMPLEMENTATION_FOR_UICC_TESTING */ |
1319 return KErrNone; |
1318 return KErrNone; |
1346 |
1345 |
1347 //initialize two digit support with off |
1346 //initialize two digit support with off |
1348 RMmCustomAPI::TTwoDigitDialSupport twoDigitDialSupport( |
1347 RMmCustomAPI::TTwoDigitDialSupport twoDigitDialSupport( |
1349 RMmCustomAPI::ETwoDigitDialSupportOff ); |
1348 RMmCustomAPI::ETwoDigitDialSupportOff ); |
1350 |
1349 |
1351 TFLOGSTRING2("TSY: CMmCustomMessHandler::InfoPpReadResp - Status: %d", |
1350 TFLOGSTRING2("TSY: CMmCustomMessHandler::InfoPpReadResp - Status: %d", status ); |
1352 status ); |
1351 OstTraceExt1( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_INFOPPREADRESP_TD, "CMmCustomMessHandler::InfoPpReadResp;status=%hhu", status ); |
1353 OstTraceExt1( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_INFOPPREADRESP, "CMmCustomMessHandler::InfoPpReadResp;status=%hhu", status ); |
|
1354 |
1352 |
1355 switch ( status ) |
1353 switch ( status ) |
1356 { |
1354 { |
1357 case INFO_OK: |
1355 case INFO_OK: |
1358 { |
1356 { |
1359 |
1357 TUint sbInfoPpReadStartOffset(0); |
1360 TUint sbInfoPpReadStartOffset( 0 ); |
|
1361 |
|
1362 |
|
1363 if ( KErrNone == aIsiMessage.FindSubBlockOffsetById( ISI_HEADER_SIZE + SIZE_INFO_PP_READ_RESP, |
1358 if ( KErrNone == aIsiMessage.FindSubBlockOffsetById( ISI_HEADER_SIZE + SIZE_INFO_PP_READ_RESP, |
1364 INFO_SB_PP, EIsiSubBlockTypeId8Len8, sbInfoPpReadStartOffset ) ) |
1359 INFO_SB_PP, EIsiSubBlockTypeId8Len8, sbInfoPpReadStartOffset ) ) |
1365 |
1360 |
1366 { |
1361 { |
1367 |
1362 |
1368 TInt length = aIsiMessage.Get8bit( sbInfoPpReadStartOffset + INFO_SB_PP_OFFSET_STRLEN ); |
1363 TInt length = aIsiMessage.Get8bit( sbInfoPpReadStartOffset + INFO_SB_PP_OFFSET_STRLEN ); |
1369 |
1364 |
1370 TFLOGSTRING2("TSY: CMmCustomMessHandler::InfoPpReadResp - Info length: %d", |
1365 TFLOGSTRING2("TSY: CMmCustomMessHandler::InfoPpReadResp - Info length: %d", |
1371 length ); |
1366 length ); |
1372 OstTrace1( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_INFOPPREADRESP, "CMmCustomMessHandler::InfoPpReadResp - Info length=%d", length ); |
1367 OstTrace1( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_INFOPPREADRESP_TD, "CMmCustomMessHandler::InfoPpReadResp - Info length=%d", length ); |
1373 |
|
1374 if ( 1 == length ) |
1368 if ( 1 == length ) |
1375 { |
1369 { |
1376 //introduce the pPFeatures buffer to hold the feature value, |
1370 //introduce the pPFeatures buffer to hold the feature value, |
1377 //buffer size is 2 |
1371 //buffer size is 2 |
1378 TBuf8<KTwo> pPFeatures; |
1372 TBuf8<KTwo> pPFeatures; |
1381 pPFeatures.Copy( aIsiMessage.GetData( sbInfoPpReadStartOffset |
1375 pPFeatures.Copy( aIsiMessage.GetData( sbInfoPpReadStartOffset |
1382 + INFO_SB_PP_OFFSET_PRODUCTPROFILE, KTwo ) ); |
1376 + INFO_SB_PP_OFFSET_PRODUCTPROFILE, KTwo ) ); |
1383 |
1377 |
1384 TFLOGSTRING2("TSY: CMmCustomMessHandler::InfoPpReadResp - Info data: %S", |
1378 TFLOGSTRING2("TSY: CMmCustomMessHandler::InfoPpReadResp - Info data: %S", |
1385 &pPFeatures ); |
1379 &pPFeatures ); |
1386 OstTraceExt1( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_INFOPPREADRESP, "CMmCustomMessHandler::InfoPpReadResp;pPfeatures=%s", pPFeatures ); |
1380 OstTraceExt1( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_INFOPPREADRESP_TD, "CMmCustomMessHandler::InfoPpReadResp;pPfeatures=%s", pPFeatures ); |
1387 |
1381 |
1388 //check that product profile is requested one |
1382 //check that product profile is requested one |
1389 if ( INFO_PP_ALS == pPFeatures [0] ) |
1383 if ( INFO_PP_ALS == pPFeatures [0] ) |
1390 { |
1384 { |
1391 //Get the value of the Als feature |
1385 //Get the value of the Als feature |
1392 if ( 0 != pPFeatures [1] ) |
1386 if ( 0 != pPFeatures [1] ) |
1393 { |
1387 { |
1394 TFLOGSTRING("TSY: CMmCustomMessHandler::InfoPpReadResp - EAlsSupportOn"); |
1388 TFLOGSTRING("TSY: CMmCustomMessHandler::InfoPpReadResp - EAlsSupportOn"); |
1395 OstTrace0( TRACE_NORMAL, DUP4_CMMCUSTOMMESSHANDLER_INFOPPREADRESP, "CMmCustomMessHandler::InfoPpReadResp - EAlsSupportOn" ); |
1389 OstTrace0( TRACE_NORMAL, DUP4_CMMCUSTOMMESSHANDLER_INFOPPREADRESP_TD, "CMmCustomMessHandler::InfoPpReadResp - EAlsSupportOn" ); |
1396 alsSupport = RMmCustomAPI::EAlsSupportOn; |
1390 alsSupport = RMmCustomAPI::EAlsSupportOn; |
1397 } |
1391 } |
1398 //set the error value to KErrNone |
1392 //set the error value to KErrNone |
1399 errorValue = KErrNone; |
1393 errorValue = KErrNone; |
1400 } |
1394 } |
1402 { |
1396 { |
1403 //Get the value of the two digit dial feature |
1397 //Get the value of the two digit dial feature |
1404 if ( 0 != pPFeatures [1] ) |
1398 if ( 0 != pPFeatures [1] ) |
1405 { |
1399 { |
1406 TFLOGSTRING("TSY: CMmCustomMessHandler::InfoPpReadResp - EAlsSupportOff"); |
1400 TFLOGSTRING("TSY: CMmCustomMessHandler::InfoPpReadResp - EAlsSupportOff"); |
1407 OstTrace0( TRACE_NORMAL, DUP5_CMMCUSTOMMESSHANDLER_INFOPPREADRESP, "CMmCustomMessHandler::InfoPpReadResp - EAlsSupportOff" ); |
1401 OstTrace0( TRACE_NORMAL, DUP5_CMMCUSTOMMESSHANDLER_INFOPPREADRESP_TD, "CMmCustomMessHandler::InfoPpReadResp - EAlsSupportOff" ); |
1408 twoDigitDialSupport = |
1402 twoDigitDialSupport = |
1409 RMmCustomAPI::ETwoDigitDialSupportOn; |
1403 RMmCustomAPI::ETwoDigitDialSupportOn; |
1410 } |
1404 } |
1411 //set the error value to KErrNone |
1405 //set the error value to KErrNone |
1412 errorValue = KErrNone; |
1406 errorValue = KErrNone; |
1413 } |
1407 } |
1414 |
|
1415 //No else |
1408 //No else |
1416 |
|
1417 } |
1409 } |
1418 } |
1410 } |
1419 break; |
1411 break; |
1420 } |
1412 } |
1421 case INFO_FAIL: |
1413 case INFO_FAIL: |
1500 ( |
1491 ( |
1501 // const TIsiReceiveC& aIsiMsg // Received isi messge |
1492 // const TIsiReceiveC& aIsiMsg // Received isi messge |
1502 ) |
1493 ) |
1503 { |
1494 { |
1504 TFLOGSTRING("TSY: CMmCustomMessHandler::CallGsmBlackListClearResp.\n" ); |
1495 TFLOGSTRING("TSY: CMmCustomMessHandler::CallGsmBlackListClearResp.\n" ); |
1505 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_CALLGSMBLACKLISTCLEARRESP, "CMmCustomMessHandler::CallGsmBlackListClearResp" ); |
1496 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_CALLGSMBLACKLISTCLEARRESP_TD, "CMmCustomMessHandler::CallGsmBlackListClearResp" ); |
1506 |
1497 |
1507 // call server response |
1498 // call server response |
1508 //getting this message indicates that the clear blacklist was successful |
1499 //getting this message indicates that the clear blacklist was successful |
1509 //complete SOS layer method |
1500 //complete SOS layer method |
1510 iMessageRouter->Complete( ECustomClearCallBlackListIPC, KErrNone ); |
1501 iMessageRouter->Complete( ECustomClearCallBlackListIPC, KErrNone ); |
1640 { |
1631 { |
1641 ssStatus = KCustomApiSsGsmQuiescent; |
1632 ssStatus = KCustomApiSsGsmQuiescent; |
1642 } |
1633 } |
1643 TFLOGSTRING2("TSY: CMmCustomMessHandler::SsServiceCompletedInd: Complete SsRequestCompleteNotification ssStatus:%d", |
1634 TFLOGSTRING2("TSY: CMmCustomMessHandler::SsServiceCompletedInd: Complete SsRequestCompleteNotification ssStatus:%d", |
1644 ssStatus ); |
1635 ssStatus ); |
1645 OstTrace1( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_SSSERVICECOMPLETEDIND, "CMmCustomMessHandler::SsServiceCompletedInd;Complete SsRequestCompleteNotification ssStatus=%u", ssStatus ); |
1636 OstTrace1( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_SSSERVICECOMPLETEDIND_TD, "CMmCustomMessHandler::SsServiceCompletedInd;Complete SsRequestCompleteNotification ssStatus=%u", ssStatus ); |
1646 |
1637 |
1647 CMmDataPackage dataPackage; |
1638 CMmDataPackage dataPackage; |
1648 // pack parameter: a TInt with SS status |
1639 // pack parameter: a TInt with SS status |
1649 dataPackage.PackData( &ssStatus ); |
1640 dataPackage.PackData( &ssStatus ); |
1650 iMessageRouter->Complete( ECustomNotifySsRequestCompleteIPC, |
1641 iMessageRouter->Complete( ECustomNotifySsRequestCompleteIPC, |
1671 additionalInfo.iAdditionalInfo.Copy( aIsiMessage.GetData( |
1662 additionalInfo.iAdditionalInfo.Copy( aIsiMessage.GetData( |
1672 sbStartOffset + SS_GSM_ADDITIONAL_INFO_OFFSET_RETURNRESULT, |
1663 sbStartOffset + SS_GSM_ADDITIONAL_INFO_OFFSET_RETURNRESULT, |
1673 length ) ); |
1664 length ) ); |
1674 |
1665 |
1675 TFLOGSTRING("TSY: CMmCustomMessHandler::SsServiceCompletedInd: Complete SsAdditionalInfoNotification"); |
1666 TFLOGSTRING("TSY: CMmCustomMessHandler::SsServiceCompletedInd: Complete SsAdditionalInfoNotification"); |
1676 OstTrace0( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_SSSERVICECOMPLETEDIND, "CMmCustomMessHandler::SsServiceCompletedInd - Complete SsAdditionalInfoNotification" ); |
1667 OstTrace0( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_SSSERVICECOMPLETEDIND_TD, "CMmCustomMessHandler::SsServiceCompletedInd - Complete SsAdditionalInfoNotification" ); |
1677 |
1668 |
1678 // complete notification |
1669 // complete notification |
1679 CMmDataPackage dataPackage; |
1670 CMmDataPackage dataPackage; |
1680 // pack parameter: pointer to RMmCustomAPI::TSsAdditionalInfo |
1671 // pack parameter: pointer to RMmCustomAPI::TSsAdditionalInfo |
1681 RMmCustomAPI::TSsAdditionalInfo* additionalInfoPtr = |
1672 RMmCustomAPI::TSsAdditionalInfo* additionalInfoPtr = |
1806 additionalInfo.iAdditionalInfo.Append( 0x00 ); |
1797 additionalInfo.iAdditionalInfo.Append( 0x00 ); |
1807 break; |
1798 break; |
1808 } |
1799 } |
1809 } |
1800 } |
1810 TFLOGSTRING2("TSY: CMmCustomMessHandler::SsServiceFailedResp: Ss Status: %d", ssStatus ); |
1801 TFLOGSTRING2("TSY: CMmCustomMessHandler::SsServiceFailedResp: Ss Status: %d", ssStatus ); |
1811 OstTrace1( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_SSSERVICEFAILEDRESP, "CMmCustomMessHandler::SsServiceFailedResp;Ss Status=%d", ssStatus ); |
1802 OstTrace1( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_SSSERVICEFAILEDRESP_TD, "CMmCustomMessHandler::SsServiceFailedResp;Ss Status=%d", ssStatus ); |
1812 // pack parameter: a TInt with SS status |
1803 // pack parameter: a TInt with SS status |
1813 dataPackage.PackData( &ssStatus ); |
1804 dataPackage.PackData( &ssStatus ); |
1814 |
1805 |
1815 // To complete outstanding SsRequestCompleteNotification |
1806 // To complete outstanding SsRequestCompleteNotification |
1816 iMessageRouter->Complete( |
1807 iMessageRouter->Complete( |
1817 ECustomNotifySsRequestCompleteIPC, |
1808 ECustomNotifySsRequestCompleteIPC, |
1818 &dataPackage, |
1809 &dataPackage, |
1819 KErrNone ); |
1810 KErrNone ); |
1820 |
1811 |
1821 TFLOGSTRING2("TSY: CMmCustomMessHandler::SsServiceFailedResp: SB ID: 0x%x",subBlockId ); |
1812 TFLOGSTRING2("TSY: CMmCustomMessHandler::SsServiceFailedResp: SB ID: 0x%x",subBlockId ); |
1822 OstTraceExt1( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_SSSERVICEFAILEDRESP, "CMmCustomMessHandler::SsServiceFailedResp;subBlockId=%hhx", subBlockId ); |
1813 OstTraceExt1( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_SSSERVICEFAILEDRESP_TD, "CMmCustomMessHandler::SsServiceFailedResp;subBlockId=%hhx", subBlockId ); |
1823 // pack parameter: pointer to RMmCustomAPI::TSsAdditionalInfo |
1814 // pack parameter: pointer to RMmCustomAPI::TSsAdditionalInfo |
1824 RMmCustomAPI::TSsAdditionalInfo* additionalInfoPtr = &additionalInfo; |
1815 RMmCustomAPI::TSsAdditionalInfo* additionalInfoPtr = &additionalInfo; |
1825 dataPackage.PackData( &additionalInfoPtr ); |
1816 dataPackage.PackData( &additionalInfoPtr ); |
1826 |
1817 |
1827 // To complete outstanding SsAdditionalInfoNotification |
1818 // To complete outstanding SsAdditionalInfoNotification |
1860 RMmCustomAPI::TMobileTelNumber& aNumber, // Telnumber |
1851 RMmCustomAPI::TMobileTelNumber& aNumber, // Telnumber |
1861 RMmCustomAPI::TCheckMode aCheckMode // Check mode |
1852 RMmCustomAPI::TCheckMode aCheckMode // Check mode |
1862 ) |
1853 ) |
1863 { |
1854 { |
1864 TFLOGSTRING( "TSY: CMmCustomMessHandler::CallEmergencyNbrCheckReq" ); |
1855 TFLOGSTRING( "TSY: CMmCustomMessHandler::CallEmergencyNbrCheckReq" ); |
1865 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_CALLEMERGENCYNBRCHECKREQ, "CMmCustomMessHandler::CallEmergencyNbrCheckReq" ); |
1856 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_CALLEMERGENCYNBRCHECKREQ_TD, "CMmCustomMessHandler::CallEmergencyNbrCheckReq" ); |
1866 |
1857 |
1867 //save the information to match it when the response is got |
1858 //save the information to match it when the response is got |
1868 iUsedEmergencyNbrCheckMode = aCheckMode; |
1859 iUsedEmergencyNbrCheckMode = aCheckMode; |
1869 iEmergencyNumberLength = aNumber.Length(); |
1860 iEmergencyNumberLength = aNumber.Length(); |
1870 |
1861 |
1996 // ----------------------------------------------------------------------------- |
1987 // ----------------------------------------------------------------------------- |
1997 // |
1988 // |
1998 TInt CMmCustomMessHandler::UiccOperatorReq() |
1989 TInt CMmCustomMessHandler::UiccOperatorReq() |
1999 { |
1990 { |
2000 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccOperatorReq" ); |
1991 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccOperatorReq" ); |
2001 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCOPERATORREQ, "CMmCustomMessHandler::UiccOperatorReq" ); |
1992 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCOPERATORREQ_TD, "CMmCustomMessHandler::UiccOperatorReq" ); |
2002 |
1993 |
2003 // Set parameters for UICC_APPL_CMD_REQ message |
1994 // Set parameters for UICC_APPL_CMD_REQ message |
2004 TUiccReadTransparent params; |
1995 TUiccReadTransparent params; |
2005 params.messHandlerPtr = static_cast<MUiccOperationBase*>( this ); |
1996 params.messHandlerPtr = static_cast<MUiccOperationBase*>( this ); |
2006 params.trId = ETrIdReadOperatorNameCustom; |
1997 params.trId = ETrIdReadOperatorNameCustom; |
2022 // CMmCustomMessHandler::UiccOperatorResp |
2013 // CMmCustomMessHandler::UiccOperatorResp |
2023 // Complete operator name |
2014 // Complete operator name |
2024 // ----------------------------------------------------------------------------- |
2015 // ----------------------------------------------------------------------------- |
2025 // |
2016 // |
2026 void CMmCustomMessHandler::UiccOperatorResp( |
2017 void CMmCustomMessHandler::UiccOperatorResp( |
2027 TInt aStatus, |
2018 TUint8 aStatus, |
2028 const TDesC8& aFileData ) |
2019 const TDesC8& aFileData ) |
2029 { |
2020 { |
2030 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccOperatorResp" ); |
2021 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccOperatorResp" ); |
2031 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCOPERATORRESP, "CMmCustomMessHandler::UiccOperatorResp" ); |
2022 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCOPERATORRESP_TD, "CMmCustomMessHandler::UiccOperatorResp" ); |
2032 |
2023 |
2033 TInt errorValue( KErrGeneral ); |
2024 TInt errorValue( KErrGeneral ); |
2034 |
2025 |
2035 // Network provider name |
2026 // Network provider name |
2036 TBuf<KNwProviderNameLength> name; |
2027 TBuf<KNwProviderNameLength> name; |
2037 |
2028 |
2038 if ( KErrNone == aStatus ) |
2029 if ( UICC_STATUS_OK == aStatus ) |
2039 { |
2030 { |
2040 errorValue = KErrNone; |
2031 errorValue = KErrNone; |
2041 name.Copy( aFileData ); |
2032 name.Copy( aFileData ); |
2042 } |
2033 } |
2043 |
2034 |
2120 const TCiphListEntry& aArg1, //first argument |
2111 const TCiphListEntry& aArg1, //first argument |
2121 const TCiphListEntry& aArg2 //second argument |
2112 const TCiphListEntry& aArg2 //second argument |
2122 ) |
2113 ) |
2123 { |
2114 { |
2124 TFLOGSTRING("TSY: CMmCustomMessHandler::Match.\n" ); |
2115 TFLOGSTRING("TSY: CMmCustomMessHandler::Match.\n" ); |
2125 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_MATCH, "CMmCustomMessHandler::Match" ); |
2116 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_MATCH_TD, "CMmCustomMessHandler::Match" ); |
2126 |
2117 |
2127 TBool ret ( EFalse ); |
2118 TBool ret ( EFalse ); |
2128 |
2119 |
2129 //we are interested only in the traId value |
2120 //we are interested only in the traId value |
2130 if ( aArg1.iTraId == aArg2.iTraId ) |
2121 if ( aArg1.iTraId == aArg2.iTraId ) |
2172 // |
2163 // |
2173 void CMmCustomMessHandler::NetModemRegStatusGetResp( |
2164 void CMmCustomMessHandler::NetModemRegStatusGetResp( |
2174 const TIsiReceiveC& aIsiMsg ) |
2165 const TIsiReceiveC& aIsiMsg ) |
2175 { |
2166 { |
2176 TFLOGSTRING("TSY: CMmCustomMessHandler::NetModemRegStatusGetResp" ); |
2167 TFLOGSTRING("TSY: CMmCustomMessHandler::NetModemRegStatusGetResp" ); |
2177 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_NETMODEMREGSTATUSGETRESP, "CMmCustomMessHandler::NetModemRegStatusGetResp" ); |
2168 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_NETMODEMREGSTATUSGETRESP_TD, "CMmCustomMessHandler::NetModemRegStatusGetResp" ); |
2178 |
2169 |
2179 // Get the success code. |
2170 // Get the success code. |
2180 TUint8 successCode( aIsiMsg.Get8bit( |
2171 TUint8 successCode( aIsiMsg.Get8bit( |
2181 ISI_HEADER_SIZE + |
2172 ISI_HEADER_SIZE + |
2182 NET_MODEM_REG_STATUS_GET_RESP_OFFSET_SUCCESSCODE ) ); |
2173 NET_MODEM_REG_STATUS_GET_RESP_OFFSET_SUCCESSCODE ) ); |
2235 EIsiSubBlockTypeId8Len8, |
2226 EIsiSubBlockTypeId8Len8, |
2236 sbStartOffSet ) ) |
2227 sbStartOffSet ) ) |
2237 { |
2228 { |
2238 TFLOGSTRING("TSY: CMmCustomMessHandler::CallGsmNotificationInd,\ |
2229 TFLOGSTRING("TSY: CMmCustomMessHandler::CallGsmNotificationInd,\ |
2239 - CALL_MODEM_SB_SS_CODE sub block founded"); |
2230 - CALL_MODEM_SB_SS_CODE sub block founded"); |
2240 OstTrace0( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_CALLGSMNOTIFICATIONIND, "CMmCustomMessHandler::CallGsmNotificationInd, CALL_MODEM_SB_SS_CODE sub block found" ); |
2231 OstTrace0( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_CALLGSMNOTIFICATIONIND_TD, "CMmCustomMessHandler::CallGsmNotificationInd, CALL_MODEM_SB_SS_CODE sub block found" ); |
2241 |
2232 |
2242 TUint16 ssCode( aIsiMsg.Get16bit( |
2233 TUint16 ssCode( aIsiMsg.Get16bit( |
2243 sbStartOffSet + CALL_MODEM_SB_SS_CODE_OFFSET_MMISSCODE ) ); |
2234 sbStartOffSet + CALL_MODEM_SB_SS_CODE_OFFSET_MMISSCODE ) ); |
2244 |
2235 |
2245 switch ( ssCode ) |
2236 switch ( ssCode ) |
2302 EIsiSubBlockTypeId8Len8, |
2293 EIsiSubBlockTypeId8Len8, |
2303 sbStartOffSet ) ) |
2294 sbStartOffSet ) ) |
2304 { |
2295 { |
2305 TFLOGSTRING("TSY: CMmCustomMessHandler::CallGsmNotificationInd,\ |
2296 TFLOGSTRING("TSY: CMmCustomMessHandler::CallGsmNotificationInd,\ |
2306 - CALL_MODEM_SB_SS_NOTIFY sub block founded"); |
2297 - CALL_MODEM_SB_SS_NOTIFY sub block founded"); |
2307 OstTrace0( TRACE_NORMAL, DUP4_CMMCUSTOMMESSHANDLER_CALLGSMNOTIFICATIONIND, "CMmCustomMessHandler::CallGsmNotificationInd, CALL_MODEM_SB_SS_NOTIFY sub block found" ); |
2298 OstTrace0( TRACE_NORMAL, DUP4_CMMCUSTOMMESSHANDLER_CALLGSMNOTIFICATIONIND_TD, "CMmCustomMessHandler::CallGsmNotificationInd, CALL_MODEM_SB_SS_NOTIFY sub block found" ); |
2308 |
2299 |
2309 // Get the SsNotifyIndictor |
2300 // Get the SsNotifyIndictor |
2310 TUint8 ssNotify( aIsiMsg.Get8bit( |
2301 TUint8 ssNotify( aIsiMsg.Get8bit( |
2311 sbStartOffSet + CALL_MODEM_SB_SS_NOTIFY_OFFSET_SSNOTIFICATION ) ); |
2302 sbStartOffSet + CALL_MODEM_SB_SS_NOTIFY_OFFSET_SSNOTIFICATION ) ); |
2312 |
2303 |
2336 EIsiSubBlockTypeId8Len8, |
2327 EIsiSubBlockTypeId8Len8, |
2337 sbStartOffSet ) ) |
2328 sbStartOffSet ) ) |
2338 { |
2329 { |
2339 TFLOGSTRING("TSY: CMmCustomMessHandler::CallGsmNotificationInd,\ |
2330 TFLOGSTRING("TSY: CMmCustomMessHandler::CallGsmNotificationInd,\ |
2340 - CALL_MODEM_SB_SS_NOTIFY_INDICATOR sub block founded"); |
2331 - CALL_MODEM_SB_SS_NOTIFY_INDICATOR sub block founded"); |
2341 OstTrace0( TRACE_NORMAL, DUP5_CMMCUSTOMMESSHANDLER_CALLGSMNOTIFICATIONIND, "CMmCustomMessHandler::CallGsmNotificationInd, CALL_MODEM_SB_SS_NOTIFY_INDICATOR sub block found" ); |
2332 OstTrace0( TRACE_NORMAL, DUP5_CMMCUSTOMMESSHANDLER_CALLGSMNOTIFICATIONIND_TD, "CMmCustomMessHandler::CallGsmNotificationInd, CALL_MODEM_SB_SS_NOTIFY_INDICATOR sub block found" ); |
2342 |
2333 |
2343 // Get the SsNotifyIndictor |
2334 // Get the SsNotifyIndictor |
2344 TUint8 ssNotifyIndicator( aIsiMsg.Get8bit( sbStartOffSet + |
2335 TUint8 ssNotifyIndicator( aIsiMsg.Get8bit( sbStartOffSet + |
2345 CALL_MODEM_SB_SS_NOTIFY_INDICATOR_OFFSET_SSINDICATOR ) ); |
2336 CALL_MODEM_SB_SS_NOTIFY_INDICATOR_OFFSET_SSINDICATOR ) ); |
2346 |
2337 |
2368 EIsiSubBlockTypeId8Len8, |
2359 EIsiSubBlockTypeId8Len8, |
2369 sbStartOffSet ) ) |
2360 sbStartOffSet ) ) |
2370 { |
2361 { |
2371 TFLOGSTRING("TSY: CMmCustomMessHandler::CallGsmNotificationInd,\ |
2362 TFLOGSTRING("TSY: CMmCustomMessHandler::CallGsmNotificationInd,\ |
2372 - CALL_MODEM_SB_SS_HOLD_INDICATOR sub block founded"); |
2363 - CALL_MODEM_SB_SS_HOLD_INDICATOR sub block founded"); |
2373 OstTrace0( TRACE_NORMAL, DUP6_CMMCUSTOMMESSHANDLER_CALLGSMNOTIFICATIONIND, "CMmCustomMessHandler::CallGsmNotificationInd, CALL_MODEM_SB_SS_HOLD_INDICATOR sub block found" ); |
2364 OstTrace0( TRACE_NORMAL, DUP6_CMMCUSTOMMESSHANDLER_CALLGSMNOTIFICATIONIND_TD, "CMmCustomMessHandler::CallGsmNotificationInd, CALL_MODEM_SB_SS_HOLD_INDICATOR sub block found" ); |
2374 |
2365 |
2375 // Get the ectIndictor |
2366 // Get the ectIndictor |
2376 TUint8 holdIndicator( aIsiMsg.Get8bit( sbStartOffSet + |
2367 TUint8 holdIndicator( aIsiMsg.Get8bit( sbStartOffSet + |
2377 CALL_MODEM_SB_SS_HOLD_INDICATOR_OFFSET_SSHOLDINDICATOR ) ); |
2368 CALL_MODEM_SB_SS_HOLD_INDICATOR_OFFSET_SSHOLDINDICATOR ) ); |
2378 |
2369 |
2394 EIsiSubBlockTypeId8Len8, |
2385 EIsiSubBlockTypeId8Len8, |
2395 sbStartOffSet ) ) |
2386 sbStartOffSet ) ) |
2396 { |
2387 { |
2397 TFLOGSTRING("TSY: CMmCustomMessHandler::CallGsmNotificationInd,\ |
2388 TFLOGSTRING("TSY: CMmCustomMessHandler::CallGsmNotificationInd,\ |
2398 - CALL_MODEM_SB_CUG_INFO sub block founded"); |
2389 - CALL_MODEM_SB_CUG_INFO sub block founded"); |
2399 OstTrace0( TRACE_NORMAL, DUP7_CMMCUSTOMMESSHANDLER_CALLGSMNOTIFICATIONIND, "CMmCustomMessHandler::CallGsmNotificationInd, CALL_MODEM_SB_CUG_INFO sub block found" ); |
2390 OstTrace0( TRACE_NORMAL, DUP7_CMMCUSTOMMESSHANDLER_CALLGSMNOTIFICATIONIND_TD, "CMmCustomMessHandler::CallGsmNotificationInd, CALL_MODEM_SB_CUG_INFO sub block found" ); |
2400 |
2391 |
2401 // Get the CUG index |
2392 // Get the CUG index |
2402 ssInfo.iCugIndex = aIsiMsg.Get16bit( |
2393 ssInfo.iCugIndex = aIsiMsg.Get16bit( |
2403 sbStartOffSet + CALL_MODEM_SB_CUG_INFO_OFFSET_CUGIND ); |
2394 sbStartOffSet + CALL_MODEM_SB_CUG_INFO_OFFSET_CUGIND ); |
2404 } |
2395 } |
2410 EIsiSubBlockTypeId8Len8, |
2401 EIsiSubBlockTypeId8Len8, |
2411 sbStartOffSet ) ) |
2402 sbStartOffSet ) ) |
2412 { |
2403 { |
2413 TFLOGSTRING("TSY: CMmCustomMessHandler::CallGsmNotificationInd,\ |
2404 TFLOGSTRING("TSY: CMmCustomMessHandler::CallGsmNotificationInd,\ |
2414 - CALL_MODEM_SB_SS_ECT_INDICATOR sub block founded"); |
2405 - CALL_MODEM_SB_SS_ECT_INDICATOR sub block founded"); |
2415 OstTrace0( TRACE_NORMAL, DUP8_CMMCUSTOMMESSHANDLER_CALLGSMNOTIFICATIONIND, "CMmCustomMessHandler::CallGsmNotificationInd, CALL_MODEM_SB_SS_ECT_INDICATOR sub block found" ); |
2406 OstTrace0( TRACE_NORMAL, DUP8_CMMCUSTOMMESSHANDLER_CALLGSMNOTIFICATIONIND_TD, "CMmCustomMessHandler::CallGsmNotificationInd, CALL_MODEM_SB_SS_ECT_INDICATOR sub block found" ); |
2416 |
2407 |
2417 // Get the ectIndictor |
2408 // Get the ectIndictor |
2418 TUint8 ectIndicator( aIsiMsg.Get8bit( |
2409 TUint8 ectIndicator( aIsiMsg.Get8bit( |
2419 sbStartOffSet + CALL_MODEM_SB_SS_ECT_INDICATOR_OFFSET_SSECTINDICATOR ) ); |
2410 sbStartOffSet + CALL_MODEM_SB_SS_ECT_INDICATOR_OFFSET_SSECTINDICATOR ) ); |
2420 |
2411 |
2436 EIsiSubBlockTypeId8Len8, |
2427 EIsiSubBlockTypeId8Len8, |
2437 sbStartOffSet ) ) |
2428 sbStartOffSet ) ) |
2438 { |
2429 { |
2439 TFLOGSTRING("TSY: CMmCustomMessHandler::CallGsmNotificationInd,\ |
2430 TFLOGSTRING("TSY: CMmCustomMessHandler::CallGsmNotificationInd,\ |
2440 - CALL_MODEM_SB_REMOTE_ADDRESS sub block founded"); |
2431 - CALL_MODEM_SB_REMOTE_ADDRESS sub block founded"); |
2441 OstTrace0( TRACE_NORMAL, DUP9_CMMCUSTOMMESSHANDLER_CALLGSMNOTIFICATIONIND, "CMmCustomMessHandler::CallGsmNotificationInd, CALL_MODEM_SB_REMOTE_ADDRESS sub block found" ); |
2432 OstTrace0( TRACE_NORMAL, DUP9_CMMCUSTOMMESSHANDLER_CALLGSMNOTIFICATIONIND_TD, "CMmCustomMessHandler::CallGsmNotificationInd, CALL_MODEM_SB_REMOTE_ADDRESS sub block found" ); |
2442 |
2433 |
2443 // Get the presentation |
2434 // Get the presentation |
2444 |
2435 |
2445 TUint8 presentationIndicator( aIsiMsg.Get8bit( |
2436 TUint8 presentationIndicator( aIsiMsg.Get8bit( |
2446 sbStartOffSet + CALL_MODEM_SB_REMOTE_ADDRESS_OFFSET_PRESENTATION ) ); |
2437 sbStartOffSet + CALL_MODEM_SB_REMOTE_ADDRESS_OFFSET_PRESENTATION ) ); |
2493 EIsiSubBlockTypeId8Len8, |
2484 EIsiSubBlockTypeId8Len8, |
2494 sbStartOffSet ) ) |
2485 sbStartOffSet ) ) |
2495 { |
2486 { |
2496 TFLOGSTRING("TSY: CMmCustomMessHandler::CallGsmNotificationInd,\ |
2487 TFLOGSTRING("TSY: CMmCustomMessHandler::CallGsmNotificationInd,\ |
2497 - CALL_MODEM_SB_ALERTING_INFO sub block founded"); |
2488 - CALL_MODEM_SB_ALERTING_INFO sub block founded"); |
2498 OstTrace0( TRACE_NORMAL, DUP10_CMMCUSTOMMESSHANDLER_CALLGSMNOTIFICATIONIND, "CMmCustomMessHandler::CallGsmNotificationInd, CALL_MODEM_SB_ALERTING_INFO sub block found" ); |
2489 OstTrace0( TRACE_NORMAL, DUP10_CMMCUSTOMMESSHANDLER_CALLGSMNOTIFICATIONIND_TD, "CMmCustomMessHandler::CallGsmNotificationInd, CALL_MODEM_SB_ALERTING_INFO sub block found" ); |
2499 |
2490 |
2500 TBool playRemoteAlertToneLocally( EFalse ); |
2491 TBool playRemoteAlertToneLocally( EFalse ); |
2501 |
2492 |
2502 // Get alerting info |
2493 // Get alerting info |
2503 TUint8 callAlertingInfo( aIsiMsg.Get8bit( |
2494 TUint8 callAlertingInfo( aIsiMsg.Get8bit( |
2567 case CALL_MODEM_SSC_ALL_COND_FWD: |
2558 case CALL_MODEM_SSC_ALL_COND_FWD: |
2568 aSsTypeAndMode.iSsType = RMmCustomAPI::ESsAllCondForwardings; |
2559 aSsTypeAndMode.iSsType = RMmCustomAPI::ESsAllCondForwardings; |
2569 break; |
2560 break; |
2570 default: |
2561 default: |
2571 TFLOGSTRING("TSY: CMmCustomMessHandler::HandleForwarding, switch aSsCode - default.\n" ); |
2562 TFLOGSTRING("TSY: CMmCustomMessHandler::HandleForwarding, switch aSsCode - default.\n" ); |
2572 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_HANDLEFORWARDING, "CMmCustomMessHandler::HandleForwarding, switch aSsCode - default" ); |
2563 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_HANDLEFORWARDING_TD, "CMmCustomMessHandler::HandleForwarding, switch aSsCode - default" ); |
2573 //this case is imposible, added due code convention |
2564 //this case is imposible, added due code convention |
2574 break; |
2565 break; |
2575 } |
2566 } |
2576 |
2567 |
2577 TUint sbStartOffSet( 0 ); |
2568 TUint sbStartOffSet( 0 ); |
2641 case CALL_MODEM_SSC_INCOMING_BARR_SERV: |
2632 case CALL_MODEM_SSC_INCOMING_BARR_SERV: |
2642 aSsTypeAndMode.iSsType = RMmCustomAPI::ESsIncomingBarrServ; |
2633 aSsTypeAndMode.iSsType = RMmCustomAPI::ESsIncomingBarrServ; |
2643 break; |
2634 break; |
2644 default: |
2635 default: |
2645 TFLOGSTRING("TSY: CMmCustomMessHandler::HandleBarring, switch aSsCode - default.\n" ); |
2636 TFLOGSTRING("TSY: CMmCustomMessHandler::HandleBarring, switch aSsCode - default.\n" ); |
2646 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_HANDLEBARRING, "CMmCustomMessHandler::HandleBarring, switch aSsCode - default" ); |
2637 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_HANDLEBARRING_TD, "CMmCustomMessHandler::HandleBarring, switch aSsCode - default" ); |
2647 //this case is imposible, added due code convention |
2638 //this case is imposible, added due code convention |
2648 break; |
2639 break; |
2649 } |
2640 } |
2650 |
2641 |
2651 TUint sbStartOffSet( 0 ); |
2642 TUint sbStartOffSet( 0 ); |
2691 // ----------------------------------------------------------------------------- |
2682 // ----------------------------------------------------------------------------- |
2692 // |
2683 // |
2693 TInt CMmCustomMessHandler::NetSetReq( TUint8 aTransId ) |
2684 TInt CMmCustomMessHandler::NetSetReq( TUint8 aTransId ) |
2694 { |
2685 { |
2695 TFLOGSTRING("TSY: CMmCustomMessHandler::NetSetReq"); |
2686 TFLOGSTRING("TSY: CMmCustomMessHandler::NetSetReq"); |
2696 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_NETSETREQ, "CMmCustomMessHandler::NetSetReq" ); |
2687 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_NETSETREQ_TD, "CMmCustomMessHandler::NetSetReq" ); |
2697 |
2688 |
2698 // Data for ISI message, buffer size is one |
2689 // Data for ISI message, buffer size is one |
2699 TBuf8<2 + SIZE_NET_OPERATOR_INFO_COMMON> netSetReq; |
2690 TBuf8<2 + SIZE_NET_OPERATOR_INFO_COMMON> netSetReq; |
2700 // Registered in another protocol is set to 0 |
2691 // Registered in another protocol is set to 0 |
2701 netSetReq.Append ( 0 ); |
2692 netSetReq.Append ( 0 ); |
2759 // ----------------------------------------------------------------------------- |
2750 // ----------------------------------------------------------------------------- |
2760 // |
2751 // |
2761 void CMmCustomMessHandler::NetRatResp( const TIsiReceiveC& aIsiMsg ) |
2752 void CMmCustomMessHandler::NetRatResp( const TIsiReceiveC& aIsiMsg ) |
2762 { |
2753 { |
2763 TFLOGSTRING( "TSY: CMmCustomMessHandler::NetRatResp"); |
2754 TFLOGSTRING( "TSY: CMmCustomMessHandler::NetRatResp"); |
2764 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_NETRATRESP, "CMmCustomMessHandler::NetRatResp" ); |
2755 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_NETRATRESP_TD, "CMmCustomMessHandler::NetRatResp" ); |
2765 |
2756 |
2766 // Get the success code |
2757 // Get the success code |
2767 TUint8 successCode( aIsiMsg.Get8bit( |
2758 TUint8 successCode( aIsiMsg.Get8bit( |
2768 ISI_HEADER_SIZE + NET_RAT_RESP_OFFSET_SUCCESSCODE ) ); |
2759 ISI_HEADER_SIZE + NET_RAT_RESP_OFFSET_SUCCESSCODE ) ); |
2769 |
2760 |
2770 TInt ret( KErrNone ); |
2761 TInt ret( KErrNone ); |
2771 |
2762 |
2772 TUint32 supportedNetworkModes( 0 ); |
2763 TUint32 supportedNetworkModes( 0 ); |
2773 |
2764 |
2774 TFLOGSTRING2( "TSY: CMmCustomMessHandler::NetRatResp successCode : %d", successCode); |
2765 TFLOGSTRING2( "TSY: CMmCustomMessHandler::NetRatResp successCode : %d", successCode); |
2775 OstTraceExt1( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_NETRATRESP, "CMmCustomMessHandler::NetRatResp;successCode=%hhu", successCode ); |
2766 OstTraceExt1( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_NETRATRESP_TD, "CMmCustomMessHandler::NetRatResp;successCode=%hhu", successCode ); |
2776 |
2767 |
2777 // Check if we have sub blocks in the message |
2768 // Check if we have sub blocks in the message |
2778 if ( aIsiMsg.Get8bit( ISI_HEADER_SIZE + NET_RAT_RESP_OFFSET_SUBBLOCKCOUNT ) |
2769 if ( aIsiMsg.Get8bit( ISI_HEADER_SIZE + NET_RAT_RESP_OFFSET_SUBBLOCKCOUNT ) |
2779 != 0 && NET_CAUSE_OK == successCode ) |
2770 != 0 && NET_CAUSE_OK == successCode ) |
2780 { |
2771 { |
2819 |
2810 |
2820 CMmDataPackage dataPackage; |
2811 CMmDataPackage dataPackage; |
2821 dataPackage.PackData( &supportedNetworkModes ); |
2812 dataPackage.PackData( &supportedNetworkModes ); |
2822 |
2813 |
2823 TFLOGSTRING2( "TSY: CMmCustomMessHandler::NetRatResp - ret: %d", ret); |
2814 TFLOGSTRING2( "TSY: CMmCustomMessHandler::NetRatResp - ret: %d", ret); |
2824 OstTrace1( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_NETRATRESP, "CMmCustomMessHandler::NetRatResp;ret=%d", ret ); |
2815 OstTrace1( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_NETRATRESP_TD, "CMmCustomMessHandler::NetRatResp;ret=%d", ret ); |
2825 |
2816 |
2826 // Completion ResetNetServer method (packed parameters) |
2817 // Completion ResetNetServer method (packed parameters) |
2827 iMessageRouter->Complete( |
2818 iMessageRouter->Complete( |
2828 ECustomGetSystemNetworkModesIPC, |
2819 ECustomGetSystemNetworkModesIPC, |
2829 &dataPackage, |
2820 &dataPackage, |
2841 // |
2832 // |
2842 void CMmCustomMessHandler::GssCsServiceResp ( |
2833 void CMmCustomMessHandler::GssCsServiceResp ( |
2843 const TIsiReceiveC& aIsiMessage ) // Received isi message |
2834 const TIsiReceiveC& aIsiMessage ) // Received isi message |
2844 { |
2835 { |
2845 TFLOGSTRING( "TSY: CMmCustomMessHandler::GssCsServiceResp" ); |
2836 TFLOGSTRING( "TSY: CMmCustomMessHandler::GssCsServiceResp" ); |
2846 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_GSSCSSERVICERESP, "CMmCustomMessHandler::GssCsServiceResp" ); |
2837 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_GSSCSSERVICERESP_TD, "CMmCustomMessHandler::GssCsServiceResp" ); |
2847 |
2838 |
2848 TUint8 transactId ( aIsiMessage.Get8bit( |
2839 TUint8 transactId ( aIsiMessage.Get8bit( |
2849 ISI_HEADER_SIZE + GSS_CS_SERVICE_RESP_OFFSET_TRANSID ) ); |
2840 ISI_HEADER_SIZE + GSS_CS_SERVICE_RESP_OFFSET_TRANSID ) ); |
2850 |
2841 |
2851 if ( KCustomTransId == transactId ) |
2842 if ( KCustomTransId == transactId ) |
2855 |
2846 |
2856 // GSS_SELECTED_RAT_WRITE (0x0E) |
2847 // GSS_SELECTED_RAT_WRITE (0x0E) |
2857 if ( GSS_SELECTED_RAT_WRITE == operation ) |
2848 if ( GSS_SELECTED_RAT_WRITE == operation ) |
2858 { |
2849 { |
2859 TFLOGSTRING("TSY: CMmCustomMessHandler::GssCsServiceResp - Complete ECustomSetSystemNetworkModeIPC"); |
2850 TFLOGSTRING("TSY: CMmCustomMessHandler::GssCsServiceResp - Complete ECustomSetSystemNetworkModeIPC"); |
2860 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_GSSCSSERVICERESP, "CMmCustomMessHandler::GssCsServiceResp - Complete ECustomSetSystemNetworkModeIPC" ); |
2851 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_GSSCSSERVICERESP_TD, "CMmCustomMessHandler::GssCsServiceResp - Complete ECustomSetSystemNetworkModeIPC" ); |
2861 //completion ResetGssServer method (no packed parameters) |
2852 //completion ResetGssServer method (no packed parameters) |
2862 iMessageRouter->Complete( ECustomSetSystemNetworkModeIPC, KErrNone ); |
2853 iMessageRouter->Complete( ECustomSetSystemNetworkModeIPC, KErrNone ); |
2863 } |
2854 } |
2864 // GSS_SELECTED_RAT_READ (0x9C) |
2855 // GSS_SELECTED_RAT_READ (0x9C) |
2865 else if ( GSS_SELECTED_RAT_READ == operation ) |
2856 else if ( GSS_SELECTED_RAT_READ == operation ) |
2866 { |
2857 { |
2867 TFLOGSTRING("TSY: CMmCustomMessHandler::GssCsServiceResp - Complete ECustomGetCurrentSystemNetworkModesIPC"); |
2858 TFLOGSTRING("TSY: CMmCustomMessHandler::GssCsServiceResp - Complete ECustomGetCurrentSystemNetworkModesIPC"); |
2868 OstTrace0( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_GSSCSSERVICERESP, "CMmCustomMessHandler::GssCsServiceResp - Complete ECustomGetCurrentSystemNetworkModesIPC" ); |
2859 OstTrace0( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_GSSCSSERVICERESP_TD, "CMmCustomMessHandler::GssCsServiceResp - Complete ECustomGetCurrentSystemNetworkModesIPC" ); |
2869 TInt err( KErrNone ); |
2860 TInt err( KErrNone ); |
2870 TUint32 ratMode ( RMmCustomAPI::KCapsNetworkModeDual ); |
2861 TUint32 ratMode ( RMmCustomAPI::KCapsNetworkModeDual ); |
2871 TUint subblockOffset( 0 ); |
2862 TUint subblockOffset( 0 ); |
2872 if ( KErrNone == aIsiMessage.FindSubBlockOffsetById( |
2863 if ( KErrNone == aIsiMessage.FindSubBlockOffsetById( |
2873 ISI_HEADER_SIZE + SIZE_GSS_CS_SERVICE_RESP, |
2864 ISI_HEADER_SIZE + SIZE_GSS_CS_SERVICE_RESP, |
2917 #if ( NCP_COMMON_S60_VERSION_SUPPORT != S60_VERSION_32 ) |
2908 #if ( NCP_COMMON_S60_VERSION_SUPPORT != S60_VERSION_32 ) |
2918 // GSS_SELECTED_BANDS_WRITE (0x9D) |
2909 // GSS_SELECTED_BANDS_WRITE (0x9D) |
2919 else if ( GSS_SELECTED_BANDS_WRITE == operation ) |
2910 else if ( GSS_SELECTED_BANDS_WRITE == operation ) |
2920 { |
2911 { |
2921 TFLOGSTRING("TSY: CMmCustomMessHandler::GssCsServiceResp - Complete ECustomSetBandSelectionIPC"); |
2912 TFLOGSTRING("TSY: CMmCustomMessHandler::GssCsServiceResp - Complete ECustomSetBandSelectionIPC"); |
2922 OstTrace0( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_GSSCSSERVICERESP, "CMmCustomMessHandler::GssCsServiceResp - Complete ECustomSetBandSelectionIPC" ); |
2913 OstTrace0( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_GSSCSSERVICERESP_TD, "CMmCustomMessHandler::GssCsServiceResp - Complete ECustomSetBandSelectionIPC" ); |
2923 iMessageRouter->Complete( ECustomSetBandSelectionIPC, KErrNone ); |
2914 iMessageRouter->Complete( ECustomSetBandSelectionIPC, KErrNone ); |
2924 } |
2915 } |
2925 // GSS_SELECTED_BANDS_READ (0x9E) |
2916 // GSS_SELECTED_BANDS_READ (0x9E) |
2926 else if ( GSS_SELECTED_BANDS_READ == operation ) |
2917 else if ( GSS_SELECTED_BANDS_READ == operation ) |
2927 { |
2918 { |
2941 // |
2932 // |
2942 void CMmCustomMessHandler::GssCsServiceFailResp ( |
2933 void CMmCustomMessHandler::GssCsServiceFailResp ( |
2943 const TIsiReceiveC& aIsiMessage ) // Received isi message |
2934 const TIsiReceiveC& aIsiMessage ) // Received isi message |
2944 { |
2935 { |
2945 TFLOGSTRING( "TSY: CMmCustomMessHandler::GssCsServiceFailResp" ); |
2936 TFLOGSTRING( "TSY: CMmCustomMessHandler::GssCsServiceFailResp" ); |
2946 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_GSSCSSERVICEFAILRESP, "CMmCustomMessHandler::GssCsServiceFailResp" ); |
2937 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_GSSCSSERVICEFAILRESP_TD, "CMmCustomMessHandler::GssCsServiceFailResp" ); |
2947 |
2938 |
2948 TUint8 transactId ( aIsiMessage.Get8bit( ISI_HEADER_SIZE + |
2939 TUint8 transactId ( aIsiMessage.Get8bit( ISI_HEADER_SIZE + |
2949 GSS_CS_SERVICE_FAIL_RESP_OFFSET_TRANSID ) ); |
2940 GSS_CS_SERVICE_FAIL_RESP_OFFSET_TRANSID ) ); |
2950 TUint8 operation ( aIsiMessage.Get8bit( ISI_HEADER_SIZE + |
2941 TUint8 operation ( aIsiMessage.Get8bit( ISI_HEADER_SIZE + |
2951 GSS_CS_SERVICE_FAIL_RESP_OFFSET_OPERATION ) ); |
2942 GSS_CS_SERVICE_FAIL_RESP_OFFSET_OPERATION ) ); |
2953 // GSS_SELECTED_RAT_WRITE (0x0E) |
2944 // GSS_SELECTED_RAT_WRITE (0x0E) |
2954 if ( KCustomTransId == transactId && GSS_SELECTED_RAT_WRITE == operation ) |
2945 if ( KCustomTransId == transactId && GSS_SELECTED_RAT_WRITE == operation ) |
2955 { |
2946 { |
2956 //completion ResetGssServer method (no packed parameters) |
2947 //completion ResetGssServer method (no packed parameters) |
2957 TFLOGSTRING("TSY: CMmCustomMessHandler::GssCsServiceFailResp - ECustomSetSystemNetworkModeIPC"); |
2948 TFLOGSTRING("TSY: CMmCustomMessHandler::GssCsServiceFailResp - ECustomSetSystemNetworkModeIPC"); |
2958 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_GSSCSSERVICEFAILRESP, "CMmCustomMessHandler::GssCsServiceFailResp - ECustomSetSystemNetworkModeIPC" ); |
2949 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_GSSCSSERVICEFAILRESP_TD, "CMmCustomMessHandler::GssCsServiceFailResp - ECustomSetSystemNetworkModeIPC" ); |
2959 iMessageRouter->Complete( ECustomSetSystemNetworkModeIPC, KErrGeneral ); |
2950 iMessageRouter->Complete( ECustomSetSystemNetworkModeIPC, KErrGeneral ); |
2960 } |
2951 } |
2961 // not suppoted for S60 ver 3.2 |
2952 // not suppoted for S60 ver 3.2 |
2962 #if ( NCP_COMMON_S60_VERSION_SUPPORT != S60_VERSION_32 ) |
2953 #if ( NCP_COMMON_S60_VERSION_SUPPORT != S60_VERSION_32 ) |
2963 |
2954 |
2964 else if ( GSS_SELECTED_BANDS_WRITE == operation ) |
2955 else if ( GSS_SELECTED_BANDS_WRITE == operation ) |
2965 { |
2956 { |
2966 TFLOGSTRING("TSY: CMmCustomMessHandler::GssCsServiceFailResp - ECustomSetBandSelectionIPC"); |
2957 TFLOGSTRING("TSY: CMmCustomMessHandler::GssCsServiceFailResp - ECustomSetBandSelectionIPC"); |
2967 OstTrace0( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_GSSCSSERVICEFAILRESP, "CMmCustomMessHandler::GssCsServiceFailResp - ECustomSetBandSelectionIPC" ); |
2958 OstTrace0( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_GSSCSSERVICEFAILRESP_TD, "CMmCustomMessHandler::GssCsServiceFailResp - ECustomSetBandSelectionIPC" ); |
2968 iMessageRouter->Complete( ECustomSetBandSelectionIPC, KErrGeneral ); |
2959 iMessageRouter->Complete( ECustomSetBandSelectionIPC, KErrGeneral ); |
2969 } |
2960 } |
2970 else if ( GSS_SELECTED_BANDS_READ == operation ) |
2961 else if ( GSS_SELECTED_BANDS_READ == operation ) |
2971 { |
2962 { |
2972 TFLOGSTRING("TSY: CMmCustomMessHandler::GssCsServiceFailResp - ECustomGetBandSelectionIPC"); |
2963 TFLOGSTRING("TSY: CMmCustomMessHandler::GssCsServiceFailResp - ECustomGetBandSelectionIPC"); |
2973 OstTrace0( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_GSSCSSERVICEFAILRESP, "CMmCustomMessHandler::GssCsServiceFailResp - ECustomGetBandSelectionIPC" ); |
2964 OstTrace0( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_GSSCSSERVICEFAILRESP_TD, "CMmCustomMessHandler::GssCsServiceFailResp - ECustomGetBandSelectionIPC" ); |
2974 iMessageRouter->Complete( ECustomGetBandSelectionIPC, KErrGeneral ); |
2965 iMessageRouter->Complete( ECustomGetBandSelectionIPC, KErrGeneral ); |
2975 } |
2966 } |
2976 #endif // NCP_COMMON_S60_VERSION_SUPPORT |
2967 #endif // NCP_COMMON_S60_VERSION_SUPPORT |
2977 } |
2968 } |
2978 |
2969 |
2983 // |
2974 // |
2984 TInt CMmCustomMessHandler::UiccReadFieldReq( |
2975 TInt CMmCustomMessHandler::UiccReadFieldReq( |
2985 RMmCustomAPI::TSimFileInfo& aSimFileInfo ) |
2976 RMmCustomAPI::TSimFileInfo& aSimFileInfo ) |
2986 { |
2977 { |
2987 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccReadFieldReq" ); |
2978 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccReadFieldReq" ); |
2988 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCREADFIELDREQ, "CMmCustomMessHandler::UiccReadFieldReq" ); |
2979 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCREADFIELDREQ_TD, "CMmCustomMessHandler::UiccReadFieldReq" ); |
2989 |
2980 |
2990 // We have received only file path, file ID is two last bytes of path |
2981 // We have received only file path, file ID is two last bytes of path |
2991 TInt length( aSimFileInfo.iPath.Length() ); |
2982 TInt length( aSimFileInfo.iPath.Length() ); |
2992 TBuf8<2> temp; |
2983 TBuf8<2> temp; |
2993 if ( 2 <= length ) |
2984 if ( 2 <= length ) |
3013 // CMmCustomMessHandler::UiccReadFieldResp |
3004 // CMmCustomMessHandler::UiccReadFieldResp |
3014 // Complete read file |
3005 // Complete read file |
3015 // ----------------------------------------------------------------------------- |
3006 // ----------------------------------------------------------------------------- |
3016 // |
3007 // |
3017 void CMmCustomMessHandler::UiccReadFieldResp( |
3008 void CMmCustomMessHandler::UiccReadFieldResp( |
3018 TInt aStatus, |
3009 TUint8 aStatus, |
3019 const TDesC8& aFileData ) |
3010 const TDesC8& aFileData ) |
3020 { |
3011 { |
3021 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccReadFieldResp" ); |
3012 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccReadFieldResp" ); |
3022 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCREADFIELDRESP, "CMmCustomMessHandler::UiccReadFieldResp" ); |
3013 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCREADFIELDRESP_TD, "CMmCustomMessHandler::UiccReadFieldResp" ); |
3023 |
3014 |
3024 TInt error( KErrNone ); |
3015 TInt error( KErrNone ); |
3025 if ( aStatus != KErrNone ) |
3016 if ( aStatus != UICC_STATUS_OK ) |
3026 { |
3017 { |
3027 error = KErrNotFound; |
3018 error = KErrNotFound; |
3028 } |
3019 } |
3029 |
3020 |
3030 // Packed parameter for completion: pointer to TDesC8 with data |
3021 // Packed parameter for completion: pointer to TDesC8 with data |
3046 TUint8 aTransId, // transaction Id |
3037 TUint8 aTransId, // transaction Id |
3047 TBool aUseCurrentRats // use current rats setting |
3038 TBool aUseCurrentRats // use current rats setting |
3048 ) |
3039 ) |
3049 { |
3040 { |
3050 TFLOGSTRING("TSY: CMmCustomMessHandler::NetRatReq"); |
3041 TFLOGSTRING("TSY: CMmCustomMessHandler::NetRatReq"); |
3051 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_NETRATREQ, "CMmCustomMessHandler::NetRatReq" ); |
3042 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_NETRATREQ_TD, "CMmCustomMessHandler::NetRatReq" ); |
3052 |
3043 |
3053 TFLOGSTRING3( "TSY: CCMmCustomMessHandler::NetRatReq - aTransId: %d, aUseCurrentRats: %d", aTransId, aUseCurrentRats ); |
3044 TFLOGSTRING3( "TSY: CCMmCustomMessHandler::NetRatReq - aTransId: %d, aUseCurrentRats: %d", aTransId, aUseCurrentRats ); |
3054 OstTraceExt2( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_NETRATREQ, "CMmCustomMessHandler::NetRatReq;aTransId=%hhu;aUseCurrentRats=%hhu", aTransId, aUseCurrentRats ); |
3045 OstTraceExt2( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_NETRATREQ_TD, "CMmCustomMessHandler::NetRatReq;aTransId=%hhu;aUseCurrentRats=%hhu", aTransId, aUseCurrentRats ); |
3055 |
3046 |
3056 // Create message data buffer for service type, buffer size is 1 |
3047 // Create message data buffer for service type, buffer size is 1 |
3057 TBuf8<1> messageData; |
3048 TBuf8<1> messageData; |
3058 // Append service type |
3049 // Append service type |
3059 if ( aUseCurrentRats ) |
3050 if ( aUseCurrentRats ) |
3087 ) |
3078 ) |
3088 { |
3079 { |
3089 |
3080 |
3090 TFLOGSTRING2( "TSY: CMmCustomMessHandler::GssCsServiceReq - aTransId: %d", |
3081 TFLOGSTRING2( "TSY: CMmCustomMessHandler::GssCsServiceReq - aTransId: %d", |
3091 aTransId ); |
3082 aTransId ); |
3092 OstTraceExt1( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_GSSCSSERVICEREQ, "CMmCustomMessHandler::GssCsServiceReq;aTransId=%hhu", aTransId ); |
3083 OstTraceExt1( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_GSSCSSERVICEREQ_TD, "CMmCustomMessHandler::GssCsServiceReq;aTransId=%hhu", aTransId ); |
3093 |
3084 |
3094 // create message data buffer for service type, buffer size is 6 |
3085 // create message data buffer for service type, buffer size is 6 |
3095 TBuf8< KGssCsBufferSize > messageData; |
3086 TBuf8< KGssCsBufferSize > messageData; |
3096 |
3087 |
3097 // append service type, GSS_SELECTED_RAT_WRITE (0x0E) |
3088 // append service type, GSS_SELECTED_RAT_WRITE (0x0E) |
3226 // call id means all calls. Taking absolute value of it gives |
3217 // call id means all calls. Taking absolute value of it gives |
3227 // alerting call id. |
3218 // alerting call id. |
3228 if ( 0 >= callId ) |
3219 if ( 0 >= callId ) |
3229 { |
3220 { |
3230 TFLOGSTRING("TSY: CMmCustomMessHandler::ExtFuncL -- ECustomTerminateCallIPC -- (hold+active+alerting)"); |
3221 TFLOGSTRING("TSY: CMmCustomMessHandler::ExtFuncL -- ECustomTerminateCallIPC -- (hold+active+alerting)"); |
3231 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_EXTFUNCL, "CMmCustomMessHandler::ExtFuncL - ECustomTerminateCallIPC - (hold+active+alerting)" ); |
3222 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_EXTFUNCL_TD, "CMmCustomMessHandler::ExtFuncL - ECustomTerminateCallIPC - (hold+active+alerting)" ); |
3232 // alerting call (if any) is included as negated value.. |
3223 // alerting call (if any) is included as negated value.. |
3233 callIdISA = TUint8( CALL_MODEM_ID_HOLD | CALL_MODEM_ID_ACTIVE | ( -callId )); |
3224 callIdISA = TUint8( CALL_MODEM_ID_HOLD | CALL_MODEM_ID_ACTIVE | ( -callId )); |
3234 } |
3225 } |
3235 else if ( 1 <= callId && 7 >= callId ) |
3226 else if ( 1 <= callId && 7 >= callId ) |
3236 { |
3227 { |
3237 TFLOGSTRING2("TSY: CMmCustomMessHandler::ExtFuncL -- ECustomTerminateCallIPC -- (%d)", TInt(callId) ); |
3228 TFLOGSTRING2("TSY: CMmCustomMessHandler::ExtFuncL -- ECustomTerminateCallIPC -- (%d)", TInt(callId) ); |
3238 OstTrace1( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_EXTFUNCL, "CMmCustomMessHandler::ExtFuncL;callId=%d", callId ); |
3229 OstTrace1( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_EXTFUNCL_TD, "CMmCustomMessHandler::ExtFuncL;callId=%d", callId ); |
3239 callIdISA = static_cast<TUint8>( callId ); |
3230 callIdISA = static_cast<TUint8>( callId ); |
3240 } |
3231 } |
3241 else |
3232 else |
3242 { |
3233 { |
3243 // no call found |
3234 // no call found |
3542 TInt aStatus, |
3533 TInt aStatus, |
3543 TUint8 /*aDetails*/, |
3534 TUint8 /*aDetails*/, |
3544 const TDesC8& aFileData ) |
3535 const TDesC8& aFileData ) |
3545 { |
3536 { |
3546 TFLOGSTRING3("TSY: CMmCustomMessHandler::ProcessUiccMsg, transaction ID: %d, status: %d", aTraId, aStatus ); |
3537 TFLOGSTRING3("TSY: CMmCustomMessHandler::ProcessUiccMsg, transaction ID: %d, status: %d", aTraId, aStatus ); |
3547 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_PROCESSUICCMSG, "CMmCustomMessHandler::ProcessUiccMsg" ); |
3538 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_PROCESSUICCMSG_TD, "CMmCustomMessHandler::ProcessUiccMsg" ); |
3548 |
3539 |
3549 TInt ret( KErrNone ); |
3540 TInt ret( KErrNone ); |
3550 |
3541 |
3551 switch( aTraId ) |
3542 switch( aTraId ) |
3552 { |
3543 { |
3719 // ----------------------------------------------------------------------------- |
3710 // ----------------------------------------------------------------------------- |
3720 // |
3711 // |
3721 TInt CMmCustomMessHandler::UiccReadViagHomeZoneParametersReq() |
3712 TInt CMmCustomMessHandler::UiccReadViagHomeZoneParametersReq() |
3722 { |
3713 { |
3723 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccReadViagHomeZoneParametersReq" ); |
3714 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccReadViagHomeZoneParametersReq" ); |
3724 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCREADVIAGHOMEZONEPARAMETERSREQ, "CMmCustomMessHandler::UiccReadViagHomeZoneParametersReq" ); |
3715 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCREADVIAGHOMEZONEPARAMETERSREQ_TD, "CMmCustomMessHandler::UiccReadViagHomeZoneParametersReq" ); |
3725 |
3716 |
3726 // Set parameters for UICC_APPL_CMD_REQ message |
3717 // Set parameters for UICC_APPL_CMD_REQ message |
3727 TUiccReadTransparent params; |
3718 TUiccReadTransparent params; |
3728 params.messHandlerPtr = static_cast<MUiccOperationBase*>( this ); |
3719 params.messHandlerPtr = static_cast<MUiccOperationBase*>( this ); |
3729 params.trId = ETrIdReadViagHomeZoneParamsCustom; |
3720 params.trId = ETrIdReadViagHomeZoneParamsCustom; |
3745 // CMmCustomMessHandler::UiccReadViagHomeZoneParametersResp |
3736 // CMmCustomMessHandler::UiccReadViagHomeZoneParametersResp |
3746 // Complete home zone parameters |
3737 // Complete home zone parameters |
3747 // ----------------------------------------------------------------------------- |
3738 // ----------------------------------------------------------------------------- |
3748 // |
3739 // |
3749 void CMmCustomMessHandler::UiccReadViagHomeZoneParametersResp( |
3740 void CMmCustomMessHandler::UiccReadViagHomeZoneParametersResp( |
3750 TInt aStatus, |
3741 TUint8 aStatus, |
3751 const TDesC8& aFileData ) |
3742 const TDesC8& aFileData ) |
3752 { |
3743 { |
3753 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccReadViagHomeZoneParametersResp" ); |
3744 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccReadViagHomeZoneParametersResp" ); |
3754 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCREADVIAGHOMEZONEPARAMETERSRESP, "CMmCustomMessHandler::UiccReadViagHomeZoneParametersResp" ); |
3745 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCREADVIAGHOMEZONEPARAMETERSRESP_TD, "CMmCustomMessHandler::UiccReadViagHomeZoneParametersResp" ); |
3755 |
3746 |
3756 TInt error( KErrNone ); |
3747 TInt error( KErrNone ); |
3757 if ( KErrNone == aStatus ) |
3748 if ( UICC_STATUS_OK == aStatus ) |
3758 { |
3749 { |
3759 TUint8 length( 0 ); |
3750 TUint8 length( 0 ); |
3760 TUint8 i( 0 ); |
3751 TUint8 i( 0 ); |
3761 TUint8 j( 0 ); |
3752 TUint8 j( 0 ); |
3762 TUint8 index( 2 ); |
3753 TUint8 index( 2 ); |
3900 // |
3891 // |
3901 TInt CMmCustomMessHandler::UiccReadViagHomeZoneCacheReq( |
3892 TInt CMmCustomMessHandler::UiccReadViagHomeZoneCacheReq( |
3902 const RMmCustomAPI::TViagCacheRecordId& aRecordId ) |
3893 const RMmCustomAPI::TViagCacheRecordId& aRecordId ) |
3903 { |
3894 { |
3904 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccReadViagHomeZoneCacheReq" ); |
3895 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccReadViagHomeZoneCacheReq" ); |
3905 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCREADVIAGHOMEZONECACHEREQ, "CMmCustomMessHandler::UiccReadViagHomeZoneCacheReq" ); |
3896 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCREADVIAGHOMEZONECACHEREQ_TD, "CMmCustomMessHandler::UiccReadViagHomeZoneCacheReq" ); |
3906 |
3897 |
3907 TUint8 cacheId( aRecordId.iCacheId ); |
3898 TUint8 cacheId( aRecordId.iCacheId ); |
3908 TUint8 recordId( aRecordId.iRecordId ); |
3899 TUint8 recordId( aRecordId.iRecordId ); |
3909 TUint16 fileId( 0 ); |
3900 TUint16 fileId( 0 ); |
3910 |
3901 |
3966 // CMmCustomMessHandler::UiccReadViagHomeZoneCacheResp |
3957 // CMmCustomMessHandler::UiccReadViagHomeZoneCacheResp |
3967 // Complete home zone cache |
3958 // Complete home zone cache |
3968 // ----------------------------------------------------------------------------- |
3959 // ----------------------------------------------------------------------------- |
3969 // |
3960 // |
3970 void CMmCustomMessHandler::UiccReadViagHomeZoneCacheResp( |
3961 void CMmCustomMessHandler::UiccReadViagHomeZoneCacheResp( |
3971 TInt aStatus, |
3962 TUint8 aStatus, |
3972 const TDesC8& aFileData ) |
3963 const TDesC8& aFileData ) |
3973 { |
3964 { |
3974 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccReadViagHomeZoneCacheResp" ); |
3965 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccReadViagHomeZoneCacheResp" ); |
3975 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCREADVIAGHOMEZONECACHERESP, "CMmCustomMessHandler::UiccReadViagHomeZoneCacheResp" ); |
3966 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCREADVIAGHOMEZONECACHERESP_TD, "CMmCustomMessHandler::UiccReadViagHomeZoneCacheResp" ); |
3976 |
3967 |
3977 TInt ret( KErrAccessDenied ); |
3968 TInt ret( KErrAccessDenied ); |
3978 |
3969 |
3979 RMmCustomAPI::TViagCacheRecordContent viagRecord; |
3970 RMmCustomAPI::TViagCacheRecordContent viagRecord; |
3980 |
3971 |
3981 if ( KErrNone == aStatus ) |
3972 if ( UICC_STATUS_OK == aStatus ) |
3982 { |
3973 { |
3983 viagRecord.iLac = ( aFileData[0] << 8 ) | aFileData[1]; |
3974 viagRecord.iLac = ( aFileData[0] << 8 ) | aFileData[1]; |
3984 viagRecord.iCellId = ( aFileData[2] << 8 ) | aFileData[3]; |
3975 viagRecord.iCellId = ( aFileData[2] << 8 ) | aFileData[3]; |
3985 ret = KErrNone; |
3976 ret = KErrNone; |
3986 } |
3977 } |
4007 TInt CMmCustomMessHandler::UiccWriteViagHomeZoneCacheReq( |
3998 TInt CMmCustomMessHandler::UiccWriteViagHomeZoneCacheReq( |
4008 const RMmCustomAPI::TViagCacheRecordId& aRecordId, |
3999 const RMmCustomAPI::TViagCacheRecordId& aRecordId, |
4009 const RMmCustomAPI::TViagCacheRecordContent& aViagRecordContent ) |
4000 const RMmCustomAPI::TViagCacheRecordContent& aViagRecordContent ) |
4010 { |
4001 { |
4011 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccWriteViagHomeZoneCacheReq" ); |
4002 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccWriteViagHomeZoneCacheReq" ); |
4012 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCWRITEVIAGHOMEZONECACHEREQ, "CMmCustomMessHandler::UiccWriteViagHomeZoneCacheReq" ); |
4003 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCWRITEVIAGHOMEZONECACHEREQ_TD, "CMmCustomMessHandler::UiccWriteViagHomeZoneCacheReq" ); |
4013 |
4004 |
4014 TUint8 cacheId( (TUint8)aRecordId.iCacheId ); |
4005 TUint8 cacheId( (TUint8)aRecordId.iCacheId ); |
4015 TUint8 recordId( (TUint8)aRecordId.iRecordId ); |
4006 TUint8 recordId( (TUint8)aRecordId.iRecordId ); |
4016 TUint16 lac( (TUint16)aViagRecordContent.iLac ); |
4007 TUint16 lac( (TUint16)aViagRecordContent.iLac ); |
4017 TUint16 cellId( (TUint16)aViagRecordContent.iCellId ); |
4008 TUint16 cellId( (TUint16)aViagRecordContent.iCellId ); |
4083 // ----------------------------------------------------------------------------- |
4074 // ----------------------------------------------------------------------------- |
4084 // CMmCustomMessHandler::UiccWriteViagHomeZoneCacheResp |
4075 // CMmCustomMessHandler::UiccWriteViagHomeZoneCacheResp |
4085 // Complete home zone cache |
4076 // Complete home zone cache |
4086 // ----------------------------------------------------------------------------- |
4077 // ----------------------------------------------------------------------------- |
4087 // |
4078 // |
4088 void CMmCustomMessHandler::UiccWriteViagHomeZoneCacheResp( TInt aStatus ) |
4079 void CMmCustomMessHandler::UiccWriteViagHomeZoneCacheResp( TUint8 aStatus ) |
4089 { |
4080 { |
4090 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccWriteViagHomeZoneCacheResp" ); |
4081 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccWriteViagHomeZoneCacheResp" ); |
4091 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCWRITEVIAGHOMEZONECACHERESP, "CMmCustomMessHandler::UiccWriteViagHomeZoneCacheResp" ); |
4082 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCWRITEVIAGHOMEZONECACHERESP_TD, "CMmCustomMessHandler::UiccWriteViagHomeZoneCacheResp" ); |
4092 |
4083 |
4093 if ( KErrNone == aStatus ) |
4084 if ( UICC_STATUS_OK == aStatus ) |
4094 { |
4085 { |
4095 iMessageRouter->Complete( EWriteViagHomeZoneCacheIPC, KErrNone ); |
4086 iMessageRouter->Complete( EWriteViagHomeZoneCacheIPC, KErrNone ); |
4096 } |
4087 } |
4097 else |
4088 else |
4098 { |
4089 { |
4107 // |
4098 // |
4108 TInt CMmCustomMessHandler::UiccWriteViagHomeZoneUhziueSettingsReq( |
4099 TInt CMmCustomMessHandler::UiccWriteViagHomeZoneUhziueSettingsReq( |
4109 const RMmCustomAPI::TViagUHZIUESettings& aUhziuiSettings ) |
4100 const RMmCustomAPI::TViagUHZIUESettings& aUhziuiSettings ) |
4110 { |
4101 { |
4111 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccWriteViagHomeZoneUhziueSettingsReq" ); |
4102 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccWriteViagHomeZoneUhziueSettingsReq" ); |
4112 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCWRITEVIAGHOMEZONEUHZIUESETTINGSREQ, "CMmCustomMessHandler::UiccWriteViagHomeZoneUhziueSettingsReq" ); |
4103 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCWRITEVIAGHOMEZONEUHZIUESETTINGSREQ_TD, "CMmCustomMessHandler::UiccWriteViagHomeZoneUhziueSettingsReq" ); |
4113 |
4104 |
4114 TUint8 settingsField( aUhziuiSettings.iSettings ); |
4105 TUint8 settingsField( aUhziuiSettings.iSettings ); |
4115 TUint8 versionField( aUhziuiSettings.iVersion ); |
4106 TUint8 versionField( aUhziuiSettings.iVersion ); |
4116 |
4107 |
4117 // Set parameters for UICC_APPL_CMD_REQ message |
4108 // Set parameters for UICC_APPL_CMD_REQ message |
4143 // CMmCustomMessHandler::UiccWriteViagHomeZoneUhziueSettingsResp |
4134 // CMmCustomMessHandler::UiccWriteViagHomeZoneUhziueSettingsResp |
4144 // Complete home zone settings |
4135 // Complete home zone settings |
4145 // ----------------------------------------------------------------------------- |
4136 // ----------------------------------------------------------------------------- |
4146 // |
4137 // |
4147 void CMmCustomMessHandler::UiccWriteViagHomeZoneUhziueSettingsResp( |
4138 void CMmCustomMessHandler::UiccWriteViagHomeZoneUhziueSettingsResp( |
4148 TInt aStatus ) |
4139 TUint8 aStatus ) |
4149 { |
4140 { |
4150 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccWriteViagHomeZoneUhziueSettingsResp" ); |
4141 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccWriteViagHomeZoneUhziueSettingsResp" ); |
4151 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCWRITEVIAGHOMEZONEUHZIUESETTINGSRESP, "CMmCustomMessHandler::UiccWriteViagHomeZoneUhziueSettingsResp" ); |
4142 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCWRITEVIAGHOMEZONEUHZIUESETTINGSRESP_TD, "CMmCustomMessHandler::UiccWriteViagHomeZoneUhziueSettingsResp" ); |
4152 |
4143 |
4153 TInt status( KErrAccessDenied ); |
4144 TInt status( KErrAccessDenied ); |
4154 |
4145 |
4155 if ( KErrNone == aStatus ) |
4146 if ( UICC_STATUS_OK == aStatus ) |
4156 { |
4147 { |
4157 status = KErrNone; |
4148 status = KErrNone; |
4158 } |
4149 } |
4159 iMessageRouter->Complete( EWriteViagHomeZoneUHZIUESettingsIPC, status ); |
4150 iMessageRouter->Complete( EWriteViagHomeZoneUHZIUESettingsIPC, status ); |
4160 } |
4151 } |
4165 // ----------------------------------------------------------------------------- |
4156 // ----------------------------------------------------------------------------- |
4166 // |
4157 // |
4167 TInt CMmCustomMessHandler::UiccReadCbMsgIdsReq( TUiccTrId aTrId ) |
4158 TInt CMmCustomMessHandler::UiccReadCbMsgIdsReq( TUiccTrId aTrId ) |
4168 { |
4159 { |
4169 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccReadCbMsgIdsReq" ); |
4160 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccReadCbMsgIdsReq" ); |
4170 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCREADCBMSGIDSREQ, "CMmCustomMessHandler::UiccReadCbMsgIdsReq" ); |
4161 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCREADCBMSGIDSREQ_TD, "CMmCustomMessHandler::UiccReadCbMsgIdsReq" ); |
4171 |
4162 |
4172 // Set parameters for UICC_APPL_CMD_REQ message |
4163 // Set parameters for UICC_APPL_CMD_REQ message |
4173 TUiccReadTransparent params; |
4164 TUiccReadTransparent params; |
4174 params.messHandlerPtr = static_cast<MUiccOperationBase*>( this ); |
4165 params.messHandlerPtr = static_cast<MUiccOperationBase*>( this ); |
4175 params.trId = aTrId; |
4166 params.trId = aTrId; |
4191 // CMmCustomMessHandler::UiccReadCbMsgIdsResp |
4182 // CMmCustomMessHandler::UiccReadCbMsgIdsResp |
4192 // Complete CB message IDs |
4183 // Complete CB message IDs |
4193 // ----------------------------------------------------------------------------- |
4184 // ----------------------------------------------------------------------------- |
4194 // |
4185 // |
4195 void CMmCustomMessHandler::UiccReadCbMsgIdsResp( |
4186 void CMmCustomMessHandler::UiccReadCbMsgIdsResp( |
4196 TInt aStatus, |
4187 TUint8 aStatus, |
4197 TInt aTraId, |
4188 TInt aTraId, |
4198 const TDesC8& aFileData ) |
4189 const TDesC8& aFileData ) |
4199 { |
4190 { |
4200 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccReadCbMsgIdsResp" ); |
4191 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccReadCbMsgIdsResp" ); |
4201 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCREADCBMSGIDSRESP, "CMmCustomMessHandler::UiccReadCbMsgIdsResp" ); |
4192 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCREADCBMSGIDSRESP_TD, "CMmCustomMessHandler::UiccReadCbMsgIdsResp" ); |
4202 |
4193 |
4203 TInt numOfCbIds( 0 ); |
4194 TInt err( KErrNone ); |
4204 // File data in bytes |
4195 |
4205 TInt length( aFileData.Length() ); |
4196 TPtrC16 cbIdsBigEndian( reinterpret_cast<const TUint16*>( aFileData.Ptr() ), |
4206 // Divide by two to get number of 16-bit CB ids |
4197 aFileData.Length() / 2); |
4207 numOfCbIds = length >> 1; |
|
4208 // Buffer for 16 bits CB identifiers |
|
4209 TBuf16<KSimNumberOfCbMsgIds> cbIds; |
|
4210 TInt i( 0 ); |
|
4211 TInt j( 0 ); |
|
4212 // Loop all the bytes and append 16 bit id to buffer |
|
4213 for ( ; i < length && j < numOfCbIds; i += 2, j++ ) |
|
4214 { |
|
4215 TUint16 cbId ( ( aFileData[i] << 8 ) | ( aFileData[i+1] ) ); |
|
4216 cbIds.Append( cbId ); |
|
4217 } |
|
4218 // Read request, complete CB topic list to CTSY |
4198 // Read request, complete CB topic list to CTSY |
4219 if ( KErrNone == aStatus && ETrIdReadCbMsgIds == aTraId && numOfCbIds > 0 ) |
4199 if ( UICC_STATUS_OK == aStatus && ETrIdReadCbMsgIds == aTraId && |
4220 { |
4200 cbIdsBigEndian.Length() > 0 ) |
4221 CArrayFixFlat<RMmCustomAPI::TSimCbTopic>* simCbTopics = new ( ELeave ) |
4201 { |
4222 CArrayFixFlat<RMmCustomAPI::TSimCbTopic> ( numOfCbIds ); |
4202 CArrayFixFlat<RMmCustomAPI::TSimCbTopic>* simCbTopics( NULL ); |
4223 |
4203 TRAP(err, simCbTopics = CollectCbTopicIdsL( cbIdsBigEndian ) ); |
4224 for ( i = 0; i < numOfCbIds; i++ ) |
4204 if ( KErrNone == err ) |
4225 { |
4205 { |
4226 if ( KUnusedCbMsgId != cbIds[i] ) |
4206 CMmDataPackage dataPackage; |
4227 { |
4207 dataPackage.PackData( &simCbTopics ); |
4228 RMmCustomAPI::TSimCbTopic simCbTopic; |
4208 iMessageRouter->Complete( |
4229 // CB ID |
4209 ECustomStartSimCbTopicBrowsingIPC, |
4230 simCbTopic.iNumber = cbIds[i]; |
4210 &dataPackage, |
4231 // Topic names are not stored on the SIM |
4211 KErrNone ); |
4232 simCbTopic.iName.Zero(); |
4212 delete simCbTopics; |
4233 // Add CB topic to array |
4213 } |
4234 simCbTopics->AppendL( simCbTopic ); |
|
4235 } |
|
4236 } |
|
4237 simCbTopics->Compress(); |
|
4238 |
|
4239 // Complete to SOS layer with packed parameter: |
|
4240 // pointer to array with CB topics |
|
4241 CMmDataPackage dataPackage; |
|
4242 dataPackage.PackData( &simCbTopics ); |
|
4243 |
|
4244 iMessageRouter->Complete( |
|
4245 ECustomStartSimCbTopicBrowsingIPC, |
|
4246 &dataPackage, |
|
4247 KErrNone ); |
|
4248 } |
4214 } |
4249 // Delete request, update EF CBMI with new topic list |
4215 // Delete request, update EF CBMI with new topic list |
4250 else if ( KErrNone == aStatus && ETrIdUpdateCbMsgIdsPhase1 == aTraId && |
4216 else if ( UICC_STATUS_OK == aStatus && ETrIdUpdateCbMsgIdsPhase1 == aTraId |
4251 numOfCbIds > 0 && iTopicInSimMemoryDelete ) |
4217 && cbIdsBigEndian.Length() > 0 && iTopicInSimMemoryDelete ) |
4252 { |
4218 { |
4253 // Set parameters for UICC_APPL_CMD_REQ message |
4219 // Set parameters for UICC_APPL_CMD_REQ message |
4254 TUiccWriteTransparent params; |
4220 TUiccWriteTransparent params; |
4255 params.messHandlerPtr = static_cast<MUiccOperationBase*>( this ); |
4221 params.messHandlerPtr = static_cast<MUiccOperationBase*>( this ); |
4256 params.trId = ETrIdUpdateCbMsgIdsPhase2; |
4222 params.trId = ETrIdUpdateCbMsgIdsPhase2; |
4262 // File id path |
4228 // File id path |
4263 params.filePath.Append( KMasterFileId >> 8 ); |
4229 params.filePath.Append( KMasterFileId >> 8 ); |
4264 params.filePath.Append( KMasterFileId ); |
4230 params.filePath.Append( KMasterFileId ); |
4265 params.filePath.Append( iMmUiccMessHandler->GetApplicationFileId() ); |
4231 params.filePath.Append( iMmUiccMessHandler->GetApplicationFileId() ); |
4266 |
4232 |
4267 // File data to be updated. |
4233 TUint16 topicToDeleteBigEndian = |
4268 TBuf8<KSimNumberOfCbMsgIds*2> fileDataBuf; |
4234 ( iSimCBTopicToBeDeleted >> 8 ) | ( iSimCBTopicToBeDeleted << 8 ); |
4269 for ( i = 0; i < numOfCbIds; i++ ) |
4235 for ( TInt i = 0 ; i < cbIdsBigEndian.Length(); i++ ) |
4270 { |
4236 { |
4271 if ( cbIds[ i ] != iSimCBTopicToBeDeleted ) |
4237 TUint16 appendData = cbIdsBigEndian[i] == topicToDeleteBigEndian ? |
4272 { |
4238 KUnusedCbMsgId : cbIdsBigEndian[i]; |
4273 fileDataBuf.Append( cbIds[ i ] >> 8 ); // MSB |
4239 // already big-endian |
4274 fileDataBuf.Append( cbIds[ i ] & 0x00FF ); // LSB |
4240 params.fileData.Append( appendData ); |
4275 } |
4241 params.fileData.Append( appendData >> 8 ); |
4276 else // This CB id is deleted-> set unused |
|
4277 { |
|
4278 fileDataBuf.Append( 0xFF ); |
|
4279 fileDataBuf.Append( 0xFF ); |
|
4280 } |
|
4281 } |
4242 } |
4282 iSimCBTopicToBeDeleted = KUnusedCbMsgId; |
4243 iSimCBTopicToBeDeleted = KUnusedCbMsgId; |
4283 params.fileData.Append( fileDataBuf ); |
|
4284 iMmUiccMessHandler->CreateUiccApplCmdReq( params ); |
4244 iMmUiccMessHandler->CreateUiccApplCmdReq( params ); |
4285 } |
4245 } |
4286 else // Complete error values |
4246 else |
|
4247 { |
|
4248 err = KErrNotFound; |
|
4249 } |
|
4250 |
|
4251 if ( KErrNone != err ) |
4287 { |
4252 { |
4288 if ( ETrIdReadCbMsgIds == aTraId ) |
4253 if ( ETrIdReadCbMsgIds == aTraId ) |
4289 { |
4254 { |
4290 iMessageRouter->Complete( |
4255 iMessageRouter->Complete( |
4291 ECustomStartSimCbTopicBrowsingIPC, |
4256 ECustomStartSimCbTopicBrowsingIPC, |
4292 KErrNotFound ); |
4257 err ); |
4293 } |
4258 } |
4294 else // Delete request |
4259 else // Delete request |
4295 { |
4260 { |
4296 iMessageRouter->Complete( |
4261 iMessageRouter->Complete( |
4297 ECustomDeleteSimCbTopicIPC, |
4262 ECustomDeleteSimCbTopicIPC, |
4298 KErrNotFound ); |
4263 err ); |
4299 } |
4264 } |
4300 iTopicInSimMemoryDelete = ETrue; |
4265 } |
4301 } |
4266 |
|
4267 iTopicInSimMemoryDelete = ETrue; |
4302 } |
4268 } |
4303 |
4269 |
4304 // ----------------------------------------------------------------------------- |
4270 // ----------------------------------------------------------------------------- |
4305 // CMmCustomMessHandler::UiccDeleteCbMsgIdResp |
4271 // CMmCustomMessHandler::UiccDeleteCbMsgIdResp |
4306 // Delete CB message ID |
4272 // Delete CB message ID |
4307 // ----------------------------------------------------------------------------- |
4273 // ----------------------------------------------------------------------------- |
4308 // |
4274 // |
4309 void CMmCustomMessHandler::UiccDeleteCbMsgIdResp( TInt aStatus ) |
4275 void CMmCustomMessHandler::UiccDeleteCbMsgIdResp( TUint8 aStatus ) |
4310 { |
4276 { |
4311 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccDeleteCbMsgIdResp" ); |
4277 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccDeleteCbMsgIdResp" ); |
4312 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCDELETECBMSGIDRESP, "CMmCustomMessHandler::UiccDeleteCbMsgIdResp" ); |
4278 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCDELETECBMSGIDRESP_TD, "CMmCustomMessHandler::UiccDeleteCbMsgIdResp" ); |
4313 |
4279 |
4314 TInt err( KErrNone ); |
4280 TInt err( KErrNone ); |
4315 if ( KErrNone != aStatus ) |
4281 if ( UICC_STATUS_OK != aStatus ) |
4316 { |
4282 { |
4317 err = KErrAccessDenied; |
4283 err = KErrAccessDenied; |
4318 } |
4284 } |
4319 |
4285 |
4320 iMessageRouter->Complete( ECustomDeleteSimCbTopicIPC, err ); |
4286 iMessageRouter->Complete( ECustomDeleteSimCbTopicIPC, err ); |
4384 } |
4350 } |
4385 // GSS_FAIL == writeStatus and PP bit is disabled |
4351 // GSS_FAIL == writeStatus and PP bit is disabled |
4386 else if ( GSS_HSXPA_DISABLED_VIA_PP == reason ) |
4352 else if ( GSS_HSXPA_DISABLED_VIA_PP == reason ) |
4387 { |
4353 { |
4388 TFLOGSTRING("TSY: CMmCustomMessHandler::WriteHSxPAStatusResp. KErrNotSupported"); |
4354 TFLOGSTRING("TSY: CMmCustomMessHandler::WriteHSxPAStatusResp. KErrNotSupported"); |
4389 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_WRITEHSXPASTATUSRESP, "CMmCustomMessHandler::WriteHSxPAStatusResp, KErrNotSupported" ); |
4355 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_WRITEHSXPASTATUSRESP_TD, "CMmCustomMessHandler::WriteHSxPAStatusResp, KErrNotSupported" ); |
4390 epocError = KErrNotSupported; |
4356 epocError = KErrNotSupported; |
4391 } |
4357 } |
4392 |
4358 |
4393 iMessageRouter->Complete( ECustomWriteHSxPAStatusIPC, epocError ); |
4359 iMessageRouter->Complete( ECustomWriteHSxPAStatusIPC, epocError ); |
4394 } |
4360 } |
4508 // ----------------------------------------------------------------------------- |
4474 // ----------------------------------------------------------------------------- |
4509 // |
4475 // |
4510 TInt CMmCustomMessHandler::NetNeighbourCellsReq( const TUint8 aTraId ) |
4476 TInt CMmCustomMessHandler::NetNeighbourCellsReq( const TUint8 aTraId ) |
4511 { |
4477 { |
4512 TFLOGSTRING("TSY: CMmCustomMessHandler::NetNeighbourCellsReq"); |
4478 TFLOGSTRING("TSY: CMmCustomMessHandler::NetNeighbourCellsReq"); |
4513 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_NETNEIGHBOURCELLSREQ, "CMmCustomMessHandler::NetNeighbourCellsReq" ); |
4479 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_NETNEIGHBOURCELLSREQ_TD, "CMmCustomMessHandler::NetNeighbourCellsReq" ); |
4514 |
4480 |
4515 // Add NET_NEIGHBOUR_CELL_INFO_TYPE |
4481 // Add NET_NEIGHBOUR_CELL_INFO_TYPE |
4516 // (data size is allways 1) |
4482 // (data size is allways 1) |
4517 TBuf8<1> data; |
4483 TBuf8<1> data; |
4518 data.Append( NET_ECID_INFORMATION ); |
4484 data.Append( NET_ECID_INFORMATION ); |
4532 // |
4498 // |
4533 void CMmCustomMessHandler::NetNeighbourCellsResp( |
4499 void CMmCustomMessHandler::NetNeighbourCellsResp( |
4534 const TIsiReceiveC& aIsiMessage ) |
4500 const TIsiReceiveC& aIsiMessage ) |
4535 { |
4501 { |
4536 TFLOGSTRING("TSY: CMmCustomMessHandler::NetNeighbourCellsResp"); |
4502 TFLOGSTRING("TSY: CMmCustomMessHandler::NetNeighbourCellsResp"); |
4537 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_NETNEIGHBOURCELLSRESP, "CMmCustomMessHandler::NetNeighbourCellsResp" ); |
4503 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_NETNEIGHBOURCELLSRESP_TD, "CMmCustomMessHandler::NetNeighbourCellsResp" ); |
4538 |
4504 |
4539 TECIDInfo tempECIDInfo; |
4505 TBool triggerNotify( EFalse ); |
4540 TInt ret( KErrNone ); |
4506 TInt ret( KErrNone ); |
4541 |
4507 |
4542 // Get the success code. |
4508 // Get the success code. |
4543 TUint8 successCode( aIsiMessage.Get8bit( |
4509 TUint8 successCode( aIsiMessage.Get8bit( |
4544 ISI_HEADER_SIZE + |
4510 ISI_HEADER_SIZE + |
4545 NET_NEIGHBOUR_CELLS_RESP_OFFSET_SUCCESSCODE ) ); |
4511 NET_NEIGHBOUR_CELLS_RESP_OFFSET_SUCCESSCODE ) ); |
4546 |
4512 |
4547 if ( NET_CAUSE_OK == successCode ) |
4513 if ( NET_CAUSE_OK == successCode ) |
4548 { |
4514 { |
4549 TFLOGSTRING("TSY: CMmCustomMessHandler::NetNeighbourCellsResp - NET_CAUSE_OK"); |
4515 TFLOGSTRING("TSY: CMmCustomMessHandler::NetNeighbourCellsResp - NET_CAUSE_OK"); |
4550 OstTrace0( TRACE_NORMAL, DUP5_CMMCUSTOMMESSHANDLER_NETNEIGHBOURCELLSRESP, "CMmCustomMessHandler::NetNeighbourCellsResp, NET_CAUSE_OK" ); |
4516 OstTrace0( TRACE_NORMAL, DUP5_CMMCUSTOMMESSHANDLER_NETNEIGHBOURCELLSRESP_TD, "CMmCustomMessHandler::NetNeighbourCellsResp, NET_CAUSE_OK" ); |
4551 |
4517 |
4552 TUint sbOffset( 0 ); |
4518 TUint sbOffset( 0 ); |
4553 |
4519 |
4554 if ( KErrNone == aIsiMessage.FindSubBlockOffsetById( |
4520 if ( KErrNone == aIsiMessage.FindSubBlockOffsetById( |
4555 ISI_HEADER_SIZE + SIZE_NET_NEIGHBOUR_CELLS_RESP, |
4521 ISI_HEADER_SIZE + SIZE_NET_NEIGHBOUR_CELLS_RESP, |
4557 EIsiSubBlockTypeId8Len8, |
4523 EIsiSubBlockTypeId8Len8, |
4558 sbOffset ) ) |
4524 sbOffset ) ) |
4559 { |
4525 { |
4560 // GSM cell info. |
4526 // GSM cell info. |
4561 TFLOGSTRING("TSY: CMmCustomMessHandler::NetNeighbourCellsResp - NET_ECID_GERAN_INFO found"); |
4527 TFLOGSTRING("TSY: CMmCustomMessHandler::NetNeighbourCellsResp - NET_ECID_GERAN_INFO found"); |
4562 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_NETNEIGHBOURCELLSRESP, "CMmCustomMessHandler::NetNeighbourCellsResp - NET_ECID_GERAN_INFO found" ); |
4528 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_NETNEIGHBOURCELLSRESP_TD, "CMmCustomMessHandler::NetNeighbourCellsResp - NET_ECID_GERAN_INFO found" ); |
4563 // Set mode |
4529 // Set mode |
4564 tempECIDInfo.iCellInfo.iMode = RMmCustomAPI::TMmCellInfo::EGSM; |
4530 if ( RMmCustomAPI::TMmCellInfo::EGSM != iECIDInfo.iCellInfo.iMode ) |
|
4531 { |
|
4532 triggerNotify = ETrue; |
|
4533 iECIDInfo.iCellInfo.iMode = RMmCustomAPI::TMmCellInfo::EGSM; |
|
4534 } |
4565 |
4535 |
4566 // Set Current MCC. |
4536 // Set Current MCC. |
4567 tempECIDInfo.iMCC = aIsiMessage.Get16bit( |
4537 TUint16 mcc( aIsiMessage.Get16bit( |
4568 sbOffset + NET_ECID_GERAN_INFO_OFFSET_CURRENTMCC ); |
4538 sbOffset + NET_ECID_GERAN_INFO_OFFSET_CURRENTMCC ) ); |
|
4539 if ( mcc != iECIDInfo.iMCC ) |
|
4540 { |
|
4541 triggerNotify = ETrue; |
|
4542 iECIDInfo.iMCC = mcc; |
|
4543 } |
4569 |
4544 |
4570 // Set Current MNC. |
4545 // Set Current MNC. |
4571 tempECIDInfo.iMNC = aIsiMessage.Get16bit( |
4546 TUint16 mnc( aIsiMessage.Get16bit( |
4572 sbOffset + NET_ECID_GERAN_INFO_OFFSET_CURRENTMNC ); |
4547 sbOffset + NET_ECID_GERAN_INFO_OFFSET_CURRENTMNC ) ); |
|
4548 if ( mnc != iECIDInfo.iMNC ) |
|
4549 { |
|
4550 triggerNotify = ETrue; |
|
4551 iECIDInfo.iMNC = mnc; |
|
4552 } |
4573 |
4553 |
4574 // Set Current LAC. |
4554 // Set Current LAC. |
4575 tempECIDInfo.iLAC = aIsiMessage.Get16bit( |
4555 TUint16 lac( aIsiMessage.Get16bit( |
4576 sbOffset + NET_ECID_GERAN_INFO_OFFSET_CURRENTLAC ); |
4556 sbOffset + NET_ECID_GERAN_INFO_OFFSET_CURRENTLAC ) ); |
|
4557 if ( lac != iECIDInfo.iLAC ) |
|
4558 { |
|
4559 triggerNotify = ETrue; |
|
4560 iECIDInfo.iLAC = lac; |
|
4561 } |
4577 |
4562 |
4578 // Set Current Cell ID. |
4563 // Set Current Cell ID. |
4579 tempECIDInfo.iCID = aIsiMessage.Get16bit( |
4564 TUint16 cid( aIsiMessage.Get16bit( |
4580 sbOffset + NET_ECID_GERAN_INFO_OFFSET_CURRENTCELLID ); |
4565 sbOffset + NET_ECID_GERAN_INFO_OFFSET_CURRENTCELLID ) ); |
|
4566 if ( cid != iECIDInfo.iCID ) |
|
4567 { |
|
4568 triggerNotify = ETrue; |
|
4569 iECIDInfo.iCID = cid; |
|
4570 } |
4581 |
4571 |
4582 // Set Current TA. |
4572 // Set Current TA. |
4583 TUint8 temp8bitUVal( aIsiMessage.Get8bit( |
4573 TUint8 temp8bitUVal( aIsiMessage.Get8bit( |
4584 sbOffset + NET_ECID_GERAN_INFO_OFFSET_CURRENTTA ) ); |
4574 sbOffset + NET_ECID_GERAN_INFO_OFFSET_CURRENTTA ) ); |
4585 |
4575 |
4586 if ( NET_ECID_TA_UNDEFINED != temp8bitUVal ) |
4576 if ( NET_ECID_TA_UNDEFINED != temp8bitUVal ) |
4587 { |
4577 { |
4588 tempECIDInfo.iCellInfo.iGsmCellInfo.iTA = temp8bitUVal; |
4578 iECIDInfo.iCellInfo.iGsmCellInfo.iTA = temp8bitUVal; |
4589 } |
4579 } |
4590 // No else. |
4580 // No else. |
4591 |
4581 |
4592 // Get Number of Neighbours included. |
4582 // Get Number of Neighbours included. |
4593 TUint8 nmrCount( aIsiMessage.Get8bit( |
4583 TUint8 nmrCount( aIsiMessage.Get8bit( |
4595 |
4585 |
4596 // Set NMR list. |
4586 // Set NMR list. |
4597 for ( TUint8 i = 0; i < nmrCount; i++ ) |
4587 for ( TUint8 i = 0; i < nmrCount; i++ ) |
4598 { |
4588 { |
4599 // Set Carrier number. |
4589 // Set Carrier number. |
4600 tempECIDInfo.iCellInfo.iGsmCellInfo.iNmr[ i ].iARFCN = |
4590 iECIDInfo.iCellInfo.iGsmCellInfo.iNmr[i].iARFCN = |
4601 aIsiMessage.Get16bit( |
4591 aIsiMessage.Get16bit( |
4602 sbOffset + NET_ECID_GERAN_INFO_OFFSET_GSMNMRLIST + |
4592 sbOffset + NET_ECID_GERAN_INFO_OFFSET_GSMNMRLIST + |
4603 ( i * SIZE_NET_GSM_NMR_LIST_SEQ ) + |
4593 ( i * SIZE_NET_GSM_NMR_LIST_SEQ ) + |
4604 NET_GSM_NMR_LIST_SEQ_OFFSET_ARFCN ); |
4594 NET_GSM_NMR_LIST_SEQ_OFFSET_ARFCN ); |
4605 // Set BSIC. |
4595 // Set BSIC. |
4606 tempECIDInfo.iCellInfo.iGsmCellInfo.iNmr[ i ].iBSIC = |
4596 iECIDInfo.iCellInfo.iGsmCellInfo.iNmr[i].iBSIC = |
4607 aIsiMessage.Get8bit( |
4597 aIsiMessage.Get8bit( |
4608 sbOffset + NET_ECID_GERAN_INFO_OFFSET_GSMNMRLIST + |
4598 sbOffset + NET_ECID_GERAN_INFO_OFFSET_GSMNMRLIST + |
4609 ( i * SIZE_NET_GSM_NMR_LIST_SEQ ) + |
4599 ( i * SIZE_NET_GSM_NMR_LIST_SEQ ) + |
4610 NET_GSM_NMR_LIST_SEQ_OFFSET_BSIC ); |
4600 NET_GSM_NMR_LIST_SEQ_OFFSET_BSIC ); |
4611 // Set RX level. |
4601 // Set RX level. |
4612 tempECIDInfo.iCellInfo.iGsmCellInfo.iNmr[ i ].iRxLEV = |
4602 iECIDInfo.iCellInfo.iGsmCellInfo.iNmr[i].iRxLEV = |
4613 aIsiMessage.Get8bit( |
4603 aIsiMessage.Get8bit( |
4614 sbOffset + NET_ECID_GERAN_INFO_OFFSET_GSMNMRLIST + |
4604 sbOffset + NET_ECID_GERAN_INFO_OFFSET_GSMNMRLIST + |
4615 ( i * SIZE_NET_GSM_NMR_LIST_SEQ ) + |
4605 ( i * SIZE_NET_GSM_NMR_LIST_SEQ ) + |
4616 NET_GSM_NMR_LIST_SEQ_OFFSET_RXLEVEL ); |
4606 NET_GSM_NMR_LIST_SEQ_OFFSET_RXLEVEL ); |
4617 } |
4607 } |
4622 EIsiSubBlockTypeId8Len16, |
4612 EIsiSubBlockTypeId8Len16, |
4623 sbOffset ) ) |
4613 sbOffset ) ) |
4624 { |
4614 { |
4625 // WCDMA cell info. |
4615 // WCDMA cell info. |
4626 TFLOGSTRING("TSY: CMmCustomMessHandler::NetNeighbourCellsResp - NET_ECID_UTRAN_FDD_INFO found"); |
4616 TFLOGSTRING("TSY: CMmCustomMessHandler::NetNeighbourCellsResp - NET_ECID_UTRAN_FDD_INFO found"); |
4627 OstTrace0( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_NETNEIGHBOURCELLSRESP, "CMmCustomMessHandler::NetNeighbourCellsResp - NET_ECID_UTRAN_FDD_INFO found" ); |
4617 OstTrace0( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_NETNEIGHBOURCELLSRESP_TD, "CMmCustomMessHandler::NetNeighbourCellsResp - NET_ECID_UTRAN_FDD_INFO found" ); |
4628 // Set mode. |
4618 // Set mode. |
4629 tempECIDInfo.iCellInfo.iMode = RMmCustomAPI::TMmCellInfo::EWCDMA; |
4619 if ( RMmCustomAPI::TMmCellInfo::EWCDMA != iECIDInfo.iCellInfo.iMode ) |
|
4620 { |
|
4621 triggerNotify = ETrue; |
|
4622 iECIDInfo.iCellInfo.iMode = RMmCustomAPI::TMmCellInfo::EWCDMA; |
|
4623 } |
4630 |
4624 |
4631 // Set UCID. |
4625 // Set UCID. |
4632 tempECIDInfo.iCID = aIsiMessage.Get32bit( |
4626 TUint32 cid( aIsiMessage.Get32bit( |
4633 sbOffset + NET_ECID_UTRAN_FDD_INFO_OFFSET_UCID ); |
4627 sbOffset + NET_ECID_UTRAN_FDD_INFO_OFFSET_UCID ) ); |
|
4628 if ( cid != iECIDInfo.iCID ) |
|
4629 { |
|
4630 triggerNotify = ETrue; |
|
4631 iECIDInfo.iCID = cid; |
|
4632 } |
4634 |
4633 |
4635 // Set current MCC. |
4634 // Set current MCC. |
4636 tempECIDInfo.iMCC = aIsiMessage.Get16bit( |
4635 TUint16 mcc( aIsiMessage.Get16bit( |
4637 sbOffset + NET_ECID_UTRAN_FDD_INFO_OFFSET_CURRENTMCC ); |
4636 sbOffset + NET_ECID_UTRAN_FDD_INFO_OFFSET_CURRENTMCC ) ); |
|
4637 if ( mcc != iECIDInfo.iMCC ) |
|
4638 { |
|
4639 triggerNotify = ETrue; |
|
4640 iECIDInfo.iMCC = mcc; |
|
4641 } |
4638 |
4642 |
4639 // Set current MNC. |
4643 // Set current MNC. |
4640 tempECIDInfo.iMNC = aIsiMessage.Get16bit( |
4644 TUint16 mnc( aIsiMessage.Get16bit( |
4641 sbOffset + NET_ECID_UTRAN_FDD_INFO_OFFSET_CURRENTMNC ); |
4645 sbOffset + NET_ECID_UTRAN_FDD_INFO_OFFSET_CURRENTMNC ) ); |
4642 |
4646 if ( mnc != iECIDInfo.iMNC ) |
4643 // Set current LAC (new value not received here). |
4647 { |
4644 tempECIDInfo.iLAC = iECIDInfo.iLAC; |
4648 triggerNotify = ETrue; |
|
4649 iECIDInfo.iMNC = mnc; |
|
4650 } |
|
4651 |
|
4652 // New LAC not received here |
4645 |
4653 |
4646 // Set primary scrambling code. |
4654 // Set primary scrambling code. |
4647 tempECIDInfo.iCellInfo.iWcdmaCellInfo.iPrimaryScrambilingCode = |
4655 iECIDInfo.iCellInfo.iWcdmaCellInfo.iPrimaryScrambilingCode = |
4648 aIsiMessage.Get16bit( |
4656 aIsiMessage.Get16bit( |
4649 sbOffset + NET_ECID_UTRAN_FDD_INFO_OFFSET_PRISCRAMBLING ); |
4657 sbOffset + NET_ECID_UTRAN_FDD_INFO_OFFSET_PRISCRAMBLING ); |
4650 |
4658 |
4651 // Set Frequency Info. |
4659 // Set Frequency Info. |
4652 // Set frequency Info (Uplink UARFCN and UARFCN-Nt not available) |
4660 // Set frequency Info (Uplink UARFCN and UARFCN-Nt not available) |
4653 // Downlink UARFCN. |
4661 // Downlink UARFCN. |
4654 tempECIDInfo.iCellInfo.iWcdmaCellInfo.iFrequencyInfo.iFddDL = |
4662 iECIDInfo.iCellInfo.iWcdmaCellInfo.iFrequencyInfo.iFddDL = |
4655 aIsiMessage.Get16bit( |
4663 aIsiMessage.Get16bit( |
4656 sbOffset + NET_ECID_UTRAN_FDD_INFO_OFFSET_UARFCNDL ); |
4664 sbOffset + NET_ECID_UTRAN_FDD_INFO_OFFSET_UARFCNDL ); |
4657 |
4665 |
4658 // Get number of neighbours included. |
4666 // Get number of neighbours included. |
4659 TUint8 nmrCount( aIsiMessage.Get8bit( |
4667 TUint8 nmrCount( aIsiMessage.Get8bit( |
4665 |
4673 |
4666 // Handle NMR lists. |
4674 // Handle NMR lists. |
4667 for ( TUint8 i( 0 ); i < nmrCount; i++ ) |
4675 for ( TUint8 i( 0 ); i < nmrCount; i++ ) |
4668 { |
4676 { |
4669 // Set Frequency Info: Downlink UARFCN. |
4677 // Set Frequency Info: Downlink UARFCN. |
4670 tempECIDInfo.iCellInfo.iWcdmaCellInfo. |
4678 iECIDInfo.iCellInfo.iWcdmaCellInfo. |
4671 iNwkMeasureReport[i].iFrequencyInfo.iFddDL = |
4679 iNwkMeasureReport[i].iFrequencyInfo.iFddDL = |
4672 aIsiMessage.Get16bit( nmrListOffset ); |
4680 aIsiMessage.Get16bit( nmrListOffset ); |
4673 |
4681 |
4674 // Uplink UARFCN and UARFCN-Nt not available, set to -1. |
4682 // Uplink UARFCN and UARFCN-Nt not available, set to -1. |
4675 tempECIDInfo.iCellInfo.iWcdmaCellInfo. |
4683 iECIDInfo.iCellInfo.iWcdmaCellInfo. |
4676 iNwkMeasureReport[i].iFrequencyInfo.iFddUL = -1; |
4684 iNwkMeasureReport[i].iFrequencyInfo.iFddUL = -1; |
4677 tempECIDInfo.iCellInfo.iWcdmaCellInfo. |
4685 iECIDInfo.iCellInfo.iWcdmaCellInfo. |
4678 iNwkMeasureReport[i].iFrequencyInfo.iTddNt = -1; |
4686 iNwkMeasureReport[i].iFrequencyInfo.iTddNt = -1; |
4679 |
4687 |
4680 // Set UTRA Carrier RSSI. |
4688 // Set UTRA Carrier RSSI. |
4681 tempECIDInfo.iCellInfo.iWcdmaCellInfo. |
4689 iECIDInfo.iCellInfo.iWcdmaCellInfo. |
4682 iNwkMeasureReport[i].iCarrierRSSI = |
4690 iNwkMeasureReport[i].iCarrierRSSI = |
4683 aIsiMessage.Get8bit( |
4691 aIsiMessage.Get8bit( |
4684 nmrListOffset + |
4692 nmrListOffset + |
4685 NET_UTRAN_NEIGH_LIST_SEQ_OFFSET_UCRSSI ); |
4693 NET_UTRAN_NEIGH_LIST_SEQ_OFFSET_UCRSSI ); |
4686 |
4694 |
4699 TUint32 temp32bitUVal( |
4707 TUint32 temp32bitUVal( |
4700 aIsiMessage.Get32bit( nmrListOffset ) ); |
4708 aIsiMessage.Get32bit( nmrListOffset ) ); |
4701 |
4709 |
4702 if ( NET_ECID_UCID_UNDEFINED != temp32bitUVal ) |
4710 if ( NET_ECID_UCID_UNDEFINED != temp32bitUVal ) |
4703 { |
4711 { |
4704 tempECIDInfo.iCellInfo.iWcdmaCellInfo. |
4712 iECIDInfo.iCellInfo.iWcdmaCellInfo. |
4705 iNwkMeasureReport[i].iCellMeasuredResult[f].iCID = |
4713 iNwkMeasureReport[i].iCellMeasuredResult[f].iCID = |
4706 temp32bitUVal; |
4714 temp32bitUVal; |
4707 } |
4715 } |
4708 // No else. |
4716 // No else. |
4709 |
4717 |
4710 // Set Primary CPICH. |
4718 // Set Primary CPICH. |
4711 tempECIDInfo.iCellInfo.iWcdmaCellInfo. |
4719 iECIDInfo.iCellInfo.iWcdmaCellInfo. |
4712 iNwkMeasureReport[i].iCellMeasuredResult[f]. |
4720 iNwkMeasureReport[i].iCellMeasuredResult[f]. |
4713 iFddInfo.iPrimaryCPICH = aIsiMessage.Get16bit( |
4721 iFddInfo.iPrimaryCPICH = aIsiMessage.Get16bit( |
4714 nmrListOffset + |
4722 nmrListOffset + |
4715 NET_UTRAN_CELL_LIST_SEQ_OFFSET_PCPICH ); |
4723 NET_UTRAN_CELL_LIST_SEQ_OFFSET_PCPICH ); |
4716 |
4724 |
4719 nmrListOffset + |
4727 nmrListOffset + |
4720 NET_UTRAN_CELL_LIST_SEQ_OFFSET_CPICHECNO ) ); |
4728 NET_UTRAN_CELL_LIST_SEQ_OFFSET_CPICHECNO ) ); |
4721 |
4729 |
4722 if ( NET_ECID_CPICH_ECNO_UNDEFINED != temp8bitUVal ) |
4730 if ( NET_ECID_CPICH_ECNO_UNDEFINED != temp8bitUVal ) |
4723 { |
4731 { |
4724 tempECIDInfo.iCellInfo.iWcdmaCellInfo. |
4732 iECIDInfo.iCellInfo.iWcdmaCellInfo. |
4725 iNwkMeasureReport[i].iCellMeasuredResult[f]. |
4733 iNwkMeasureReport[i].iCellMeasuredResult[f]. |
4726 iFddInfo.iCpichEcN0 = temp8bitUVal; |
4734 iFddInfo.iCpichEcN0 = temp8bitUVal; |
4727 } |
4735 } |
4728 // No else. |
4736 // No else. |
4729 |
4737 |
4730 // Set CPICH RSCP. |
4738 // Set CPICH RSCP. |
4731 tempECIDInfo.iCellInfo.iWcdmaCellInfo. |
4739 iECIDInfo.iCellInfo.iWcdmaCellInfo. |
4732 iNwkMeasureReport[i].iCellMeasuredResult[f]. |
4740 iNwkMeasureReport[i].iCellMeasuredResult[f]. |
4733 iFddInfo.iCpichRscp = aIsiMessage.Get8bit( |
4741 iFddInfo.iCpichRscp = aIsiMessage.Get8bit( |
4734 nmrListOffset + |
4742 nmrListOffset + |
4735 NET_UTRAN_CELL_LIST_SEQ_OFFSET_CPICHRSCP ); |
4743 NET_UTRAN_CELL_LIST_SEQ_OFFSET_CPICHRSCP ); |
4736 |
4744 |
4754 } |
4762 } |
4755 } |
4763 } |
4756 else |
4764 else |
4757 { |
4765 { |
4758 TFLOGSTRING("TSY: CMmCustomMessHandler::NetNeighbourCellsResp - No ECID data found"); |
4766 TFLOGSTRING("TSY: CMmCustomMessHandler::NetNeighbourCellsResp - No ECID data found"); |
4759 OstTrace0( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_NETNEIGHBOURCELLSRESP, "CMmCustomMessHandler::NetNeighbourCellsResp - No ECID data found" ); |
4767 OstTrace0( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_NETNEIGHBOURCELLSRESP_TD, "CMmCustomMessHandler::NetNeighbourCellsResp - No ECID data found" ); |
4760 ret = KErrNotFound; |
4768 ret = KErrNotFound; |
4761 } |
4769 } |
4762 } |
4770 } |
4763 else |
4771 else |
4764 { |
4772 { |
4765 TFLOGSTRING2("TSY: CMmCustomMessHandler::NetNeighbourCellsResp - NET Server Error, Success Code: %d", successCode); |
4773 TFLOGSTRING2("TSY: CMmCustomMessHandler::NetNeighbourCellsResp - NET Server Error, Success Code: %d", successCode); |
4766 OstTraceExt1( TRACE_NORMAL, DUP4_CMMCUSTOMMESSHANDLER_NETNEIGHBOURCELLSRESP, "CMmCustomMessHandler::NetNeighbourCellsResp;NET Server Error, Success Code=%hhu", successCode ); |
4774 OstTraceExt1( TRACE_NORMAL, DUP4_CMMCUSTOMMESSHANDLER_NETNEIGHBOURCELLSRESP_TD, "CMmCustomMessHandler::NetNeighbourCellsResp;NET Server Error, Success Code=%hhu", successCode ); |
4767 |
4775 |
4768 // Map cause to symbian error value. |
4776 // Map cause to symbian error value. |
4769 ret = CMmStaticUtility::CSCauseToEpocError( |
4777 ret = CMmStaticUtility::CSCauseToEpocError( |
4770 PN_MODEM_NETWORK, |
4778 PN_MODEM_NETWORK, |
4771 KTsyNetCauseCommon, |
4779 KTsyNetCauseCommon, |
4777 { |
4785 { |
4778 iECIDInfoRequested = EFalse; |
4786 iECIDInfoRequested = EFalse; |
4779 |
4787 |
4780 // Complete with packed parameter. |
4788 // Complete with packed parameter. |
4781 CMmDataPackage dataPackage; |
4789 CMmDataPackage dataPackage; |
4782 dataPackage.PackData( &tempECIDInfo.iCellInfo ); |
4790 dataPackage.PackData( &iECIDInfo.iCellInfo ); |
4783 |
4791 |
4784 iMessageRouter->Complete( |
4792 iMessageRouter->Complete( |
4785 ECustomGetCellInfoIPC, |
4793 ECustomGetCellInfoIPC, |
4786 &dataPackage, |
4794 &dataPackage, |
4787 ret ); |
4795 ret ); |
4788 } |
4796 } |
4789 // No else. |
4797 // No else. |
4790 |
4798 |
4791 // If info received, save and complete change notification. |
4799 // If info received, save and complete change notification. |
4792 if ( KErrNone == ret ) |
4800 if ( KErrNone == ret && triggerNotify ) |
4793 { |
4801 { |
4794 if ( iECIDInfo.iCellInfo.iMode != tempECIDInfo.iCellInfo.iMode || |
4802 // Complete with packed parameter. |
4795 iECIDInfo.iMCC != tempECIDInfo.iMCC || |
4803 CMmDataPackage dataPackage; |
4796 iECIDInfo.iMNC != tempECIDInfo.iMNC || |
4804 dataPackage.PackData( &iECIDInfo.iCellInfo ); |
4797 iECIDInfo.iCID != tempECIDInfo.iCID || |
4805 |
4798 iECIDInfo.iLAC != tempECIDInfo.iLAC ) |
4806 iMessageRouter->Complete( |
4799 { |
4807 ECustomNotifyCellInfoChangeIPC, |
4800 // Complete with packed parameter. |
4808 &dataPackage, |
4801 CMmDataPackage dataPackage; |
4809 KErrNone ); |
4802 dataPackage.PackData( &tempECIDInfo.iCellInfo ); |
|
4803 |
|
4804 iMessageRouter->Complete( |
|
4805 ECustomNotifyCellInfoChangeIPC, |
|
4806 &dataPackage, |
|
4807 KErrNone ); |
|
4808 } |
|
4809 // No else. |
|
4810 |
|
4811 // Save ECID information. |
|
4812 iECIDInfo = tempECIDInfo; |
|
4813 } |
4810 } |
4814 // No else. |
4811 // No else. |
4815 } |
4812 } |
4816 |
4813 |
4817 // ----------------------------------------------------------------------------- |
4814 // ----------------------------------------------------------------------------- |
4824 // |
4821 // |
4825 void CMmCustomMessHandler::CheckECIDInfo( |
4822 void CMmCustomMessHandler::CheckECIDInfo( |
4826 const TIsiReceiveC& aIsiMessage ) |
4823 const TIsiReceiveC& aIsiMessage ) |
4827 { |
4824 { |
4828 TFLOGSTRING("TSY: CMmCustomMessHandler::CheckECIDInfo"); |
4825 TFLOGSTRING("TSY: CMmCustomMessHandler::CheckECIDInfo"); |
4829 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_CHECKECIDINFO, "CMmCustomMessHandler::CheckECIDInfo" ); |
4826 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_CHECKECIDINFO_TD, "CMmCustomMessHandler::CheckECIDInfo" ); |
4830 |
4827 |
4831 TUint8 msgId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ) ); |
4828 TUint8 msgId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ) ); |
4832 |
4829 |
4833 if ( NET_MODEM_REG_STATUS_IND == msgId || |
4830 if ( NET_MODEM_REG_STATUS_IND == msgId || |
4834 NET_MODEM_REG_STATUS_GET_RESP == msgId ) |
4831 NET_MODEM_REG_STATUS_GET_RESP == msgId ) |
4835 { |
4832 { |
4836 // Check if cell information needs to be updated. |
4833 // Check if cell information needs to be updated. |
4837 TBool isNetRetStatusInd( NET_MODEM_REG_STATUS_IND == msgId ); |
4834 TBool isNetRetStatusInd( NET_MODEM_REG_STATUS_IND == msgId ); |
4838 |
4835 |
4839 TFLOGSTRING("TSY:CMmCustomMessHandler::CheckECIDInfo - Find NET_MODEM_CURRENT_CELL_INFO SubBlock"); |
4836 TFLOGSTRING("TSY:CMmCustomMessHandler::CheckECIDInfo - Find NET_MODEM_CURRENT_CELL_INFO SubBlock"); |
4840 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_CHECKECIDINFO, "CMmCustomMessHandler::CheckECIDInfo - Find NET_MODEM_CURRENT_CELL_INFO SubBlock" ); |
4837 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_CHECKECIDINFO_TD, "CMmCustomMessHandler::CheckECIDInfo - Find NET_MODEM_CURRENT_CELL_INFO SubBlock" ); |
4841 // Get NET_MODEM_CURRENT_CELL_INFO sub block |
4838 // Get NET_MODEM_CURRENT_CELL_INFO sub block |
4842 // (should be always used when exists (coming when in 3G/RRC |
4839 // (should be always used when exists (coming when in 3G/RRC |
4843 // connected mode), otherwise NET_MODEM_GSM_REG_INFO is used). |
4840 // connected mode), otherwise NET_MODEM_GSM_REG_INFO is used). |
4844 |
4841 |
4845 TUint sbStartOffSet( 0 ); |
4842 TUint sbStartOffSet( 0 ); |
4891 |
4888 |
4892 // If subblock found. |
4889 // If subblock found. |
4893 if ( KErrNone == retValue ) |
4890 if ( KErrNone == retValue ) |
4894 { |
4891 { |
4895 TFLOGSTRING("TSY:CMmCustomMessHandler::CheckECIDInfo - SubBlock Found"); |
4892 TFLOGSTRING("TSY:CMmCustomMessHandler::CheckECIDInfo - SubBlock Found"); |
4896 OstTrace0( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_CHECKECIDINFO, "CMmCustomMessHandler::CheckECIDInfo, SubBlock Found" ); |
4893 OstTrace0( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_CHECKECIDINFO_TD, "CMmCustomMessHandler::CheckECIDInfo, SubBlock Found" ); |
4897 TUint tempMCC( 0 ); // Mobile Country Code. |
4894 TUint tempMCC( 0 ); // Mobile Country Code. |
4898 TUint tempMNC( 0 ); // Mobile Network Code. |
4895 TUint tempMNC( 0 ); // Mobile Network Code. |
4899 TUint tempCID( 0 ); // Cell identity. |
4896 TUint tempCID( 0 ); // Cell identity. |
4900 TUint tempLAC( 0 ); // Location area code. |
4897 TUint tempLAC( 0 ); // Location area code. |
4901 |
4898 |
4959 ( |
4956 ( |
4960 const TIsiReceiveC& aIsiMessage, TInt aError |
4957 const TIsiReceiveC& aIsiMessage, TInt aError |
4961 ) |
4958 ) |
4962 { |
4959 { |
4963 TFLOGSTRING2( "TSY: CMmCustomMessHandler::HandleError - Error: %d", aError ); |
4960 TFLOGSTRING2( "TSY: CMmCustomMessHandler::HandleError - Error: %d", aError ); |
4964 OstTrace1( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_HANDLEERROR, "CMmCustomMessHandler::HandleError;aError=%d", aError ); |
4961 OstTrace1( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_HANDLEERROR_TD, "CMmCustomMessHandler::HandleError;aError=%d", aError ); |
4965 |
4962 |
4966 TInt resource( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_RESOURCEID ) ); |
4963 TInt resource( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_RESOURCEID ) ); |
4967 TInt messageId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ) ); |
4964 TInt messageId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_MESSAGEID ) ); |
4968 TUint8 transId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_TRANSID ) ); |
4965 TUint8 transId( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_TRANSID ) ); |
4969 TUint8 serviceType( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_SUBMESSAGEID ) ); |
4966 TUint8 serviceType( aIsiMessage.Get8bit( ISI_HEADER_OFFSET_SUBMESSAGEID ) ); |
4993 TInt CMmCustomMessHandler::GssCsServiceSetBandReq( TUint8 aTransId, // transaction Id |
4990 TInt CMmCustomMessHandler::GssCsServiceSetBandReq( TUint8 aTransId, // transaction Id |
4994 RMmCustomAPI::TNetworkModeCaps aNetworkModeCaps, // network mode caps |
4991 RMmCustomAPI::TNetworkModeCaps aNetworkModeCaps, // network mode caps |
4995 RMmCustomAPI::TBandSelection aBandSelection ) // band selection |
4992 RMmCustomAPI::TBandSelection aBandSelection ) // band selection |
4996 { |
4993 { |
4997 TFLOGSTRING2( "TSY: CMmCustomMessHandler::GssCsServiceSetBandReq - aTransId: %d", aTransId ); |
4994 TFLOGSTRING2( "TSY: CMmCustomMessHandler::GssCsServiceSetBandReq - aTransId: %d", aTransId ); |
4998 OstTraceExt1( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_GSSCSSERVICESETBANDREQ, "CMmCustomMessHandler::GssCsServiceSetBandReq;aTransId=%hhu", aTransId ); |
4995 OstTraceExt1( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_GSSCSSERVICESETBANDREQ_TD, "CMmCustomMessHandler::GssCsServiceSetBandReq;aTransId=%hhu", aTransId ); |
4999 |
4996 |
5000 if ( RMmCustomAPI::KCapsNetworkModeUmts == aNetworkModeCaps || |
4997 if ( RMmCustomAPI::KCapsNetworkModeUmts == aNetworkModeCaps || |
5001 RMmCustomAPI::KCapsNetworkModeDual == aNetworkModeCaps ) |
4998 RMmCustomAPI::KCapsNetworkModeDual == aNetworkModeCaps ) |
5002 { |
4999 { |
5003 TFLOGSTRING3( "TSY: CMmCustomMessHandler::GssCsServiceSetBandReq - NWModeCaps: %d - Band: %d", |
5000 TFLOGSTRING3( "TSY: CMmCustomMessHandler::GssCsServiceSetBandReq - NWModeCaps: %d - Band: %d", |
5004 aNetworkModeCaps, aBandSelection ); |
5001 aNetworkModeCaps, aBandSelection ); |
5005 OstTraceExt2( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_GSSCSSERVICESETBANDREQ, "CMmCustomMessHandler::GssCsServiceSetBandReq; - NWModeCaps=%d - Band=%d", aNetworkModeCaps, aBandSelection ); |
5002 OstTraceExt2( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_GSSCSSERVICESETBANDREQ_TD, "CMmCustomMessHandler::GssCsServiceSetBandReq; - NWModeCaps=%d - Band=%d", aNetworkModeCaps, aBandSelection ); |
5006 |
5003 |
5007 // create message data buffer |
5004 // create message data buffer |
5008 TBuf8< 20 > messageData; |
5005 TBuf8< 20 > messageData; |
5009 messageData.Append( GSS_SELECTED_BANDS_WRITE ); // append service type |
5006 messageData.Append( GSS_SELECTED_BANDS_WRITE ); // append service type |
5010 messageData.Append( 1 ); // number of subblocks |
5007 messageData.Append( 1 ); // number of subblocks |
5049 // ----------------------------------------------------------------------------- |
5046 // ----------------------------------------------------------------------------- |
5050 // |
5047 // |
5051 TInt CMmCustomMessHandler::GssCsServiceGetBandReq( TUint8 aTransId ) //transaction Id |
5048 TInt CMmCustomMessHandler::GssCsServiceGetBandReq( TUint8 aTransId ) //transaction Id |
5052 { |
5049 { |
5053 TFLOGSTRING2( "TSY: CMmCustomMessHandler::GssCsServiceGetBandReq - aTransId: %d", aTransId ); |
5050 TFLOGSTRING2( "TSY: CMmCustomMessHandler::GssCsServiceGetBandReq - aTransId: %d", aTransId ); |
5054 OstTraceExt1( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_GSSCSSERVICEGETBANDREQ, "CMmCustomMessHandler::GssCsServiceGetBandReq;aTransId=%hhu", aTransId ); |
5051 OstTraceExt1( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_GSSCSSERVICEGETBANDREQ_TD, "CMmCustomMessHandler::GssCsServiceGetBandReq;aTransId=%hhu", aTransId ); |
5055 |
5052 |
5056 // create message data buffer |
5053 // create message data buffer |
5057 TBuf8< 4 > messageData; |
5054 TBuf8< 4 > messageData; |
5058 messageData.Append( GSS_SELECTED_BANDS_READ ); // append service type |
5055 messageData.Append( GSS_SELECTED_BANDS_READ ); // append service type |
5059 messageData.Append( 0 ); // No subblocks |
5056 messageData.Append( 0 ); // No subblocks |
5068 // ----------------------------------------------------------------------------- |
5065 // ----------------------------------------------------------------------------- |
5069 // |
5066 // |
5070 void CMmCustomMessHandler::CompleteGetBandSelection( const TIsiReceiveC& aIsiMessage ) |
5067 void CMmCustomMessHandler::CompleteGetBandSelection( const TIsiReceiveC& aIsiMessage ) |
5071 { |
5068 { |
5072 TFLOGSTRING("TSY: CMmCustomMessHandler::CompleteGetBandSelection"); |
5069 TFLOGSTRING("TSY: CMmCustomMessHandler::CompleteGetBandSelection"); |
5073 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_COMPLETEGETBANDSELECTION, "CMmCustomMessHandler::CompleteGetBandSelection" ); |
5070 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_COMPLETEGETBANDSELECTION_TD, "CMmCustomMessHandler::CompleteGetBandSelection" ); |
5074 |
5071 |
5075 RMmCustomAPI::TNetworkModeCaps nwModeCaps; // network mode caps |
5072 RMmCustomAPI::TNetworkModeCaps nwModeCaps; // network mode caps |
5076 RMmCustomAPI::TBandSelection bandSelection; // band selection |
5073 RMmCustomAPI::TBandSelection bandSelection; // band selection |
5077 bandSelection = RMmCustomAPI::ENetworkBandAny; // set "any" as a default |
5074 bandSelection = RMmCustomAPI::ENetworkBandAny; // set "any" as a default |
5078 |
5075 |
5084 GSS_CS_SERVICE_RESP_OFFSET_NBROFSUBBLOCKS + 1 ); |
5081 GSS_CS_SERVICE_RESP_OFFSET_NBROFSUBBLOCKS + 1 ); |
5085 |
5082 |
5086 TUint8 firstSubblock ( aIsiMessage.Get8bit( sbOffset ) ); |
5083 TUint8 firstSubblock ( aIsiMessage.Get8bit( sbOffset ) ); |
5087 |
5084 |
5088 TFLOGSTRING2("TSY: CMmCustomMessHandler::CompleteGetBandSelection - ECustomGetBandSelectionIPC. NrOfSubblocks:%d", nrOfSubblocks); |
5085 TFLOGSTRING2("TSY: CMmCustomMessHandler::CompleteGetBandSelection - ECustomGetBandSelectionIPC. NrOfSubblocks:%d", nrOfSubblocks); |
5089 OstTraceExt1( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_COMPLETEGETBANDSELECTION, "CMmCustomMessHandler::CompleteGetBandSelection;nrOfSubblocks=%hhu", nrOfSubblocks ); |
5086 OstTraceExt1( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_COMPLETEGETBANDSELECTION_TD, "CMmCustomMessHandler::CompleteGetBandSelection;nrOfSubblocks=%hhu", nrOfSubblocks ); |
5090 |
5087 |
5091 // In 2G only products only sub block GSS_SELECTED_GSM_BANDS_INFO is returned. |
5088 // In 2G only products only sub block GSS_SELECTED_GSM_BANDS_INFO is returned. |
5092 if ( 1 == nrOfSubblocks && firstSubblock == GSS_SELECTED_GSM_BAND_INFO ) |
5089 if ( 1 == nrOfSubblocks && firstSubblock == GSS_SELECTED_GSM_BAND_INFO ) |
5093 { |
5090 { |
5094 nwModeCaps = RMmCustomAPI::KCapsNetworkModeGsm; |
5091 nwModeCaps = RMmCustomAPI::KCapsNetworkModeGsm; |
5101 |
5098 |
5102 // first SB is GSS_SELECTED_GSM_BAND_INFO |
5099 // first SB is GSS_SELECTED_GSM_BAND_INFO |
5103 if ( GSS_SELECTED_GSM_BAND_INFO == firstSubblock ) |
5100 if ( GSS_SELECTED_GSM_BAND_INFO == firstSubblock ) |
5104 { |
5101 { |
5105 TFLOGSTRING("TSY: CMmCustomMessHandler::CompleteGetBandSelection - 1st SB = GSM BAND INFO"); |
5102 TFLOGSTRING("TSY: CMmCustomMessHandler::CompleteGetBandSelection - 1st SB = GSM BAND INFO"); |
5106 OstTrace0( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_COMPLETEGETBANDSELECTION, "CMmCustomMessHandler::CompleteGetBandSelection - 1st SB = GSM BAND INFO" ); |
5103 OstTrace0( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_COMPLETEGETBANDSELECTION_TD, "CMmCustomMessHandler::CompleteGetBandSelection - 1st SB = GSM BAND INFO" ); |
5107 |
5104 |
5108 // calculate offsets |
5105 // calculate offsets |
5109 gsmBandInfoOffset = sbOffset + |
5106 gsmBandInfoOffset = sbOffset + |
5110 GSS_SELECTED_GSM_BAND_INFO_OFFSET_SELECTEDGSMBANDS; |
5107 GSS_SELECTED_GSM_BAND_INFO_OFFSET_SELECTEDGSMBANDS; |
5111 |
5108 |
5137 |
5134 |
5138 //If phone is forced to GSM, value in GSS_SELECTED_UMTS_BAND_INFO shall be GSS_UMTS_NO_BANDS |
5135 //If phone is forced to GSM, value in GSS_SELECTED_UMTS_BAND_INFO shall be GSS_UMTS_NO_BANDS |
5139 if ( GSS_UMTS_NO_BANDS == aIsiMessage.Get32bit( umtsBandInfoOffset ) ) // forced GSM |
5136 if ( GSS_UMTS_NO_BANDS == aIsiMessage.Get32bit( umtsBandInfoOffset ) ) // forced GSM |
5140 { |
5137 { |
5141 TFLOGSTRING("TSY: CMmCustomMessHandler::CompleteGetBandSelection - umtsBandInfo==GSS_UMTS_NO_BANDS => Forced GSM"); |
5138 TFLOGSTRING("TSY: CMmCustomMessHandler::CompleteGetBandSelection - umtsBandInfo==GSS_UMTS_NO_BANDS => Forced GSM"); |
5142 OstTrace0( TRACE_NORMAL, DUP4_CMMCUSTOMMESSHANDLER_COMPLETEGETBANDSELECTION, "CMmCustomMessHandler::CompleteGetBandSelection - umtsBandInfo==GSS_UMTS_NO_BANDS => Forced GSM" ); |
5139 OstTrace0( TRACE_NORMAL, DUP4_CMMCUSTOMMESSHANDLER_COMPLETEGETBANDSELECTION_TD, "CMmCustomMessHandler::CompleteGetBandSelection - umtsBandInfo==GSS_UMTS_NO_BANDS => Forced GSM" ); |
5143 nwModeCaps = RMmCustomAPI::KCapsNetworkModeGsm; |
5140 nwModeCaps = RMmCustomAPI::KCapsNetworkModeGsm; |
5144 } |
5141 } |
5145 else |
5142 else |
5146 { |
5143 { |
5147 //If phone is forced to GSM, value in GSS_SELECTED_UMTS_BAND_INFO shall be GSS_UMTS_NO_BANDS. |
5144 //If phone is forced to GSM, value in GSS_SELECTED_UMTS_BAND_INFO shall be GSS_UMTS_NO_BANDS. |
5148 if ( 0 < gsmBandInfoOffset && GSS_GSM_NO_BANDS == aIsiMessage.Get8bit( gsmBandInfoOffset ) ) // forced UMTS |
5145 if ( 0 < gsmBandInfoOffset && GSS_GSM_NO_BANDS == aIsiMessage.Get8bit( gsmBandInfoOffset ) ) // forced UMTS |
5149 { |
5146 { |
5150 TFLOGSTRING("TSY: CMmCustomMessHandler::CompleteGetBandSelection - gsmBandInfo==GSS_GSM_NO_BANDS => Forced UMTS"); |
5147 TFLOGSTRING("TSY: CMmCustomMessHandler::CompleteGetBandSelection - gsmBandInfo==GSS_GSM_NO_BANDS => Forced UMTS"); |
5151 OstTrace0( TRACE_NORMAL, DUP5_CMMCUSTOMMESSHANDLER_COMPLETEGETBANDSELECTION, "CMmCustomMessHandler::CompleteGetBandSelection - gsmBandInfo==GSS_GSM_NO_BANDS => Forced UMTS" ); |
5148 OstTrace0( TRACE_NORMAL, DUP5_CMMCUSTOMMESSHANDLER_COMPLETEGETBANDSELECTION_TD, "CMmCustomMessHandler::CompleteGetBandSelection - gsmBandInfo==GSS_GSM_NO_BANDS => Forced UMTS" ); |
5152 nwModeCaps = RMmCustomAPI::KCapsNetworkModeUmts; |
5149 nwModeCaps = RMmCustomAPI::KCapsNetworkModeUmts; |
5153 } |
5150 } |
5154 else // dual mode |
5151 else // dual mode |
5155 { |
5152 { |
5156 TFLOGSTRING("TSY: CMmCustomMessHandler::CompleteGetBandSelection - Dual mode"); |
5153 TFLOGSTRING("TSY: CMmCustomMessHandler::CompleteGetBandSelection - Dual mode"); |
5157 OstTrace0( TRACE_NORMAL, DUP6_CMMCUSTOMMESSHANDLER_COMPLETEGETBANDSELECTION, "CMmCustomMessHandler::CompleteGetBandSelection - Dual mode" ); |
5154 OstTrace0( TRACE_NORMAL, DUP6_CMMCUSTOMMESSHANDLER_COMPLETEGETBANDSELECTION_TD, "CMmCustomMessHandler::CompleteGetBandSelection - Dual mode" ); |
5158 nwModeCaps = RMmCustomAPI::KCapsNetworkModeDual; |
5155 nwModeCaps = RMmCustomAPI::KCapsNetworkModeDual; |
5159 } |
5156 } |
5160 |
5157 |
5161 // Set network band |
5158 // Set network band |
5162 if ( GSS_UMTS_BAND_V_MASK == aIsiMessage.Get32bit( umtsBandInfoOffset ) ) |
5159 if ( GSS_UMTS_BAND_V_MASK == aIsiMessage.Get32bit( umtsBandInfoOffset ) ) |
5163 { |
5160 { |
5164 TFLOGSTRING("TSY: CMmCustomMessHandler::CompleteGetBandSelection - UMTS850"); |
5161 TFLOGSTRING("TSY: CMmCustomMessHandler::CompleteGetBandSelection - UMTS850"); |
5165 OstTrace0( TRACE_NORMAL, DUP7_CMMCUSTOMMESSHANDLER_COMPLETEGETBANDSELECTION, "CMmCustomMessHandler::CompleteGetBandSelection - UMTS850" ); |
5162 OstTrace0( TRACE_NORMAL, DUP7_CMMCUSTOMMESSHANDLER_COMPLETEGETBANDSELECTION_TD, "CMmCustomMessHandler::CompleteGetBandSelection - UMTS850" ); |
5166 bandSelection = RMmCustomAPI::ENetworkBandUmts850; |
5163 bandSelection = RMmCustomAPI::ENetworkBandUmts850; |
5167 } |
5164 } |
5168 else if( GSS_UMTS_BAND_I_MASK == aIsiMessage.Get32bit( umtsBandInfoOffset ) ) |
5165 else if( GSS_UMTS_BAND_I_MASK == aIsiMessage.Get32bit( umtsBandInfoOffset ) ) |
5169 { |
5166 { |
5170 TFLOGSTRING("TSY: CMmCustomMessHandler::CompleteGetBandSelection - UMTS2100"); |
5167 TFLOGSTRING("TSY: CMmCustomMessHandler::CompleteGetBandSelection - UMTS2100"); |
5171 OstTrace0( TRACE_NORMAL, DUP8_CMMCUSTOMMESSHANDLER_COMPLETEGETBANDSELECTION, "CMmCustomMessHandler::CompleteGetBandSelection - UMTS2100" ); |
5168 OstTrace0( TRACE_NORMAL, DUP8_CMMCUSTOMMESSHANDLER_COMPLETEGETBANDSELECTION_TD, "CMmCustomMessHandler::CompleteGetBandSelection - UMTS2100" ); |
5172 bandSelection = RMmCustomAPI::ENetworkBandUmts2100; |
5169 bandSelection = RMmCustomAPI::ENetworkBandUmts2100; |
5173 } |
5170 } |
5174 } |
5171 } |
5175 } |
5172 } |
5176 |
5173 |
5229 // ----------------------------------------------------------------------------- |
5226 // ----------------------------------------------------------------------------- |
5230 // CMmCustomMessHandler::LifeTimerFromPermanentMemoryReadResponse |
5227 // CMmCustomMessHandler::LifeTimerFromPermanentMemoryReadResponse |
5231 // Breaks PERM_PM_RECORD_READ_RESP message. |
5228 // Breaks PERM_PM_RECORD_READ_RESP message. |
5232 // ----------------------------------------------------------------------------- |
5229 // ----------------------------------------------------------------------------- |
5233 // |
5230 // |
5234 /* To be done in CPS |
5231 /* |
5235 void CMmCustomMessHandler::LifeTimerFromPermanentMemoryReadResponse |
5232 void CMmCustomMessHandler::LifeTimerFromPermanentMemoryReadResponse |
5236 ( |
5233 ( |
5237 const TIsiReceiveC& aIsiMessage // an ISI message |
5234 const TIsiReceiveC& aIsiMessage // an ISI message |
5238 ) |
5235 ) |
5239 { |
5236 { |
5240 TFLOGSTRING("TSY: CCMmCustomMessHandler::LifeTimerFromPermanentMemoryReadResponse.\n" ); |
5237 TFLOGSTRING("TSY: CCMmCustomMessHandler::LifeTimerFromPermanentMemoryReadResponse.\n" ); |
5241 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_LIFETIMERFROMPERMANENTMEMORYREADRESPONSE, "CMmCustomMessHandler::LifeTimerFromPermanentMemoryReadResponse" ); |
5238 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_LIFETIMERFROMPERMANENTMEMORYREADRESPONSE_TD, "CMmCustomMessHandler::LifeTimerFromPermanentMemoryReadResponse" ); |
5242 |
5239 |
5243 TInt ret( KErrNone ); |
5240 TInt ret( KErrNone ); |
5244 |
5241 |
5245 TUint8 pmmStatus = aIsiMessage.Get8bit( |
5242 TUint8 pmmStatus = aIsiMessage.Get8bit( |
5246 ISI_HEADER_SIZE + |
5243 ISI_HEADER_SIZE + |
5265 if ( KCallLifeTimerDataAmount == dataSize ) |
5262 if ( KCallLifeTimerDataAmount == dataSize ) |
5266 { |
5263 { |
5267 iCallLifeTimer = aIsiMessage.Get32bit( sbStartOffSet + |
5264 iCallLifeTimer = aIsiMessage.Get32bit( sbStartOffSet + |
5268 PERM_SB_PM_DATA_OFFSET_DATA ); |
5265 PERM_SB_PM_DATA_OFFSET_DATA ); |
5269 TFLOGSTRING2( "TSY: CMmCustomMessHandler::LifeTimerFromPermanentMemoryReadResponse - iCallLifeTimer: %d", iCallLifeTimer ); |
5266 TFLOGSTRING2( "TSY: CMmCustomMessHandler::LifeTimerFromPermanentMemoryReadResponse - iCallLifeTimer: %d", iCallLifeTimer ); |
5270 OstTrace1( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_LIFETIMERFROMPERMANENTMEMORYREADRESPONSE, "CMmCustomMessHandler::LifeTimerFromPermanentMemoryReadResponse;iCallLifeTimer=%d", iCallLifeTimer ); |
5267 OstTrace1( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_LIFETIMERFROMPERMANENTMEMORYREADRESPONSE_TD, "CMmCustomMessHandler::LifeTimerFromPermanentMemoryReadResponse;iCallLifeTimer=%d", iCallLifeTimer ); |
5271 } |
5268 } |
5272 else |
5269 else |
5273 { |
5270 { |
5274 TFLOGSTRING2( "TSY: CMmCustomMessHandler::LifeTimerFromPermanentMemoryReadResponse - Incorrect data size: %d", dataSize ); |
5271 TFLOGSTRING2( "TSY: CMmCustomMessHandler::LifeTimerFromPermanentMemoryReadResponse - Incorrect data size: %d", dataSize ); |
5275 OstTrace1( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_LIFETIMERFROMPERMANENTMEMORYREADRESPONSE, "CMmCustomMessHandler::LifeTimerFromPermanentMemoryReadResponse - Incorrect data size=%u", dataSize ); |
5272 OstTrace1( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_LIFETIMERFROMPERMANENTMEMORYREADRESPONSE_TD, "CMmCustomMessHandler::LifeTimerFromPermanentMemoryReadResponse - Incorrect data size=%u", dataSize ); |
5276 TF_ASSERT( KCallLifeTimerDataAmount != dataSize ); |
5273 TF_ASSERT( KCallLifeTimerDataAmount != dataSize ); |
5277 ret = KErrGeneral; |
5274 ret = KErrGeneral; |
5278 } |
5275 } |
5279 } |
5276 } |
5280 } |
5277 } |
5282 { |
5279 { |
5283 if ( PMM_NOT_READY == pmmStatus ) |
5280 if ( PMM_NOT_READY == pmmStatus ) |
5284 { |
5281 { |
5285 // Send request again max 3 times |
5282 // Send request again max 3 times |
5286 TFLOGSTRING("TSY: CMmCustomMessHandler::LifeTimerFromPermanentMemoryReadResponse - PMM not ready. Send request again\n" ); |
5283 TFLOGSTRING("TSY: CMmCustomMessHandler::LifeTimerFromPermanentMemoryReadResponse - PMM not ready. Send request again\n" ); |
5287 OstTrace0( TRACE_NORMAL, DUP4_CMMCUSTOMMESSHANDLER_LIFETIMERFROMPERMANENTMEMORYREADRESPONSE, "CMmCustomMessHandler::LifeTimerFromPermanentMemoryReadResponse - PMM not ready. Send request again" ); |
5284 OstTrace0( TRACE_NORMAL, DUP4_CMMCUSTOMMESSHANDLER_LIFETIMERFROMPERMANENTMEMORYREADRESPONSE_TD, "CMmCustomMessHandler::LifeTimerFromPermanentMemoryReadResponse - PMM not ready. Send request again" ); |
5288 iPMMReadRetryCounter++; |
5285 iPMMReadRetryCounter++; |
5289 if ( KMaxPMMReadRequests > iPMMReadRetryCounter ) |
5286 if ( KMaxPMMReadRequests > iPMMReadRetryCounter ) |
5290 { |
5287 { |
5291 ReadLifeTimerFromPermanentMemory ( KCustomTransId ); |
5288 ReadLifeTimerFromPermanentMemory ( KCustomTransId ); |
5292 } |
5289 } |
5293 } |
5290 } |
5294 else if ( PMM_RECORD_NOT_FOUND == pmmStatus ) |
5291 else if ( PMM_RECORD_NOT_FOUND == pmmStatus ) |
5295 { |
5292 { |
5296 // The first boot of the phone. |
5293 // The first boot of the phone. |
5297 TFLOGSTRING("TSY: CMmCustomMessHandler::LifeTimerFromPermanentMemoryReadResponse - The first boot. Set iCallLifeTimer 0\n" ); |
5294 TFLOGSTRING("TSY: CMmCustomMessHandler::LifeTimerFromPermanentMemoryReadResponse - The first boot. Set iCallLifeTimer 0\n" ); |
5298 OstTrace0( TRACE_NORMAL, DUP5_CMMCUSTOMMESSHANDLER_LIFETIMERFROMPERMANENTMEMORYREADRESPONSE, "CMmCustomMessHandler::LifeTimerFromPermanentMemoryReadResponse - The first boot. Set iCallLifeTimer 0" ); |
5295 OstTrace0( TRACE_NORMAL, DUP5_CMMCUSTOMMESSHANDLER_LIFETIMERFROMPERMANENTMEMORYREADRESPONSE_TD, "CMmCustomMessHandler::LifeTimerFromPermanentMemoryReadResponse - The first boot. Set iCallLifeTimer 0" ); |
5299 iCallLifeTimer = 0; |
5296 iCallLifeTimer = 0; |
5300 } |
5297 } |
5301 else |
5298 else |
5302 { |
5299 { |
5303 TFLOGSTRING2( "TSY: CMmCustomMessHandler::LifeTimerFromPermanentMemoryReadResponse - PMM Status NOT OK: %d", pmmStatus ); |
5300 TFLOGSTRING2( "TSY: CMmCustomMessHandler::LifeTimerFromPermanentMemoryReadResponse - PMM Status NOT OK: %d", pmmStatus ); |
5304 OstTraceExt1( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_LIFETIMERFROMPERMANENTMEMORYREADRESPONSE, "CMmCustomMessHandler::LifeTimerFromPermanentMemoryReadResponse - PMM Status NOT OK=%hhu", pmmStatus ); |
5301 OstTraceExt1( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_LIFETIMERFROMPERMANENTMEMORYREADRESPONSE_TD, "CMmCustomMessHandler::LifeTimerFromPermanentMemoryReadResponse - PMM Status NOT OK=%hhu", pmmStatus ); |
5305 } |
5302 } |
5306 } |
5303 } |
5307 }*/ |
5304 }*/ |
5308 |
5305 |
5309 // ----------------------------------------------------------------------------- |
5306 // ----------------------------------------------------------------------------- |
5343 |
5340 |
5344 if ( KCallLifeTimerNotSet == iCallLifeTimer ) |
5341 if ( KCallLifeTimerNotSet == iCallLifeTimer ) |
5345 { |
5342 { |
5346 TFLOGSTRING( "TSY: CMmCustomMessHandler::WriteLifeTimerToPermanentMemory - Call Life Timer is not set from PMM ret KErrNotReady\n" ); |
5343 TFLOGSTRING( "TSY: CMmCustomMessHandler::WriteLifeTimerToPermanentMemory - Call Life Timer is not set from PMM ret KErrNotReady\n" ); |
5347 TFLOGSTRING("TSY: CMmCustomMessHandler::WriteLifeTimerToPermanentMemory - PERM_PM_RECORD_WRITE_REQ is NOT send\n" ); |
5344 TFLOGSTRING("TSY: CMmCustomMessHandler::WriteLifeTimerToPermanentMemory - PERM_PM_RECORD_WRITE_REQ is NOT send\n" ); |
5348 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_WRITELIFETIMERTOPERMANENTMEMORY, "CMmCustomMessHandler::WriteLifeTimerToPermanentMemory - Call Life Timer is not set from PMM ret KErrNotReady" ); |
5345 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_WRITELIFETIMERTOPERMANENTMEMORY_TD, "CMmCustomMessHandler::WriteLifeTimerToPermanentMemory - Call Life Timer is not set from PMM ret KErrNotReady" ); |
5349 OstTrace0( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_WRITELIFETIMERTOPERMANENTMEMORY, "CMmCustomMessHandler::WriteLifeTimerToPermanentMemory - PERM_PM_RECORD_WRITE_REQ is NOT send" ); |
5346 OstTrace0( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_WRITELIFETIMERTOPERMANENTMEMORY_TD, "CMmCustomMessHandler::WriteLifeTimerToPermanentMemory - PERM_PM_RECORD_WRITE_REQ is NOT send" ); |
5350 |
5347 |
5351 // Return request with KErrNotReady |
5348 // Return request with KErrNotReady |
5352 return ( KErrNotReady ); |
5349 return ( KErrNotReady ); |
5353 } |
5350 } |
5354 else |
5351 else |
5374 // ----------------------------------------------------------------------------- |
5371 // ----------------------------------------------------------------------------- |
5375 // CMmCustomMessHandler::LifeTimerToPermanentMemoryWriteResponse |
5372 // CMmCustomMessHandler::LifeTimerToPermanentMemoryWriteResponse |
5376 // Breaks PERM_PM_RECORD_WRITE_RESP message. |
5373 // Breaks PERM_PM_RECORD_WRITE_RESP message. |
5377 // ----------------------------------------------------------------------------- |
5374 // ----------------------------------------------------------------------------- |
5378 // |
5375 // |
5379 /* To be done in CPS |
5376 /* |
5380 void CMmCustomMessHandler::LifeTimerToPermanentMemoryWriteResponse |
5377 void CMmCustomMessHandler::LifeTimerToPermanentMemoryWriteResponse |
5381 ( |
5378 ( |
5382 const TIsiReceiveC& aIsiMessage // an ISI message |
5379 const TIsiReceiveC& aIsiMessage // an ISI message |
5383 ) |
5380 ) |
5384 { |
5381 { |
5385 TFLOGSTRING("TSY: CMmCustomMessHandler::LifeTimerToPermanentMemoryWriteResponse.\n" ); |
5382 TFLOGSTRING("TSY: CMmCustomMessHandler::LifeTimerToPermanentMemoryWriteResponse.\n" ); |
5386 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_LIFETIMERTOPERMANENTMEMORYWRITERESPONSE, "CMmCustomMessHandler::LifeTimerToPermanentMemoryWriteResponse" ); |
5383 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_LIFETIMERTOPERMANENTMEMORYWRITERESPONSE_TD, "CMmCustomMessHandler::LifeTimerToPermanentMemoryWriteResponse" ); |
5387 |
5384 |
5388 TInt ret( KErrNone ); |
5385 TInt ret( KErrNone ); |
5389 |
5386 |
5390 TUint8 pmmStatus = aIsiMessage.Get8bit( |
5387 TUint8 pmmStatus = aIsiMessage.Get8bit( |
5391 ISI_HEADER_SIZE + |
5388 ISI_HEADER_SIZE + |
5392 PERM_PM_RECORD_WRITE_RESP_OFFSET_PMMSTATUS ); |
5389 PERM_PM_RECORD_WRITE_RESP_OFFSET_PMMSTATUS ); |
5393 TFLOGSTRING2( "TSY: CMmCustomMessHandler::LifeTimerToPermanentMemoryWriteResponse - pmmStatus: %d", pmmStatus ); |
5390 TFLOGSTRING2( "TSY: CMmCustomMessHandler::LifeTimerToPermanentMemoryWriteResponse - pmmStatus: %d", pmmStatus ); |
5394 OstTraceExt1( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_LIFETIMERTOPERMANENTMEMORYWRITERESPONSE, "CMmCustomMessHandler::LifeTimerToPermanentMemoryWriteResponse;pmmStatus=%hhu", pmmStatus ); |
5391 OstTraceExt1( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_LIFETIMERTOPERMANENTMEMORYWRITERESPONSE_TD, "CMmCustomMessHandler::LifeTimerToPermanentMemoryWriteResponse;pmmStatus=%hhu", pmmStatus ); |
5395 |
5392 |
5396 if ( PMM_OK != pmmStatus ) |
5393 if ( PMM_OK != pmmStatus ) |
5397 { |
5394 { |
5398 ret = KErrNotReady; |
5395 ret = KErrNotReady; |
5399 TF_ASSERT( PMM_OK != pmmStatus ); |
5396 TF_ASSERT( PMM_OK != pmmStatus ); |
5400 TFLOGSTRING2( "TSY: CMmCustomMessHandler::LifeTimerToPermanentMemoryWriteResponse - Call Life Timer is not updated / error from PMM ret: %d", ret ); |
5397 TFLOGSTRING2( "TSY: CMmCustomMessHandler::LifeTimerToPermanentMemoryWriteResponse - Call Life Timer is not updated / error from PMM ret: %d", ret ); |
5401 OstTrace1( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_LIFETIMERTOPERMANENTMEMORYWRITERESPONSE, "CMmCustomMessHandler::LifeTimerToPermanentMemoryWriteResponse - Call Life Timer is not updated / error from PMM ret=%d", ret ); |
5398 OstTrace1( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_LIFETIMERTOPERMANENTMEMORYWRITERESPONSE_TD, "CMmCustomMessHandler::LifeTimerToPermanentMemoryWriteResponse - Call Life Timer is not updated / error from PMM ret=%d", ret ); |
5402 } |
5399 } |
5403 |
5400 |
5404 return iMessageRouter->Complete( EMmTsyUpdateLifeTimeIPC, ret ); |
5401 return iMessageRouter->Complete( EMmTsyUpdateLifeTimeIPC, ret ); |
5405 }*/ |
5402 }*/ |
5406 |
5403 |
5439 timeInfo.iCaps |= |
5436 timeInfo.iCaps |= |
5440 RMmCustomAPI::TLifeTimeData::ELifeTimeDataCapsLifeTime; |
5437 RMmCustomAPI::TLifeTimeData::ELifeTimeDataCapsLifeTime; |
5441 TFLOGSTRING2( "TSY: TSY: CMmCustomMessHandler::GetTotalLifeTimerValue - iCallLifeTimer: %d", iCallLifeTimer ); |
5438 TFLOGSTRING2( "TSY: TSY: CMmCustomMessHandler::GetTotalLifeTimerValue - iCallLifeTimer: %d", iCallLifeTimer ); |
5442 TFLOGSTRING2( "TSY: TSY: CMmCustomMessHandler::GetTotalLifeTimerValue - timeInfo.iHours: %d", timeInfo.iHours ); |
5439 TFLOGSTRING2( "TSY: TSY: CMmCustomMessHandler::GetTotalLifeTimerValue - timeInfo.iHours: %d", timeInfo.iHours ); |
5443 TFLOGSTRING2( "TSY: TSY: CMmCustomMessHandler::GetTotalLifeTimerValue - timeInfo.iMinutes: %d", timeInfo.iMinutes ); |
5440 TFLOGSTRING2( "TSY: TSY: CMmCustomMessHandler::GetTotalLifeTimerValue - timeInfo.iMinutes: %d", timeInfo.iMinutes ); |
5444 OstTrace1( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_GETTOTALLIFETIMERVALUE, "CMmCustomMessHandler::GetTotalLifeTimerValue;iCallLifeTimer=%d", iCallLifeTimer ); |
5441 OstTrace1( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_GETTOTALLIFETIMERVALUE_TD, "CMmCustomMessHandler::GetTotalLifeTimerValue;iCallLifeTimer=%d", iCallLifeTimer ); |
5445 OstTrace1( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_GETTOTALLIFETIMERVALUE, "CMmCustomMessHandler::GetTotalLifeTimerValue;timeInfo.iHours=%u", timeInfo.iHours ); |
5442 OstTrace1( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_GETTOTALLIFETIMERVALUE_TD, "CMmCustomMessHandler::GetTotalLifeTimerValue;timeInfo.iHours=%u", timeInfo.iHours ); |
5446 OstTraceExt1( TRACE_NORMAL, DUP4_CMMCUSTOMMESSHANDLER_GETTOTALLIFETIMERVALUE, "CMmCustomMessHandler::GetTotalLifeTimerValue;timeInfo.iMinutes=%hhu", timeInfo.iMinutes ); |
5443 OstTraceExt1( TRACE_NORMAL, DUP4_CMMCUSTOMMESSHANDLER_GETTOTALLIFETIMERVALUE_TD, "CMmCustomMessHandler::GetTotalLifeTimerValue;timeInfo.iMinutes=%hhu", timeInfo.iMinutes ); |
5447 } |
5444 } |
5448 |
5445 |
5449 CMmDataPackage dataPackage; |
5446 CMmDataPackage dataPackage; |
5450 dataPackage.PackData( &timeInfo ); |
5447 dataPackage.PackData( &timeInfo ); |
5451 iMessageRouter->Complete( ECustomGetLifeTimeIPC, &dataPackage, ret ); |
5448 iMessageRouter->Complete( ECustomGetLifeTimeIPC, &dataPackage, ret ); |
5459 // ----------------------------------------------------------------------------- |
5456 // ----------------------------------------------------------------------------- |
5460 // |
5457 // |
5461 TInt CMmCustomMessHandler::UiccSimPowerOffReq() |
5458 TInt CMmCustomMessHandler::UiccSimPowerOffReq() |
5462 { |
5459 { |
5463 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccSimPowerOffReq.\n"); |
5460 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccSimPowerOffReq.\n"); |
5464 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCSIMPOWEROFFREQ, "CMmCustomMessHandler::UiccSimPowerOffReq" ); |
5461 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCSIMPOWEROFFREQ_TD, "CMmCustomMessHandler::UiccSimPowerOffReq" ); |
5465 |
5462 |
5466 iSapApduIfState = EUiccSapIfStatus1; |
5463 iSapApduIfState = EUiccSapIfStatus1; |
5467 // Set parameters for UICC_CONNECTION_REQ message |
5464 // Set parameters for UICC_CONNECTION_REQ message |
5468 TUiccParamsBase params; |
5465 TUiccParamsBase params; |
5469 params.messHandlerPtr = static_cast<MUiccOperationBase*>( this ); |
5466 params.messHandlerPtr = static_cast<MUiccOperationBase*>( this ); |
5542 // ----------------------------------------------------------------------------- |
5539 // ----------------------------------------------------------------------------- |
5543 // |
5540 // |
5544 TInt CMmCustomMessHandler::UiccSimWarmResetReq() |
5541 TInt CMmCustomMessHandler::UiccSimWarmResetReq() |
5545 { |
5542 { |
5546 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccSimWarmResetReq.\n" ); |
5543 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccSimWarmResetReq.\n" ); |
5547 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCSIMWARMRESETREQ, "CMmCustomMessHandler::UiccSimWarmResetReq" ); |
5544 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCSIMWARMRESETREQ_TD, "CMmCustomMessHandler::UiccSimWarmResetReq" ); |
5548 |
5545 |
5549 TUiccParamsApduReq params; |
5546 TUiccParamsApduReq params; |
5550 params.messHandlerPtr = static_cast<MUiccOperationBase*>( this ); |
5547 params.messHandlerPtr = static_cast<MUiccOperationBase*>( this ); |
5551 params.trId = ETrIdSimWarmReset; |
5548 params.trId = ETrIdSimWarmReset; |
5552 params.serviceType = UICC_APDU_CONTROL; |
5549 params.serviceType = UICC_APDU_CONTROL; |
5589 // ----------------------------------------------------------------------------- |
5586 // ----------------------------------------------------------------------------- |
5590 // |
5587 // |
5591 TInt CMmCustomMessHandler::UiccSimGetAtrReq() |
5588 TInt CMmCustomMessHandler::UiccSimGetAtrReq() |
5592 { |
5589 { |
5593 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccSimGetAtrReq.\n" ); |
5590 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccSimGetAtrReq.\n" ); |
5594 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCSIMGETATRREQ, "CMmCustomMessHandler::UiccSimGetAtrReq" ); |
5591 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCSIMGETATRREQ_TD, "CMmCustomMessHandler::UiccSimGetAtrReq" ); |
5595 |
5592 |
5596 TUiccParamsApduReq params; |
5593 TUiccParamsApduReq params; |
5597 params.messHandlerPtr = static_cast<MUiccOperationBase*>( this ); |
5594 params.messHandlerPtr = static_cast<MUiccOperationBase*>( this ); |
5598 params.trId = ETrIdSimGetATR; |
5595 params.trId = ETrIdSimGetATR; |
5599 params.serviceType = UICC_APDU_ATR_GET; |
5596 params.serviceType = UICC_APDU_ATR_GET; |
5609 void CMmCustomMessHandler::UiccSimGetAtrResp( |
5606 void CMmCustomMessHandler::UiccSimGetAtrResp( |
5610 TInt aStatus, |
5607 TInt aStatus, |
5611 const TDesC8& aFileData ) |
5608 const TDesC8& aFileData ) |
5612 { |
5609 { |
5613 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccSimGetAtrResp.\n" ); |
5610 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccSimGetAtrResp.\n" ); |
5614 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCSIMGETATRRESP, "CMmCustomMessHandler::UiccSimGetAtrResp" ); |
5611 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCSIMGETATRRESP_TD, "CMmCustomMessHandler::UiccSimGetAtrResp" ); |
5615 |
5612 |
5616 TInt err( KErrNone ); |
5613 TInt err( KErrNone ); |
5617 const TDesC8* dataPtr = &aFileData; |
5614 const TDesC8* dataPtr = &aFileData; |
5618 CMmDataPackage dataPackage; |
5615 CMmDataPackage dataPackage; |
5619 dataPackage.PackData( &dataPtr ); |
5616 dataPackage.PackData( &dataPtr ); |
5640 // ----------------------------------------------------------------------------- |
5637 // ----------------------------------------------------------------------------- |
5641 // |
5638 // |
5642 TInt CMmCustomMessHandler::UiccSimPowerOnReq() |
5639 TInt CMmCustomMessHandler::UiccSimPowerOnReq() |
5643 { |
5640 { |
5644 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccSimPowerOnReq.\n" ); |
5641 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccSimPowerOnReq.\n" ); |
5645 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCSIMPOWERONREQ, "CMmCustomMessHandler::UiccSimPowerOnReq" ); |
5642 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCSIMPOWERONREQ_TD, "CMmCustomMessHandler::UiccSimPowerOnReq" ); |
5646 |
5643 |
5647 //Set APDU interface state |
5644 //Set APDU interface state |
5648 iSapApduIfState = EUiccSapIfStatus1; |
5645 iSapApduIfState = EUiccSapIfStatus1; |
5649 |
5646 |
5650 // Set parameters for UICC_CONNECTION_REQ message |
5647 // Set parameters for UICC_CONNECTION_REQ message |
5712 TInt CMmCustomMessHandler::UiccSendAPDUReq( |
5709 TInt CMmCustomMessHandler::UiccSendAPDUReq( |
5713 const RMmCustomAPI::TApduParameters& aApduParameters, |
5710 const RMmCustomAPI::TApduParameters& aApduParameters, |
5714 TInt aTraId ) |
5711 TInt aTraId ) |
5715 { |
5712 { |
5716 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccSimSendAPDUReq.\n" ); |
5713 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccSimSendAPDUReq.\n" ); |
5717 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCSIMSENAPDUREQ, "CMmCustomMessHandler::UiccSendAPDUReq" ); |
5714 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCSIMSENAPDUREQ_TD, "CMmCustomMessHandler::UiccSendAPDUReq" ); |
5718 |
5715 |
5719 TUiccParamsApduReq params; |
5716 TUiccParamsApduReq params; |
5720 params.messHandlerPtr = static_cast<MUiccOperationBase*>( this ); |
5717 params.messHandlerPtr = static_cast<MUiccOperationBase*>( this ); |
5721 params.trId = ( TUiccTrId )aTraId; |
5718 params.trId = ( TUiccTrId )aTraId; |
5722 params.serviceType = UICC_APDU_SEND; |
5719 params.serviceType = UICC_APDU_SEND; |
5734 TInt aStatus, |
5731 TInt aStatus, |
5735 const TDesC8& aFileData, |
5732 const TDesC8& aFileData, |
5736 TInt aTraId ) |
5733 TInt aTraId ) |
5737 { |
5734 { |
5738 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccSendAPDUResp.\n" ); |
5735 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccSendAPDUResp.\n" ); |
5739 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCSIMSENAPDURESP, "CMmCustomMessHandler::UiccSendAPDUResp" ); |
5736 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCSIMSENAPDURESP_TD, "CMmCustomMessHandler::UiccSendAPDUResp" ); |
5740 |
5737 |
5741 TInt err( KErrNone ); |
5738 TInt err( KErrNone ); |
5742 const TDesC8* dataPtr = &aFileData; |
5739 const TDesC8* dataPtr = &aFileData; |
5743 CMmDataPackage dataPackage; |
5740 CMmDataPackage dataPackage; |
5744 dataPackage.PackData( &dataPtr ); |
5741 dataPackage.PackData( &dataPtr ); |
5779 // ----------------------------------------------------------------------------- |
5776 // ----------------------------------------------------------------------------- |
5780 // |
5777 // |
5781 TInt CMmCustomMessHandler::UiccCardReaderStatusReq() |
5778 TInt CMmCustomMessHandler::UiccCardReaderStatusReq() |
5782 { |
5779 { |
5783 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccCardReaderStatusReq.\n" ); |
5780 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccCardReaderStatusReq.\n" ); |
5784 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCCARDREADERSTATUSREQ, "CMmCustomMessHandler::UiccCardReaderStatusReq" ); |
5781 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCCARDREADERSTATUSREQ_TD, "CMmCustomMessHandler::UiccCardReaderStatusReq" ); |
5785 |
5782 |
5786 TUiccParamsApduReq params; |
5783 TUiccParamsApduReq params; |
5787 params.messHandlerPtr = static_cast<MUiccOperationBase*>( this ); |
5784 params.messHandlerPtr = static_cast<MUiccOperationBase*>( this ); |
5788 params.trId = ETrIdCardReaderStatus; |
5785 params.trId = ETrIdCardReaderStatus; |
5789 params.serviceType = UICC_CARD_STATUS_GET; |
5786 params.serviceType = UICC_CARD_STATUS_GET; |
5805 void CMmCustomMessHandler::UiccCardReaderStatusResp( |
5802 void CMmCustomMessHandler::UiccCardReaderStatusResp( |
5806 TInt aStatus, |
5803 TInt aStatus, |
5807 const TDesC8& aFileData ) |
5804 const TDesC8& aFileData ) |
5808 { |
5805 { |
5809 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccCardReaderStatusResp.\n" ); |
5806 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccCardReaderStatusResp.\n" ); |
5810 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCCARDREADERSTATUSRESP, "CMmCustomMessHandler::UiccCardReaderStatusResp" ); |
5807 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCCARDREADERSTATUSRESP_TD, "CMmCustomMessHandler::UiccCardReaderStatusResp" ); |
5811 |
5808 |
5812 TInt err ( KErrNone ); |
5809 TInt err ( KErrNone ); |
5813 CMmDataPackage dataPackage; |
5810 CMmDataPackage dataPackage; |
5814 TUint8 cardStatus( 0 ); |
5811 TUint8 cardStatus( 0 ); |
5815 TBuf8<1> statusByte; |
5812 TBuf8<1> statusByte; |
5874 // Get service type |
5871 // Get service type |
5875 TUint8 serviceType( aIsiMessage.Get8bit( |
5872 TUint8 serviceType( aIsiMessage.Get8bit( |
5876 ISI_HEADER_SIZE + UICC_IND_OFFSET_SERVICETYPE ) ); |
5873 ISI_HEADER_SIZE + UICC_IND_OFFSET_SERVICETYPE ) ); |
5877 |
5874 |
5878 TFLOGSTRING2("TSY: CMmCustomMessHandler::UiccCardInd, service type: %d", serviceType ); |
5875 TFLOGSTRING2("TSY: CMmCustomMessHandler::UiccCardInd, service type: %d", serviceType ); |
5879 OstTraceExt1( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCIND, "CMmCustomMessHandler::UiccCardInd;serviceType=%hhu", serviceType ); |
5876 OstTraceExt1( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCIND_TD, "CMmCustomMessHandler::UiccCardInd;serviceType=%hhu", serviceType ); |
5880 |
5877 |
5881 RMmCustomAPI::TSIMCardStatus returnStatus; |
5878 RMmCustomAPI::TSIMCardStatus returnStatus; |
5882 returnStatus = RMmCustomAPI::SimCardUnknowError; |
5879 returnStatus = RMmCustomAPI::SimCardUnknowError; |
5883 |
5880 |
5884 switch ( serviceType ) |
5881 switch ( serviceType ) |
5915 // |
5912 // |
5916 TInt CMmCustomMessHandler::UiccSendAuthenticateApdu( |
5913 TInt CMmCustomMessHandler::UiccSendAuthenticateApdu( |
5917 const CMmDataPackage& aDataPackage ) |
5914 const CMmDataPackage& aDataPackage ) |
5918 { |
5915 { |
5919 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccSendAuthenticateApdu.\n" ); |
5916 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccSendAuthenticateApdu.\n" ); |
5920 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCSENDAUTHENTICATEAPDU, "CMmCustomMessHandler::UiccSendAuthenticateApdu" ); |
5917 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCSENDAUTHENTICATEAPDU_TD, "CMmCustomMessHandler::UiccSendAuthenticateApdu" ); |
5921 |
5918 |
5922 TInt ret( KErrNone ); |
5919 TInt ret( KErrNone ); |
5923 TBool apduSendNeeded( EFalse ); |
5920 TBool apduSendNeeded( EFalse ); |
5924 |
5921 |
5925 // Let's construct AUTHENTICATE APDU based on authenticate type |
5922 // Let's construct AUTHENTICATE APDU based on authenticate type |
5997 } |
5994 } |
5998 else |
5995 else |
5999 { |
5996 { |
6000 // GBA not supported if card type is ICC or GBA not supported in EFust |
5997 // GBA not supported if card type is ICC or GBA not supported in EFust |
6001 TFLOGSTRING3("TSY: CMmCustomMessHandler::UiccSendAuthenticateApdu: GBA not supported (card type: 0x%x, ss: 0x%x)\n", cardType, serviceStatus ); |
5998 TFLOGSTRING3("TSY: CMmCustomMessHandler::UiccSendAuthenticateApdu: GBA not supported (card type: 0x%x, ss: 0x%x)\n", cardType, serviceStatus ); |
6002 OstTraceExt2( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_UICCSENDAUTHENTICATEAPDU, "CMmCustomMessHandler::UiccSendAuthenticateApdu: GBA not supported (card type: %x, ss: 0x%x)", cardType, serviceStatus ); |
5999 OstTraceExt2( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_UICCSENDAUTHENTICATEAPDU_TD, "CMmCustomMessHandler::UiccSendAuthenticateApdu: GBA not supported (card type: %x, ss: 0x%x)", cardType, serviceStatus ); |
6003 ret = KErrGeneral; |
6000 ret = KErrGeneral; |
6004 } |
6001 } |
6005 break; |
6002 break; |
6006 } |
6003 } |
6007 case RMmCustomAPI::TSimAuthenticationBase::EGbaBootstrapUpdate: |
6004 case RMmCustomAPI::TSimAuthenticationBase::EGbaBootstrapUpdate: |
6015 } |
6012 } |
6016 else |
6013 else |
6017 { |
6014 { |
6018 // GBA not supported if card type is ICC or GBA not supported in EFust |
6015 // GBA not supported if card type is ICC or GBA not supported in EFust |
6019 TFLOGSTRING3("TSY: CMmCustomMessHandler::UiccSendAuthenticateApdu: GBA not supported (card type: 0x%x, ss: 0x%x)\n", cardType, serviceStatus ); |
6016 TFLOGSTRING3("TSY: CMmCustomMessHandler::UiccSendAuthenticateApdu: GBA not supported (card type: 0x%x, ss: 0x%x)\n", cardType, serviceStatus ); |
6020 OstTraceExt2( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_UICCSENDAUTHENTICATEAPDU, "CMmCustomMessHandler::UiccSendAuthenticateApdu: GBA not supported (card type: 0x%x, ss: 0x%x)", cardType, serviceStatus ); |
6017 OstTraceExt2( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_UICCSENDAUTHENTICATEAPDU_TD, "CMmCustomMessHandler::UiccSendAuthenticateApdu: GBA not supported (card type: 0x%x, ss: 0x%x)", cardType, serviceStatus ); |
6021 ret = KErrGeneral; |
6018 ret = KErrGeneral; |
6022 } |
6019 } |
6023 break; |
6020 break; |
6024 } |
6021 } |
6025 case RMmCustomAPI::TSimAuthenticationBase::EGbaBootstrapNafDerivation: |
6022 case RMmCustomAPI::TSimAuthenticationBase::EGbaBootstrapNafDerivation: |
6034 } |
6031 } |
6035 else |
6032 else |
6036 { |
6033 { |
6037 // GBA not supported if card type is ICC or GBA not supported in EFust |
6034 // GBA not supported if card type is ICC or GBA not supported in EFust |
6038 TFLOGSTRING3("TSY: CMmCustomMessHandler::UiccSendAuthenticateApdu: GBA not supported (card type: 0x%x, ss: 0x%x)\n", cardType, serviceStatus ); |
6035 TFLOGSTRING3("TSY: CMmCustomMessHandler::UiccSendAuthenticateApdu: GBA not supported (card type: 0x%x, ss: 0x%x)\n", cardType, serviceStatus ); |
6039 OstTraceExt2( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_UICCSENDAUTHENTICATEAPDU, "CMmCustomMessHandler::UiccSendAuthenticateApdu: GBA not supported (card type: 0x%x, ss: 0x%x)", cardType, serviceStatus ); |
6036 OstTraceExt2( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_UICCSENDAUTHENTICATEAPDU_TD, "CMmCustomMessHandler::UiccSendAuthenticateApdu: GBA not supported (card type: 0x%x, ss: 0x%x)", cardType, serviceStatus ); |
6040 ret = KErrGeneral; |
6037 ret = KErrGeneral; |
6041 } |
6038 } |
6042 break; |
6039 break; |
6043 } |
6040 } |
6044 case RMmCustomAPI::TSimAuthenticationBase::EMgvMskUpdate: |
6041 case RMmCustomAPI::TSimAuthenticationBase::EMgvMskUpdate: |
6053 } |
6050 } |
6054 else |
6051 else |
6055 { |
6052 { |
6056 // MBMS not supported if card type is ICC or MBMS not supported in EFust |
6053 // MBMS not supported if card type is ICC or MBMS not supported in EFust |
6057 TFLOGSTRING3("TSY: CMmCustomMessHandler::UiccSendAuthenticateApdu: MBMS security not supported (card type: 0x%x, ss: 0x%x)\n", cardType, serviceStatus ); |
6054 TFLOGSTRING3("TSY: CMmCustomMessHandler::UiccSendAuthenticateApdu: MBMS security not supported (card type: 0x%x, ss: 0x%x)\n", cardType, serviceStatus ); |
6058 OstTraceExt2( TRACE_NORMAL, DUP4_CMMCUSTOMMESSHANDLER_UICCSENDAUTHENTICATEAPDU, "CMmCustomMessHandler::UiccSendAuthenticateApdu: MBMS security not supported (card type: 0x%x, ss: 0x%x)", cardType, serviceStatus ); |
6055 OstTraceExt2( TRACE_NORMAL, DUP4_CMMCUSTOMMESSHANDLER_UICCSENDAUTHENTICATEAPDU_TD, "CMmCustomMessHandler::UiccSendAuthenticateApdu: MBMS security not supported (card type: 0x%x, ss: 0x%x)", cardType, serviceStatus ); |
6059 ret = KErrGeneral; |
6056 ret = KErrGeneral; |
6060 } |
6057 } |
6061 break; |
6058 break; |
6062 } |
6059 } |
6063 case RMmCustomAPI::TSimAuthenticationBase::EMgvMtkGeneration: |
6060 case RMmCustomAPI::TSimAuthenticationBase::EMgvMtkGeneration: |
6072 } |
6069 } |
6073 else |
6070 else |
6074 { |
6071 { |
6075 // MBMS not supported if card type is ICC or MBMS not supported in EFust |
6072 // MBMS not supported if card type is ICC or MBMS not supported in EFust |
6076 TFLOGSTRING3("TSY: CMmCustomMessHandler::UiccSendAuthenticateApdu: MBMS security not supported (card type: 0x%x, ss: 0x%x)\n", cardType, serviceStatus ); |
6073 TFLOGSTRING3("TSY: CMmCustomMessHandler::UiccSendAuthenticateApdu: MBMS security not supported (card type: 0x%x, ss: 0x%x)\n", cardType, serviceStatus ); |
6077 OstTraceExt2( TRACE_NORMAL, DUP5_CMMCUSTOMMESSHANDLER_UICCSENDAUTHENTICATEAPDU, "CMmCustomMessHandler::UiccSendAuthenticateApdu: MBMS security not supported (card type: 0x%x, ss: 0x%x)", cardType, serviceStatus ); |
6074 OstTraceExt2( TRACE_NORMAL, DUP5_CMMCUSTOMMESSHANDLER_UICCSENDAUTHENTICATEAPDU_TD, "CMmCustomMessHandler::UiccSendAuthenticateApdu: MBMS security not supported (card type: 0x%x, ss: 0x%x)", cardType, serviceStatus ); |
6078 ret = KErrGeneral; |
6075 ret = KErrGeneral; |
6079 } |
6076 } |
6080 break; |
6077 break; |
6081 } |
6078 } |
6082 case RMmCustomAPI::TSimAuthenticationBase::EMgvMskDeletion: |
6079 case RMmCustomAPI::TSimAuthenticationBase::EMgvMskDeletion: |
6091 } |
6088 } |
6092 else |
6089 else |
6093 { |
6090 { |
6094 // MBMS not supported if card type is ICC or MBMS not supported in EFust |
6091 // MBMS not supported if card type is ICC or MBMS not supported in EFust |
6095 TFLOGSTRING3("TSY: CMmCustomMessHandler::UiccSendAuthenticateApdu: MBMS security not supported (card type: 0x%x, ss: 0x%x)\n", cardType, serviceStatus ); |
6092 TFLOGSTRING3("TSY: CMmCustomMessHandler::UiccSendAuthenticateApdu: MBMS security not supported (card type: 0x%x, ss: 0x%x)\n", cardType, serviceStatus ); |
6096 OstTraceExt2( TRACE_NORMAL, DUP6_CMMCUSTOMMESSHANDLER_UICCSENDAUTHENTICATEAPDU, "CMmCustomMessHandler::UiccSendAuthenticateApdu: MBMS security not supported (card type: 0x%x, ss: 0x%x)", cardType, serviceStatus ); |
6093 OstTraceExt2( TRACE_NORMAL, DUP6_CMMCUSTOMMESSHANDLER_UICCSENDAUTHENTICATEAPDU_TD, "CMmCustomMessHandler::UiccSendAuthenticateApdu: MBMS security not supported (card type: 0x%x, ss: 0x%x)", cardType, serviceStatus ); |
6097 ret = KErrGeneral; |
6094 ret = KErrGeneral; |
6098 } |
6095 } |
6099 break; |
6096 break; |
6100 } |
6097 } |
6101 default: |
6098 default: |
6102 { |
6099 { |
6103 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccSendAuthenticateApdu: Unknown APDU\n" ); |
6100 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccSendAuthenticateApdu: Unknown APDU\n" ); |
6104 OstTrace0( TRACE_NORMAL, DUP7_CMMCUSTOMMESSHANDLER_UICCSENDAUTHENTICATEAPDU, "CMmCustomMessHandler::UiccSendAuthenticateApdu: Unknown APDU" ); |
6101 OstTrace0( TRACE_NORMAL, DUP7_CMMCUSTOMMESSHANDLER_UICCSENDAUTHENTICATEAPDU_TD, "CMmCustomMessHandler::UiccSendAuthenticateApdu: Unknown APDU" ); |
6105 break; |
6102 break; |
6106 } |
6103 } |
6107 } |
6104 } |
6108 |
6105 |
6109 if( EFalse != apduSendNeeded ) |
6106 if( EFalse != apduSendNeeded ) |
6129 TUiccSendApdu& aParams, |
6126 TUiccSendApdu& aParams, |
6130 const TDesC8& aRand, |
6127 const TDesC8& aRand, |
6131 TUiccTrId aTraId ) |
6128 TUiccTrId aTraId ) |
6132 { |
6129 { |
6133 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccCreateRunGsmAlgorithmApdu.\n" ); |
6130 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccCreateRunGsmAlgorithmApdu.\n" ); |
6134 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCCREATERUNGSMALGORITHMAPDU, "CMmCustomMessHandler::UiccCreateRunGsmAlgorithmApdu" ); |
6131 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCCREATERUNGSMALGORITHMAPDU_TD, "CMmCustomMessHandler::UiccCreateRunGsmAlgorithmApdu" ); |
6135 |
6132 |
6136 aParams.trId = aTraId; |
6133 aParams.trId = aTraId; |
6137 aParams.apdu.Append( KClaIcc ); // CLA |
6134 aParams.apdu.Append( KClaIcc ); // CLA |
6138 aParams.apdu.Append( KEvenInstructionCode ); // INS |
6135 aParams.apdu.Append( KEvenInstructionCode ); // INS |
6139 aParams.apdu.Append( 0 ); // P1 is set to 0 in case of RUN GSM ALGORITH |
6136 aParams.apdu.Append( 0 ); // P1 is set to 0 in case of RUN GSM ALGORITH |
6153 TInt aTraId, |
6150 TInt aTraId, |
6154 TInt aStatus, |
6151 TInt aStatus, |
6155 const TDesC8& aFileData ) |
6152 const TDesC8& aFileData ) |
6156 { |
6153 { |
6157 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccRunGsmAlgorithmApduResp.\n" ); |
6154 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccRunGsmAlgorithmApduResp.\n" ); |
6158 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCRUNGSMALGORITHMAPDURESP, "CMmCustomMessHandler::UiccRunGsmAlgorithmApduResp" ); |
6155 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCRUNGSMALGORITHMAPDURESP_TD, "CMmCustomMessHandler::UiccRunGsmAlgorithmApduResp" ); |
6159 |
6156 |
6160 TInt ret( KErrNone ); |
6157 TInt ret( KErrNone ); |
6161 TInt ipc( ETrIdRunGsmAlgorithmIms == aTraId ? EMobilePhoneIMSAuthenticate : ECustomGetSimAuthenticationDataIPC ); |
6158 TInt ipc( ETrIdRunGsmAlgorithmIms == aTraId ? EMobilePhoneIMSAuthenticate : ECustomGetSimAuthenticationDataIPC ); |
6162 RMmCustomAPI::TSimAuthenticationEapSim eapSim; |
6159 RMmCustomAPI::TSimAuthenticationEapSim eapSim; |
6163 RMmCustomAPI::TSimAuthenticationEapAka eapAka; |
6160 RMmCustomAPI::TSimAuthenticationEapAka eapAka; |
6211 } |
6208 } |
6212 } |
6209 } |
6213 else |
6210 else |
6214 { |
6211 { |
6215 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccRunGsmAlgorithmApduResp. APDU validation fails\n" ); |
6212 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccRunGsmAlgorithmApduResp. APDU validation fails\n" ); |
6216 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_UICCRUNGSMALGORITHMAPDURESP, "CMmCustomMessHandler::UiccRunGsmAlgorithmApduResp. APDU validation fails" ); |
6213 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_UICCRUNGSMALGORITHMAPDURESP_TD, "CMmCustomMessHandler::UiccRunGsmAlgorithmApduResp. APDU validation fails" ); |
6217 ret = KErrMMEtelAuthenticateFailed; |
6214 ret = KErrMMEtelAuthenticateFailed; |
6218 } |
6215 } |
6219 } |
6216 } |
6220 else if( KCmdNotAllowedSecurityStatusNotSatisfied == result ) |
6217 else if( KCmdNotAllowedSecurityStatusNotSatisfied == result ) |
6221 { |
6218 { |
6222 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccRunGsmAlgorithmApduResp: Security conditions not satisfied\n" ); |
6219 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccRunGsmAlgorithmApduResp: Security conditions not satisfied\n" ); |
6223 OstTrace0( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_UICCRUNGSMALGORITHMAPDURESP, "CMmCustomMessHandler::UiccRunGsmAlgorithmApduResp: Security conditions not satisfied" ); |
6220 OstTrace0( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_UICCRUNGSMALGORITHMAPDURESP_TD, "CMmCustomMessHandler::UiccRunGsmAlgorithmApduResp: Security conditions not satisfied" ); |
6224 ret = CMmStaticUtility::EpocErrorCode( |
6221 ret = CMmStaticUtility::EpocErrorCode( |
6225 KErrAccessDenied, |
6222 KErrAccessDenied, |
6226 KErrGsm0707SimPin1Required ); |
6223 KErrGsm0707SimPin1Required ); |
6227 } |
6224 } |
6228 else |
6225 else |
6229 { |
6226 { |
6230 TFLOGSTRING2("TSY: CMmCustomMessHandler::UiccRunGsmAlgorithmApduResp. unknown result: 0x%X\n", result ); |
6227 TFLOGSTRING2("TSY: CMmCustomMessHandler::UiccRunGsmAlgorithmApduResp. unknown result: 0x%X\n", result ); |
6231 OstTrace1( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_UICCRUNGSMALGORITHMAPDURESP, "CMmCustomMessHandler::UiccRunGsmAlgorithmApduResp. unknown result: 0x%x", result ); |
6228 OstTrace1( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_UICCRUNGSMALGORITHMAPDURESP_TD, "CMmCustomMessHandler::UiccRunGsmAlgorithmApduResp. unknown result: 0x%x", result ); |
6232 ret = KErrMMEtelAuthenticateFailed; |
6229 ret = KErrMMEtelAuthenticateFailed; |
6233 } |
6230 } |
6234 } |
6231 } |
6235 else |
6232 else |
6236 { |
6233 { |
6237 TFLOGSTRING2("TSY: CMmCustomMessHandler::UiccRunGsmAlgorithmApduResp: UICC status not ok: 0x%x\n", aStatus ); |
6234 TFLOGSTRING2("TSY: CMmCustomMessHandler::UiccRunGsmAlgorithmApduResp: UICC status not ok: 0x%x\n", aStatus ); |
6238 OstTrace1( TRACE_NORMAL, DUP4_CMMCUSTOMMESSHANDLER_UICCRUNGSMALGORITHMAPDURESP, "CMmCustomMessHandler::UiccRunGsmAlgorithmApduResp: UICC status not ok: 0x%x", aStatus ); |
6235 OstTrace1( TRACE_NORMAL, DUP4_CMMCUSTOMMESSHANDLER_UICCRUNGSMALGORITHMAPDURESP_TD, "CMmCustomMessHandler::UiccRunGsmAlgorithmApduResp: UICC status not ok: 0x%x", aStatus ); |
6239 ret = KErrMMEtelAuthenticateFailed; |
6236 ret = KErrMMEtelAuthenticateFailed; |
6240 } |
6237 } |
6241 |
6238 |
6242 if( KErrNone != ret ) |
6239 if( KErrNone != ret ) |
6243 { |
6240 { |
6276 void CMmCustomMessHandler::UiccCreateGsmSecurityContextApdu( |
6273 void CMmCustomMessHandler::UiccCreateGsmSecurityContextApdu( |
6277 TUiccSendApdu& params, |
6274 TUiccSendApdu& params, |
6278 const CMmDataPackage& aDataPackage ) |
6275 const CMmDataPackage& aDataPackage ) |
6279 { |
6276 { |
6280 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccCreateGsmSecurityContextApdu.\n" ); |
6277 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccCreateGsmSecurityContextApdu.\n" ); |
6281 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCCREATEGSMSECURITYCONTEXTAPDU, "CMmCustomMessHandler::UiccCreateGsmSecurityContextApdu" ); |
6278 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCCREATEGSMSECURITYCONTEXTAPDU_TD, "CMmCustomMessHandler::UiccCreateGsmSecurityContextApdu" ); |
6282 |
6279 |
6283 RMmCustomAPI::TSimAuthenticationEapSim eapSim; |
6280 RMmCustomAPI::TSimAuthenticationEapSim eapSim; |
6284 aDataPackage.UnPackData( eapSim ); |
6281 aDataPackage.UnPackData( eapSim ); |
6285 |
6282 |
6286 params.trId = ETrIdEEapSimAuthenticate; |
6283 params.trId = ETrIdEEapSimAuthenticate; |
6333 eapSim.iKC.Copy( aFileData.Mid( index , len ) ); |
6330 eapSim.iKC.Copy( aFileData.Mid( index , len ) ); |
6334 } |
6331 } |
6335 else |
6332 else |
6336 { |
6333 { |
6337 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccGsmSecurityContextApduResp: APDU validation failed\n" ); |
6334 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccGsmSecurityContextApduResp: APDU validation failed\n" ); |
6338 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_UICCGSMSECURITYCONTEXTAPDURESP, "CMmCustomMessHandler::UiccGsmSecurityContextApduResp: APDU validation failed" ); |
6335 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_UICCGSMSECURITYCONTEXTAPDURESP_TD, "CMmCustomMessHandler::UiccGsmSecurityContextApduResp: APDU validation failed" ); |
6339 ret = KErrMMEtelAuthenticateFailed; |
6336 ret = KErrMMEtelAuthenticateFailed; |
6340 } |
6337 } |
6341 } |
6338 } |
6342 else |
6339 else |
6343 { |
6340 { |
6344 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccGsmSecurityContextApduResp: unknown result\n" ); |
6341 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccGsmSecurityContextApduResp: unknown result\n" ); |
6345 OstTrace0( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_UICCGSMSECURITYCONTEXTAPDURESP, "CMmCustomMessHandler::UiccGsmSecurityContextApduResp: unknown result" ); |
6342 OstTrace0( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_UICCGSMSECURITYCONTEXTAPDURESP_TD, "CMmCustomMessHandler::UiccGsmSecurityContextApduResp: unknown result" ); |
6346 ret = KErrMMEtelAuthenticateFailed; |
6343 ret = KErrMMEtelAuthenticateFailed; |
6347 } |
6344 } |
6348 } |
6345 } |
6349 else |
6346 else |
6350 { |
6347 { |
6351 TFLOGSTRING2("TSY: CMmCustomMessHandler::UiccGsmSecurityContextApduResp: UICC status not ok: 0x%x\n", aStatus ); |
6348 TFLOGSTRING2("TSY: CMmCustomMessHandler::UiccGsmSecurityContextApduResp: UICC status not ok: 0x%x\n", aStatus ); |
6352 OstTrace1( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_UICCGSMSECURITYCONTEXTAPDURESP, "CMmCustomMessHandler::UiccGsmSecurityContextApduResp: UICC status not ok: 0x%x", aStatus ); |
6349 OstTrace1( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_UICCGSMSECURITYCONTEXTAPDURESP_TD, "CMmCustomMessHandler::UiccGsmSecurityContextApduResp: UICC status not ok: 0x%x", aStatus ); |
6353 ret = KErrMMEtelAuthenticateFailed; |
6350 ret = KErrMMEtelAuthenticateFailed; |
6354 } |
6351 } |
6355 |
6352 |
6356 if( KErrNone != ret ) |
6353 if( KErrNone != ret ) |
6357 { |
6354 { |
6381 const TDesC8& aRand, |
6378 const TDesC8& aRand, |
6382 const TDesC8& aAuth, |
6379 const TDesC8& aAuth, |
6383 TUiccTrId aTraId ) |
6380 TUiccTrId aTraId ) |
6384 { |
6381 { |
6385 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccCreate3GSecurityContextApdu.\n" ); |
6382 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccCreate3GSecurityContextApdu.\n" ); |
6386 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCCREATE3GSECURITYCONTEXTAPDU, "CMmCustomMessHandler::UiccCreate3GSecurityContextApdu" ); |
6383 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCCREATE3GSECURITYCONTEXTAPDU_TD, "CMmCustomMessHandler::UiccCreate3GSecurityContextApdu" ); |
6387 |
6384 |
6388 // len of data is sizeof RAND + sizeof AUTN + two length fields |
6385 // len of data is sizeof RAND + sizeof AUTN + two length fields |
6389 // (one for RAND len and one for AUTN len) |
6386 // (one for RAND len and one for AUTN len) |
6390 TUint8 lc( aRand.Size() + aAuth.Size() + 2 ); |
6387 TUint8 lc( aRand.Size() + aAuth.Size() + 2 ); |
6391 |
6388 |
6411 TInt aTraId, |
6408 TInt aTraId, |
6412 TInt aStatus, |
6409 TInt aStatus, |
6413 const TDesC8& aFileData ) |
6410 const TDesC8& aFileData ) |
6414 { |
6411 { |
6415 TFLOGSTRING("TSY: CMmCustomMessHandler::Uicc3GSecurityContextApduResp.\n" ); |
6412 TFLOGSTRING("TSY: CMmCustomMessHandler::Uicc3GSecurityContextApduResp.\n" ); |
6416 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICC3GSECURITYCONTEXTAPDURESP, "CMmCustomMessHandler::Uicc3GSecurityContextApduResp" ); |
6413 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICC3GSECURITYCONTEXTAPDURESP_TD, "CMmCustomMessHandler::Uicc3GSecurityContextApduResp" ); |
6417 |
6414 |
6418 TInt ret( KErrNone ); |
6415 TInt ret( KErrNone ); |
6419 TInt ipc( ETrIdEEapAkaAuthenticateIms == aTraId ? EMobilePhoneIMSAuthenticate : ECustomGetSimAuthenticationDataIPC ); |
6416 TInt ipc( ETrIdEEapAkaAuthenticateIms == aTraId ? EMobilePhoneIMSAuthenticate : ECustomGetSimAuthenticationDataIPC ); |
6420 RMmCustomAPI::TSimAuthenticationEapAka eapAka; |
6417 RMmCustomAPI::TSimAuthenticationEapAka eapAka; |
6421 RMobilePhone::TImsAuthenticateDataV5 ims; |
6418 RMobilePhone::TImsAuthenticateDataV5 ims; |
6497 } |
6494 } |
6498 } |
6495 } |
6499 else |
6496 else |
6500 { |
6497 { |
6501 TFLOGSTRING("TSY: CMmCustomMessHandler::Uicc3GSecurityContextApduResp: APDU validation failed\n" ); |
6498 TFLOGSTRING("TSY: CMmCustomMessHandler::Uicc3GSecurityContextApduResp: APDU validation failed\n" ); |
6502 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_UICC3GSECURITYCONTEXTAPDURESP, "CMmCustomMessHandler::Uicc3GSecurityContextApduResp: APDU validation failed" ); |
6499 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_UICC3GSECURITYCONTEXTAPDURESP_TD, "CMmCustomMessHandler::Uicc3GSecurityContextApduResp: APDU validation failed" ); |
6503 ret = KErrMMEtelAuthenticateFailed; |
6500 ret = KErrMMEtelAuthenticateFailed; |
6504 } |
6501 } |
6505 } |
6502 } |
6506 else if( KAppAuthErrorIncorrectMac == result ) |
6503 else if( KAppAuthErrorIncorrectMac == result ) |
6507 { |
6504 { |
6508 TFLOGSTRING("TSY: CMmCustomMessHandler::Uicc3GSecurityContextApduResp: incorrect MAC\n" ); |
6505 TFLOGSTRING("TSY: CMmCustomMessHandler::Uicc3GSecurityContextApduResp: incorrect MAC\n" ); |
6509 OstTrace0( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_UICC3GSECURITYCONTEXTAPDURESP, "CMmCustomMessHandler::Uicc3GSecurityContextApduResp: incorrect MAC" ); |
6506 OstTrace0( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_UICC3GSECURITYCONTEXTAPDURESP_TD, "CMmCustomMessHandler::Uicc3GSecurityContextApduResp: incorrect MAC" ); |
6510 // no parameters in this case |
6507 // no parameters in this case |
6511 ret = KErrMMEtelMacVerificationFailed; |
6508 ret = KErrMMEtelMacVerificationFailed; |
6512 } |
6509 } |
6513 else if( KCmdNotAllowedSecurityStatusNotSatisfied == result ) |
6510 else if( KCmdNotAllowedSecurityStatusNotSatisfied == result ) |
6514 { |
6511 { |
6515 TFLOGSTRING("TSY: CMmCustomMessHandler::Uicc3GSecurityContextApduResp: Security conditions not satisfied\n" ); |
6512 TFLOGSTRING("TSY: CMmCustomMessHandler::Uicc3GSecurityContextApduResp: Security conditions not satisfied\n" ); |
6516 OstTrace0( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_UICC3GSECURITYCONTEXTAPDURESP, "CMmCustomMessHandler::Uicc3GSecurityContextApduResp: Security conditions not satisfied" ); |
6513 OstTrace0( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_UICC3GSECURITYCONTEXTAPDURESP_TD, "CMmCustomMessHandler::Uicc3GSecurityContextApduResp: Security conditions not satisfied" ); |
6517 ret = CMmStaticUtility::EpocErrorCode( |
6514 ret = CMmStaticUtility::EpocErrorCode( |
6518 KErrAccessDenied, |
6515 KErrAccessDenied, |
6519 KErrGsm0707SimPin1Required ); |
6516 KErrGsm0707SimPin1Required ); |
6520 } |
6517 } |
6521 else |
6518 else |
6522 { |
6519 { |
6523 TFLOGSTRING("TSY: CMmCustomMessHandler::Uicc3GSecurityContextApduResp: unknown result\n" ); |
6520 TFLOGSTRING("TSY: CMmCustomMessHandler::Uicc3GSecurityContextApduResp: unknown result\n" ); |
6524 OstTrace0( TRACE_NORMAL, DUP4_CMMCUSTOMMESSHANDLER_UICC3GSECURITYCONTEXTAPDURESP, "CMmCustomMessHandler::Uicc3GSecurityContextApduResp: unknown result" ); |
6521 OstTrace0( TRACE_NORMAL, DUP4_CMMCUSTOMMESSHANDLER_UICC3GSECURITYCONTEXTAPDURESP_TD, "CMmCustomMessHandler::Uicc3GSecurityContextApduResp: unknown result" ); |
6525 ret = KErrMMEtelAuthenticateFailed; |
6522 ret = KErrMMEtelAuthenticateFailed; |
6526 } |
6523 } |
6527 } |
6524 } |
6528 else |
6525 else |
6529 { |
6526 { |
6530 TFLOGSTRING2("TSY: CMmCustomMessHandler::Uicc3GSecurityContextApduResp: UICC status not ok: 0x%x\n", aStatus ); |
6527 TFLOGSTRING2("TSY: CMmCustomMessHandler::Uicc3GSecurityContextApduResp: UICC status not ok: 0x%x\n", aStatus ); |
6531 OstTrace1( TRACE_NORMAL, DUP5_CMMCUSTOMMESSHANDLER_UICC3GSECURITYCONTEXTAPDURESP, "CMmCustomMessHandler::Uicc3GSecurityContextApduResp: UICC status not ok: 0x%x", aStatus ); |
6528 OstTrace1( TRACE_NORMAL, DUP5_CMMCUSTOMMESSHANDLER_UICC3GSECURITYCONTEXTAPDURESP_TD, "CMmCustomMessHandler::Uicc3GSecurityContextApduResp: UICC status not ok: 0x%x", aStatus ); |
6532 ret = ETrIdEEapAkaAuthenticateIms == aTraId ? KErrGeneral : KErrMMEtelAuthenticateFailed; |
6529 ret = ETrIdEEapAkaAuthenticateIms == aTraId ? KErrGeneral : KErrMMEtelAuthenticateFailed; |
6533 } |
6530 } |
6534 |
6531 |
6535 if( KErrNone == ret || |
6532 if( KErrNone == ret || |
6536 KErrMMEtelSqnVerificationFailed == ret || |
6533 KErrMMEtelSqnVerificationFailed == ret || |
6569 void CMmCustomMessHandler::UiccCreateGBABootstrappingApdu( |
6566 void CMmCustomMessHandler::UiccCreateGBABootstrappingApdu( |
6570 TUiccSendApdu& aParams, |
6567 TUiccSendApdu& aParams, |
6571 const CMmDataPackage& aDataPackage ) |
6568 const CMmDataPackage& aDataPackage ) |
6572 { |
6569 { |
6573 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccCreateGBABootstrappingApdu.\n" ); |
6570 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccCreateGBABootstrappingApdu.\n" ); |
6574 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCCREATEGBABOOTSTRAPPINGAPDU, "CMmCustomMessHandler::UiccCreateGBABootstrappingApdu" ); |
6571 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCCREATEGBABOOTSTRAPPINGAPDU_TD, "CMmCustomMessHandler::UiccCreateGBABootstrappingApdu" ); |
6575 |
6572 |
6576 RMmCustomAPI::TSimAuthenticationGbaBootstrap gbaBootstrap; |
6573 RMmCustomAPI::TSimAuthenticationGbaBootstrap gbaBootstrap; |
6577 aDataPackage.UnPackData( gbaBootstrap ); |
6574 aDataPackage.UnPackData( gbaBootstrap ); |
6578 |
6575 |
6579 // len of data is GBA bootstrapping mode tag (1 byte) + sizeof RAND |
6576 // len of data is GBA bootstrapping mode tag (1 byte) + sizeof RAND |
6646 } |
6643 } |
6647 } |
6644 } |
6648 else |
6645 else |
6649 { |
6646 { |
6650 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccGBABootstrappingApduResp: APDU validation failed\n" ); |
6647 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccGBABootstrappingApduResp: APDU validation failed\n" ); |
6651 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_UICCGBABOOTSTRAPPINGAPDURESP, "CMmCustomMessHandler::UiccGBABootstrappingApduResp: APDU validation failed" ); |
6648 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_UICCGBABOOTSTRAPPINGAPDURESP_TD, "CMmCustomMessHandler::UiccGBABootstrappingApduResp: APDU validation failed" ); |
6652 ret = KErrGeneral; |
6649 ret = KErrGeneral; |
6653 } |
6650 } |
6654 } |
6651 } |
6655 else if( KAppAuthErrorIncorrectMac == result ) |
6652 else if( KAppAuthErrorIncorrectMac == result ) |
6656 { |
6653 { |
6657 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccGBABootstrappingApduResp: incorrect MAC\n" ); |
6654 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccGBABootstrappingApduResp: incorrect MAC\n" ); |
6658 OstTrace0( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_UICCGBABOOTSTRAPPINGAPDURESP, "CMmCustomMessHandler::UiccGBABootstrappingApduResp: incorrect MAC" ); |
6655 OstTrace0( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_UICCGBABOOTSTRAPPINGAPDURESP_TD, "CMmCustomMessHandler::UiccGBABootstrappingApduResp: incorrect MAC" ); |
6659 // no parameters in this case |
6656 // no parameters in this case |
6660 ret = KErrMMEtelMacVerificationFailed; |
6657 ret = KErrMMEtelMacVerificationFailed; |
6661 } |
6658 } |
6662 else |
6659 else |
6663 { |
6660 { |
6664 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccGBABootstrappingApduResp: unknown result\n" ); |
6661 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccGBABootstrappingApduResp: unknown result\n" ); |
6665 OstTrace0( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_UICCGBABOOTSTRAPPINGAPDURESP, "CMmCustomMessHandler::UiccGBABootstrappingApduResp: unknown result" ); |
6662 OstTrace0( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_UICCGBABOOTSTRAPPINGAPDURESP_TD, "CMmCustomMessHandler::UiccGBABootstrappingApduResp: unknown result" ); |
6666 ret = KErrGeneral; |
6663 ret = KErrGeneral; |
6667 } |
6664 } |
6668 } |
6665 } |
6669 else |
6666 else |
6670 { |
6667 { |
6671 TFLOGSTRING2("TSY: CMmCustomMessHandler::UiccGBABootstrappingApduResp: UICC status not ok: 0x%x\n", aStatus ); |
6668 TFLOGSTRING2("TSY: CMmCustomMessHandler::UiccGBABootstrappingApduResp: UICC status not ok: 0x%x\n", aStatus ); |
6672 OstTrace1( TRACE_NORMAL, DUP4_CMMCUSTOMMESSHANDLER_UICCGBABOOTSTRAPPINGAPDURESP, "CMmCustomMessHandler::UiccGBABootstrappingApduResp: UICC status not ok: 0x%x", aStatus ); |
6669 OstTrace1( TRACE_NORMAL, DUP4_CMMCUSTOMMESSHANDLER_UICCGBABOOTSTRAPPINGAPDURESP_TD, "CMmCustomMessHandler::UiccGBABootstrappingApduResp: UICC status not ok: 0x%x", aStatus ); |
6673 ret = KErrMMEtelAuthenticateFailed; |
6670 ret = KErrMMEtelAuthenticateFailed; |
6674 } |
6671 } |
6675 |
6672 |
6676 if( KErrNone == ret || |
6673 if( KErrNone == ret || |
6677 KErrMMEtelSqnVerificationFailed == ret || |
6674 KErrMMEtelSqnVerificationFailed == ret || |
6701 // |
6698 // |
6702 void CMmCustomMessHandler::UiccGBABootstrapUpdate( |
6699 void CMmCustomMessHandler::UiccGBABootstrapUpdate( |
6703 const CMmDataPackage& aDataPackage ) |
6700 const CMmDataPackage& aDataPackage ) |
6704 { |
6701 { |
6705 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccGBABootstrapUpdate.\n" ); |
6702 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccGBABootstrapUpdate.\n" ); |
6706 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCGBABOOTSTRAPUPDATE, "CMmCustomMessHandler::UiccGBABootstrapUpdate" ); |
6703 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCGBABOOTSTRAPUPDATE_TD, "CMmCustomMessHandler::UiccGBABootstrapUpdate" ); |
6707 |
6704 |
6708 // GBA bootstrap update is done by first reading of elementary file EFgba. |
6705 // GBA bootstrap update is done by first reading of elementary file EFgba. |
6709 // After that RAND is stored temporarily and B-Tid and keylifetime is written |
6706 // After that RAND is stored temporarily and B-Tid and keylifetime is written |
6710 // to EFgba. After write operation, RAND is completed to the client. |
6707 // to EFgba. After write operation, RAND is completed to the client. |
6711 |
6708 |
6792 iMmUiccMessHandler->CreateUiccApplCmdReq( params ); |
6789 iMmUiccMessHandler->CreateUiccApplCmdReq( params ); |
6793 } |
6790 } |
6794 else |
6791 else |
6795 { |
6792 { |
6796 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccGBABootstrapReadResp. File too small for update\n" ); |
6793 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccGBABootstrapReadResp. File too small for update\n" ); |
6797 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_UICCGBABOOTSTRAPREADRESP, "CMmCustomMessHandler::UiccGBABootstrapReadResp. File too small for update" ); |
6794 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_UICCGBABOOTSTRAPREADRESP_TD, "CMmCustomMessHandler::UiccGBABootstrapReadResp. File too small for update" ); |
6798 iMessageRouter->Complete( |
6795 iMessageRouter->Complete( |
6799 ECustomGetSimAuthenticationDataIPC, |
6796 ECustomGetSimAuthenticationDataIPC, |
6800 KErrArgument ); |
6797 KErrArgument ); |
6801 } |
6798 } |
6802 } |
6799 } |
6803 else |
6800 else |
6804 { |
6801 { |
6805 TFLOGSTRING2("TSY: CMmCustomMessHandler::UiccGBABootstrapReadResp. EFgba reading failed (0x%x)\n", aStatus ); |
6802 TFLOGSTRING2("TSY: CMmCustomMessHandler::UiccGBABootstrapReadResp. EFgba reading failed (0x%x)\n", aStatus ); |
6806 OstTrace1( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_UICCGBABOOTSTRAPREADRESP, "CMmCustomMessHandler::UiccGBABootstrapReadResp. EFgba reading failed (%x)", aStatus ); |
6803 OstTrace1( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_UICCGBABOOTSTRAPREADRESP_TD, "CMmCustomMessHandler::UiccGBABootstrapReadResp. EFgba reading failed (%x)", aStatus ); |
6807 iMessageRouter->Complete( |
6804 iMessageRouter->Complete( |
6808 ECustomGetSimAuthenticationDataIPC, |
6805 ECustomGetSimAuthenticationDataIPC, |
6809 KErrMMEtelAuthenticateFailed ); |
6806 KErrMMEtelAuthenticateFailed ); |
6810 } |
6807 } |
6811 } |
6808 } |
6817 // ----------------------------------------------------------------------------- |
6814 // ----------------------------------------------------------------------------- |
6818 // |
6815 // |
6819 void CMmCustomMessHandler::UiccGBABootstrapUpdateResp( TInt aStatus ) |
6816 void CMmCustomMessHandler::UiccGBABootstrapUpdateResp( TInt aStatus ) |
6820 { |
6817 { |
6821 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccGBABootstrapUpdateResp.\n" ); |
6818 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccGBABootstrapUpdateResp.\n" ); |
6822 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCGBABOOTSTRAPUPDATERESP, "CMmCustomMessHandler::UiccGBABootstrapUpdateResp" ); |
6819 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCGBABOOTSTRAPUPDATERESP_TD, "CMmCustomMessHandler::UiccGBABootstrapUpdateResp" ); |
6823 |
6820 |
6824 TInt ret( KErrGeneral ); |
6821 TInt ret( KErrGeneral ); |
6825 RMmCustomAPI::TSimAuthenticationGbaBootstrapUpdate gbaBootstrapUpdate; |
6822 RMmCustomAPI::TSimAuthenticationGbaBootstrapUpdate gbaBootstrapUpdate; |
6826 |
6823 |
6827 if( UICC_STATUS_OK == aStatus ) |
6824 if( UICC_STATUS_OK == aStatus ) |
6859 void CMmCustomMessHandler::UiccCreateGBABootstrapNafDerivationApdu( |
6856 void CMmCustomMessHandler::UiccCreateGBABootstrapNafDerivationApdu( |
6860 TUiccSendApdu& aParams, |
6857 TUiccSendApdu& aParams, |
6861 const CMmDataPackage& aDataPackage ) |
6858 const CMmDataPackage& aDataPackage ) |
6862 { |
6859 { |
6863 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccCreateGBABootstrapNafDerivationApdu.\n" ); |
6860 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccCreateGBABootstrapNafDerivationApdu.\n" ); |
6864 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCCREATEGBABOOTSTRAPNAFDERIVATIONAPDU, "CMmCustomMessHandler::UiccCreateGBABootstrapNafDerivationApdu" ); |
6861 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCCREATEGBABOOTSTRAPNAFDERIVATIONAPDU_TD, "CMmCustomMessHandler::UiccCreateGBABootstrapNafDerivationApdu" ); |
6865 |
6862 |
6866 RMmCustomAPI::TSimAuthenticationGbaNafDerivation gbaBootstrapNafDerivation; |
6863 RMmCustomAPI::TSimAuthenticationGbaNafDerivation gbaBootstrapNafDerivation; |
6867 aDataPackage.UnPackData( gbaBootstrapNafDerivation ); |
6864 aDataPackage.UnPackData( gbaBootstrapNafDerivation ); |
6868 |
6865 |
6869 // len of data is GBA NAF derivation mode tag (1 byte) + sizeof NAFId |
6866 // len of data is GBA NAF derivation mode tag (1 byte) + sizeof NAFId |
6926 gbaNafDerivation.iKsExtNaf.Copy( aFileData.Mid( index, len ) ); |
6923 gbaNafDerivation.iKsExtNaf.Copy( aFileData.Mid( index, len ) ); |
6927 } |
6924 } |
6928 else |
6925 else |
6929 { |
6926 { |
6930 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccGBABootstrapNafDerivationApduResp: APDU validation failed\n" ); |
6927 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccGBABootstrapNafDerivationApduResp: APDU validation failed\n" ); |
6931 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_UICCGBANAFDERIVATIONAPDURESP, "CMmCustomMessHandler::UiccGBANafDerivationApduResp: APDU validation failed" ); |
6928 OstTrace0( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_UICCGBANAFDERIVATIONAPDURESP_TD, "CMmCustomMessHandler::UiccGBANafDerivationApduResp: APDU validation failed" ); |
6932 ret = KErrGeneral; |
6929 ret = KErrGeneral; |
6933 } |
6930 } |
6934 } |
6931 } |
6935 else if( KCmdNotAllowedConditionsNotSatisfied == result ) |
6932 else if( KCmdNotAllowedConditionsNotSatisfied == result ) |
6936 { |
6933 { |
6937 ret = KErrNotSupported; |
6934 ret = KErrNotSupported; |
6938 } |
6935 } |
6939 else |
6936 else |
6940 { |
6937 { |
6941 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccGBABootstrapNafDerivationApduResp: unknown result\n" ); |
6938 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccGBABootstrapNafDerivationApduResp: unknown result\n" ); |
6942 OstTrace0( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_UICCGBANAFDERIVATIONAPDURESP, "CMmCustomMessHandler::UiccGBANafDerivationApduResp: unknown result" ); |
6939 OstTrace0( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_UICCGBANAFDERIVATIONAPDURESP_TD, "CMmCustomMessHandler::UiccGBANafDerivationApduResp: unknown result" ); |
6943 ret = KErrGeneral; |
6940 ret = KErrGeneral; |
6944 } |
6941 } |
6945 } |
6942 } |
6946 else |
6943 else |
6947 { |
6944 { |
6948 TFLOGSTRING2("TSY: CMmCustomMessHandler::UiccGBABootstrapNafDerivationApduResp: UICC status not ok: 0x%x\n", aStatus ); |
6945 TFLOGSTRING2("TSY: CMmCustomMessHandler::UiccGBABootstrapNafDerivationApduResp: UICC status not ok: 0x%x\n", aStatus ); |
6949 OstTrace1( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_UICCGBANAFDERIVATIONAPDURESP, "CMmCustomMessHandler::UiccGBANafDerivationApduResp: UICC status not ok: 0x%x", aStatus ); |
6946 OstTrace1( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_UICCGBANAFDERIVATIONAPDURESP_TD, "CMmCustomMessHandler::UiccGBANafDerivationApduResp: UICC status not ok: 0x%x", aStatus ); |
6950 ret = KErrMMEtelAuthenticateFailed; |
6947 ret = KErrMMEtelAuthenticateFailed; |
6951 } |
6948 } |
6952 |
6949 |
6953 if( KErrNone == ret ) |
6950 if( KErrNone == ret ) |
6954 { |
6951 { |
6977 void CMmCustomMessHandler::UiccCreateMbmsMskUpdateApdu( |
6974 void CMmCustomMessHandler::UiccCreateMbmsMskUpdateApdu( |
6978 TUiccSendApdu& params, |
6975 TUiccSendApdu& params, |
6979 const CMmDataPackage& aDataPackage ) |
6976 const CMmDataPackage& aDataPackage ) |
6980 { |
6977 { |
6981 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccCreateMbmsMskUpdateApdu.\n" ); |
6978 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccCreateMbmsMskUpdateApdu.\n" ); |
6982 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCCREATEMBMSMSKUPDATEAPDU, "CMmCustomMessHandler::UiccCreateMbmsMskUpdateApdu" ); |
6979 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCCREATEMBMSMSKUPDATEAPDU_TD, "CMmCustomMessHandler::UiccCreateMbmsMskUpdateApdu" ); |
6983 |
6980 |
6984 // Note. MBMS functionality is not tested in real hardware and in real environmen |
6981 // Note. MBMS functionality is not tested in real hardware and in real environmen |
6985 // because of there is no users for this authentication type. So this is implemented |
6982 // because of there is no users for this authentication type. So this is implemented |
6986 // with the best knowledge at the moment and it can contain some bugs which |
6983 // with the best knowledge at the moment and it can contain some bugs which |
6987 // can be found when this is tested in real environment. |
6984 // can be found when this is tested in real environment. |
7016 void CMmCustomMessHandler::UiccMbmsMskUpdateApduResp( |
7013 void CMmCustomMessHandler::UiccMbmsMskUpdateApduResp( |
7017 TInt aStatus, |
7014 TInt aStatus, |
7018 const TDesC8& aFileData ) |
7015 const TDesC8& aFileData ) |
7019 { |
7016 { |
7020 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccMbmsMskUpdateApduResp.\n" ); |
7017 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccMbmsMskUpdateApduResp.\n" ); |
7021 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCMBMSMSKUPDATEAPDURESP, "CMmCustomMessHandler::UiccMbmsMskUpdateApduResp" ); |
7018 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCMBMSMSKUPDATEAPDURESP_TD, "CMmCustomMessHandler::UiccMbmsMskUpdateApduResp" ); |
7022 |
7019 |
7023 // Note. MBMS functionality is not tested in real hardware and in real environment |
7020 // Note. MBMS functionality is not tested in real hardware and in real environment |
7024 // because of at the moment there is no users for this authentication type. |
7021 // because of at the moment there is no users for this authentication type. |
7025 // So this is implemented with the best knowledge at the moment and it can contain |
7022 // So this is implemented with the best knowledge at the moment and it can contain |
7026 // some bugs which can be found when this is tested in real environment. |
7023 // some bugs which can be found when this is tested in real environment. |
7135 void CMmCustomMessHandler::UiccMskUpdateHandleMbmsOperationData( |
7132 void CMmCustomMessHandler::UiccMskUpdateHandleMbmsOperationData( |
7136 RMmCustomAPI::TSimAuthenticationMgvMskUpdate& aMskUpdate, |
7133 RMmCustomAPI::TSimAuthenticationMgvMskUpdate& aMskUpdate, |
7137 TDesC8& aMbmsData ) |
7134 TDesC8& aMbmsData ) |
7138 { |
7135 { |
7139 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccMskUpdateHandleMbmsOperationData.\n" ); |
7136 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccMskUpdateHandleMbmsOperationData.\n" ); |
7140 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCMSKUPDATEHANDLEMBMSOPERATIONDATA, "CMmCustomMessHandler::UiccMskUpdateHandleMbmsOperationData" ); |
7137 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCMSKUPDATEHANDLEMBMSOPERATIONDATA_TD, "CMmCustomMessHandler::UiccMskUpdateHandleMbmsOperationData" ); |
7141 |
7138 |
7142 TUint8 index( 0 ); |
7139 TUint8 index( 0 ); |
7143 TUint32 objLen( aMbmsData.Length() ); |
7140 TUint32 objLen( aMbmsData.Length() ); |
7144 |
7141 |
7145 if( KSuccessfullMbmsOperationTag == aMbmsData[index] && |
7142 if( KSuccessfullMbmsOperationTag == aMbmsData[index] && |
7168 void CMmCustomMessHandler::UiccMskUpdateHandleOMABcastOperationData( |
7165 void CMmCustomMessHandler::UiccMskUpdateHandleOMABcastOperationData( |
7169 RMmCustomAPI::TSimAuthenticationMgvMskUpdate& aMskUpdate, |
7166 RMmCustomAPI::TSimAuthenticationMgvMskUpdate& aMskUpdate, |
7170 TDesC8& aMbmsData ) |
7167 TDesC8& aMbmsData ) |
7171 { |
7168 { |
7172 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccMskUpdateHandleOMABcastOperationData.\n" ); |
7169 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccMskUpdateHandleOMABcastOperationData.\n" ); |
7173 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCMSKUPDATEHANDLEOMABCASTOPERATIONDATA, "CMmCustomMessHandler::UiccMskUpdateHandleOMABcastOperationData" ); |
7170 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCMSKUPDATEHANDLEOMABCASTOPERATIONDATA_TD, "CMmCustomMessHandler::UiccMskUpdateHandleOMABcastOperationData" ); |
7174 |
7171 |
7175 TBuf8<KMaxApduSize> omaBcastData; |
7172 TBuf8<KMaxApduSize> omaBcastData; |
7176 |
7173 |
7177 if( FindTlvObject( KOMABcastOperationResponseTag, aMbmsData, omaBcastData ) ) |
7174 if( FindTlvObject( KOMABcastOperationResponseTag, aMbmsData, omaBcastData ) ) |
7178 { |
7175 { |
7210 void CMmCustomMessHandler::UiccCreateMbmsMtkGenerationApdu( |
7207 void CMmCustomMessHandler::UiccCreateMbmsMtkGenerationApdu( |
7211 TUiccSendApdu& params, |
7208 TUiccSendApdu& params, |
7212 const CMmDataPackage& aDataPackage ) |
7209 const CMmDataPackage& aDataPackage ) |
7213 { |
7210 { |
7214 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccCreateMbmsMtkGenerationApdu.\n" ); |
7211 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccCreateMbmsMtkGenerationApdu.\n" ); |
7215 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCCREATEMBMSMTKGENERATIONAPDU, "CMmCustomMessHandler::UiccCreateMbmsMtkGenerationApdu" ); |
7212 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCCREATEMBMSMTKGENERATIONAPDU_TD, "CMmCustomMessHandler::UiccCreateMbmsMtkGenerationApdu" ); |
7216 |
7213 |
7217 // Note. MBMS functionality is not tested in real hardware and in real environment |
7214 // Note. MBMS functionality is not tested in real hardware and in real environment |
7218 // because of at the moment there is no users for this authentication type. |
7215 // because of at the moment there is no users for this authentication type. |
7219 // So this is implemented with the best knowledge at the moment and it can contain |
7216 // So this is implemented with the best knowledge at the moment and it can contain |
7220 // some bugs which can be found when this is tested in real environment. |
7217 // some bugs which can be found when this is tested in real environment. |
7249 void CMmCustomMessHandler::UiccMbmsMtkGenerationApduResp( |
7246 void CMmCustomMessHandler::UiccMbmsMtkGenerationApduResp( |
7250 TInt aStatus, |
7247 TInt aStatus, |
7251 const TDesC8& aFileData ) |
7248 const TDesC8& aFileData ) |
7252 { |
7249 { |
7253 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccMbmsMtkGenerationApduResp.\n" ); |
7250 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccMbmsMtkGenerationApduResp.\n" ); |
7254 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCMBMSMTKGENERATIONAPDURESP, "CMmCustomMessHandler::UiccMbmsMtkGenerationApduResp" ); |
7251 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCMBMSMTKGENERATIONAPDURESP_TD, "CMmCustomMessHandler::UiccMbmsMtkGenerationApduResp" ); |
7255 |
7252 |
7256 // Note. MBMS functionality is not tested in real hardware and in real environment |
7253 // Note. MBMS functionality is not tested in real hardware and in real environment |
7257 // because of at the moment there is no users for this authentication type. |
7254 // because of at the moment there is no users for this authentication type. |
7258 // So this is implemented with the best knowledge at the moment and it can contain |
7255 // So this is implemented with the best knowledge at the moment and it can contain |
7259 // some bugs which can be found when this is tested in real environment. |
7256 // some bugs which can be found when this is tested in real environment. |
7362 void CMmCustomMessHandler::UiccMtkGenHandleMbmsOperationData( |
7359 void CMmCustomMessHandler::UiccMtkGenHandleMbmsOperationData( |
7363 RMmCustomAPI::TSimAuthenticationMgvMtkGeneration& aMtkGen, |
7360 RMmCustomAPI::TSimAuthenticationMgvMtkGeneration& aMtkGen, |
7364 TDesC8& aMbmsData ) |
7361 TDesC8& aMbmsData ) |
7365 { |
7362 { |
7366 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccMtkGenHandleMbmsOperationData.\n" ); |
7363 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccMtkGenHandleMbmsOperationData.\n" ); |
7367 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCMTKGENHANDLEMBMSOPERATIONDATA, "CMmCustomMessHandler::UiccMtkGenHandleMbmsOperationData" ); |
7364 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCMTKGENHANDLEMBMSOPERATIONDATA_TD, "CMmCustomMessHandler::UiccMtkGenHandleMbmsOperationData" ); |
7368 |
7365 |
7369 TUint8 index( 0 ); |
7366 TUint8 index( 0 ); |
7370 TUint32 objLen( aMbmsData.Length() ); |
7367 TUint32 objLen( aMbmsData.Length() ); |
7371 |
7368 |
7372 if( KSuccessfullMbmsOperationTag == aMbmsData[index] && |
7369 if( KSuccessfullMbmsOperationTag == aMbmsData[index] && |
7395 void CMmCustomMessHandler::UiccMtkGenHandleOMABcastOperationData( |
7392 void CMmCustomMessHandler::UiccMtkGenHandleOMABcastOperationData( |
7396 RMmCustomAPI::TSimAuthenticationMgvMtkGeneration& aMtkGen, |
7393 RMmCustomAPI::TSimAuthenticationMgvMtkGeneration& aMtkGen, |
7397 TDesC8& aMbmsData ) |
7394 TDesC8& aMbmsData ) |
7398 { |
7395 { |
7399 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccMtkGenHandleOMABcastOperationData.\n" ); |
7396 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccMtkGenHandleOMABcastOperationData.\n" ); |
7400 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCMTKGENHANDLEOMABCASTOPERATIONDATA, "CMmCustomMessHandler::UiccMtkGenHandleOMABcastOperationData" ); |
7397 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCMTKGENHANDLEOMABCASTOPERATIONDATA_TD, "CMmCustomMessHandler::UiccMtkGenHandleOMABcastOperationData" ); |
7401 |
7398 |
7402 TBuf8<KMaxApduSize> omaBcastData; |
7399 TBuf8<KMaxApduSize> omaBcastData; |
7403 |
7400 |
7404 if( FindTlvObject( KOMABcastOperationResponseTag, aMbmsData, omaBcastData ) ) |
7401 if( FindTlvObject( KOMABcastOperationResponseTag, aMbmsData, omaBcastData ) ) |
7405 { |
7402 { |
7441 void CMmCustomMessHandler::UiccCreateMbmsMskDeletionApdu( |
7438 void CMmCustomMessHandler::UiccCreateMbmsMskDeletionApdu( |
7442 TUiccSendApdu& params, |
7439 TUiccSendApdu& params, |
7443 const CMmDataPackage& aDataPackage ) |
7440 const CMmDataPackage& aDataPackage ) |
7444 { |
7441 { |
7445 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccCreateMbmsMskDeletionApdu.\n" ); |
7442 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccCreateMbmsMskDeletionApdu.\n" ); |
7446 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCCREATEMBMSMSKDELETIONAPDU, "CMmCustomMessHandler::UiccCreateMbmsMskDeletionApdu" ); |
7443 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCCREATEMBMSMSKDELETIONAPDU_TD, "CMmCustomMessHandler::UiccCreateMbmsMskDeletionApdu" ); |
7447 |
7444 |
7448 // Note. MBMS functionality is not tested in real hardware and in real environment |
7445 // Note. MBMS functionality is not tested in real hardware and in real environment |
7449 // because of at the moment there is no users for this authentication type. |
7446 // because of at the moment there is no users for this authentication type. |
7450 // So this is implemented with the best knowledge at the moment and it can contain |
7447 // So this is implemented with the best knowledge at the moment and it can contain |
7451 // some bugs which can be found when this is tested in real environment. |
7448 // some bugs which can be found when this is tested in real environment. |
7493 void CMmCustomMessHandler::UiccMbmsMskDeletionApduResp( |
7490 void CMmCustomMessHandler::UiccMbmsMskDeletionApduResp( |
7494 TInt aStatus, |
7491 TInt aStatus, |
7495 const TDesC8& aFileData ) |
7492 const TDesC8& aFileData ) |
7496 { |
7493 { |
7497 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccMbmsMskDeletionApduResp.\n" ); |
7494 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccMbmsMskDeletionApduResp.\n" ); |
7498 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCMBMSMSKDELETIONAPDURESP, "CMmCustomMessHandler::UiccMbmsMskDeletionApduResp" ); |
7495 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCMBMSMSKDELETIONAPDURESP_TD, "CMmCustomMessHandler::UiccMbmsMskDeletionApduResp" ); |
7499 |
7496 |
7500 // Note. MBMS functionality is not tested in real hardware and in real environment |
7497 // Note. MBMS functionality is not tested in real hardware and in real environment |
7501 // because of at the moment there is no users for this authentication type. |
7498 // because of at the moment there is no users for this authentication type. |
7502 // So this is implemented with the best knowledge at the moment and it can contain |
7499 // So this is implemented with the best knowledge at the moment and it can contain |
7503 // some bugs which can be found when this is tested in real environment. |
7500 // some bugs which can be found when this is tested in real environment. |
7582 // ----------------------------------------------------------------------------- |
7579 // ----------------------------------------------------------------------------- |
7583 // |
7580 // |
7584 void CMmCustomMessHandler::UiccCreateFirstBlockOfAuthRespApdu( TUiccTrId aTrId ) |
7581 void CMmCustomMessHandler::UiccCreateFirstBlockOfAuthRespApdu( TUiccTrId aTrId ) |
7585 { |
7582 { |
7586 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccCreateFirstBlockOfAuthRespApdu.\n" ); |
7583 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccCreateFirstBlockOfAuthRespApdu.\n" ); |
7587 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCCREATEFIRSTBLOCKOFAUTHRESPAPDU, "CMmCustomMessHandler::UiccCreateFirstBlockOfAuthRespApdu" ); |
7584 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCCREATEFIRSTBLOCKOFAUTHRESPAPDU_TD, "CMmCustomMessHandler::UiccCreateFirstBlockOfAuthRespApdu" ); |
7588 |
7585 |
7589 // Fill parameters to instance created from TUiccSendApdu |
7586 // Fill parameters to instance created from TUiccSendApdu |
7590 // needed for APDU sending |
7587 // needed for APDU sending |
7591 TUiccSendApdu params; |
7588 TUiccSendApdu params; |
7592 params.messHandlerPtr = static_cast<MUiccOperationBase*>( this ); |
7589 params.messHandlerPtr = static_cast<MUiccOperationBase*>( this ); |
7614 // ----------------------------------------------------------------------------- |
7611 // ----------------------------------------------------------------------------- |
7615 // |
7612 // |
7616 TUint8 CMmCustomMessHandler::MapSw1Sw2ToAuthenticateResult( TUint8 sw1, TUint8 sw2 ) |
7613 TUint8 CMmCustomMessHandler::MapSw1Sw2ToAuthenticateResult( TUint8 sw1, TUint8 sw2 ) |
7617 { |
7614 { |
7618 TFLOGSTRING3("TSY: CMmCustomMessHandler::MapSw1Sw2ToAuthenticateResult. sw1: 0x%x sw2: 0x%x\n", sw1, sw2 ); |
7615 TFLOGSTRING3("TSY: CMmCustomMessHandler::MapSw1Sw2ToAuthenticateResult. sw1: 0x%x sw2: 0x%x\n", sw1, sw2 ); |
7619 OstTraceExt2( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_MAPSW1SW2TOAUTHENTICATERESULT, "CMmCustomMessHandler::MapSw1Sw2ToAuthenticateResult. sw1: 0x%x sw2: 0x%x", sw1, sw2 ); |
7616 OstTraceExt2( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_MAPSW1SW2TOAUTHENTICATERESULT_TD, "CMmCustomMessHandler::MapSw1Sw2ToAuthenticateResult. sw1: 0x%x sw2: 0x%x", sw1, sw2 ); |
7620 |
7617 |
7621 TUint8 ret( KUnknownCommandEnding ); |
7618 TUint8 ret( KUnknownCommandEnding ); |
7622 |
7619 |
7623 switch( sw1 ) |
7620 switch( sw1 ) |
7624 { |
7621 { |
7760 // ----------------------------------------------------------------------------- |
7757 // ----------------------------------------------------------------------------- |
7761 // |
7758 // |
7762 TUint8 CMmCustomMessHandler::ValidateGsmSecurityContextApduResp( const TDesC8& aApdu ) |
7759 TUint8 CMmCustomMessHandler::ValidateGsmSecurityContextApduResp( const TDesC8& aApdu ) |
7763 { |
7760 { |
7764 TFLOGSTRING("TSY: CMmCustomMessHandler::ValidateGsmSecurityContextApduResp.\n" ); |
7761 TFLOGSTRING("TSY: CMmCustomMessHandler::ValidateGsmSecurityContextApduResp.\n" ); |
7765 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_VALIDATEGSMSECURITYCONTEXTAPDURESP, "CMmCustomMessHandler::ValidateGsmSecurityContextApduResp" ); |
7762 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_VALIDATEGSMSECURITYCONTEXTAPDURESP_TD, "CMmCustomMessHandler::ValidateGsmSecurityContextApduResp" ); |
7766 TUint8 ret( KApduNok ); |
7763 TUint8 ret( KApduNok ); |
7767 |
7764 |
7768 // apdu len is len of aApdu - 2 (because of |
7765 // apdu len is len of aApdu - 2 (because of |
7769 // aApdu contains sw1 and sw2) |
7766 // aApdu contains sw1 and sw2) |
7770 TUint apduLen( aApdu.Length() - 2 ); |
7767 TUint apduLen( aApdu.Length() - 2 ); |
7787 // ----------------------------------------------------------------------------- |
7784 // ----------------------------------------------------------------------------- |
7788 // |
7785 // |
7789 TUint8 CMmCustomMessHandler::Validate3GSecurityContextApduResp( const TDesC8& aApdu ) |
7786 TUint8 CMmCustomMessHandler::Validate3GSecurityContextApduResp( const TDesC8& aApdu ) |
7790 { |
7787 { |
7791 TFLOGSTRING("TSY: CMmCustomMessHandler::Validate3GSecurityContextApduResp.\n" ); |
7788 TFLOGSTRING("TSY: CMmCustomMessHandler::Validate3GSecurityContextApduResp.\n" ); |
7792 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_VALIDATE3GSECURITYCONTEXTAPDURESP, "CMmCustomMessHandler::Validate3GSecurityContextApduResp" ); |
7789 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_VALIDATE3GSECURITYCONTEXTAPDURESP_TD, "CMmCustomMessHandler::Validate3GSecurityContextApduResp" ); |
7793 |
7790 |
7794 TUint8 ret( KApduOk ); |
7791 TUint8 ret( KApduOk ); |
7795 |
7792 |
7796 // Let's calculate total APDU data len in aApdu. Length is |
7793 // Let's calculate total APDU data len in aApdu. Length is |
7797 // decremented by 2 because of aApdu contains also sw1 and sw2 |
7794 // decremented by 2 because of aApdu contains also sw1 and sw2 |
7874 // let's check that pointer doesn't go over |
7871 // let's check that pointer doesn't go over |
7875 // aApdu's limits. |
7872 // aApdu's limits. |
7876 if( KApduOk == ret && index > apduLen - 1 ) |
7873 if( KApduOk == ret && index > apduLen - 1 ) |
7877 { |
7874 { |
7878 TFLOGSTRING("TSY: CMmCustomMessHandler::Validate3GSecurityContextApduResp: error, APDU buffer overflow\n" ); |
7875 TFLOGSTRING("TSY: CMmCustomMessHandler::Validate3GSecurityContextApduResp: error, APDU buffer overflow\n" ); |
7879 OstTrace0( TRACE_NORMAL, DUP5_CMMCUSTOMMESSHANDLER_VALIDATE3GSECURITYCONTEXTAPDURESP, "CMmCustomMessHandler::Validate3GSecurityContextApduResp: error, APDU buffer overflow" ); |
7876 OstTrace0( TRACE_NORMAL, DUP5_CMMCUSTOMMESSHANDLER_VALIDATE3GSECURITYCONTEXTAPDURESP_TD, "CMmCustomMessHandler::Validate3GSecurityContextApduResp: error, APDU buffer overflow" ); |
7880 ret = KApduNok; |
7877 ret = KApduNok; |
7881 } |
7878 } |
7882 } |
7879 } |
7883 |
7880 |
7884 else if(KSyncFailureTag == tag) |
7881 else if(KSyncFailureTag == tag) |
7885 { |
7882 { |
7886 // check the len of AUTS |
7883 // check the len of AUTS |
7887 if( KLenOfAuts != aApdu[index]) |
7884 if( KLenOfAuts != aApdu[index]) |
7888 { |
7885 { |
7889 TFLOGSTRING("TSY: CMmCustomMessHandler::Validate3GSecurityContextApduResp: invalid AUTS\n" ); |
7886 TFLOGSTRING("TSY: CMmCustomMessHandler::Validate3GSecurityContextApduResp: invalid AUTS\n" ); |
7890 OstTrace0( TRACE_NORMAL, DUP6_CMMCUSTOMMESSHANDLER_VALIDATE3GSECURITYCONTEXTAPDURESP, "CMmCustomMessHandler::Validate3GSecurityContextApduResp: invalid AUTS" ); |
7887 OstTrace0( TRACE_NORMAL, DUP6_CMMCUSTOMMESSHANDLER_VALIDATE3GSECURITYCONTEXTAPDURESP_TD, "CMmCustomMessHandler::Validate3GSecurityContextApduResp: invalid AUTS" ); |
7891 ret = KApduNok; |
7888 ret = KApduNok; |
7892 } |
7889 } |
7893 else |
7890 else |
7894 { |
7891 { |
7895 // move pointer to end of AUTS |
7892 // move pointer to end of AUTS |
7899 // let's check that pointer doesn't go over |
7896 // let's check that pointer doesn't go over |
7900 // aApdu's limits. |
7897 // aApdu's limits. |
7901 if( KApduOk == ret && index > apduLen - 1 ) |
7898 if( KApduOk == ret && index > apduLen - 1 ) |
7902 { |
7899 { |
7903 TFLOGSTRING("TSY: CMmCustomMessHandler::Validate3GSecurityContextApduResp: error, APDU buffer overflow\n" ); |
7900 TFLOGSTRING("TSY: CMmCustomMessHandler::Validate3GSecurityContextApduResp: error, APDU buffer overflow\n" ); |
7904 OstTrace0( TRACE_NORMAL, DUP7_CMMCUSTOMMESSHANDLER_VALIDATE3GSECURITYCONTEXTAPDURESP, "CMmCustomMessHandler::Validate3GSecurityContextApduResp: error, APDU buffer overflow" ); |
7901 OstTrace0( TRACE_NORMAL, DUP7_CMMCUSTOMMESSHANDLER_VALIDATE3GSECURITYCONTEXTAPDURESP_TD, "CMmCustomMessHandler::Validate3GSecurityContextApduResp: error, APDU buffer overflow" ); |
7905 ret = KApduNok; |
7902 ret = KApduNok; |
7906 } |
7903 } |
7907 } |
7904 } |
7908 else |
7905 else |
7909 { |
7906 { |
7910 TFLOGSTRING("TSY: CMmCustomMessHandler::Validate3GSecurityContextApduResp: error, unknown tag\n" ); |
7907 TFLOGSTRING("TSY: CMmCustomMessHandler::Validate3GSecurityContextApduResp: error, unknown tag\n" ); |
7911 OstTrace0( TRACE_NORMAL, DUP8_CMMCUSTOMMESSHANDLER_VALIDATE3GSECURITYCONTEXTAPDURESP, "CMmCustomMessHandler::Validate3GSecurityContextApduResp: error, unknown tag" ); |
7908 OstTrace0( TRACE_NORMAL, DUP8_CMMCUSTOMMESSHANDLER_VALIDATE3GSECURITYCONTEXTAPDURESP_TD, "CMmCustomMessHandler::Validate3GSecurityContextApduResp: error, unknown tag" ); |
7912 ret = KApduNok; |
7909 ret = KApduNok; |
7913 } |
7910 } |
7914 |
7911 |
7915 return ret; |
7912 return ret; |
7916 } |
7913 } |
7921 // ----------------------------------------------------------------------------- |
7918 // ----------------------------------------------------------------------------- |
7922 // |
7919 // |
7923 TUint8 CMmCustomMessHandler::ValidateGBABootstrappingApduResp( const TDesC8& aApdu ) |
7920 TUint8 CMmCustomMessHandler::ValidateGBABootstrappingApduResp( const TDesC8& aApdu ) |
7924 { |
7921 { |
7925 TFLOGSTRING("TSY: CMmCustomMessHandler::ValidateGBABootstrappingApduResp.\n" ); |
7922 TFLOGSTRING("TSY: CMmCustomMessHandler::ValidateGBABootstrappingApduResp.\n" ); |
7926 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_VALIDATEGBABOOTSTRAPPINGAPDURESP, "CMmCustomMessHandler::ValidateGBABootstrappingApduResp" ); |
7923 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_VALIDATEGBABOOTSTRAPPINGAPDURESP_TD, "CMmCustomMessHandler::ValidateGBABootstrappingApduResp" ); |
7927 |
7924 |
7928 TUint8 ret( KApduNok ); |
7925 TUint8 ret( KApduNok ); |
7929 |
7926 |
7930 // Let's calculate total APDU data len in aApdu. Length is |
7927 // Let's calculate total APDU data len in aApdu. Length is |
7931 // decremented by 2 because of aApdu contains also sw1 and sw2 |
7928 // decremented by 2 because of aApdu contains also sw1 and sw2 |
7955 // ----------------------------------------------------------------------------- |
7952 // ----------------------------------------------------------------------------- |
7956 // |
7953 // |
7957 TUint8 CMmCustomMessHandler::ValidateGBANafDerivationApduResp( const TDesC8& aApdu ) |
7954 TUint8 CMmCustomMessHandler::ValidateGBANafDerivationApduResp( const TDesC8& aApdu ) |
7958 { |
7955 { |
7959 TFLOGSTRING("TSY: CMmCustomMessHandler::ValidateGBANafDerivationApduResp.\n" ); |
7956 TFLOGSTRING("TSY: CMmCustomMessHandler::ValidateGBANafDerivationApduResp.\n" ); |
7960 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_VALIDATEGBANAFDERIVATIONAPDURESP, "CMmCustomMessHandler::ValidateGBANafDerivationApduResp" ); |
7957 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_VALIDATEGBANAFDERIVATIONAPDURESP_TD, "CMmCustomMessHandler::ValidateGBANafDerivationApduResp" ); |
7961 |
7958 |
7962 TUint8 ret = KApduNok; |
7959 TUint8 ret = KApduNok; |
7963 |
7960 |
7964 // Let's calculate total APDU data len in aApdu. Length is |
7961 // Let's calculate total APDU data len in aApdu. Length is |
7965 // decremented by 2 because of aApdu contains also sw1 and sw2 |
7962 // decremented by 2 because of aApdu contains also sw1 and sw2 |
7992 // ----------------------------------------------------------------------------- |
7989 // ----------------------------------------------------------------------------- |
7993 // |
7990 // |
7994 TUint8 CMmCustomMessHandler::ValidateRunGsmAlgorithmApduResp( const TDesC8& aApdu ) |
7991 TUint8 CMmCustomMessHandler::ValidateRunGsmAlgorithmApduResp( const TDesC8& aApdu ) |
7995 { |
7992 { |
7996 TFLOGSTRING("TSY: CMmCustomMessHandler::ValidateRunGsmAlgorithmApduResp.\n" ); |
7993 TFLOGSTRING("TSY: CMmCustomMessHandler::ValidateRunGsmAlgorithmApduResp.\n" ); |
7997 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_VALIDATERUNGSMALGORITHMAPDURESP, "CMmCustomMessHandler::ValidateRunGsmAlgorithmApduResp" ); |
7994 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_VALIDATERUNGSMALGORITHMAPDURESP_TD, "CMmCustomMessHandler::ValidateRunGsmAlgorithmApduResp" ); |
7998 |
7995 |
7999 TUint8 ret( KApduNok ); |
7996 TUint8 ret( KApduNok ); |
8000 |
7997 |
8001 if( aApdu.Length() == KRunGsmAlgorithmRespLen + 2 ) |
7998 if( aApdu.Length() == KRunGsmAlgorithmRespLen + 2 ) |
8002 { |
7999 { |
8052 { |
8049 { |
8053 if( tlvLength <= aTlvObject.MaxSize() ) |
8050 if( tlvLength <= aTlvObject.MaxSize() ) |
8054 { |
8051 { |
8055 // tlv object found |
8052 // tlv object found |
8056 TFLOGSTRING2("TSY: CMmCustomMessHandler::FindTlvObject: tag: 0x%x found\n", aTlvTag ); |
8053 TFLOGSTRING2("TSY: CMmCustomMessHandler::FindTlvObject: tag: 0x%x found\n", aTlvTag ); |
8057 OstTrace1( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_FINDTLVOBJECT, "CMmCustomMessHandler::FindTlvObject: tag: 0x%x found", aTlvTag ); |
8054 OstTrace1( TRACE_NORMAL, DUP1_CMMCUSTOMMESSHANDLER_FINDTLVOBJECT_TD, "CMmCustomMessHandler::FindTlvObject: tag: 0x%x found", aTlvTag ); |
8058 aTlvObject.Copy( aBerTlv.Mid( index , tlvLength ) ); |
8055 aTlvObject.Copy( aBerTlv.Mid( index , tlvLength ) ); |
8059 ret = ETrue; |
8056 ret = ETrue; |
8060 } |
8057 } |
8061 else |
8058 else |
8062 { |
8059 { |
8063 TFLOGSTRING3("TSY: CMmCustomMessHandler::FindTlvObject: length of aTlvObject is not enough, needed: %d max size: %d \n", tlvLength, aTlvObject.MaxSize() ); |
8060 TFLOGSTRING3("TSY: CMmCustomMessHandler::FindTlvObject: length of aTlvObject is not enough, needed: %d max size: %d \n", tlvLength, aTlvObject.MaxSize() ); |
8064 OstTrace0( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_FINDTLVOBJECT, "CMmCustomMessHandler::FindTlvObject: length of aTlvObject is not enough" ); |
8061 OstTrace0( TRACE_NORMAL, DUP2_CMMCUSTOMMESSHANDLER_FINDTLVOBJECT_TD, "CMmCustomMessHandler::FindTlvObject: length of aTlvObject is not enough" ); |
8065 OstTrace1( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_FINDTLVOBJECT, "CMmCustomMessHandler::FindTlvObject: needed: %d", tlvLength ); |
8062 OstTrace1( TRACE_NORMAL, DUP3_CMMCUSTOMMESSHANDLER_FINDTLVOBJECT_TD, "CMmCustomMessHandler::FindTlvObject: needed: %d", tlvLength ); |
8066 OstTrace1( TRACE_NORMAL, DUP4_CMMCUSTOMMESSHANDLER_FINDTLVOBJECT, "CMmCustomMessHandler::FindTlvObject: max size: %d", aTlvObject.MaxSize() ); |
8063 OstTrace1( TRACE_NORMAL, DUP4_CMMCUSTOMMESSHANDLER_FINDTLVOBJECT_TD, "CMmCustomMessHandler::FindTlvObject: max size: %d", aTlvObject.MaxSize() ); |
8067 } |
8064 } |
8068 } |
8065 } |
8069 else |
8066 else |
8070 { |
8067 { |
8071 TFLOGSTRING("TSY: CMmCustomMessHandler::FindTlvObject: buffer overflow \n" ); |
8068 TFLOGSTRING("TSY: CMmCustomMessHandler::FindTlvObject: buffer overflow \n" ); |
8072 OstTrace0( TRACE_NORMAL, DUP5_CMMCUSTOMMESSHANDLER_FINDTLVOBJECT, "CMmCustomMessHandler::FindTlvObject: buffer overflow" ); |
8069 OstTrace0( TRACE_NORMAL, DUP5_CMMCUSTOMMESSHANDLER_FINDTLVOBJECT_TD, "CMmCustomMessHandler::FindTlvObject: buffer overflow" ); |
8073 } |
8070 } |
8074 break; |
8071 break; |
8075 } |
8072 } |
8076 else |
8073 else |
8077 { |
8074 { |
8171 // |
8168 // |
8172 TInt CMmCustomMessHandler::UiccHandleImsAuthentication( |
8169 TInt CMmCustomMessHandler::UiccHandleImsAuthentication( |
8173 const CMmDataPackage& aDataPackage ) |
8170 const CMmDataPackage& aDataPackage ) |
8174 { |
8171 { |
8175 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccHandleImsAuthentication.\n" ); |
8172 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccHandleImsAuthentication.\n" ); |
8176 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCHANDLEIMSAUTHENTICATION, "CMmCustomMessHandler::UiccHandleImsAuthentication" ); |
8173 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCHANDLEIMSAUTHENTICATION_TD, "CMmCustomMessHandler::UiccHandleImsAuthentication" ); |
8177 TInt ret( KErrNone ); |
8174 TInt ret( KErrNone ); |
8178 |
8175 |
8179 // IMS authentication: |
8176 // IMS authentication: |
8180 // If card type is ICC, we just send the RUN GSM ALGORITHM to the ICC |
8177 // If card type is ICC, we just send the RUN GSM ALGORITHM to the ICC |
8181 // If card type is UICC, we check is ISIM application activated: |
8178 // If card type is UICC, we check is ISIM application activated: |
8276 // ----------------------------------------------------------------------------- |
8273 // ----------------------------------------------------------------------------- |
8277 // |
8274 // |
8278 void CMmCustomMessHandler::UiccHandleIsimActivationResp( TInt aStatus ) |
8275 void CMmCustomMessHandler::UiccHandleIsimActivationResp( TInt aStatus ) |
8279 { |
8276 { |
8280 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccHandleIsimActivationResp.\n" ); |
8277 TFLOGSTRING("TSY: CMmCustomMessHandler::UiccHandleIsimActivationResp.\n" ); |
8281 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCHANDLEISIMACTIVATIONRESP, "CMmCustomMessHandler::UiccHandleIsimActivationResp" ); |
8278 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_UICCHANDLEISIMACTIVATIONRESP_TD, "CMmCustomMessHandler::UiccHandleIsimActivationResp" ); |
8282 |
8279 |
8283 TUiccSendApdu params; |
8280 TUiccSendApdu params; |
8284 params.messHandlerPtr = static_cast<MUiccOperationBase*>( this ); |
8281 params.messHandlerPtr = static_cast<MUiccOperationBase*>( this ); |
8285 params.serviceType = UICC_APPL_APDU_SEND; |
8282 params.serviceType = UICC_APPL_APDU_SEND; |
8286 params.fileId = UICC_EF_ID_NOT_PRESENT; |
8283 params.fileId = UICC_EF_ID_NOT_PRESENT; |
8309 // to the USim application |
8306 // to the USim application |
8310 iMmUiccMessHandler->CreateUiccApplCmdReq( params ); |
8307 iMmUiccMessHandler->CreateUiccApplCmdReq( params ); |
8311 } |
8308 } |
8312 } |
8309 } |
8313 |
8310 |
|
8311 // ----------------------------------------------------------------------------- |
|
8312 // CMmCustomMessHandler::CollectCbTopicIdsL |
|
8313 // Collects cellbroadcast topic IDs into array. Leaves if nothig found |
|
8314 // ----------------------------------------------------------------------------- |
|
8315 // |
|
8316 CArrayFixFlat<RMmCustomAPI::TSimCbTopic>* CMmCustomMessHandler::CollectCbTopicIdsL( |
|
8317 const TDesC16& aTopicIds ) const |
|
8318 { |
|
8319 TFLOGSTRING("TSY: CMmCustomMessHandler::CollectCbTopicIdsL"); |
|
8320 OstTrace0( TRACE_NORMAL, CMMCUSTOMMESSHANDLER_COLLECTCBTOPICIDSL, "CMmCustomMessHandler::CollectCbTopicIdsL" ); |
|
8321 |
|
8322 CArrayFixFlat<RMmCustomAPI::TSimCbTopic>* simCbTopics = |
|
8323 new ( ELeave ) CArrayFixFlat<RMmCustomAPI::TSimCbTopic> ( |
|
8324 aTopicIds.Length() ); |
|
8325 CleanupStack::PushL( simCbTopics ); |
|
8326 for ( TInt i = 0; i < aTopicIds.Length(); i++ ) |
|
8327 { |
|
8328 TUint16 cbId = |
|
8329 ( aTopicIds[i] >> 8 ) | ( aTopicIds[i] << 8 ); |
|
8330 if ( KUnusedCbMsgId != cbId ) |
|
8331 { |
|
8332 RMmCustomAPI::TSimCbTopic simCbTopic; |
|
8333 // CB ID |
|
8334 simCbTopic.iNumber = cbId; |
|
8335 // Topic names are not stored on the SIM |
|
8336 simCbTopic.iName.Zero(); |
|
8337 // Add CB topic to array |
|
8338 simCbTopics->AppendL( simCbTopic ); |
|
8339 } |
|
8340 } |
|
8341 simCbTopics->Compress(); |
|
8342 // handle this like error case |
|
8343 __ASSERT_ALWAYS( |
|
8344 0 < simCbTopics->Count(), User::Leave( KErrNotFound ) ); |
|
8345 CleanupStack::Pop( simCbTopics ); |
|
8346 |
|
8347 return simCbTopics; |
|
8348 } |
|
8349 |
8314 // ========================== OTHER EXPORTED FUNCTIONS ========================= |
8350 // ========================== OTHER EXPORTED FUNCTIONS ========================= |
8315 //None |
8351 //None |
8316 |
8352 |
8317 // End of File |
8353 // End of File |