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