14 // |
14 // |
15 |
15 |
16 |
16 |
17 |
17 |
18 // INCLUDE FILES |
18 // INCLUDE FILES |
19 |
|
20 #include "OstTraceDefinitions.h" |
|
21 #ifdef OST_TRACE_COMPILER_IN_USE |
|
22 #include "CMmMessageRouterProxyTraces.h" |
|
23 #endif |
|
24 |
|
25 #include "cmmmessagerouterproxy.h" |
19 #include "cmmmessagerouterproxy.h" |
26 #include "cmmvoicecalltsy.h" |
20 #include "cmmvoicecalltsy.h" |
27 #include "cmmdatacalltsy.h" |
21 #include "cmmdatacalltsy.h" |
28 #include "cmmcallextinterface.h" |
22 #include "cmmcallextinterface.h" |
29 #include "cmmconferencecalltsy.h" |
23 #include "cmmconferencecalltsy.h" |
67 } |
61 } |
68 |
62 |
69 CMmMessageRouterProxy* CMmMessageRouterProxy::NewL( |
63 CMmMessageRouterProxy* CMmMessageRouterProxy::NewL( |
70 CTsyDelegates& aTsyDelegates ) |
64 CTsyDelegates& aTsyDelegates ) |
71 { |
65 { |
72 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMMESSAGEROUTERPROXY_CTOR_1, "TSY: CMmMessageRouterProxy::NewL." ); |
66 TFLOGSTRING("TSY: CMmMessageRouterProxy::NewL." ); |
73 CMmMessageRouterProxy* const routerproxy = |
67 CMmMessageRouterProxy* const routerproxy = |
74 new ( ELeave ) CMmMessageRouterProxy(); |
68 new ( ELeave ) CMmMessageRouterProxy(); |
75 CleanupStack::PushL( routerproxy ); |
69 CleanupStack::PushL( routerproxy ); |
76 routerproxy->iTsyDelegates = &aTsyDelegates; |
70 routerproxy->iTsyDelegates = &aTsyDelegates; |
77 routerproxy->ConstructL(); |
71 routerproxy->ConstructL(); |
96 void CMmMessageRouterProxy::Complete( |
90 void CMmMessageRouterProxy::Complete( |
97 TInt aIpc, |
91 TInt aIpc, |
98 CMmDataPackage* aData, |
92 CMmDataPackage* aData, |
99 TInt aResult ) |
93 TInt aResult ) |
100 { |
94 { |
101 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMMESSAGEROUTERPROXY_COMPLETE_1, "TSY: CMmMessageRouterProxy::Complete. IPC = %d, result: %d", aIpc, aResult); |
95 TFLOGSTRING3("TSY: CMmMessageRouterProxy::Complete. IPC = %d, result: %d", aIpc, aResult); |
102 RouteCompletion( aIpc, aData, aResult ); |
96 RouteCompletion( aIpc, aData, aResult ); |
103 } |
97 } |
104 |
98 |
105 // --------------------------------------------------------------------------- |
99 // --------------------------------------------------------------------------- |
106 // CMmMessageRouterProxy::Complete |
100 // CMmMessageRouterProxy::Complete |
260 const CPhoneBookDataPackage* phonebookData = REINTERPRET_CAST( |
254 const CPhoneBookDataPackage* phonebookData = REINTERPRET_CAST( |
261 const CPhoneBookDataPackage*, aDataPackage ); |
255 const CPhoneBookDataPackage*, aDataPackage ); |
262 |
256 |
263 TName phoneBookName; |
257 TName phoneBookName; |
264 phonebookData->GetPhoneBookName( phoneBookName ); |
258 phonebookData->GetPhoneBookName( phoneBookName ); |
265 OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMMESSAGEROUTERPROXY_ROUTECOMPLETIONL_1, "TSY: CMmMessageRouterProxy::RouteCompletion: PB Name: %S", phoneBookName); |
259 TFLOGSTRING2("TSY: CMmMessageRouterProxy::RouteCompletion: PB Name: %S", &phoneBookName); |
266 |
260 |
267 for( TInt i = 0; i < iMmPhone->PBList()->GetNumberOfObjects(); i++ ) |
261 for( TInt i = 0; i < iMmPhone->PBList()->GetNumberOfObjects(); i++ ) |
268 { |
262 { |
269 CMmPhoneBookStoreTsy* pbStore = iMmPhone->PBList()-> |
263 CMmPhoneBookStoreTsy* pbStore = iMmPhone->PBList()-> |
270 GetMmPBByIndex( i ); |
264 GetMmPBByIndex( i ); |
274 mmObject = static_cast<CBase*>( pbStore ); |
268 mmObject = static_cast<CBase*>( pbStore ); |
275 } |
269 } |
276 } |
270 } |
277 if ( NULL == mmObject ) |
271 if ( NULL == mmObject ) |
278 { |
272 { |
279 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMMESSAGEROUTERPROXY_ROUTECOMPLETIONL_2, "TSY: CMmMessageRouterProxy::RouteCompletion: PB object not found!"); |
273 TFLOGSTRING("TSY: CMmMessageRouterProxy::RouteCompletion: PB object not found!"); |
280 iMmPhone->SetPBInitActiveStatus( EFalse ); |
274 iMmPhone->SetPBInitActiveStatus( EFalse ); |
281 } |
275 } |
282 } |
276 } |
283 break; |
277 break; |
284 // ENStore functionality |
278 // ENStore functionality |
688 #endif //USING_CTSY_DISPATCHER |
682 #endif //USING_CTSY_DISPATCHER |
689 case ECtsyPhoneTerminateAllCallsComp: |
683 case ECtsyPhoneTerminateAllCallsComp: |
690 static_cast<CMmPhoneTsy*>( mmObject )-> |
684 static_cast<CMmPhoneTsy*>( mmObject )-> |
691 CompleteTerminateAllCallsReq( aResult ); |
685 CompleteTerminateAllCallsReq( aResult ); |
692 break; |
686 break; |
693 case ECtsyPhoneTerminateActiveCallsComp: |
687 |
694 static_cast<CMmPhoneTsy*>( mmObject )-> |
|
695 CompleteTerminateActiveCallsReq( aResult ); |
|
696 break; |
|
697 |
|
698 // Conference call functionality |
688 // Conference call functionality |
699 case EMobileConferenceCallCreateConference: |
689 case EMobileConferenceCallCreateConference: |
700 static_cast<CMmConferenceCallTsy*>( mmObject )-> |
690 static_cast<CMmConferenceCallTsy*>( mmObject )-> |
701 CompleteCreateConference( aResult ); |
691 CompleteCreateConference( aResult ); |
702 break; |
692 break; |
780 { |
770 { |
781 static_cast<CMmPhoneBookStoreTsy*>( mmObject )-> |
771 static_cast<CMmPhoneBookStoreTsy*>( mmObject )-> |
782 CompletePBStoreInitializationL( |
772 CompletePBStoreInitializationL( |
783 aResult, aDataPackage ); |
773 aResult, aDataPackage ); |
784 TBool done = EFalse; |
774 TBool done = EFalse; |
785 |
775 |
786 // NOTE: The statement above is redundant, as the loop below calls CompletePBStoreInitializationL |
776 // NOTE: The statement above is redundant, as the loop below calls CompletePBStoreInitializationL |
787 // on every phonebook store. However, we need to be certain that changing the order in which |
777 // on every phonebook store. However, we need to be certain that changing the order in which |
788 // phonebook stores are initialised won't introduce side effects. (One future improvement) |
778 // phonebook stores are initialised won't introduce side effects. (One future improvement) |
789 for( TInt i = 0; i < iMmPhone->PBList()->GetNumberOfObjects(); i++ ) |
779 for( TInt i = 0; i < iMmPhone->PBList()->GetNumberOfObjects(); i++ ) |
790 { |
780 { |
791 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMMESSAGEROUTERPROXY_ROUTECOMPLETIONL_3, "TSY: CMmMessageRouterProxy::RouteCompletion:EMmTsyPhoneBookStoreInitIPC for loop, check init statuses "); |
781 TFLOGSTRING("TSY: CMmMessageRouterProxy::RouteCompletion:EMmTsyPhoneBookStoreInitIPC for loop, check init statuses "); |
792 CMmPhoneBookStoreTsy* pbStore = iMmPhone->PBList()-> |
782 CMmPhoneBookStoreTsy* pbStore = iMmPhone->PBList()-> |
793 GetMmPBByIndex( i ); |
783 GetMmPBByIndex( i ); |
794 done = pbStore->IsPBInitDone(); |
784 done = pbStore->IsPBInitDone(); |
795 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMMESSAGEROUTERPROXY_ROUTECOMPLETIONL_4, "TSY: CMmMessageRouterProxy::RouteCompletion: active: %u, done: %u",(TUint)iMmPhone->IsPBInitActive(), (TUint)done); |
785 TFLOGSTRING3("TSY: CMmMessageRouterProxy::RouteCompletion: active: %i, done: %i",iMmPhone->IsPBInitActive(), done); |
796 if ( iMmPhone->IsPBInitActive() && !done ) |
786 if ( iMmPhone->IsPBInitActive() && !done ) |
797 { |
787 { |
798 OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMMESSAGEROUTERPROXY_ROUTECOMPLETIONL_5, "TSY: CMmMessageRouterProxy::RouteCompletion: complete also to: %S",*(pbStore->PhoneBookName())); |
788 TFLOGSTRING2("TSY: CMmMessageRouterProxy::RouteCompletion: complete also to: %S",pbStore->PhoneBookName()); |
799 mmObject = static_cast<CBase*>( pbStore ); |
789 mmObject = static_cast<CBase*>( pbStore ); |
800 static_cast<CMmPhoneBookStoreTsy*>( mmObject )-> |
790 static_cast<CMmPhoneBookStoreTsy*>( mmObject )-> |
801 CompletePBStoreInitializationL( |
791 CompletePBStoreInitializationL( |
802 aResult, aDataPackage ); |
792 aResult, aDataPackage ); |
803 } |
793 } |
2610 static_cast<CMmPhoneTsy*>( mmObject )-> |
2600 static_cast<CMmPhoneTsy*>( mmObject )-> |
2611 GetSecurityTsy()->CompleteNotifySecurityCodeInfoChange( |
2601 GetSecurityTsy()->CompleteNotifySecurityCodeInfoChange( |
2612 aDataPackage, aResult ); |
2602 aDataPackage, aResult ); |
2613 break; |
2603 break; |
2614 case EMmTsyPhoneBookStoreFdnInfoIPC: |
2604 case EMmTsyPhoneBookStoreFdnInfoIPC: |
2615 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMMESSAGEROUTERPROXY_ROUTECOMPLETIONL_6, "TSY: CMmMessageRouterProxy::RouteCompletion: route to phonetsy EMmTsyPhoneBookStoreFdnInfoIPC"); |
2605 TFLOGSTRING("TSY: CMmMessageRouterProxy::RouteCompletion: route to phonetsy EMmTsyPhoneBookStoreFdnInfoIPC"); |
2616 static_cast<CMmPhoneTsy*>( mmObject )-> |
2606 static_cast<CMmPhoneTsy*>( mmObject )-> |
2617 SaveFdnInfoDetails( aResult, aDataPackage ); |
2607 SaveFdnInfoDetails( aResult, aDataPackage ); |
2618 break; |
2608 break; |
|
2609 case ECtsyPhoneGetPreferredNetworksComp: |
|
2610 TFLOGSTRING("TSY: CMmMessageRouterProxy::RouteCompletion: route to MmNetTsy ECtsyPhoneGetPreferredNetworksComp"); |
|
2611 static_cast<CMmPhoneTsy*>( mmObject )->GetNetTsy()->CompleteGetPreferredNetworksListPhase1(aResult, aDataPackage); |
|
2612 break; |
|
2613 case ECtsyPhoneStorePreferredNetworksListComp: |
|
2614 TFLOGSTRING("TSY: CMmMessageRouterProxy::RouteCompletion: route to MmNetTsy ECtsyPhoneStorePreferredNetworksListComp"); |
|
2615 static_cast<CMmPhoneTsy*>( mmObject )->GetNetTsy()->CompleteStorePreferredNetworksList(aResult); |
|
2616 break; |
2619 default: |
2617 default: |
2620 break; |
2618 break; |
2621 } |
2619 } |
2622 |
2620 |
2623 } |
2621 } |
2653 mmObject = REINTERPRET_CAST( CBase*, |
2651 mmObject = REINTERPRET_CAST( CBase*, |
2654 iMmPhone->LineList()->GetMmLineByMode( callMode ) ); |
2652 iMmPhone->LineList()->GetMmLineByMode( callMode ) ); |
2655 |
2653 |
2656 if ( NULL == mmObject ) |
2654 if ( NULL == mmObject ) |
2657 { |
2655 { |
2658 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMMESSAGEROUTERPROXY_ROUTECOMPLETIONL_7, "TSY: CMmMessageRouterProxy::RouteCompletion: Call object not found for mobile Call Info!"); |
2656 TFLOGSTRING("TSY: CMmMessageRouterProxy::RouteCompletion: Call object not found for mobile Call Info!"); |
2659 } |
2657 } |
2660 else |
2658 else |
2661 { |
2659 { |
2662 // complete call added notification directly from here |
2660 // complete call added notification directly from here |
2663 static_cast<CMmLineTsy*>( mmObject )-> |
2661 static_cast<CMmLineTsy*>( mmObject )-> |
2692 iMmPhone->CallList()-> |
2690 iMmPhone->CallList()-> |
2693 GetMmCallByMode( callMode ) ); |
2691 GetMmCallByMode( callMode ) ); |
2694 |
2692 |
2695 if ( NULL == mmCall ) |
2693 if ( NULL == mmCall ) |
2696 { |
2694 { |
2697 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMMESSAGEROUTERPROXY_ROUTECOMPLETIONL_8, "TSY: CMmMessageRouterProxy::RouteCompletion: Call object not found for Dial!"); |
2695 TFLOGSTRING("TSY: CMmMessageRouterProxy::RouteCompletion: Call object not found for Dial!"); |
2698 } |
2696 } |
2699 else |
2697 else |
2700 { |
2698 { |
2701 //find object that requested dial |
2699 //find object that requested dial |
2702 if ( ( mmCall->IsServiceLocallyRequested( |
2700 if ( ( mmCall->IsServiceLocallyRequested( |
2721 && mmCall->CallMode() == callMode ) |
2719 && mmCall->CallMode() == callMode ) |
2722 || ( mmCall->ServiceRequested( |
2720 || ( mmCall->ServiceRequested( |
2723 CMmCallTsy::EMultimodeCallDialISV ) |
2721 CMmCallTsy::EMultimodeCallDialISV ) |
2724 && mmCall->CallMode() == callMode ) ) |
2722 && mmCall->CallMode() == callMode ) ) |
2725 { |
2723 { |
2726 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMMESSAGEROUTERPROXY_ROUTECOMPLETIONL_9, "TSY: CMmMessageRouterProxy::RouteCompletion: Special case before CompleteDial"); |
2724 TFLOGSTRING("TSY: CMmMessageRouterProxy::RouteCompletion: Special case before CompleteDial"); |
2727 mmCall->CompleteDial( aResult ); |
2725 mmCall->CompleteDial( aResult ); |
2728 break; |
2726 break; |
2729 } |
2727 } |
2730 |
2728 |
2731 if ( mmCall->ServiceRequested( |
2729 if ( mmCall->ServiceRequested( |
2732 CMmCallTsy::EMultimodeCallDialNoFdnCheck ) |
2730 CMmCallTsy::EMultimodeCallDialNoFdnCheck ) |
2733 && mmCall->CallMode() == callMode ) |
2731 && mmCall->CallMode() == callMode ) |
2734 { |
2732 { |
2735 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMMESSAGEROUTERPROXY_ROUTECOMPLETIONL_10, "TSY: CMmMessageRouterProxy::RouteCompletion: Special case before CompleteDialNoFdn"); |
2733 TFLOGSTRING("TSY: CMmMessageRouterProxy::RouteCompletion: Special case before CompleteDialNoFdn"); |
2736 mmCall->CompleteDialNoFdn( aResult ); |
2734 mmCall->CompleteDialNoFdn( aResult ); |
2737 break; |
2735 break; |
2738 } |
2736 } |
2739 } |
2737 } |
2740 } |
2738 } |