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". |
49 RMobilePhone::TMobileService aMode, |
55 RMobilePhone::TMobileService aMode, |
50 TDes& aName, |
56 TDes& aName, |
51 CMmMessageManagerBase* aMessageManager, |
57 CMmMessageManagerBase* aMessageManager, |
52 MTelephonyAudioControl* aTelephonyAudioControl ) |
58 MTelephonyAudioControl* aTelephonyAudioControl ) |
53 { |
59 { |
54 TFLOGSTRING2("TSY: CMmVoiceCallTsy::NewL. Call name: %S", &aName); |
60 OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_NEWL_1, "TSY: CMmVoiceCallTsy::NewL. Call name: %S", aName); |
55 |
61 |
56 CMmVoiceCallTsy* mmCall = NULL; |
62 CMmVoiceCallTsy* mmCall = NULL; |
57 |
63 |
58 //check input parameters |
64 //check input parameters |
59 if ( aMmPhone != NULL && aMmLine != NULL && ( |
65 if ( aMmPhone != NULL && aMmLine != NULL && ( |
116 TInt CMmVoiceCallTsy::DoExtFuncL( |
122 TInt CMmVoiceCallTsy::DoExtFuncL( |
117 const TTsyReqHandle aTsyReqHandle, |
123 const TTsyReqHandle aTsyReqHandle, |
118 const TInt aIpc, |
124 const TInt aIpc, |
119 const TDataPackage& aPackage ) |
125 const TDataPackage& aPackage ) |
120 { |
126 { |
121 TFLOGSTRING3("TSY: CMmVoiceCallTsy::DoExtFuncL. IPC:%d Handle:%d", aIpc, aTsyReqHandle); |
127 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_DOEXTFUNCL_1, "TSY: CMmVoiceCallTsy::DoExtFuncL. IPC:%d Handle:%d", aIpc, aTsyReqHandle); |
122 |
128 |
123 TInt ret( KErrNone ); |
129 TInt ret( KErrNone ); |
124 |
130 |
125 TAny* dataPtr = aPackage.Ptr1(); |
131 TAny* dataPtr = aPackage.Ptr1(); |
126 |
132 |
508 // |
514 // |
509 TInt CMmVoiceCallTsy::CancelService( |
515 TInt CMmVoiceCallTsy::CancelService( |
510 const TInt aIpc, |
516 const TInt aIpc, |
511 const TTsyReqHandle aTsyReqHandle ) |
517 const TTsyReqHandle aTsyReqHandle ) |
512 { |
518 { |
513 TFLOGSTRING3("TSY: CMmVoiceCallTsy::CancelService. IPC: %d, Req handle: %d", aIpc, aTsyReqHandle); |
519 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_CANCELSERVICE_1, "TSY: CMmVoiceCallTsy::CancelService. IPC: %d, Req handle: %d", aIpc, aTsyReqHandle); |
514 |
520 |
515 TInt ret( KErrNone ); |
521 TInt ret( KErrNone ); |
516 |
522 |
517 //When the clients close their sub-sessions (eg. by calling RPhone::Close) |
523 //When the clients close their sub-sessions (eg. by calling RPhone::Close) |
518 //they may not have cancelled all their outstanding asynchronous requests |
524 //they may not have cancelled all their outstanding asynchronous requests |
629 reinterpret_cast<CCallDataPackage*>(aDataPackage); |
635 reinterpret_cast<CCallDataPackage*>(aDataPackage); |
630 |
636 |
631 callDataPackage->GetCallIdAndMode( callId, callMode ); |
637 callDataPackage->GetCallIdAndMode( callId, callMode ); |
632 callDataPackage->UnPackData( callStatus ); |
638 callDataPackage->UnPackData( callStatus ); |
633 |
639 |
634 TFLOGSTRING2("TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. aResult:%d", aResult ); |
640 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETENOTIFYSTATUSCHANGE_1, "TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. aResult:%d", aResult ); |
635 TFLOGSTRING3("TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. Call status:%d Call name:%S", callStatus, &iCallName); |
641 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETENOTIFYSTATUSCHANGE_2, "TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. Call status:%d Call name:%S", callStatus, iCallName); |
636 |
642 |
637 TTsyReqHandle holdHandle = |
643 TTsyReqHandle holdHandle = |
638 iTsyReqHandleStore->GetTsyReqHandle( EMultimodeMobileCallHold ); |
644 iTsyReqHandleStore->GetTsyReqHandle( EMultimodeMobileCallHold ); |
639 TTsyReqHandle resumeHandle = |
645 TTsyReqHandle resumeHandle = |
640 iTsyReqHandleStore->GetTsyReqHandle( EMultimodeMobileCallResume ); |
646 iTsyReqHandleStore->GetTsyReqHandle( EMultimodeMobileCallResume ); |
662 iMmPhone->CallList()->GetMmCallByIndex( i ) ); |
668 iMmPhone->CallList()->GetMmCallByIndex( i ) ); |
663 |
669 |
664 if( call->IsEmergencyCall() ) |
670 if( call->IsEmergencyCall() ) |
665 { |
671 { |
666 numberOfEmergencyCalls++; |
672 numberOfEmergencyCalls++; |
667 TFLOGSTRING2("TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. numberOfEmergencyCalls:%d", numberOfEmergencyCalls ); |
673 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETENOTIFYSTATUSCHANGE_3, "TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. numberOfEmergencyCalls:%d", numberOfEmergencyCalls ); |
668 } |
674 } |
669 } |
675 } |
670 |
676 |
671 // There might be another emergency call Dial started and |
677 // There might be another emergency call Dial started and |
672 // iEmergencyCall flag is updated to false in |
678 // iEmergencyCall flag is updated to false in |
704 //Inform call routing control if there were error or cancelling in dial |
710 //Inform call routing control if there were error or cancelling in dial |
705 if ( RMobileCall::EStatusDialling == iMobileCallStatus ) |
711 if ( RMobileCall::EStatusDialling == iMobileCallStatus ) |
706 { |
712 { |
707 iTelephonyAudioControl->CallStateChange( |
713 iTelephonyAudioControl->CallStateChange( |
708 iCallName, RMobileCall::EStatusDisconnecting ); |
714 iCallName, RMobileCall::EStatusDisconnecting ); |
709 TFLOGSTRING2("TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. Call routing state changed to EStatusDisconnecting: Call name:%S", &iCallName ); |
715 OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETENOTIFYSTATUSCHANGE_4, "TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. Call routing state changed to EStatusDisconnecting: Call name:%S", iCallName ); |
710 } |
716 } |
711 iTelephonyAudioControl->TeardownTelephonyAudio( |
717 iTelephonyAudioControl->TeardownTelephonyAudio( |
712 iCallName, aResult ); |
718 iCallName, aResult ); |
713 TFLOGSTRING2("TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. Call routing teared down: Call name:%S", &iCallName); |
719 OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETENOTIFYSTATUSCHANGE_5, "TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. Call routing teared down: Call name:%S", iCallName); |
714 iTelephonyAudioControlSetup = EFalse; |
720 iTelephonyAudioControlSetup = EFalse; |
715 } |
721 } |
716 |
722 |
717 iCallStatus = RCall::EStatusIdle; |
723 iCallStatus = RCall::EStatusIdle; |
718 iMobileCallStatus = RMobileCall::EStatusIdle; |
724 iMobileCallStatus = RMobileCall::EStatusIdle; |
735 //set last exit code |
741 //set last exit code |
736 iLastExitCode = aResult; |
742 iLastExitCode = aResult; |
737 CompleteHangUp( aResult ); |
743 CompleteHangUp( aResult ); |
738 CompleteAnswerIncomingCall( aResult ); |
744 CompleteAnswerIncomingCall( aResult ); |
739 } |
745 } |
740 TFLOGSTRING("TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. - CompleteDial's called"); |
746 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETENOTIFYSTATUSCHANGE_6, "TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. - CompleteDial's called"); |
741 CompleteDial( aResult ); |
747 CompleteDial( aResult ); |
742 CompleteDialNoFdn( aResult ); |
748 CompleteDialNoFdn( aResult ); |
743 CompleteDialEmergencyCall( aResult ); |
749 CompleteDialEmergencyCall( aResult ); |
744 } |
750 } |
745 // Try to complete Dial and HangUp; If completes happens from |
751 // Try to complete Dial and HangUp; If completes happens from |
746 // here, something has gone wrong. Done to prevent TSY from |
752 // here, something has gone wrong. Done to prevent TSY from |
747 // hanging. |
753 // hanging. |
748 else |
754 else |
749 { |
755 { |
750 TFLOGSTRING("TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. - Try to complete Dial and HangUp"); |
756 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETENOTIFYSTATUSCHANGE_7, "TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. - Try to complete Dial and HangUp"); |
751 iLastExitCode = KErrGeneral; |
757 iLastExitCode = KErrGeneral; |
752 TInt errorValue = CMmCommonStaticUtility::EpocErrorCode( |
758 TInt errorValue = CMmCommonStaticUtility::EpocErrorCode( |
753 KErrNotReady, KErrNotFound ); |
759 KErrNotReady, KErrNotFound ); |
754 CompleteDial( errorValue ); |
760 CompleteDial( errorValue ); |
755 CompleteDialNoFdn( errorValue ); |
761 CompleteDialNoFdn( errorValue ); |
791 case RMobileCall::EStatusDialling: |
797 case RMobileCall::EStatusDialling: |
792 #ifdef REQHANDLE_TIMER |
798 #ifdef REQHANDLE_TIMER |
793 if ( KETelExt3rdPartyV1 != GetExtensionId() ) |
799 if ( KETelExt3rdPartyV1 != GetExtensionId() ) |
794 { |
800 { |
795 //non 3rd party client |
801 //non 3rd party client |
796 TFLOGSTRING("TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. - StopTimeOuts"); |
802 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETENOTIFYSTATUSCHANGE_8, "TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. - StopTimeOuts"); |
797 iTsyReqHandleStore->StopTimeout( EMultimodeCallDial ); |
803 iTsyReqHandleStore->StopTimeout( EMultimodeCallDial ); |
798 iTsyReqHandleStore->StopTimeout( |
804 iTsyReqHandleStore->StopTimeout( |
799 EMultimodeMobileCallDialEmergencyCall ); |
805 EMultimodeMobileCallDialEmergencyCall ); |
800 iTsyReqHandleStore->StopTimeout( |
806 iTsyReqHandleStore->StopTimeout( |
801 EMultimodeCallDialNoFdnCheck ); |
807 EMultimodeCallDialNoFdnCheck ); |
802 } |
808 } |
803 else |
809 else |
804 { |
810 { |
805 //3rd party client |
811 //3rd party client |
806 TFLOGSTRING("TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. - StopTimeOut EMultimodeCallDialISV"); |
812 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETENOTIFYSTATUSCHANGE_9, "TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. - StopTimeOut EMultimodeCallDialISV"); |
807 iTsyReqHandleStore->StopTimeout( EMultimodeCallDialISV ); |
813 iTsyReqHandleStore->StopTimeout( EMultimodeCallDialISV ); |
808 } |
814 } |
809 #endif // REQHANDLE_TIMER |
815 #endif // REQHANDLE_TIMER |
810 iCallStatus = RCall::EStatusDialling; |
816 iCallStatus = RCall::EStatusDialling; |
811 iMobileCallStatus = RMobileCall::EStatusDialling; |
817 iMobileCallStatus = RMobileCall::EStatusDialling; |
832 iTsyReqHandleStore->GetTsyReqHandle( |
838 iTsyReqHandleStore->GetTsyReqHandle( |
833 EMultimodeCallDialNoFdnCheck ); |
839 EMultimodeCallDialNoFdnCheck ); |
834 |
840 |
835 if ( 0 < dialCancelHandle ) |
841 if ( 0 < dialCancelHandle ) |
836 { |
842 { |
837 TFLOGSTRING("TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. - HangUp - EMultimodeCallDial"); |
843 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETENOTIFYSTATUSCHANGE_10, "TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. - HangUp - EMultimodeCallDial"); |
838 HangUp( dialCancelHandle ); |
844 HangUp( dialCancelHandle ); |
839 } |
845 } |
840 else if ( 0 < dialCancelHandleISV ) |
846 else if ( 0 < dialCancelHandleISV ) |
841 { |
847 { |
842 //3rd party client |
848 //3rd party client |
843 TFLOGSTRING("TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. - HangUp - EMultimodeCallDialISV"); |
849 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETENOTIFYSTATUSCHANGE_11, "TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. - HangUp - EMultimodeCallDialISV"); |
844 HangUp( dialCancelHandleISV ); |
850 HangUp( dialCancelHandleISV ); |
845 } |
851 } |
846 else if ( 0 < dialEmergCancelHandle ) |
852 else if ( 0 < dialEmergCancelHandle ) |
847 { |
853 { |
848 TFLOGSTRING("TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. - HangUp - EMultimodeMobileCallDialEmergencyCall"); |
854 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETENOTIFYSTATUSCHANGE_12, "TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. - HangUp - EMultimodeMobileCallDialEmergencyCall"); |
849 HangUp( dialEmergCancelHandle ); |
855 HangUp( dialEmergCancelHandle ); |
850 } |
856 } |
851 else if ( 0 < dialCancelHandleNoFdn ) |
857 else if ( 0 < dialCancelHandleNoFdn ) |
852 { |
858 { |
853 TFLOGSTRING("TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. - HangUp - EMultimodeCallDialNoFdn"); |
859 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETENOTIFYSTATUSCHANGE_13, "TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. - HangUp - EMultimodeCallDialNoFdn"); |
854 HangUp( dialCancelHandleNoFdn ); |
860 HangUp( dialCancelHandleNoFdn ); |
855 } |
861 } |
856 else |
862 else |
857 { |
863 { |
858 TFLOGSTRING("TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. - iDialCancelFlag = CMmCallTsy::EDialCancelNotCalled"); |
864 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETENOTIFYSTATUSCHANGE_14, "TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. - iDialCancelFlag = CMmCallTsy::EDialCancelNotCalled"); |
859 iDialCancelFlag = CMmCallTsy::EDialCancelNotCalled; |
865 iDialCancelFlag = CMmCallTsy::EDialCancelNotCalled; |
860 } |
866 } |
861 } |
867 } |
862 break; |
868 break; |
863 case RMobileCall::EStatusConnecting: |
869 case RMobileCall::EStatusConnecting: |
888 iMmPhone->CallList()->GetMmCallByIndex( i ) ); |
894 iMmPhone->CallList()->GetMmCallByIndex( i ) ); |
889 // if there is call with status Answering, complete |
895 // if there is call with status Answering, complete |
890 // it with CALL_CAUSE_NOT_ALLOWED |
896 // it with CALL_CAUSE_NOT_ALLOWED |
891 if( RCall::EStatusAnswering == call->Status() ) |
897 if( RCall::EStatusAnswering == call->Status() ) |
892 { |
898 { |
893 TFLOGSTRING("TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange Answering not allowed!"); |
899 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETENOTIFYSTATUSCHANGE_15, "TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange Answering not allowed!"); |
894 TInt errorValue = |
900 TInt errorValue = |
895 CMmCommonStaticUtility::EpocErrorCode( |
901 CMmCommonStaticUtility::EpocErrorCode( |
896 KErrAccessDenied, KErrMMEtelCallForbidden ); |
902 KErrAccessDenied, KErrMMEtelCallForbidden ); |
897 call->CompleteAnswerIncomingCall( errorValue ); |
903 call->CompleteAnswerIncomingCall( errorValue ); |
898 } |
904 } |
899 } |
905 } |
900 } |
906 } |
901 |
907 |
902 //check previous status. If status is answering |
908 //check previous status. If status is answering |
903 TFLOGSTRING("TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. - EStatusConnected"); |
909 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETENOTIFYSTATUSCHANGE_16, "TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. - EStatusConnected"); |
904 if ( RCall::EStatusAnswering == iCallStatus ) |
910 if ( RCall::EStatusAnswering == iCallStatus ) |
905 { |
911 { |
906 // don't start timers if error occurred |
912 // don't start timers if error occurred |
907 if ( KErrNone == aResult ) |
913 if ( KErrNone == aResult ) |
908 { |
914 { |
936 if ( ( iTsyReqHandleStore->GetTsyReqHandle( |
942 if ( ( iTsyReqHandleStore->GetTsyReqHandle( |
937 EMultimodeCallDial ) ) |
943 EMultimodeCallDial ) ) |
938 || ( iTsyReqHandleStore->GetTsyReqHandle( |
944 || ( iTsyReqHandleStore->GetTsyReqHandle( |
939 EMultimodeCallDialISV ) ) ) |
945 EMultimodeCallDialISV ) ) ) |
940 { |
946 { |
941 TFLOGSTRING("TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange.EStatusConnected - Before CompleteDial"); |
947 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETENOTIFYSTATUSCHANGE_17, "TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange.EStatusConnected - Before CompleteDial"); |
942 CompleteDial( aResult ); |
948 CompleteDial( aResult ); |
943 } |
949 } |
944 if( iTsyReqHandleStore->GetTsyReqHandle( |
950 if( iTsyReqHandleStore->GetTsyReqHandle( |
945 EMultimodeCallDialNoFdnCheck ) ) |
951 EMultimodeCallDialNoFdnCheck ) ) |
946 { |
952 { |
947 TFLOGSTRING("TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange.EStatusConnected - Before CompleteDialNoFdn"); |
953 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETENOTIFYSTATUSCHANGE_18, "TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange.EStatusConnected - Before CompleteDialNoFdn"); |
948 CompleteDialNoFdn( aResult ); |
954 CompleteDialNoFdn( aResult ); |
949 |
955 |
950 } |
956 } |
951 } |
957 } |
952 //if status was Hold (-> resume or swap has been asked) |
958 //if status was Hold (-> resume or swap has been asked) |
1002 |
1008 |
1003 if ( iCallDirection == RMobileCall::EMobileTerminated ) |
1009 if ( iCallDirection == RMobileCall::EMobileTerminated ) |
1004 { |
1010 { |
1005 if( KMultimodeCallTypeIDNoFdnCheck == GetDialTypeId() ) |
1011 if( KMultimodeCallTypeIDNoFdnCheck == GetDialTypeId() ) |
1006 { |
1012 { |
1007 TFLOGSTRING("TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. RMobileCall::EStatusDisconnecting - Before CompleteDialNoFdn"); |
1013 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETENOTIFYSTATUSCHANGE_19, "TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. RMobileCall::EStatusDisconnecting - Before CompleteDialNoFdn"); |
1008 //CompleteDialNoFdn in case remote user is busy |
1014 //CompleteDialNoFdn in case remote user is busy |
1009 CompleteDialNoFdn( aResult ); |
1015 CompleteDialNoFdn( aResult ); |
1010 } |
1016 } |
1011 else |
1017 else |
1012 { |
1018 { |
1013 TFLOGSTRING("TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. RMobileCall::EStatusDisconnecting - Before CompleteDial"); |
1019 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETENOTIFYSTATUSCHANGE_20, "TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. RMobileCall::EStatusDisconnecting - Before CompleteDial"); |
1014 //CompleteDial in case remote user is busy |
1020 //CompleteDial in case remote user is busy |
1015 CompleteDial( aResult ); |
1021 CompleteDial( aResult ); |
1016 } |
1022 } |
1017 |
1023 |
1018 } |
1024 } |
1042 RMobileCall::EStatusDisconnectingWithInband; |
1048 RMobileCall::EStatusDisconnectingWithInband; |
1043 mobileStatusChanged = ETrue; |
1049 mobileStatusChanged = ETrue; |
1044 |
1050 |
1045 if( KMultimodeCallTypeIDNoFdnCheck == GetDialTypeId() ) |
1051 if( KMultimodeCallTypeIDNoFdnCheck == GetDialTypeId() ) |
1046 { |
1052 { |
1047 TFLOGSTRING("TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. RMobileCall::EStatusDisconnectingWithInband - Before CompleteDialNoFdn"); |
1053 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETENOTIFYSTATUSCHANGE_21, "TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. RMobileCall::EStatusDisconnectingWithInband - Before CompleteDialNoFdn"); |
1048 //CompleteDialNoFdn in case remote user is busy |
1054 //CompleteDialNoFdn in case remote user is busy |
1049 CompleteDialNoFdn( aResult ); |
1055 CompleteDialNoFdn( aResult ); |
1050 } |
1056 } |
1051 else |
1057 else |
1052 { |
1058 { |
1053 TFLOGSTRING("TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. RMobileCall::EStatusDisconnectingWithInband - Before CompleteDial"); |
1059 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETENOTIFYSTATUSCHANGE_22, "TSY: CMmVoiceCallTsy::CompleteNotifyStatusChange. RMobileCall::EStatusDisconnectingWithInband - Before CompleteDial"); |
1054 //CompleteDial in case remote user is busy |
1060 //CompleteDial in case remote user is busy |
1055 CompleteDial( aResult ); |
1061 CompleteDial( aResult ); |
1056 } |
1062 } |
1057 |
1063 |
1058 //update DTMF capabilities. |
1064 //update DTMF capabilities. |
1202 TInt CMmVoiceCallTsy::Dial( |
1208 TInt CMmVoiceCallTsy::Dial( |
1203 const TTsyReqHandle aTsyReqHandle, |
1209 const TTsyReqHandle aTsyReqHandle, |
1204 const TDesC8* aCallParams, |
1210 const TDesC8* aCallParams, |
1205 TDesC* aTelNumber ) |
1211 TDesC* aTelNumber ) |
1206 { |
1212 { |
1207 TFLOGSTRING3("TSY: CMmVoiceCallTsy::Dial. Req handle: %d, Call name: %S", aTsyReqHandle, &iCallName); |
1213 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_DIAL_1, "TSY: CMmVoiceCallTsy::Dial. Req handle: %u, Call name: %S", aTsyReqHandle, iCallName); |
1208 |
1214 |
1209 TBool isDialISV = iIsDialISV; |
1215 TBool isDialISV = iIsDialISV; |
1210 iIsDialISV = EFalse; |
1216 iIsDialISV = EFalse; |
1211 |
1217 |
1212 if ( aCallParams->Length()!= 0 ) |
1218 if ( aCallParams->Length()!= 0 ) |
1213 { |
1219 { |
1214 if ( sizeof( RMobileCall::TCallParams ) > aCallParams->Length() ) |
1220 if ( sizeof( RMobileCall::TCallParams ) > aCallParams->Length() ) |
1215 { |
1221 { |
1216 TFLOGSTRING ("TSY: CMmVoiceCallTsy::Dial bad size argument"); |
1222 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_DIAL_2, "TSY: CMmVoiceCallTsy::Dial bad size argument"); |
1217 // Complete the request with appropiate error |
1223 // Complete the request with appropiate error |
1218 return KErrArgument; |
1224 return KErrArgument; |
1219 } |
1225 } |
1220 } |
1226 } |
1221 CMmCallList* callList = iMmPhone->CallList(); |
1227 CMmCallList* callList = iMmPhone->CallList(); |
1289 //reset exit code |
1295 //reset exit code |
1290 iLastExitCode = KErrNone; |
1296 iLastExitCode = KErrNone; |
1291 |
1297 |
1292 if ( KETelExt3rdPartyV1 == extensionId && !isDialISV ) |
1298 if ( KETelExt3rdPartyV1 == extensionId && !isDialISV ) |
1293 { |
1299 { |
1294 TFLOGSTRING("TSY: CMmVoiceCallTsy::Dial - KErrArgument"); |
1300 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_DIAL_3, "TSY: CMmVoiceCallTsy::Dial - KErrArgument"); |
1295 //Complete the request with appropiate error |
1301 //Complete the request with appropiate error |
1296 ReqCompleted ( aTsyReqHandle, KErrArgument ); |
1302 ReqCompleted ( aTsyReqHandle, KErrArgument ); |
1297 SetDialFlag( EFalse ); |
1303 SetDialFlag( EFalse ); |
1298 } |
1304 } |
1299 |
1305 |
1300 else if ( ERfsStateInfoInactive == iMmPhone->GetRfStateInfo() ) |
1306 else if ( ERfsStateInfoInactive == iMmPhone->GetRfStateInfo() ) |
1301 { |
1307 { |
1302 TFLOGSTRING("TSY: Offline mode ON, Dial request is not allowed" ); |
1308 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_DIAL_4, "TSY: Offline mode ON, Dial request is not allowed" ); |
1303 ret = CMmCommonStaticUtility::EpocErrorCode( |
1309 ret = CMmCommonStaticUtility::EpocErrorCode( |
1304 KErrGeneral, KErrGsmOfflineOpNotAllowed ); |
1310 KErrGeneral, KErrGsmOfflineOpNotAllowed ); |
1305 |
1311 |
1306 //Complete the request with appropiate error |
1312 //Complete the request with appropiate error |
1307 ReqCompleted ( aTsyReqHandle, ret ); |
1313 ReqCompleted ( aTsyReqHandle, ret ); |
1313 { |
1319 { |
1314 //The request cannot be forwarded since this call object |
1320 //The request cannot be forwarded since this call object |
1315 //is still in use. |
1321 //is still in use. |
1316 //Complete request with status value informing the client about |
1322 //Complete request with status value informing the client about |
1317 //the situation. |
1323 //the situation. |
1318 TFLOGSTRING("TSY: CMmVoiceCallTsy::Dial - KErrNotReady"); |
1324 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_DIAL_5, "TSY: CMmVoiceCallTsy::Dial - KErrNotReady"); |
1319 ReqCompleted( aTsyReqHandle, KErrNotReady ); |
1325 ReqCompleted( aTsyReqHandle, KErrNotReady ); |
1320 SetDialFlag( EFalse ); |
1326 SetDialFlag( EFalse ); |
1321 } |
1327 } |
1322 |
1328 |
1323 else if ( ( 0 < dialHandle ) || ( ( KETelExt3rdPartyV1 == extensionId ) |
1329 else if ( ( 0 < dialHandle ) || ( ( KETelExt3rdPartyV1 == extensionId ) |
1324 && ( 0 < dialHandleISV ) && !i3rdPartyEmergencyNumberCheckDone ) ) |
1330 && ( 0 < dialHandleISV ) && !i3rdPartyEmergencyNumberCheckDone ) ) |
1325 { |
1331 { |
1326 //The request is already processing because of previous request |
1332 //The request is already processing because of previous request |
1327 //Complete request with status value informing the client about |
1333 //Complete request with status value informing the client about |
1328 //the situation. |
1334 //the situation. |
1329 TFLOGSTRING("TSY: CMmVoiceCallTsy::Dial - KErrServerBusy"); |
1335 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_DIAL_6, "TSY: CMmVoiceCallTsy::Dial - KErrServerBusy"); |
1330 ReqCompleted( aTsyReqHandle, KErrServerBusy ); |
1336 ReqCompleted( aTsyReqHandle, KErrServerBusy ); |
1331 SetDialFlag( EFalse ); |
1337 SetDialFlag( EFalse ); |
1332 } |
1338 } |
1333 |
1339 |
1334 else if ( ( activeCall ) && ( KETelExt3rdPartyV1 == extensionId ) |
1340 else if ( ( activeCall ) && ( KETelExt3rdPartyV1 == extensionId ) |
1335 && ( KETelExt3rdPartyV1 != activeCall->GetExtensionId() ) ) |
1341 && ( KETelExt3rdPartyV1 != activeCall->GetExtensionId() ) ) |
1336 { |
1342 { |
1337 //a 3rd party client call cannot put on Hold a "normal" call |
1343 //a 3rd party client call cannot put on Hold a "normal" call |
1338 TFLOGSTRING("TSY: CMmVoiceCallTsy::Dial - KErrServerBusy"); |
1344 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_DIAL_7, "TSY: CMmVoiceCallTsy::Dial - KErrServerBusy"); |
1339 ReqCompleted( aTsyReqHandle, KErrServerBusy ); |
1345 ReqCompleted( aTsyReqHandle, KErrServerBusy ); |
1340 SetDialFlag( EFalse ); |
1346 SetDialFlag( EFalse ); |
1341 } |
1347 } |
1342 //3rd party client is not allowed to call to a emergency call number |
1348 //3rd party client is not allowed to call to a emergency call number |
1343 //Number check for 3rd clients must be done always |
1349 //Number check for 3rd clients must be done always |
1344 |
1350 |
1345 else if ( extensionId == KETelExt3rdPartyV1 && |
1351 else if ( extensionId == KETelExt3rdPartyV1 && |
1346 !i3rdPartyEmergencyNumberCheckDone ) |
1352 !i3rdPartyEmergencyNumberCheckDone ) |
1347 { |
1353 { |
1348 TFLOGSTRING("TSY: CMmVoiceCallTsy::Dial - For 3rd party client number check must be done every time "); |
1354 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_DIAL_8, "TSY: CMmVoiceCallTsy::Dial - For 3rd party client number check must be done every time "); |
1349 |
1355 |
1350 TInt ret( KErrGeneral ); |
1356 TInt ret( KErrGeneral ); |
1351 |
1357 |
1352 TFLOGSTRING("TSY: CMmVoiceCallTsy::Dial - 3rd party client number check iNumberCheckMode.iCheckMode = RMmCustomAPI::EEmerNumberCheckNormal "); |
1358 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_DIAL_9, "TSY: CMmVoiceCallTsy::Dial - 3rd party client number check iNumberCheckMode.iCheckMode = RMmCustomAPI::EEmerNumberCheckNormal "); |
1353 iNumberCheckMode.iCheckMode = RMmCustomAPI::EEmerNumberCheckNormal; |
1359 iNumberCheckMode.iCheckMode = RMmCustomAPI::EEmerNumberCheckNormal; |
1354 iNumberCheckMode.iNumber.Copy( *aTelNumber ); |
1360 iNumberCheckMode.iNumber.Copy( *aTelNumber ); |
1355 |
1361 |
1356 //Save parameter for Dial req after number check |
1362 //Save parameter for Dial req after number check |
1357 iISVCallParams = aCallParams; |
1363 iISVCallParams = aCallParams; |
1426 } |
1432 } |
1427 // in case the LTSY does not support required UUS, |
1433 // in case the LTSY does not support required UUS, |
1428 // complete the dial with error value |
1434 // complete the dial with error value |
1429 if ( KErrNone != ret ) |
1435 if ( KErrNone != ret ) |
1430 { |
1436 { |
1431 TFLOGSTRING2("TSY: CMmVoiceCallTsy::Dial - UUS ERROR:%d", ret ); |
1437 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_DIAL_12, "TSY: CMmVoiceCallTsy::Dial - UUS ERROR:%d", ret ); |
1432 // Complete the request with appropiate error |
1438 // Complete the request with appropiate error |
1433 ReqCompleted ( aTsyReqHandle, KErrGsmCCResourceNotAvailable ); |
1439 ReqCompleted ( aTsyReqHandle, KErrGsmCCResourceNotAvailable ); |
1434 ClearCallStatus(); |
1440 ClearCallStatus(); |
1435 return KErrNone; |
1441 return KErrNone; |
1436 } |
1442 } |
1507 // |
1513 // |
1508 TInt CMmVoiceCallTsy::AnswerIncomingCall( |
1514 TInt CMmVoiceCallTsy::AnswerIncomingCall( |
1509 const TTsyReqHandle aTsyReqHandle, |
1515 const TTsyReqHandle aTsyReqHandle, |
1510 const TDesC8* aCallParams ) |
1516 const TDesC8* aCallParams ) |
1511 { |
1517 { |
1512 TFLOGSTRING2("TSY: CMmVoiceCallTsy::AnswerIncomingCall. \n\t\t\t Handle:%d", aTsyReqHandle); |
1518 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_ANSWERINCOMINGCALL_1, "TSY: CMmVoiceCallTsy::AnswerIncomingCall. \n\t\t\t Handle:%d", aTsyReqHandle); |
1513 |
1519 |
1514 TInt trapError( KErrNone ); |
1520 TInt trapError( KErrNone ); |
1515 |
1521 |
1516 //ExtensionId unknown.Set to -1 |
1522 //ExtensionId unknown.Set to -1 |
1517 TInt extensionId ( -1 ); |
1523 TInt extensionId ( -1 ); |
1660 // --------------------------------------------------------------------------- |
1666 // --------------------------------------------------------------------------- |
1661 // |
1667 // |
1662 TInt CMmVoiceCallTsy::HangUp( |
1668 TInt CMmVoiceCallTsy::HangUp( |
1663 const TTsyReqHandle aTsyReqHandle ) |
1669 const TTsyReqHandle aTsyReqHandle ) |
1664 { |
1670 { |
1665 TFLOGSTRING3("TSY: CMmVoiceCallTsy::HangUp. Req handle: %d, Call name: %S", aTsyReqHandle, &iCallName); |
1671 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_HANGUP_1, "TSY: CMmVoiceCallTsy::HangUp. Req handle: %u, Call name: %S", aTsyReqHandle, iCallName); |
1666 |
1672 |
1667 TInt ret( KErrNone ); |
1673 TInt ret( KErrNone ); |
1668 TInt trapError( KErrNone ); |
1674 TInt trapError( KErrNone ); |
1669 TInt hangUpCause( KErrNone ); |
1675 TInt hangUpCause( KErrNone ); |
1670 |
1676 |
1782 // --------------------------------------------------------------------------- |
1788 // --------------------------------------------------------------------------- |
1783 // |
1789 // |
1784 void CMmVoiceCallTsy::CompleteHangUp( |
1790 void CMmVoiceCallTsy::CompleteHangUp( |
1785 TInt aResult ) |
1791 TInt aResult ) |
1786 { |
1792 { |
1787 TFLOGSTRING2("TSY: CMmVoiceCallTsy::CompleteHangUp.\n \t\t\t Result:%d", aResult ); |
1793 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETEHANGUP_1, "TSY: CMmVoiceCallTsy::CompleteHangUp.\n \t\t\t Result:%d", aResult ); |
1788 TFLOGSTRING3("TSY: CMmVoiceCallTsy::CompleteHangUp. Call Id:%d Call name:%S", iCallId, &iCallName); |
1794 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETEHANGUP_2, "TSY: CMmVoiceCallTsy::CompleteHangUp. Call Id:%d Call name:%S", iCallId, iCallName); |
1789 |
1795 |
1790 TInt ret( KErrNone ); |
1796 TInt ret( KErrNone ); |
1791 |
1797 |
1792 // Complete for HangUp request |
1798 // Complete for HangUp request |
1793 // (not to DialCancel or AnswerIncomingCallCancel ) |
1799 // (not to DialCancel or AnswerIncomingCallCancel ) |
2147 // |
2153 // |
2148 TInt CMmVoiceCallTsy::DialEmergencyCall( |
2154 TInt CMmVoiceCallTsy::DialEmergencyCall( |
2149 const TTsyReqHandle aTsyReqHandle, |
2155 const TTsyReqHandle aTsyReqHandle, |
2150 const TDataPackage& aNumber ) |
2156 const TDataPackage& aNumber ) |
2151 { |
2157 { |
2152 TFLOGSTRING2("TSY: CMmVoiceCallTsy::DialEmergencyCall number %S", aNumber.Des1u()); |
2158 OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_DIALEMERGENCYCALL_1, "TSY: CMmVoiceCallTsy::DialEmergencyCall number %S", *(aNumber.Des1u())); |
2153 |
2159 |
2154 if(aNumber.Des1u()->MaxLength() > RMobileENStore::KEmergencyNumberSize) |
2160 if(aNumber.Des1u()->MaxLength() > RMobileENStore::KEmergencyNumberSize) |
2155 { |
2161 { |
2156 // The emergency call number is too big |
2162 // The emergency call number is too big |
2157 ReqCompleted( aTsyReqHandle, KErrArgument); |
2163 ReqCompleted( aTsyReqHandle, KErrArgument); |
2203 // --------------------------------------------------------------------------- |
2209 // --------------------------------------------------------------------------- |
2204 // |
2210 // |
2205 void CMmVoiceCallTsy::CompleteDialEmergencyCall( |
2211 void CMmVoiceCallTsy::CompleteDialEmergencyCall( |
2206 TInt aResult ) |
2212 TInt aResult ) |
2207 { |
2213 { |
2208 TFLOGSTRING2("TSY: CMmVoiceCallTsy::CompleteDialEmergencyCall. Result:%d", aResult ); |
2214 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETEDIALEMERGENCYCALL_1, "TSY: CMmVoiceCallTsy::CompleteDialEmergencyCall. Result:%d", aResult ); |
2209 TFLOGSTRING3("TSY: CMmVoiceCallTsy::CompleteDialEmergencyCall. Call Id:%d Call name:%S", iCallId, &iCallName); |
2215 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETEDIALEMERGENCYCALL_2, "TSY: CMmVoiceCallTsy::CompleteDialEmergencyCall. Call Id:%d Call name:%S", iCallId, iCallName); |
2210 |
2216 |
2211 //reset req handle. Returns the deleted req handle |
2217 //reset req handle. Returns the deleted req handle |
2212 TTsyReqHandle reqHandle = iTsyReqHandleStore-> |
2218 TTsyReqHandle reqHandle = iTsyReqHandleStore-> |
2213 ResetTsyReqHandle( EMultimodeMobileCallDialEmergencyCall ); |
2219 ResetTsyReqHandle( EMultimodeMobileCallDialEmergencyCall ); |
2214 |
2220 |
2266 aInfo ); |
2272 aInfo ); |
2267 RMobilePhone::TMultimodeType& callInfo = ( *infoParamsPckg )(); |
2273 RMobilePhone::TMultimodeType& callInfo = ( *infoParamsPckg )(); |
2268 |
2274 |
2269 // get extensionid from the recieved data |
2275 // get extensionid from the recieved data |
2270 extensionId = callInfo.ExtensionId(); |
2276 extensionId = callInfo.ExtensionId(); |
2271 TFLOGSTRING2("TSY: CMmVoiceCallTsy::FillMobileCallInfo - extensionid=%d",callInfo.ExtensionId()); |
2277 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_FILLMOBILECALLINFO_2, "TSY: CMmVoiceCallTsy::FillMobileCallInfo - extensionid=%d",callInfo.ExtensionId()); |
2272 } |
2278 } |
2273 |
2279 |
2274 //TMobileCallInfoV1 |
2280 //TMobileCallInfoV1 |
2275 if ( KETelExtMultimodeV1 == extensionId || |
2281 if ( KETelExtMultimodeV1 == extensionId || |
2276 KETelExtMultimodeV3 == extensionId || |
2282 KETelExtMultimodeV3 == extensionId || |
2277 KEtelExtMultimodeV7 == extensionId || |
2283 KEtelExtMultimodeV7 == extensionId || |
2278 KEtelExtMultimodeV8 == extensionId ) |
2284 KEtelExtMultimodeV8 == extensionId ) |
2279 { |
2285 { |
2280 TFLOGSTRING("TSY: CMmVoiceCallTsy::FillMobileCallInfo - V1"); |
2286 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_FILLMOBILECALLINFO_3, "TSY: CMmVoiceCallTsy::FillMobileCallInfo - V1"); |
2281 // Set ret to KErrNone. We can fill this parameter class. |
2287 // Set ret to KErrNone. We can fill this parameter class. |
2282 ret = KErrNone; |
2288 ret = KErrNone; |
2283 |
2289 |
2284 RMobileCall::TMobileCallInfoV1Pckg* paramsPckgV1 = |
2290 RMobileCall::TMobileCallInfoV1Pckg* paramsPckgV1 = |
2285 reinterpret_cast<RMobileCall::TMobileCallInfoV1Pckg*>( aInfo ); |
2291 reinterpret_cast<RMobileCall::TMobileCallInfoV1Pckg*>( aInfo ); |
2295 // TMobileCallInfoV3 |
2301 // TMobileCallInfoV3 |
2296 if ( KETelExtMultimodeV3 == extensionId || |
2302 if ( KETelExtMultimodeV3 == extensionId || |
2297 KEtelExtMultimodeV7 == extensionId || |
2303 KEtelExtMultimodeV7 == extensionId || |
2298 KEtelExtMultimodeV8 == extensionId ) |
2304 KEtelExtMultimodeV8 == extensionId ) |
2299 { |
2305 { |
2300 TFLOGSTRING("TSY: CMmVoiceCallTsy::FillMobileCallInfo - V3"); |
2306 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_FILLMOBILECALLINFO_4, "TSY: CMmVoiceCallTsy::FillMobileCallInfo - V3"); |
2301 |
2307 |
2302 RMobileCall::TMobileCallInfoV3Pckg* paramsPckgV3 = |
2308 RMobileCall::TMobileCallInfoV3Pckg* paramsPckgV3 = |
2303 reinterpret_cast<RMobileCall::TMobileCallInfoV3Pckg*>( aInfo ); |
2309 reinterpret_cast<RMobileCall::TMobileCallInfoV3Pckg*>( aInfo ); |
2304 RMobileCall::TMobileCallInfoV3& info = ( *paramsPckgV3 )(); |
2310 RMobileCall::TMobileCallInfoV3& info = ( *paramsPckgV3 )(); |
2305 |
2311 |
2309 |
2315 |
2310 // TMobileCallInfoV7 |
2316 // TMobileCallInfoV7 |
2311 if ( KEtelExtMultimodeV7 == extensionId || |
2317 if ( KEtelExtMultimodeV7 == extensionId || |
2312 KEtelExtMultimodeV8 == extensionId ) |
2318 KEtelExtMultimodeV8 == extensionId ) |
2313 { |
2319 { |
2314 TFLOGSTRING("TSY: CMmVoiceCallTsy::FillMobileCallInfo - V7"); |
2320 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_FILLMOBILECALLINFO_5, "TSY: CMmVoiceCallTsy::FillMobileCallInfo - V7"); |
2315 |
2321 |
2316 RMobileCall::TMobileCallInfoV7Pckg* paramsPckgV7 = |
2322 RMobileCall::TMobileCallInfoV7Pckg* paramsPckgV7 = |
2317 reinterpret_cast<RMobileCall::TMobileCallInfoV7Pckg*>( aInfo ); |
2323 reinterpret_cast<RMobileCall::TMobileCallInfoV7Pckg*>( aInfo ); |
2318 RMobileCall::TMobileCallInfoV7& info = ( *paramsPckgV7 )(); |
2324 RMobileCall::TMobileCallInfoV7& info = ( *paramsPckgV7 )(); |
2319 |
2325 |
2322 } |
2328 } |
2323 |
2329 |
2324 // TMobileCallInfoV8 |
2330 // TMobileCallInfoV8 |
2325 if ( KEtelExtMultimodeV8 == extensionId ) |
2331 if ( KEtelExtMultimodeV8 == extensionId ) |
2326 { |
2332 { |
2327 TFLOGSTRING("TSY: CMmVoiceCallTsy::FillMobileCallInfo - V8"); |
2333 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_FILLMOBILECALLINFO_6, "TSY: CMmVoiceCallTsy::FillMobileCallInfo - V8"); |
2328 |
2334 |
2329 RMobileCall::TMobileCallInfoV8Pckg* paramsPckgV8 = |
2335 RMobileCall::TMobileCallInfoV8Pckg* paramsPckgV8 = |
2330 reinterpret_cast<RMobileCall::TMobileCallInfoV8Pckg*>( aInfo ); |
2336 reinterpret_cast<RMobileCall::TMobileCallInfoV8Pckg*>( aInfo ); |
2331 RMobileCall::TMobileCallInfoV8& info = ( *paramsPckgV8 )(); |
2337 RMobileCall::TMobileCallInfoV8& info = ( *paramsPckgV8 )(); |
2332 |
2338 |
2333 // fill specific data |
2339 // fill specific data |
2334 iMmCallExtInterface->FillMobileCallInfoV8( &info ); |
2340 iMmCallExtInterface->FillMobileCallInfoV8( &info ); |
2335 } |
2341 } |
2336 |
2342 |
2337 TFLOGSTRING2("TSY: CMmVoiceCallTsy::FillMobileCallInfo end. ret=%d",ret); |
2343 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_FILLMOBILECALLINFO_7, "TSY: CMmVoiceCallTsy::FillMobileCallInfo end. ret=%d",ret); |
2338 |
2344 |
2339 return ret; |
2345 return ret; |
2340 } |
2346 } |
2341 |
2347 |
2342 // --------------------------------------------------------------------------- |
2348 // --------------------------------------------------------------------------- |
2450 TTsyReqHandle reqHandle = iTsyReqHandleStore-> |
2456 TTsyReqHandle reqHandle = iTsyReqHandleStore-> |
2451 ResetTsyReqHandle( EMultimodeMobileCallSwap ); |
2457 ResetTsyReqHandle( EMultimodeMobileCallSwap ); |
2452 |
2458 |
2453 if ( EMultimodeCallReqHandleUnknown != reqHandle ) |
2459 if ( EMultimodeCallReqHandleUnknown != reqHandle ) |
2454 { |
2460 { |
2455 TFLOGSTRING2("TSY: Swap complete, Call ID: %d", iCallId ); |
2461 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETESWAP_1, "TSY: Swap complete, Call ID: %d", iCallId ); |
2456 ReqCompleted( reqHandle, aResult ); |
2462 ReqCompleted( reqHandle, aResult ); |
2457 } |
2463 } |
2458 (reinterpret_cast<CMmVoiceLineTsy*>( iMmLine ))-> |
2464 (reinterpret_cast<CMmVoiceLineTsy*>( iMmLine ))-> |
2459 SetSwapStatus( CMmVoiceLineTsy::EStatusSwapNotRequested ); |
2465 SetSwapStatus( CMmVoiceLineTsy::EStatusSwapNotRequested ); |
2460 } |
2466 } |
2726 // (other items were commented in a header). |
2732 // (other items were commented in a header). |
2727 // --------------------------------------------------------------------------- |
2733 // --------------------------------------------------------------------------- |
2728 // |
2734 // |
2729 void CMmVoiceCallTsy::Complete3rdPartyCallNbrCheck( TBool aIsEmergencyNbr ) |
2735 void CMmVoiceCallTsy::Complete3rdPartyCallNbrCheck( TBool aIsEmergencyNbr ) |
2730 { |
2736 { |
2731 TFLOGSTRING("TSY: CMmVoiceCallTsy::Complete3rdPartyCallNbrCheck " ); |
2737 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETE3RDPARTYCALLNBRCHECK_1, "TSY: CMmVoiceCallTsy::Complete3rdPartyCallNbrCheck " ); |
2732 |
2738 |
2733 if( i3rdPartyEmergencyNumberCheckDone ) |
2739 if( i3rdPartyEmergencyNumberCheckDone ) |
2734 { |
2740 { |
2735 if( aIsEmergencyNbr ) |
2741 if( aIsEmergencyNbr ) |
2736 { |
2742 { |
2737 TFLOGSTRING("TSY: CMmVoiceCallTsy::Complete3rdPartyCallNbrCheck - Emergency number" ); |
2743 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETE3RDPARTYCALLNBRCHECK_2, "TSY: CMmVoiceCallTsy::Complete3rdPartyCallNbrCheck - Emergency number" ); |
2738 CompleteDial( KErrNotSupported ); |
2744 CompleteDial( KErrNotSupported ); |
2739 i3rdPartyEmergencyNumberCheckDone = EFalse; |
2745 i3rdPartyEmergencyNumberCheckDone = EFalse; |
2740 } |
2746 } |
2741 else |
2747 else |
2742 { |
2748 { |
2743 TFLOGSTRING("TSY: CMmVoiceCallTsy::Complete3rdPartyCallNbrCheck - NOT Emergency nbr - DIAL" ); |
2749 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_COMPLETE3RDPARTYCALLNBRCHECK_3, "TSY: CMmVoiceCallTsy::Complete3rdPartyCallNbrCheck - NOT Emergency nbr - DIAL" ); |
2744 i3rdPartyEmergencyNumberCheckDone = ETrue; |
2750 i3rdPartyEmergencyNumberCheckDone = ETrue; |
2745 iIsDialISV = ETrue; |
2751 iIsDialISV = ETrue; |
2746 |
2752 |
2747 TTsyReqHandle reqHandle = iTsyReqHandleStore-> |
2753 TTsyReqHandle reqHandle = iTsyReqHandleStore-> |
2748 GetTsyReqHandle( EMultimodeCallDialISV ); |
2754 GetTsyReqHandle( EMultimodeCallDialISV ); |
2775 TInt CMmVoiceCallTsy::DialNoFdnCheck( |
2781 TInt CMmVoiceCallTsy::DialNoFdnCheck( |
2776 const TTsyReqHandle aTsyReqHandle, |
2782 const TTsyReqHandle aTsyReqHandle, |
2777 const TDesC8* aCallParams, |
2783 const TDesC8* aCallParams, |
2778 TDesC* aTelNumber ) |
2784 TDesC* aTelNumber ) |
2779 { |
2785 { |
2780 TFLOGSTRING3("TSY: CMmVoiceCallTsy::DialNoFdnCheck. Req handle: %d, Call name: %S", aTsyReqHandle, &iCallName ); |
2786 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_DIALNOFDNCHECK_1, "TSY: CMmVoiceCallTsy::DialNoFdnCheck. Req handle: %u, Call name: %S", (TUint)aTsyReqHandle, iCallName ); |
2781 TInt ret( KErrGeneral ); |
2787 TInt ret( KErrGeneral ); |
2782 |
2788 |
2783 // Check that there is no dial on going for another call |
2789 // Check that there is no dial on going for another call |
2784 CMmCallList* callList = iMmPhone->CallList(); |
2790 CMmCallList* callList = iMmPhone->CallList(); |
2785 |
2791 |
2830 |
2836 |
2831 SetDialTypeId( KMultimodeCallTypeIDNoFdnCheck ); |
2837 SetDialTypeId( KMultimodeCallTypeIDNoFdnCheck ); |
2832 |
2838 |
2833 if ( ERfsStateInfoInactive == iMmPhone->GetRfStateInfo() ) |
2839 if ( ERfsStateInfoInactive == iMmPhone->GetRfStateInfo() ) |
2834 { |
2840 { |
2835 TFLOGSTRING("TSY: Offline mode ON, DialNoFdnCheck request is not allowed" ); |
2841 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_DIALNOFDNCHECK_2, "TSY: Offline mode ON, DialNoFdnCheck request is not allowed" ); |
2836 ret = CMmCommonStaticUtility::EpocErrorCode( |
2842 ret = CMmCommonStaticUtility::EpocErrorCode( |
2837 KErrGeneral, KErrGsmOfflineOpNotAllowed ); |
2843 KErrGeneral, KErrGsmOfflineOpNotAllowed ); |
2838 |
2844 |
2839 // Complete the request with appropiate error |
2845 // Complete the request with appropiate error |
2840 ReqCompleted ( aTsyReqHandle, ret ); |
2846 ReqCompleted ( aTsyReqHandle, ret ); |
3002 { |
3008 { |
3003 if ( iTelephonyAudioControlSetup ) |
3009 if ( iTelephonyAudioControlSetup ) |
3004 { |
3010 { |
3005 iTelephonyAudioControl->CallStateChange( aCallName, |
3011 iTelephonyAudioControl->CallStateChange( aCallName, |
3006 aMobileCallStatus ); |
3012 aMobileCallStatus ); |
3007 TFLOGSTRING2("TSY: CMmVoiceCallTsy::UpdateCallRoutingControl. Call routing state changed to EStatusDialling: Call name:%S", &iCallName ); |
3013 OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_UPDATECALLROUTINGCONTROL_1, "TSY: CMmVoiceCallTsy::UpdateCallRoutingControl. Call routing state changed to EStatusDialling: Call name:%S", iCallName ); |
3008 } |
3014 } |
3009 else |
3015 else |
3010 { |
3016 { |
3011 iTelephonyAudioControl->SetupTelephonyAudio( |
3017 iTelephonyAudioControl->SetupTelephonyAudio( |
3012 aCallName, |
3018 aCallName, |
3013 MTelephonyAudioControl::ECallTypeVoice, |
3019 MTelephonyAudioControl::ECallTypeVoice, |
3014 iEmergencyCall, |
3020 iEmergencyCall, |
3015 iCallDirection ); |
3021 iCallDirection ); |
3016 TFLOGSTRING2("TSY: CMmVoiceCallTsy::CMmVoiceCallTsy::UpdateCallRoutingControl. Call routing setup: Call name:%S", &iCallName ); |
3022 OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMVOICECALLTSY_UPDATECALLROUTINGCONTROL_2, "TSY: CMmVoiceCallTsy::CMmVoiceCallTsy::UpdateCallRoutingControl. Call routing setup: Call name:%S", iCallName ); |
3017 iTelephonyAudioControlSetup = ETrue; |
3023 iTelephonyAudioControlSetup = ETrue; |
3018 } |
3024 } |
3019 } |
3025 } |
3020 } |
3026 } |
3021 |
3027 |