1 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). |
1 // Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). |
2 // All rights reserved. |
2 // All rights reserved. |
3 // This component and the accompanying materials are made available |
3 // This component and the accompanying materials are made available |
4 // under the terms of "Eclipse Public License v1.0" |
4 // under the terms of "Eclipse Public License v1.0" |
5 // which accompanies this distribution, and is available |
5 // which accompanies this distribution, and is available |
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
35 } |
41 } |
36 |
42 |
37 void CMmUssdTsy::ConstructL( |
43 void CMmUssdTsy::ConstructL( |
38 CMmPhoneTsy* aMmPhoneTsy ) |
44 CMmPhoneTsy* aMmPhoneTsy ) |
39 { |
45 { |
40 TFLOGSTRING("TSY: CMmUssdTsy::ConstructL\n" ); |
46 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_CONSTRUCTL_1, "TSY: CMmUssdTsy::ConstructL\n" ); |
41 iMmPhone = aMmPhoneTsy; |
47 iMmPhone = aMmPhoneTsy; |
42 |
48 |
43 // register . |
49 // register . |
44 iMmPhone->MessageManager()->RegisterTsyObject( |
50 iMmPhone->MessageManager()->RegisterTsyObject( |
45 CMmMessageManagerBase::EUssdMessagingTsy, this ); |
51 CMmMessageManagerBase::EUssdMessagingTsy, this ); |
74 return aMmUssdTsy; |
80 return aMmUssdTsy; |
75 } |
81 } |
76 |
82 |
77 CMmUssdTsy::~CMmUssdTsy() |
83 CMmUssdTsy::~CMmUssdTsy() |
78 { |
84 { |
79 TFLOGSTRING("TSY: CMmUssdTsy::~CMmUssdTsy" ); |
85 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_DTOR_1, "TSY: CMmUssdTsy::~CMmUssdTsy" ); |
80 // unregister. |
86 // unregister. |
81 if ( iMmPhone ) |
87 if ( iMmPhone ) |
82 { |
88 { |
83 // deregister tsy object from message manager |
89 // deregister tsy object from message manager |
84 iMmPhone->MessageManager()->DeregisterTsyObject(this); |
90 iMmPhone->MessageManager()->DeregisterTsyObject(this); |
124 // before processing further the request, check if offline mode status |
130 // before processing further the request, check if offline mode status |
125 // is enabled and if the given request can be perfomed in that case. |
131 // is enabled and if the given request can be perfomed in that case. |
126 if ( ERfsStateInfoInactive == iMmPhone->GetRfStateInfo() && |
132 if ( ERfsStateInfoInactive == iMmPhone->GetRfStateInfo() && |
127 ( !IsRequestPossibleInOffline( aIpc ) ) ) |
133 ( !IsRequestPossibleInOffline( aIpc ) ) ) |
128 { |
134 { |
129 TFLOGSTRING2 ("TSY: Offline mode ON, request is not allowed: %d", aIpc ); |
135 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_EXTFUNC_1, "TSY: Offline mode ON, request is not allowed: %d", aIpc ); |
130 ret = CMmCommonStaticUtility::EpocErrorCode( KErrGeneral, |
136 ret = CMmCommonStaticUtility::EpocErrorCode( KErrGeneral, |
131 KErrGsmOfflineOpNotAllowed ); |
137 KErrGsmOfflineOpNotAllowed ); |
132 |
138 |
133 // Complete the request with appropiate error |
139 // Complete the request with appropiate error |
134 ReqCompleted ( aTsyReqHandle, ret ); |
140 ReqCompleted ( aTsyReqHandle, ret ); |
343 // --------------------------------------------------------------------------- |
349 // --------------------------------------------------------------------------- |
344 // |
350 // |
345 TInt CMmUssdTsy::RegisterNotification( |
351 TInt CMmUssdTsy::RegisterNotification( |
346 const TInt aIpc ) // Notification IPC number |
352 const TInt aIpc ) // Notification IPC number |
347 { |
353 { |
348 TFLOGSTRING2( "TSY: CMmUssdTsy::RegisterNotification. IPC: %d", aIpc ); |
354 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_REGISTERNOTIFICATION_1, "TSY: CMmUssdTsy::RegisterNotification. IPC: %d", aIpc ); |
349 |
355 |
350 TInt ret( KErrNone ); |
356 TInt ret( KErrNone ); |
351 |
357 |
352 switch ( aIpc ) |
358 switch ( aIpc ) |
353 { |
359 { |
374 // --------------------------------------------------------------------------- |
380 // --------------------------------------------------------------------------- |
375 // |
381 // |
376 TInt CMmUssdTsy::DeregisterNotification( |
382 TInt CMmUssdTsy::DeregisterNotification( |
377 const TInt aIpc ) // Notification IPC number |
383 const TInt aIpc ) // Notification IPC number |
378 { |
384 { |
379 TFLOGSTRING2( "TSY: CMmUssdTsy::DeregisterNotification. IPC: %d", aIpc ); |
385 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_DEREGISTERNOTIFICATION_1, "TSY: CMmUssdTsy::DeregisterNotification. IPC: %d", aIpc ); |
380 |
386 |
381 TInt ret( KErrNone ); |
387 TInt ret( KErrNone ); |
382 |
388 |
383 switch ( aIpc ) |
389 switch ( aIpc ) |
384 { |
390 { |
514 // |
520 // |
515 void CMmUssdTsy::CompleteReceiveMessage( |
521 void CMmUssdTsy::CompleteReceiveMessage( |
516 TInt aError, |
522 TInt aError, |
517 CMmDataPackage* aDataPackage ) |
523 CMmDataPackage* aDataPackage ) |
518 { |
524 { |
519 TFLOGSTRING("TSY: CMmUssdTsy::CompleteReceiveMessage.\n" ); |
525 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_COMPLETERECEIVEMESSAGE_1, "TSY: CMmUssdTsy::CompleteReceiveMessage.\n" ); |
520 TTsyReqHandle reqHandle = iTsyReqHandleStore->GetTsyReqHandle( |
526 TTsyReqHandle reqHandle = iTsyReqHandleStore->GetTsyReqHandle( |
521 EMultimodeUssdReceiveMessage ); |
527 EMultimodeUssdReceiveMessage ); |
522 |
528 |
523 if ( ( EMultimodeUssdReqHandleUnknown != reqHandle ) ) |
529 if ( ( EMultimodeUssdReqHandleUnknown != reqHandle ) ) |
524 { |
530 { |
555 TInt CMmUssdTsy::SendMessageL( |
561 TInt CMmUssdTsy::SendMessageL( |
556 const TTsyReqHandle aTsyReqHandle, |
562 const TTsyReqHandle aTsyReqHandle, |
557 TDes8* aData, |
563 TDes8* aData, |
558 TDes8* aAttributes ) |
564 TDes8* aAttributes ) |
559 { |
565 { |
560 TFLOGSTRING2("TSY: CMmUssdTsy::SendMessage - Data length: %d", aData->Length() ); |
566 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_SENDMESSAGEL_1, "TSY: CMmUssdTsy::SendMessage - Data length: %d", aData->Length() ); |
561 TFLOGSTRING2("TSY: CMmUssdTsy::SendMessageL: iUssdNoFdnCheckFlag: %d", iUssdNoFdnCheckFlag); |
567 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_SENDMESSAGEL_2, "TSY: CMmUssdTsy::SendMessageL: iUssdNoFdnCheckFlag: %d", iUssdNoFdnCheckFlag); |
562 TInt ret = KErrNone; |
568 TInt ret = KErrNone; |
563 |
569 |
564 if ( iSsTransactionOngoing ) |
570 if ( iSsTransactionOngoing ) |
565 { |
571 { |
566 ret = KErrServerBusy; |
572 ret = KErrServerBusy; |
661 // --------------------------------------------------------------------------- |
667 // --------------------------------------------------------------------------- |
662 // |
668 // |
663 void CMmUssdTsy::CompleteSendMessage( |
669 void CMmUssdTsy::CompleteSendMessage( |
664 TInt aError ) |
670 TInt aError ) |
665 { |
671 { |
666 TFLOGSTRING("TSY: CMmUssdTsy::CompleteSendMessage.\n" ); |
672 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_COMPLETESENDMESSAGE_1, "TSY: CMmUssdTsy::CompleteSendMessage.\n" ); |
667 TTsyReqHandle reqHandle = iTsyReqHandleStore->GetTsyReqHandle( |
673 TTsyReqHandle reqHandle = iTsyReqHandleStore->GetTsyReqHandle( |
668 EMultimodeUssdSendMessage ); |
674 EMultimodeUssdSendMessage ); |
669 |
675 |
670 if ( EMultimodeUssdReqHandleUnknown != reqHandle ) |
676 if ( EMultimodeUssdReqHandleUnknown != reqHandle ) |
671 { |
677 { |
695 if ( 0 < sendReleaseHandle ) |
701 if ( 0 < sendReleaseHandle ) |
696 { |
702 { |
697 // The request is already in processing because of previous request |
703 // The request is already in processing because of previous request |
698 // Complete request with status value informing the client about |
704 // Complete request with status value informing the client about |
699 // the situation. |
705 // the situation. |
700 TFLOGSTRING("LTSY: CMmUssdTsy::SendRelease - KErrServerBusy"); |
706 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_SENDRELEASEL_1, "LTSY: CMmUssdTsy::SendRelease - KErrServerBusy"); |
701 ReqCompleted( aTsyReqHandle, KErrServerBusy ); |
707 ReqCompleted( aTsyReqHandle, KErrServerBusy ); |
702 } |
708 } |
703 else |
709 else |
704 { |
710 { |
705 TFLOGSTRING("TSY: CMmUssdTsy::SendRelease called"); |
711 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_SENDRELEASEL_2, "TSY: CMmUssdTsy::SendRelease called"); |
706 |
712 |
707 TInt ret = KErrGeneral; |
713 TInt ret = KErrGeneral; |
708 |
714 |
709 TPckg<RMobilePhone::TMobilePhoneSendSSRequestV3>* ussdSendSSRequestPckg = |
715 TPckg<RMobilePhone::TMobilePhoneSendSSRequestV3>* ussdSendSSRequestPckg = |
710 reinterpret_cast< TPckg<RMobilePhone::TMobilePhoneSendSSRequestV3>* > |
716 reinterpret_cast< TPckg<RMobilePhone::TMobilePhoneSendSSRequestV3>* > |
756 // |
762 // |
757 void CMmUssdTsy::CompleteSendRelease( |
763 void CMmUssdTsy::CompleteSendRelease( |
758 TInt aErrorCode, |
764 TInt aErrorCode, |
759 CMmDataPackage* aDataPackage ) |
765 CMmDataPackage* aDataPackage ) |
760 { |
766 { |
761 TFLOGSTRING("TSY: CMmUssdTsy::CompleteSendRelease" ); |
767 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_COMPLETESENDRELEASE_1, "TSY: CMmUssdTsy::CompleteSendRelease" ); |
762 // reset req handle. Returns the deleted req handle |
768 // reset req handle. Returns the deleted req handle |
763 TTsyReqHandle reqHandle = iTsyReqHandleStore->ResetTsyReqHandle( |
769 TTsyReqHandle reqHandle = iTsyReqHandleStore->ResetTsyReqHandle( |
764 EMultimodeUssdSendRelease ); |
770 EMultimodeUssdSendRelease ); |
765 |
771 |
766 if( CMmPhoneTsy::EMultimodePhoneReqHandleUnknown != reqHandle ) |
772 if( CMmPhoneTsy::EMultimodePhoneReqHandleUnknown != reqHandle ) |
803 TInt CMmUssdTsy::NotifyNetworkRelease( |
809 TInt CMmUssdTsy::NotifyNetworkRelease( |
804 const TTsyReqHandle aTsyReqHandle, |
810 const TTsyReqHandle aTsyReqHandle, |
805 TDes8* aMsgData, |
811 TDes8* aMsgData, |
806 TDes8* aMsgAttributes) // aMsgAttributes may be NULL |
812 TDes8* aMsgAttributes) // aMsgAttributes may be NULL |
807 { |
813 { |
808 TFLOGSTRING("TSY: CMmUssdTsy::NotifyNetworkRelease" ); |
814 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_NOTIFYNETWORKRELEASE_1, "TSY: CMmUssdTsy::NotifyNetworkRelease" ); |
809 |
815 |
810 if (aMsgData->MaxLength() < sizeof(RMobilePhone::TMobilePhoneSendSSRequestV3Pckg)) |
816 if (aMsgData->MaxLength() < sizeof(RMobilePhone::TMobilePhoneSendSSRequestV3Pckg)) |
811 { |
817 { |
812 TFLOGSTRING ("TSY: CMmNetTsy::NotifyNetworkRelease Bad size argument (arg1)"); |
818 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_NOTIFYNETWORKRELEASE_2, "TSY: CMmNetTsy::NotifyNetworkRelease Bad size argument (arg1)"); |
813 // Complete the request with appropiate error |
819 // Complete the request with appropiate error |
814 return KErrArgument; |
820 return KErrArgument; |
815 } |
821 } |
816 if (aMsgAttributes && |
822 if (aMsgAttributes && |
817 aMsgAttributes->MaxLength() < sizeof(RMobileUssdMessaging::TMobileUssdAttributesV1Pckg)) |
823 aMsgAttributes->MaxLength() < sizeof(RMobileUssdMessaging::TMobileUssdAttributesV1Pckg)) |
818 { |
824 { |
819 TFLOGSTRING ("TSY: CMmNetTsy::NotifyNetworkRelease Bad size argument (arg2)"); |
825 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_NOTIFYNETWORKRELEASE_3, "TSY: CMmNetTsy::NotifyNetworkRelease Bad size argument (arg2)"); |
820 // Complete the request with appropiate error |
826 // Complete the request with appropiate error |
821 return KErrArgument; |
827 return KErrArgument; |
822 } |
828 } |
823 |
829 |
824 TPckg<RMobilePhone::TMobilePhoneSendSSRequestV3>* ussdSendSSRequestPckg = |
830 TPckg<RMobilePhone::TMobilePhoneSendSSRequestV3>* ussdSendSSRequestPckg = |
864 void CMmUssdTsy::CompleteNotifyNetworkRelease( |
870 void CMmUssdTsy::CompleteNotifyNetworkRelease( |
865 TInt aErrorCode, |
871 TInt aErrorCode, |
866 CMmDataPackage* aDataPackage ) |
872 CMmDataPackage* aDataPackage ) |
867 { |
873 { |
868 |
874 |
869 TFLOGSTRING2("TSY: CMmUssdTsy::CompleteNotifyNetworkRelease. Error: %d", aErrorCode ); |
875 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_COMPLETENOTIFYNETWORKRELEASE_1, "TSY: CMmUssdTsy::CompleteNotifyNetworkRelease. Error: %d", aErrorCode ); |
870 // reset req handle. Returns the deleted req handle |
876 // reset req handle. Returns the deleted req handle |
871 TTsyReqHandle reqHandle = iTsyReqHandleStore->ResetTsyReqHandle( |
877 TTsyReqHandle reqHandle = iTsyReqHandleStore->ResetTsyReqHandle( |
872 EMultimodeUssdNotifyNetworkRelease ); |
878 EMultimodeUssdNotifyNetworkRelease ); |
873 |
879 |
874 if( CMmPhoneTsy::EMultimodePhoneReqHandleUnknown != reqHandle ) |
880 if( CMmPhoneTsy::EMultimodePhoneReqHandleUnknown != reqHandle ) |
1058 // |
1064 // |
1059 void CMmUssdTsy::ReqCompleted( |
1065 void CMmUssdTsy::ReqCompleted( |
1060 const TTsyReqHandle aTsyReqHandle, |
1066 const TTsyReqHandle aTsyReqHandle, |
1061 const TInt aError ) |
1067 const TInt aError ) |
1062 { |
1068 { |
1063 TFLOGSTRING3("TSY: CMmUssdTsy::ReqCompleted. Handle: %d Error: %d", aTsyReqHandle, aError); |
1069 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_REQCOMPLETED_1, "TSY: CMmUssdTsy::ReqCompleted. Handle: %d Error: %d", aTsyReqHandle, aError); |
1064 CTelObject::ReqCompleted( aTsyReqHandle, aError ); |
1070 CTelObject::ReqCompleted( aTsyReqHandle, aError ); |
1065 } |
1071 } |
1066 #endif // TF_LOGGING_ENABLED |
1072 #endif // TF_LOGGING_ENABLED |
1067 |
1073 |
1068 // --------------------------------------------------------------------------- |
1074 // --------------------------------------------------------------------------- |
1109 // --------------------------------------------------------------------------- |
1115 // --------------------------------------------------------------------------- |
1110 // |
1116 // |
1111 TInt CMmUssdTsy::SendMessageNoFdnCheckCancel( |
1117 TInt CMmUssdTsy::SendMessageNoFdnCheckCancel( |
1112 const TTsyReqHandle aTsyReqHandle ) |
1118 const TTsyReqHandle aTsyReqHandle ) |
1113 { |
1119 { |
1114 TFLOGSTRING("TSY: CMmUssdTsy::SendMessageNoFdnCheckCancel" ); |
1120 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_SENDMESSAGENOFDNCHECKCANCEL_1, "TSY: CMmUssdTsy::SendMessageNoFdnCheckCancel" ); |
1115 |
1121 |
1116 // reset the req handle |
1122 // reset the req handle |
1117 TTsyReqHandle reqHandle = iTsyReqHandleStore->ResetTsyReqHandle( |
1123 TTsyReqHandle reqHandle = iTsyReqHandleStore->ResetTsyReqHandle( |
1118 EMultimodeUssdSendMessageNoFdnCheck ); |
1124 EMultimodeUssdSendMessageNoFdnCheck ); |
1119 |
1125 |
1135 // --------------------------------------------------------------------------- |
1141 // --------------------------------------------------------------------------- |
1136 // |
1142 // |
1137 void CMmUssdTsy::CompleteSendMessageNoFdnCheck( |
1143 void CMmUssdTsy::CompleteSendMessageNoFdnCheck( |
1138 TInt aError ) |
1144 TInt aError ) |
1139 { |
1145 { |
1140 TFLOGSTRING("TSY: CMmUssdTsy::CompleteSendMessageNoFdnCheck.\n" ); |
1146 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMUSSDTSY_COMPLETESENDMESSAGENOFDNCHECK_1, "TSY: CMmUssdTsy::CompleteSendMessageNoFdnCheck.\n" ); |
1141 // get reg handle |
1147 // get reg handle |
1142 TTsyReqHandle reqHandle = iTsyReqHandleStore->GetTsyReqHandle( |
1148 TTsyReqHandle reqHandle = iTsyReqHandleStore->GetTsyReqHandle( |
1143 EMultimodeUssdSendMessageNoFdnCheck ); |
1149 EMultimodeUssdSendMessageNoFdnCheck ); |
1144 |
1150 |
1145 if ( EMultimodeUssdReqHandleUnknown != reqHandle ) |
1151 if ( EMultimodeUssdReqHandleUnknown != reqHandle ) |