telephonyserverplugins/common_tsy/commontsy/src/mmgsmwcdma/cmmconferencecallgsmwcdmaext.cpp
branchRCL_3
changeset 65 630d2f34d719
parent 14 7ef16719d8cb
child 66 07a122eea281
equal deleted inserted replaced
61:17af172ffa5f 65:630d2f34d719
     1 // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
     1 // Copyright (c) 2008-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".
    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 "cmmconferencecallgsmwcdmaextTraces.h"
       
    23 #endif
       
    24 
    19 #include "cmmconferencecallgsmwcdmaext.h"
    25 #include "cmmconferencecallgsmwcdmaext.h"
    20 #include "cmmphonetsy.h"
    26 #include "cmmphonetsy.h"
    21 #include "cmmconferencecalltsy.h"
    27 #include "cmmconferencecalltsy.h"
    22 #include "cmmvoicecalltsy.h"
    28 #include "cmmvoicecalltsy.h"
    23 #include "cmmcalllist.h"
    29 #include "cmmcalllist.h"
   178 //
   184 //
   179 TInt CMmConferenceCallGsmWcdmaExt::SwapL(
   185 TInt CMmConferenceCallGsmWcdmaExt::SwapL(
   180 	RMobileConferenceCall::TMobileConferenceStatus aStatus,
   186 	RMobileConferenceCall::TMobileConferenceStatus aStatus,
   181     CMmCallList* aCallList )
   187     CMmCallList* aCallList )
   182     {
   188     {
   183 TFLOGSTRING("TSY: CMmConferenceCallGsmWcdmaExt::SwapL");
   189 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMCONFERENCECALLGSMWCDMAEXT_SWAPL_1, "TSY: CMmConferenceCallGsmWcdmaExt::SwapL");
   184 	TInt ret = KErrArgument;
   190 	TInt ret = KErrArgument;
   185 
   191 
   186 	// conference must be active or held
   192 	// conference must be active or held
   187     if ( aStatus == RMobileConferenceCall::EConferenceIdle )
   193     if ( aStatus == RMobileConferenceCall::EConferenceIdle )
   188         {
   194         {
   206                 {
   212                 {
   207                 // Call found, increase the counter.
   213                 // Call found, increase the counter.
   208                 iNumberOfCallsToBeSwapped++;
   214                 iNumberOfCallsToBeSwapped++;
   209                 }
   215                 }
   210             }
   216             }
   211 TFLOGSTRING2("TSY: CMmConferenceCallGsmWcdmaExt::SwapL - Number of calls in conference: %d", iNumberOfCallsToBeSwapped);
   217 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMCONFERENCECALLGSMWCDMAEXT_SWAPL_2, "TSY: CMmConferenceCallGsmWcdmaExt::SwapL - Number of calls in conference: %d", iNumberOfCallsToBeSwapped);
   212 
   218 
   213         // Find active and held call objects:
   219         // Find active and held call objects:
   214         CMmCallTsy* mmActiveCall = 
   220         CMmCallTsy* mmActiveCall = 
   215             aCallList->GetMmCallByStatus( RMobileCall::EStatusConnected );
   221             aCallList->GetMmCallByStatus( RMobileCall::EStatusConnected );
   216         CMmCallTsy* mmHeldCall = 
   222         CMmCallTsy* mmHeldCall = 
   330 //
   336 //
   331 TBool CMmConferenceCallGsmWcdmaExt::CallStatusChanged(
   337 TBool CMmConferenceCallGsmWcdmaExt::CallStatusChanged(
   332     RMobileCall::TMobileCallStatus aNewStatus,
   338     RMobileCall::TMobileCallStatus aNewStatus,
   333     TInt aCallId )
   339     TInt aCallId )
   334     {
   340     {
   335 TFLOGSTRING3("TSY: CMmConferenceCallGsmWcdmaExt::CallStatusChanged, aNewStatus:%d, aCallId:%d", aNewStatus, aCallId );
   341 OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMCONFERENCECALLGSMWCDMAEXT_CALLSTATUSCHANGED_1, "TSY: CMmConferenceCallGsmWcdmaExt::CallStatusChanged, aNewStatus:%d, aCallId:%d", aNewStatus, aCallId );
   336 
   342 
   337     TBool statusChanged( EFalse );
   343     TBool statusChanged( EFalse );
   338 
   344 
   339     //get current conference call status
   345     //get current conference call status
   340     RMobileConferenceCall::TMobileConferenceStatus status 
   346     RMobileConferenceCall::TMobileConferenceStatus status 
   341             = iMmConferenceCallTsy->Status();
   347             = iMmConferenceCallTsy->Status();
   342 
   348 
   343 TFLOGSTRING2("TSY: CMmConferenceCallGsmWcdmaExt::CallStatusChanged, Current conf call iMmConferenceCallTsy->Status:%d ", status);
   349 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMCONFERENCECALLGSMWCDMAEXT_CALLSTATUSCHANGED_2, "TSY: CMmConferenceCallGsmWcdmaExt::CallStatusChanged, Current conf call iMmConferenceCallTsy->Status:%d ", status);
   344 TFLOGSTRING2("TSY: CMmConferenceCallGsmWcdmaExt::CallStatusChanged, Current conference extension iNewStatus:%d ", iNewStatus);
   350 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMCONFERENCECALLGSMWCDMAEXT_CALLSTATUSCHANGED_3, "TSY: CMmConferenceCallGsmWcdmaExt::CallStatusChanged, Current conference extension iNewStatus:%d ", iNewStatus);
   345     //get call list
   351     //get call list
   346     CMmCallList* callList = iMmConferenceCallTsy->Phone()->CallList();
   352     CMmCallList* callList = iMmConferenceCallTsy->Phone()->CallList();
   347 
   353 
   348     switch( aNewStatus )
   354     switch( aNewStatus )
   349         {
   355         {
   464 
   470 
   465     if ( statusChanged )
   471     if ( statusChanged )
   466         {
   472         {
   467         // -1 indicates that there is no unhandled ghost operation anymore
   473         // -1 indicates that there is no unhandled ghost operation anymore
   468         iCurrentGhostOperation = -1;
   474         iCurrentGhostOperation = -1;
   469 TFLOGSTRING("TSY: CMmConferenceCallGsmWcdmaExt::CallStatusChanged, statusChanged!! ");   
   475 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMCONFERENCECALLGSMWCDMAEXT_CALLSTATUSCHANGED_4, "TSY: CMmConferenceCallGsmWcdmaExt::CallStatusChanged, statusChanged!! ");
   470         }
   476         }
   471 TFLOGSTRING2("TSY: CMmConferenceCallGsmWcdmaExt::CallStatusChanged END, current conference extension iNewStatus:%d ", iNewStatus);
   477 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMCONFERENCECALLGSMWCDMAEXT_CALLSTATUSCHANGED_5, "TSY: CMmConferenceCallGsmWcdmaExt::CallStatusChanged END, current conference extension iNewStatus:%d ", iNewStatus);
   472 
   478 
   473     return statusChanged;
   479     return statusChanged;
   474     }
   480     }
   475 
   481 
   476 // ---------------------------------------------------------------------------
   482 // ---------------------------------------------------------------------------
   496 //
   502 //
   497 void CMmConferenceCallGsmWcdmaExt::CheckConferenceCapability(
   503 void CMmConferenceCallGsmWcdmaExt::CheckConferenceCapability(
   498     RMobileConferenceCall::TMobileConferenceStatus aStatus,
   504     RMobileConferenceCall::TMobileConferenceStatus aStatus,
   499     CMmCallList* aCallList )
   505     CMmCallList* aCallList )
   500     {
   506     {
   501 TFLOGSTRING2("TSY: CMmConferenceCallGsmWcdmaExt::CheckConferenceCapability. aStatus:%d ", aStatus);     
   507 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMCONFERENCECALLGSMWCDMAEXT_CHECKCONFERENCECAPABILITY_1, "TSY: CMmConferenceCallGsmWcdmaExt::CheckConferenceCapability. aStatus:%d ", aStatus);
   502     //Check if conference creation is possible. CC has to be in Idle state
   508     //Check if conference creation is possible. CC has to be in Idle state
   503     if ( RMobileConferenceCall::EConferenceIdle == aStatus  )
   509     if ( RMobileConferenceCall::EConferenceIdle == aStatus  )
   504         {
   510         {
   505         TUint8 connectedCount( 0 ); //how many calls are in active state
   511         TUint8 connectedCount( 0 ); //how many calls are in active state
   506         TUint8 heldCount( 0 ); //how many calls are in hold state
   512         TUint8 heldCount( 0 ); //how many calls are in hold state
   700 //
   706 //
   701 TBool CMmConferenceCallGsmWcdmaExt::HandleSwap(
   707 TBool CMmConferenceCallGsmWcdmaExt::HandleSwap(
   702     RMobileConferenceCall::TMobileConferenceStatus aStatus,
   708     RMobileConferenceCall::TMobileConferenceStatus aStatus,
   703     CMmCallList& aCallList )
   709     CMmCallList& aCallList )
   704     {
   710     {
   705 TFLOGSTRING2("TSY: CMmConferenceCallGsmWcdmaExt::HandleSwap. aStatus:%d ", aStatus);     
   711 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMCONFERENCECALLGSMWCDMAEXT_HANDLESWAP_1, "TSY: CMmConferenceCallGsmWcdmaExt::HandleSwap. aStatus:%d ", aStatus);
   706     TBool statusChanged( EFalse );
   712     TBool statusChanged( EFalse );
   707 
   713 
   708     //increment counter telling how many calls will still change state
   714     //increment counter telling how many calls will still change state
   709     iNumberOfCallsToBeSwapped--;
   715     iNumberOfCallsToBeSwapped--;
   710 
   716 
   742 TBool CMmConferenceCallGsmWcdmaExt::HandleAddCall(
   748 TBool CMmConferenceCallGsmWcdmaExt::HandleAddCall(
   743     RMobileConferenceCall::TMobileConferenceStatus aStatus,
   749     RMobileConferenceCall::TMobileConferenceStatus aStatus,
   744     CMmCallList& aCallList,
   750     CMmCallList& aCallList,
   745     RMobileCall::TMobileCallStatus aNewStatus )
   751     RMobileCall::TMobileCallStatus aNewStatus )
   746     {
   752     {
   747 TFLOGSTRING2("TSY: CMmConferenceCallGsmWcdmaExt::HandleAddCall. aStatus:%d ", aStatus); 
   753 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMCONFERENCECALLGSMWCDMAEXT_HANDLEADDCALL_1, "TSY: CMmConferenceCallGsmWcdmaExt::HandleAddCall. aStatus:%d ", aStatus);
   748 TFLOGSTRING2("TSY: CMmConferenceCallGsmWcdmaExt::HandleAddCall. aNewStatus:%d ", aNewStatus); 
   754 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMCONFERENCECALLGSMWCDMAEXT_HANDLEADDCALL_2, "TSY: CMmConferenceCallGsmWcdmaExt::HandleAddCall. aNewStatus:%d ", aNewStatus);
   749     TBool statusChanged( EFalse );
   755     TBool statusChanged( EFalse );
   750 
   756 
   751     //Handle adding a call to conference call
   757     //Handle adding a call to conference call
   752     if ( RMobileCall::EStatusConnected == aNewStatus ||
   758     if ( RMobileCall::EStatusConnected == aNewStatus ||
   753          RMobileCall::EStatusIdle == aNewStatus )
   759          RMobileCall::EStatusIdle == aNewStatus )
   808 
   814 
   809             //Call method that updates the caps of the joined calls
   815             //Call method that updates the caps of the joined calls
   810             UpdateCapsAfterJoin( aCallList );
   816             UpdateCapsAfterJoin( aCallList );
   811             } 
   817             } 
   812         }
   818         }
   813 TFLOGSTRING2("TSY: CMmConferenceCallGsmWcdmaExt::HandleAddCall. statusChanged:%d ", statusChanged); 
   819 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMCONFERENCECALLGSMWCDMAEXT_HANDLEADDCALL_3, "TSY: CMmConferenceCallGsmWcdmaExt::HandleAddCall. statusChanged:%d ", statusChanged);
   814     
   820     
   815     return statusChanged;
   821     return statusChanged;
   816     }
   822     }
   817 
   823 
   818 
   824 
   878 	{
   884 	{
   879 	TBool statusChanged( EFalse );
   885 	TBool statusChanged( EFalse );
   880 	TBool callFound( EFalse );
   886 	TBool callFound( EFalse );
   881 	CMmCallTsy* mmCall = NULL;
   887 	CMmCallTsy* mmCall = NULL;
   882 
   888 
   883 	TFLOGSTRING3("TSY: CMmConferenceCallGsmWcdmaExt::HandleCallRelease aNewStatus %d, aCallId %d",aNewStatus , aCallId );
   889 	OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMCONFERENCECALLGSMWCDMAEXT_HANDLECALLRELEASE_1, "TSY: CMmConferenceCallGsmWcdmaExt::HandleCallRelease aNewStatus %d, aCallId %d",aNewStatus , aCallId );
   884 	TFLOGSTRING2("TSY: CMmConferenceCallGsmWcdmaExt::HandleCallRelease Calls in CC %d",iMmConferenceCallTsy->NumberOfCallsInConference());
   890 	OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMCONFERENCECALLGSMWCDMAEXT_HANDLECALLRELEASE_2, "TSY: CMmConferenceCallGsmWcdmaExt::HandleCallRelease Calls in CC %d",iMmConferenceCallTsy->NumberOfCallsInConference());
   885 
   891 
   886 	//first find the call object which has gone to idle state
   892 	//first find the call object which has gone to idle state
   887 	for ( TInt i = 0; i < aCallList.GetNumberOfObjects(); i++ )
   893 	for ( TInt i = 0; i < aCallList.GetNumberOfObjects(); i++ )
   888 		{
   894 		{
   889 		mmCall = aCallList.GetMmCallByIndex( i );
   895 		mmCall = aCallList.GetMmCallByIndex( i );
   890 
   896 
   891 		if(mmCall)
   897 		if(mmCall)
   892 			{
   898 			{
   893 			TFLOGSTRING2("TSY: Previous Call ID: %d", mmCall->PreviousCallId() );
   899 			OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMCONFERENCECALLGSMWCDMAEXT_HANDLECALLRELEASE_3, "TSY: Previous Call ID: %d", mmCall->PreviousCallId() );
   894 			if ( mmCall->PreviousCallId() == aCallId )
   900 			if ( mmCall->PreviousCallId() == aCallId )
   895 				{
   901 				{
   896 				if ( 2 == iMmConferenceCallTsy->NumberOfCallsInConference() && mmCall->IsPartOfConference() &&
   902 				if ( 2 == iMmConferenceCallTsy->NumberOfCallsInConference() && mmCall->IsPartOfConference() &&
   897 						iMmConferenceCallTsy->ServiceRequested( 
   903 						iMmConferenceCallTsy->ServiceRequested( 
   898 								CMmConferenceCallTsy::EMultimodeConferenceCallAddCall ) )
   904 								CMmConferenceCallTsy::EMultimodeConferenceCallAddCall ) )
   899 					{
   905 					{
   900 					TFLOGSTRING("TSY: STOP handling this case");
   906 					OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMCONFERENCECALLGSMWCDMAEXT_HANDLECALLRELEASE_4, "TSY: STOP handling this case");
   901 					return EFalse;
   907 					return EFalse;
   902 					}
   908 					}
   903 				mmCall->ResetPreviousCallId();
   909 				mmCall->ResetPreviousCallId();
   904 				callFound = ETrue;
   910 				callFound = ETrue;
   905 				break;
   911 				break;
   980 					CMmCallTsy* remainingCall = aCallList.GetMmCallByIndex(d);
   986 					CMmCallTsy* remainingCall = aCallList.GetMmCallByIndex(d);
   981 
   987 
   982 					if( remainingCall->MobileCallStatus() == RMobileCall::EStatusHold )
   988 					if( remainingCall->MobileCallStatus() == RMobileCall::EStatusHold )
   983 						{
   989 						{
   984 						callStatus = RMobileCall::EStatusHold;
   990 						callStatus = RMobileCall::EStatusHold;
   985 						TFLOGSTRING("TSY: CMmConferenceCallGsmWcdmaExt::HandleCallRelease Call with Hold status found" );
   991 						OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMCONFERENCECALLGSMWCDMAEXT_HANDLECALLRELEASE_5, "TSY: CMmConferenceCallGsmWcdmaExt::HandleCallRelease Call with Hold status found" );
   986 						break;
   992 						break;
   987 						}	
   993 						}	
   988 					}
   994 					}
   989 
   995 
   990 				}
   996 				}
  1266 // ---------------------------------------------------------------------------
  1272 // ---------------------------------------------------------------------------
  1267 //
  1273 //
  1268 TInt CMmConferenceCallGsmWcdmaExt::GetNewStatus(
  1274 TInt CMmConferenceCallGsmWcdmaExt::GetNewStatus(
  1269     RMobileConferenceCall::TMobileConferenceStatus* aNewStatus )
  1275     RMobileConferenceCall::TMobileConferenceStatus* aNewStatus )
  1270     {
  1276     {
  1271 TFLOGSTRING2("TSY: CMmConferenceCallGsmWcdmaExt::GetNewStatus. iNewStatus:%d ", iNewStatus );     
  1277 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMCONFERENCECALLGSMWCDMAEXT_GETNEWSTATUS_1, "TSY: CMmConferenceCallGsmWcdmaExt::GetNewStatus. iNewStatus:%d ", iNewStatus );
  1272     //copy new status
  1278     //copy new status
  1273     *aNewStatus = iNewStatus;
  1279     *aNewStatus = iNewStatus;
  1274     //delete new status from GSM extension
  1280     //delete new status from GSM extension
  1275     iNewStatus = RMobileConferenceCall::EConferenceIdle;
  1281     iNewStatus = RMobileConferenceCall::EConferenceIdle;
  1276 
  1282 
  1282 // Resets internal attributes.
  1288 // Resets internal attributes.
  1283 // ---------------------------------------------------------------------------
  1289 // ---------------------------------------------------------------------------
  1284 //
  1290 //
  1285 void CMmConferenceCallGsmWcdmaExt::ResetAttributes()
  1291 void CMmConferenceCallGsmWcdmaExt::ResetAttributes()
  1286     {
  1292     {
  1287 TFLOGSTRING("TSY: CMmConferenceCallGsmWcdmaExt::ResetAttributes. " );     
  1293 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMCONFERENCECALLGSMWCDMAEXT_RESETATTRIBUTES_1, "TSY: CMmConferenceCallGsmWcdmaExt::ResetAttributes. " );
  1288     //Flag telling if this is not the first hold/active status indication
  1294     //Flag telling if this is not the first hold/active status indication
  1289     //caused by client asking hold/resume for a single call.
  1295     //caused by client asking hold/resume for a single call.
  1290     iCallControlStarted = EFalse;
  1296     iCallControlStarted = EFalse;
  1291     //Counter telling how many calls should still change their state before
  1297     //Counter telling how many calls should still change their state before
  1292     //Conference call changes its' state.
  1298     //Conference call changes its' state.
  1539     callDataPackage->UnPackData( confEvent );
  1545     callDataPackage->UnPackData( confEvent );
  1540 
  1546 
  1541     //get current conference call status
  1547     //get current conference call status
  1542     RMobileConferenceCall::TMobileConferenceStatus status 
  1548     RMobileConferenceCall::TMobileConferenceStatus status 
  1543             = iMmConferenceCallTsy->Status();
  1549             = iMmConferenceCallTsy->Status();
  1544 TFLOGSTRING2("TSY: CMmConferenceCallGsmWcdmaExt::CompleteNotifyConferenceEvent. iMmConferenceCallTsy->Status():%d ", status );
  1550 OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMCONFERENCECALLGSMWCDMAEXT_COMPLETENOTIFYCONFERENCEEVENT_1, "TSY: CMmConferenceCallGsmWcdmaExt::CompleteNotifyConferenceEvent. iMmConferenceCallTsy->Status():%d ", status );
  1545 
  1551 
  1546     switch( confEvent )
  1552     switch( confEvent )
  1547         {
  1553         {
  1548         case RMobileConferenceCall::EConferenceBuilt:
  1554         case RMobileConferenceCall::EConferenceBuilt:
  1549             //if createConference has not been requested using ETel API
  1555             //if createConference has not been requested using ETel API
  1550             //and conference status is idle
  1556             //and conference status is idle
  1551             if ( RMobileConferenceCall::EConferenceIdle == status && 
  1557             if ( RMobileConferenceCall::EConferenceIdle == status && 
  1552                 !iMmConferenceCallTsy->ServiceRequested( CMmConferenceCallTsy::
  1558                 !iMmConferenceCallTsy->ServiceRequested( CMmConferenceCallTsy::
  1553                     EMultimodeConferenceCallCreateConference ) )
  1559                     EMultimodeConferenceCallCreateConference ) )
  1554                 {
  1560                 {
  1555 TFLOGSTRING("TSY: CMmConferenceCallGsmWcdmaExt::CompleteNotifyConferenceEvent - Build");
  1561 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMCONFERENCECALLGSMWCDMAEXT_COMPLETENOTIFYCONFERENCEEVENT_2, "TSY: CMmConferenceCallGsmWcdmaExt::CompleteNotifyConferenceEvent - Build");
  1556                 //We have to get 2 active status indications before the 
  1562                 //We have to get 2 active status indications before the 
  1557                 //conference has really gone to active state.
  1563                 //conference has really gone to active state.
  1558                 iCreateConferenceCounter = 2;
  1564                 iCreateConferenceCounter = 2;
  1559                 iCurrentGhostOperation = confEvent;
  1565                 iCurrentGhostOperation = confEvent;
  1560                 }
  1566                 }
  1562             //and conference status is Hold or Active
  1568             //and conference status is Hold or Active
  1563             else if ( RMobileConferenceCall::EConferenceIdle != status &&
  1569             else if ( RMobileConferenceCall::EConferenceIdle != status &&
  1564                 !iMmConferenceCallTsy->ServiceRequested( CMmConferenceCallTsy::
  1570                 !iMmConferenceCallTsy->ServiceRequested( CMmConferenceCallTsy::
  1565                     EMultimodeConferenceCallAddCall ) )
  1571                     EMultimodeConferenceCallAddCall ) )
  1566                 {
  1572                 {
  1567 TFLOGSTRING("TSY: CMmConferenceCallGsmWcdmaExt::CompleteNotifyConferenceEvent - Build/Add");
  1573 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMCONFERENCECALLGSMWCDMAEXT_COMPLETENOTIFYCONFERENCEEVENT_3, "TSY: CMmConferenceCallGsmWcdmaExt::CompleteNotifyConferenceEvent - Build/Add");
  1568                 iCurrentGhostOperation = confEvent;
  1574                 iCurrentGhostOperation = confEvent;
  1569                 }
  1575                 }
  1570             break;
  1576             break;
  1571         case RMobileConferenceCall::EConferenceCallAdded:
  1577         case RMobileConferenceCall::EConferenceCallAdded:
  1572             //if addCall has not been requested using ETel API
  1578             //if addCall has not been requested using ETel API
  1573             //and conference status is Hold or Active
  1579             //and conference status is Hold or Active
  1574             if ( RMobileConferenceCall::EConferenceIdle != status &&
  1580             if ( RMobileConferenceCall::EConferenceIdle != status &&
  1575                 !iMmConferenceCallTsy->ServiceRequested( CMmConferenceCallTsy::
  1581                 !iMmConferenceCallTsy->ServiceRequested( CMmConferenceCallTsy::
  1576                     EMultimodeConferenceCallAddCall ) )
  1582                     EMultimodeConferenceCallAddCall ) )
  1577                 {
  1583                 {
  1578 TFLOGSTRING("TSY: CMmConferenceCallGsmWcdmaExt::CompleteNotifyConferenceEvent - Add");
  1584 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMCONFERENCECALLGSMWCDMAEXT_COMPLETENOTIFYCONFERENCEEVENT_4, "TSY: CMmConferenceCallGsmWcdmaExt::CompleteNotifyConferenceEvent - Add");
  1579                 iCurrentGhostOperation = confEvent;
  1585                 iCurrentGhostOperation = confEvent;
  1580                 }
  1586                 }
  1581             break;
  1587             break;
  1582         case RMobileConferenceCall::EConferenceSwapped:
  1588         case RMobileConferenceCall::EConferenceSwapped:
  1583             //if swap has not been requested using ETel API
  1589             //if swap has not been requested using ETel API
  1584             if ( RMobileConferenceCall::EConferenceIdle != status &&
  1590             if ( RMobileConferenceCall::EConferenceIdle != status &&
  1585                 !iMmConferenceCallTsy->ServiceRequested( 
  1591                 !iMmConferenceCallTsy->ServiceRequested( 
  1586                 CMmConferenceCallTsy::EMultimodeConferenceCallSwap ) )
  1592                 CMmConferenceCallTsy::EMultimodeConferenceCallSwap ) )
  1587                 {
  1593                 {
  1588 TFLOGSTRING("TSY: CMmConferenceCallGsmWcdmaExt::CompleteNotifyConferenceEvent - Swap");
  1594 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMCONFERENCECALLGSMWCDMAEXT_COMPLETENOTIFYCONFERENCEEVENT_5, "TSY: CMmConferenceCallGsmWcdmaExt::CompleteNotifyConferenceEvent - Swap");
  1589                 iNumberOfCallsToBeSwapped 
  1595                 iNumberOfCallsToBeSwapped 
  1590                     = iMmConferenceCallTsy->NumberOfCallsInConference();
  1596                     = iMmConferenceCallTsy->NumberOfCallsInConference();
  1591 
  1597 
  1592                 iCurrentGhostOperation = confEvent;
  1598                 iCurrentGhostOperation = confEvent;
  1593                 }
  1599                 }
  1594             break;
  1600             break;
  1595         //GoOneToOne has been requested
  1601         //GoOneToOne has been requested
  1596         case RMobileConferenceCall::EConferenceSplit:
  1602         case RMobileConferenceCall::EConferenceSplit:
  1597             if ( !iGoOneToOneHandlingStarted )
  1603             if ( !iGoOneToOneHandlingStarted )
  1598                 {
  1604                 {
  1599 TFLOGSTRING("TSY: CMmConferenceCallGsmWcdmaExt::CompleteNotifyConferenceEvent - Split");
  1605 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMCONFERENCECALLGSMWCDMAEXT_COMPLETENOTIFYCONFERENCEEVENT_6, "TSY: CMmConferenceCallGsmWcdmaExt::CompleteNotifyConferenceEvent - Split");
  1600                 iGoOneToOneHandlingStarted = ETrue;
  1606                 iGoOneToOneHandlingStarted = ETrue;
  1601                 iCurrentGhostOperation = confEvent;
  1607                 iCurrentGhostOperation = confEvent;
  1602                 iGoOneToOneCallId = callId;
  1608                 iGoOneToOneCallId = callId;
  1603                 }
  1609                 }
  1604             break;
  1610             break;
  1605         default:
  1611         default:
  1606 TFLOGSTRING("TSY: CMmConferenceCallGsmWcdmaExt::CompleteNotifyConferenceEvent - No Actions");
  1612 OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CMMCONFERENCECALLGSMWCDMAEXT_COMPLETENOTIFYCONFERENCEEVENT_7, "TSY: CMmConferenceCallGsmWcdmaExt::CompleteNotifyConferenceEvent - No Actions");
  1607             break;
  1613             break;
  1608         }
  1614         }
  1609     }
  1615     }
  1610 
  1616 
  1611 
  1617