phonecmdhandler/phonecmdhnlr/src/PhoneHandlerControl.cpp
changeset 12 ae8abd0db65c
parent 0 ff3b6d0fd310
child 13 e32024264ebb
--- a/phonecmdhandler/phonecmdhnlr/src/PhoneHandlerControl.cpp	Tue Feb 02 01:11:09 2010 +0200
+++ b/phonecmdhandler/phonecmdhnlr/src/PhoneHandlerControl.cpp	Fri Mar 19 09:40:14 2010 +0200
@@ -12,37 +12,38 @@
 * Contributors:
 *
 * Description:  Receives call handling related key presses from accessories and 
-*				 executes them. 
+*                executes them. 
 *
 */
 
 
 
 // INCLUDE FILES
-#include "PhoneHandlerControl.h"
-#include "PhoneHandlerService.h"
-#include "PhoneHandlerAnswerCall.h"
-#include "PhoneHandlerEndCall.h"
-#include "PhoneHandlerDialCall.h"
-#include "PhoneHandlerVoiceDial.h"
-#include "PhoneHandlerRedial.h"
-#include "PhoneHandlerMultipartyCall.h"
-#include "PhoneHandlerDTMF.h"
-#include "PhoneHandlerActive.h"
-#include "PhoneHandlerResponse.h"
-#include "PhoneHandlerCallState.h"
-#include "PhoneHandlerDebug.h"
+#include "PhoneHandlerControl.h" 
+#include "PhoneHandlerService.h" 
+#include "PhoneHandlerAnswerCall.h" 
+#include "PhoneHandlerEndCall.h" 
+#include "PhoneHandlerDialCall.h" 
+#include "PhoneHandlerVoiceDial.h" 
+#include "PhoneHandlerRedial.h" 
+#include "PhoneHandlerMultipartyCall.h" 
+#include "PhoneHandlerDTMF.h" 
+#include "PhoneHandlerActive.h" 
+#include "PhoneHandlerResponse.h" 
+#include "PhoneHandlerCallState.h" 
+#include "PhoneHandlerDebug.h" 
 #include <remconinterfaceselector.h>
-#include <RemConCallHandlingTarget.h>
-#include <CPbkContactEngine.h>
+#include <RemConCallHandlingTarget.h> 
+// <-- QT PHONE START -->
+//#include <cpbkcontactengine.h> 
+// <-- QT PHONE END-->
 #include <ctsydomainpskeys.h>
 
 #if 0
-#include <VoiceUIDomainPSKeys.h>
+#include <voiceuidomainpskeys.h> 
 #endif
 
 #include <connect/sbdefs.h>
-#include <coreapplicationuisdomainpskeys.h>
 
 // EXTERNAL DATA STRUCTURES
 
@@ -74,7 +75,7 @@
 // -----------------------------------------------------------------------------
 //
 CPhoneHandlerControl::CPhoneHandlerControl()
-	: iPrevState( EPSCTsyCallStateNone )
+    : iPrevState( EPSCTsyCallStateNone )
     {
     }
 
@@ -86,29 +87,29 @@
 void CPhoneHandlerControl::ConstructL( CRemConInterfaceSelector* aIfSelector )
     {
     COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::ConstructL() start" );
-		
+        
     if( !aIfSelector )
-    	{
-    	COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::ConstructL() Create connection to RemCon." );
-	    	
-    	// Target connection to RemCon FW hasn't been done.
-    	iInterfaceSelector = CRemConInterfaceSelector::NewL();
-	   	iTarget = CRemConCallHandlingTarget::NewL( *iInterfaceSelector, *this );
-		iInterfaceSelector->OpenTargetL();
-		}
-	else
-		{
-		COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::ConstructL() Don't create connection to RemCon." );
-	    		
-		// Connection to RemCon FW as target has already been done in a process.
-		iTarget = CRemConCallHandlingTarget::NewL( *aIfSelector, *this );
-		}
-    	
-	iResponse = CPhoneHandlerResponse::NewL( *this );
-	iCallStateObserver = CPhoneHandlerCallState::NewL( *this );
-			
-	COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::ConstructL() end" );
-	}
+        {
+        COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::ConstructL() Create connection to RemCon." );
+            
+        // Target connection to RemCon FW hasn't been done.
+        iInterfaceSelector = CRemConInterfaceSelector::NewL();
+        iTarget = CRemConCallHandlingTarget::NewL( *iInterfaceSelector, *this );
+        iInterfaceSelector->OpenTargetL();
+        }
+    else
+        {
+        COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::ConstructL() Don't create connection to RemCon." );
+                
+        // Connection to RemCon FW as target has already been done in a process.
+        iTarget = CRemConCallHandlingTarget::NewL( *aIfSelector, *this );
+        }
+        
+    iResponse = CPhoneHandlerResponse::NewL( *this );
+    iCallStateObserver = CPhoneHandlerCallState::NewL( *this );
+            
+    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::ConstructL() end" );
+    }
 
 // -----------------------------------------------------------------------------
 // CPhoneHandlerControl::NewL
@@ -116,7 +117,7 @@
 // -----------------------------------------------------------------------------
 //
 CPhoneHandlerControl* CPhoneHandlerControl::NewL( 
-									CRemConInterfaceSelector* aIfSelector )
+                                    CRemConInterfaceSelector* aIfSelector )
     {
     COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::NewL() start" );
     
@@ -137,19 +138,19 @@
     COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::~CPhoneHandlerControl() start" );
     
     if( iInterfaceSelector )
-    	{
-    	delete iInterfaceSelector;
-       	}
+        {
+        delete iInterfaceSelector;
+        }
     
     if( iResponse )
-    	{
-    	iResponse->Delete();
-       	}
-       	
+        {
+        iResponse->Delete();
+        }
+        
     if( iCallStateObserver )
-    	{
-    	delete iCallStateObserver;
-    	}
+        {
+        delete iCallStateObserver;
+        }
             
     COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::~CPhoneHandlerControl() end" );
     }
@@ -235,28 +236,28 @@
     {
     COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::NotifyCallState() aState=%d", aState );
     
-	if( aState == EPSCTsyCallStateConnected && iPrevState != EPSCTsyCallStateHold )
-		{
-		COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::NotifyCallState(): iActiveCalls++" );
-		
-		iActiveCalls++;
-		}
-	else if( aState == EPSCTsyCallStateDisconnecting && 
-			( iPrevState == EPSCTsyCallStateConnected || iPrevState == EPSCTsyCallStateHold ))
-		{
-		COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::NotifyCallState(): iActiveCalls--" );
-		
-		iActiveCalls--;
-		}
-	else if( aState == EPSCTsyCallStateNone )
-		{
-		COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::NotifyCallState(): iActiveCalls = 0" );
-		iActiveCalls = 0;
-		}
-		
-	iPrevState = aState;
-	COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::NotifyCallState() iActiveCalls=%d", iActiveCalls );
-	}
+    if( aState == EPSCTsyCallStateConnected && iPrevState != EPSCTsyCallStateHold )
+        {
+        COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::NotifyCallState(): iActiveCalls++" );
+        
+        iActiveCalls++;
+        }
+    else if( aState == EPSCTsyCallStateDisconnecting && 
+            ( iPrevState == EPSCTsyCallStateConnected || iPrevState == EPSCTsyCallStateHold ))
+        {
+        COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::NotifyCallState(): iActiveCalls--" );
+        
+        iActiveCalls--;
+        }
+    else if( aState == EPSCTsyCallStateNone )
+        {
+        COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::NotifyCallState(): iActiveCalls = 0" );
+        iActiveCalls = 0;
+        }
+        
+    iPrevState = aState;
+    COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::NotifyCallState() iActiveCalls=%d", iActiveCalls );
+    }
 
 // -----------------------------------------------------------------------------
 // CPhoneHandlerControl::AnswerCall
@@ -264,26 +265,26 @@
 // -----------------------------------------------------------------------------
 //
 void CPhoneHandlerControl::AnswerCall()
-	{
-	COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::AnswerCall() start" );
-	
-	StartProcessing( ERemConExtAnswerCall );
-	
-	COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::AnswerCall() end" );
+    {
+    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::AnswerCall() start" );
+    
+    StartProcessing( ERemConExtAnswerCall );
+    
+    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::AnswerCall() end" );
     }
-	
+    
 // -----------------------------------------------------------------------------
 // CPhoneHandlerControl::EndCall
 // (other items were commented in a header).
 // -----------------------------------------------------------------------------
 //
 void CPhoneHandlerControl::EndCall()
-	{
-	COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::EndCall() start" );
+    {
+    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::EndCall() start" );
     
     StartProcessing( ERemConExtEndCall );
-    	    
-	COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::EndCall() end" );
+            
+    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::EndCall() end" );
     }
     
 // -----------------------------------------------------------------------------
@@ -292,12 +293,12 @@
 // -----------------------------------------------------------------------------
 //
 void CPhoneHandlerControl::AnswerEndCall()
-	{
-	COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::AnswerEndCall() start" );
+    {
+    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::AnswerEndCall() start" );
     
     StartProcessing( ERemConExtAnswerEnd );
-    	   
-	COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::AnswerEndCall() end" );
+           
+    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::AnswerEndCall() end" );
     }
 
 // -----------------------------------------------------------------------------
@@ -305,7 +306,7 @@
 // (other items were commented in a header).
 // -----------------------------------------------------------------------------
 //
-#if 0 // SCB CR EHSA-7APJWF: SIND subscribes to RemCon directly	
+#if 0 // SCB CR EHSA-7APJWF: SIND subscribes to RemCon directly 
 void CPhoneHandlerControl::VoiceDial( const TBool aActivate )
     {
     COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::VoiceDial() aActivate=%d", aActivate );
@@ -322,17 +323,17 @@
         iProperty.Get( KPSUidVoiceUiAccMonitor, KVoiceUiOpenKey, voiceUiState ); 
 
         if( voiceUiState == KVoiceUiIsOpen )
-	        {
-	        COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::VoiceDial() voice UI is open!" );
-	        iProperty.Set( KPSUidVoiceUiAccMonitor , KVoiceUiAccessoryEvent, ERemConExtVoiceDial );
-	        iResponse->SetResponse( ERemConExtVoiceDial, KErrNone );
-	        iResponse->Process();
-	        }
+            {
+            COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::VoiceDial() voice UI is open!" );
+            iProperty.Set( KPSUidVoiceUiAccMonitor , KVoiceUiAccessoryEvent, ERemConExtVoiceDial );
+            iResponse->SetResponse( ERemConExtVoiceDial, KErrNone );
+            iResponse->Process();
+            }
         else
-	        {
-	        iActivate = aActivate;
-	        StartProcessing( ERemConExtVoiceDial );
-	        }
+            {
+            iActivate = aActivate;
+            StartProcessing( ERemConExtVoiceDial );
+            }
         }
     else
         {
@@ -342,18 +343,11 @@
 
     COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::VoiceDial() end" );
     }
-#else	
+#else   
 void CPhoneHandlerControl::VoiceDial( const TBool /*aActivate*/ )
     {
     COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::VoiceDial()" );
 
-    if ( IsAutoLockOn() && !IsBTAccessoryCmd() )
-        {
-        iResponse->SetResponse( ERemConExtVoiceDial, KErrAccessDenied );
-        iResponse->Process();
-        return;
-        }
-        
     iResponse->SetResponse( ERemConExtVoiceDial, KErrNone );
     iResponse->Process();
 
@@ -366,20 +360,13 @@
 // -----------------------------------------------------------------------------
 //
 void CPhoneHandlerControl::LastNumberRedial( )
-	{
-	COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::LastNumberRedial() start" );
-	
-	if ( IsAutoLockOn() && !IsBTAccessoryCmd() )
-        {
-        iResponse->SetResponse( ERemConExtLastNumberRedial, KErrAccessDenied );
-        iResponse->Process();
-        return;
-        }
-
-	StartProcessing( ERemConExtLastNumberRedial );
-	
-	COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::LastNumberRedial() end" );
-	}
+    {
+    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::LastNumberRedial() start" );
+    
+    StartProcessing( ERemConExtLastNumberRedial );
+    
+    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::LastNumberRedial() end" );
+    }
 
 // -----------------------------------------------------------------------------
 // CPhoneHandlerControl::DialCall
@@ -387,31 +374,24 @@
 // -----------------------------------------------------------------------------
 //
 void CPhoneHandlerControl::DialCall( const TDesC8& aTelNumber )
-	{
-	COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::DialCall() start" );
+    {
+    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::DialCall() start" );
     
-	if ( IsAutoLockOn() && !IsBTAccessoryCmd() )
-	        {
- 	        iResponse->SetResponse( ERemConExtDialCall, KErrAccessDenied );
-	        iResponse->Process();
-	        return;
-	        }
- 	
     // Check aTelNumber range    
-   	if( KPhCltTelephoneNumberLength < aTelNumber.Length() )
-   		{
-  		COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::DialCall() number value=%d too long", aTelNumber.Size() );
-  		iResponse->SetResponse( ERemConExtDialCall, KErrArgument );
-  		iResponse->Process();
-  		return; 
-  		}
-  	
-  	iTelNumber.Copy( aTelNumber );
-  	      	  	    
+    if( KPhCltTelephoneNumberLength < aTelNumber.Length() )
+        {
+        COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::DialCall() number value=%d too long", aTelNumber.Size() );
+        iResponse->SetResponse( ERemConExtDialCall, KErrArgument );
+        iResponse->Process();
+        return; 
+        }
+    
+    iTelNumber.Copy( aTelNumber );
+                    
     StartProcessing( ERemConExtDialCall );
     
-	COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::DialCall() end" );
-	}
+    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::DialCall() end" );
+    }
 
 // -----------------------------------------------------------------------------
 // CPhoneHandlerControl::MultipartyCalling
@@ -439,85 +419,85 @@
 // -----------------------------------------------------------------------------
 //
 void CPhoneHandlerControl::MultipartyCalling( const TDesC8& aData )
-	{
-	TBool error( EFalse );
-	iChldCommand = 0;
-	iChldCallNumber = 0;
-	TBuf8< KRemConExtParamMaxLength > buf( aData );
-	buf.Trim();
-	TInt length = buf.Length();
-	
-	// Check invalid number of characters
-	if ( length < KMultipartyCallMinParam || length > KMultipartyCallMaxParam )
-	    {
-	    error = ETrue;
-	    }
-	else
-	    {
-	    TLex8 param;
-	    // Set command	
-		param.Assign( buf.Mid( 0, 1 ) );
-		if( param.Val( iChldCommand ) != KErrNone )
-			{
-			error = ETrue;
-			}
-		else if ( length == KMultipartyCallMaxParam )
-	    	{
-			// Set call number
-			param.Assign( buf.Mid(1) );
-			if( param.Val( iChldCallNumber ) != KErrNone )
-				{
-				error = ETrue;
-				}
-	    	}
-	    }
+    {
+    TBool error( EFalse );
+    iChldCommand = 0;
+    iChldCallNumber = 0;
+    TBuf8< KRemConExtParamMaxLength > buf( aData );
+    buf.Trim();
+    TInt length = buf.Length();
+    
+    // Check invalid number of characters
+    if ( length < KMultipartyCallMinParam || length > KMultipartyCallMaxParam )
+        {
+        error = ETrue;
+        }
+    else
+        {
+        TLex8 param;
+        // Set command  
+        param.Assign( buf.Mid( 0, 1 ) );
+        if( param.Val( iChldCommand ) != KErrNone )
+            {
+            error = ETrue;
+            }
+        else if ( length == KMultipartyCallMaxParam )
+            {
+            // Set call number
+            param.Assign( buf.Mid(1) );
+            if( param.Val( iChldCallNumber ) != KErrNone )
+                {
+                error = ETrue;
+                }
+            }
+        }
 
-	if( error )
-		{
-		// Invalid command 
-		iResponse->SetResponse( ERemConExt3WaysCalling, KErrArgument );
-  		iResponse->Process();
-  		return;	
-		}
-		
-	COM_TRACE_2( "[PHONECMDHANDLER] CPhoneHandlerControl::MultipartyCalling() iChldCommand=%d, iChldCallNumber=%d", iChldCommand, iChldCallNumber );
-		
-	StartProcessing( ERemConExt3WaysCalling );
-	
-	COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::MultipartyCalling() end" );
-	}
-	
+    if( error )
+        {
+        // Invalid command 
+        iResponse->SetResponse( ERemConExt3WaysCalling, KErrArgument );
+        iResponse->Process();
+        return; 
+        }
+        
+    COM_TRACE_2( "[PHONECMDHANDLER] CPhoneHandlerControl::MultipartyCalling() iChldCommand=%d, iChldCallNumber=%d", iChldCommand, iChldCallNumber );
+        
+    StartProcessing( ERemConExt3WaysCalling );
+    
+    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::MultipartyCalling() end" );
+    }
+    
 // -----------------------------------------------------------------------------
 // CPhoneHandlerControl::GenerateDTMF
 // (other items were commented in a header).
 // -----------------------------------------------------------------------------
 //
 void CPhoneHandlerControl::GenerateDTMF( const TChar aChar )
-	{
-	COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::GenerateDTMF() start" );
-	
-	iChar = aChar;
-	
-	StartProcessing( ERemConExtGenerateDTMF );
-	
-	COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::GenerateDTMF() end" );
-	}
-	
+    {
+    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::GenerateDTMF() start" );
+    
+    iChar = aChar;
+    
+    StartProcessing( ERemConExtGenerateDTMF );
+    
+    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::GenerateDTMF() end" );
+    }
+    
 // -----------------------------------------------------------------------------
 // CPhoneHandlerControl::SpeedDial
 // (other items were commented in a header).
 // -----------------------------------------------------------------------------
 //
 void CPhoneHandlerControl::SpeedDial( const TInt aIndex )
-	{
-	COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::SpeedDial() aIndex=%d", aIndex );
+    {
+    COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::SpeedDial() aIndex=%d", aIndex );
 
-	iIndex = aIndex;
-	
-	StartProcessing( ERemConExtSpeedDial );
-	
-	COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::SpeedDial() end" );
-	}
+    iIndex = aIndex;
+    
+    StartProcessing( ERemConExtSpeedDial );
+    
+    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::SpeedDial() end" );
+    }
 
 // -----------------------------------------------------------------------------
 // CPhoneHandlerControl::StartProcessing
@@ -526,41 +506,41 @@
 // (other items were commented in a header).
 // -----------------------------------------------------------------------------
 //
-void CPhoneHandlerControl::StartProcessing(	
-	const TRemConExtCallHandlingApiOperationId aOperation )
-	{
-	COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::StartProcessing() start" );
-    		
-	// Create a service
-	MPhoneHandlerService* service = NULL;
-	TInt error( KErrNone );
-	TRAP( error, service = CreateServiceL( aOperation ) ); 
-		
-	COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() returned %d", error );
-		
-	if( error )
-		{
-		COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::StartProcessing(): service wasn't created succesfully." );
-		
-		// An error happened. Delete service, if it exists.
-		if( service )
-			{
-			service->Delete();
-			service = NULL;
-			}
-		
-		iResponse->SetResponse( aOperation, error );
-  		iResponse->Process();
-  		return;
-		}
-	else
-		{
-		// start service
-		service->Process();	
-		iSwitchCall = EFalse;
-		}
-			
-	COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::StartProcessing() end" );
+void CPhoneHandlerControl::StartProcessing( 
+    const TRemConExtCallHandlingApiOperationId aOperation )
+    {
+    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::StartProcessing() start" );
+            
+    // Create a service
+    MPhoneHandlerService* service = NULL;
+    TInt error( KErrNone );
+    TRAP( error, service = CreateServiceL( aOperation ) ); 
+        
+    COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() returned %d", error );
+        
+    if( error )
+        {
+        COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::StartProcessing(): service wasn't created succesfully." );
+        
+        // An error happened. Delete service, if it exists.
+        if( service )
+            {
+            service->Delete();
+            service = NULL;
+            }
+        
+        iResponse->SetResponse( aOperation, error );
+        iResponse->Process();
+        return;
+        }
+    else
+        {
+        // start service
+        service->Process(); 
+        iSwitchCall = EFalse;
+        }
+            
+    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::StartProcessing() end" );
     }
     
 // -----------------------------------------------------------------------------
@@ -569,7 +549,7 @@
 // -----------------------------------------------------------------------------
 //
 MPhoneHandlerService* CPhoneHandlerControl::
-	CreateServiceL( const TRemConExtCallHandlingApiOperationId aOperation )
+    CreateServiceL( const TRemConExtCallHandlingApiOperationId aOperation )
     {
     COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() start" );
       
@@ -578,162 +558,162 @@
     switch( aOperation )
         {
         case ERemConExtAnswerCall:
-		    {
-		    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - ERemConExtAnswerCall command" );
-		    COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - iActiveCalls is %d", iActiveCalls );
+            {
+            COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - ERemConExtAnswerCall command" );
+            COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - iActiveCalls is %d", iActiveCalls );
 
-			/*    	    
-    	    if( iActiveCalls > 0 )
-    	    	{
-    	    	// Multiparty call
-    	    	iSwitchCall = ETrue;
-    	    	pService = CPhoneHandlerMultipartyCall::NewL( *this );
-    	    	}
-    	    else
-    	    	{
-    	    	// non-multiparty call
-    	    	pService = CPhoneHandlerAnswerCall::NewL( *this );
-    	    	}
-    	    */
-    	    pService = CPhoneHandlerAnswerCall::NewL( *this );
+            /*          
+            if( iActiveCalls > 0 )
+                {
+                // Multiparty call
+                iSwitchCall = ETrue;
+                pService = CPhoneHandlerMultipartyCall::NewL( *this );
+                }
+            else
+                {
+                // non-multiparty call
+                pService = CPhoneHandlerAnswerCall::NewL( *this );
+                }
+            */
+            pService = CPhoneHandlerAnswerCall::NewL( *this );
 
-            break;	
-		    }
-		    
+            break;  
+            }
+            
         case ERemConExtEndCall:
-		    {
-		    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - ERemConExtEndCall command" );
-    	    
-		    pService = CPhoneHandlerEndCall::NewL( *this );
-		    
-		    break;	
-		    }
-		    
+            {
+            COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - ERemConExtEndCall command" );
+            
+            pService = CPhoneHandlerEndCall::NewL( *this );
+            
+            break;  
+            }
+            
         case ERemConExtAnswerEnd:
-        	{
-        	COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - ERemConExtAnswerEnd command" );
-    	            	
-        	TInt callState( EPSCTsyCallStateUninitialized );
-    		iProperty.Get( KPSUidCtsyCallInformation, KCTsyCallState, callState ); 
-    		
-    		COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() call state = %d", callState );
-			   
-		    if( callState != EPSCTsyCallStateUninitialized &&
-		    	callState != EPSCTsyCallStateNone && 
-		    	callState != EPSCTsyCallStateDisconnecting )
-		    	{
-		    	if( callState == EPSCTsyCallStateAlerting ||
-		    		callState == EPSCTsyCallStateDialling ||
-		    		callState == EPSCTsyCallStateAnswering ||
-		    		callState == EPSCTsyCallStateConnected ||
-		    		callState == EPSCTsyCallStateHold )
-		    		{
-		    		pService = CPhoneHandlerEndCall::NewL( *this, 
-		    									   	   aOperation );
-		    		}
-		    	// callState == EPSTelephonyCallStateRinging
-		    	else
-		    		{
-		    		COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() iActiveCalls = %d", iActiveCalls );
-		    		if( iActiveCalls > 0 )
-		    			{
-		    			// multicall case : End call that has existed longer.
-		    			// (From UI viewpoint ringing call is in waiting state.)
-		    			pService = CPhoneHandlerEndCall::NewL( *this, 
-		    									   	   aOperation );
-		    	        if( callState == EPSCTsyCallStateRinging )
-		    	            {
-		    	            // In multiparty case the telephony key is not
-		    	            // updated. The call amount is updated manually.
-		    	            iActiveCalls--;
-		    	            }
-		    			}
-		    		else
-		    			{
-		    			pService = CPhoneHandlerAnswerCall::NewL( 
-		    							*this, 
-		    							aOperation );
-		    			}
-		    		}
-		    	}
-		    else
-		    	{
-		    	// Send / end button was pressed when there were not 
-		    	// any calls active. Response has to be sent back to accessory
-		    	// at least for following reasons:
-		    	
-		    	// 1. RemCon FW releases message related memory only when response
-		    	// is sent back to accessory.
-		    	
-		    	// 2. BT accessory key press producing ERemConExtAnswerEnd 
-		    	// operation has some other meaning than answer/end call 
-		    	// and it's processed by proper client. However, there 
-		    	// might be a situation where proper client isn't active 
-		    	// and can't process command. In any case RemCon/BT accessory
-		    	// requires response to command. That's why PhoneCmdHandler 
-		    	// sends reponse to command. 
-								
-				iResponse->SetResponse( aOperation, KErrNone );
-				pService = iResponse;
-				}
-        	break;
-        	} 
-		    
-		case ERemConExtDialCall:
-		    {
-		    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - ERemConExtDialCall command" );
-    	    		    
-		   	pService = CPhoneHandlerDialCall::NewL( *this );
-            break;	
-		    }
-		    
-		case ERemConExtVoiceDial:
-        	{
-		    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - ERemConExtVoiceDial command" );
-    	    		    
-		    pService = CPhoneHandlerVoiceDial::NewL( *this );
-            break;	
-		    }
-		    
+            {
+            COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - ERemConExtAnswerEnd command" );
+                        
+            TInt callState( EPSCTsyCallStateUninitialized );
+            iProperty.Get( KPSUidCtsyCallInformation, KCTsyCallState, callState ); 
+            
+            COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() call state = %d", callState );
+               
+            if( callState != EPSCTsyCallStateUninitialized &&
+                callState != EPSCTsyCallStateNone && 
+                callState != EPSCTsyCallStateDisconnecting )
+                {
+                if( callState == EPSCTsyCallStateAlerting ||
+                    callState == EPSCTsyCallStateDialling ||
+                    callState == EPSCTsyCallStateAnswering ||
+                    callState == EPSCTsyCallStateConnected ||
+                    callState == EPSCTsyCallStateHold )
+                    {
+                    pService = CPhoneHandlerEndCall::NewL( *this, 
+                                                       aOperation );
+                    }
+                // callState == EPSTelephonyCallStateRinging
+                else
+                    {
+                    COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() iActiveCalls = %d", iActiveCalls );
+                    if( iActiveCalls > 0 )
+                        {
+                        // multicall case : End call that has existed longer.
+                        // (From UI viewpoint ringing call is in waiting state.)
+                        pService = CPhoneHandlerEndCall::NewL( *this, 
+                                                       aOperation );
+                        if( callState == EPSCTsyCallStateRinging )
+                            {
+                            // In multiparty case the telephony key is not
+                            // updated. The call amount is updated manually.
+                            iActiveCalls--;
+                            }
+                        }
+                    else
+                        {
+                        pService = CPhoneHandlerAnswerCall::NewL( 
+                                        *this, 
+                                        aOperation );
+                        }
+                    }
+                }
+            else
+                {
+                // Send / end button was pressed when there were not 
+                // any calls active. Response has to be sent back to accessory
+                // at least for following reasons:
+                
+                // 1. RemCon FW releases message related memory only when response
+                // is sent back to accessory.
+                
+                // 2. BT accessory key press producing ERemConExtAnswerEnd 
+                // operation has some other meaning than answer/end call 
+                // and it's processed by proper client. However, there 
+                // might be a situation where proper client isn't active 
+                // and can't process command. In any case RemCon/BT accessory
+                // requires response to command. That's why PhoneCmdHandler 
+                // sends reponse to command. 
+                                
+                iResponse->SetResponse( aOperation, KErrNone );
+                pService = iResponse;
+                }
+            break;
+            } 
+            
+        case ERemConExtDialCall:
+            {
+            COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - ERemConExtDialCall command" );
+                        
+            pService = CPhoneHandlerDialCall::NewL( *this );
+            break;  
+            }
+            
+        case ERemConExtVoiceDial:
+            {
+            COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - ERemConExtVoiceDial command" );
+                        
+            pService = CPhoneHandlerVoiceDial::NewL( *this );
+            break;  
+            }
+            
         case ERemConExtLastNumberRedial:
-        	{
-		    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - ERemConExtLastNumberRedial command" );
-    	    		    
-		    pService = CPhoneHandlerLastNumberRedial::NewL( *this );
-            break;	
-		    }
-		    
-		case ERemConExt3WaysCalling:
-        	{
-		    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - ERemConExt3WaysCalling command" );
-    	    		    
-		    pService = CPhoneHandlerMultipartyCall::NewL( *this );
-            break;	
-		    }
-		    
-		case ERemConExtGenerateDTMF:
-        	{
-		    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - ERemConExtGenerateDTMF command" );
-    	    		    
-		    pService = CPhoneHandlerDTMF::NewL( *this );
-            break;	
-		    }
-		    
+            {
+            COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - ERemConExtLastNumberRedial command" );
+                        
+            pService = CPhoneHandlerLastNumberRedial::NewL( *this );
+            break;  
+            }
+            
+        case ERemConExt3WaysCalling:
+            {
+            COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - ERemConExt3WaysCalling command" );
+                        
+            pService = CPhoneHandlerMultipartyCall::NewL( *this );
+            break;  
+            }
+            
+        case ERemConExtGenerateDTMF:
+            {
+            COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - ERemConExtGenerateDTMF command" );
+                        
+            pService = CPhoneHandlerDTMF::NewL( *this );
+            break;  
+            }
+            
         case ERemConExtSpeedDial:
-        	{
-        	COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - ERemConExtSpeedDial command" );
-    	            	
-        	InitializeSpeedDialL();
-        	pService = CPhoneHandlerDialCall::NewL( *this, 
-        											aOperation );
-            break;	
-		    } 
-				    
+            {
+            COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - ERemConExtSpeedDial command" );
+                        
+            InitializeSpeedDialL();
+            pService = CPhoneHandlerDialCall::NewL( *this, 
+                                                    aOperation );
+            break;  
+            } 
+                    
         default:
-        	{
-        	COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() Unspecified state" );
-			break;
-	       	}
+            {
+            COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() Unspecified state" );
+            break;
+            }
         };
         
     COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() end, %d", pService );
@@ -747,33 +727,38 @@
 //
 void CPhoneHandlerControl::InitializeSpeedDialL()
     {
+    
+// <-- QT PHONE START -->
+/*
     COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::InitializeSpeedDialL() start" );
     
     // first check contack engine is not in busy
   TInt cntEngState( 0 );
-	TInt err = iProperty.Get( KUidSystemCategory, conn::KUidBackupRestoreKey, cntEngState ); 
+    TInt err = iProperty.Get( KUidSystemCategory, conn::KUidBackupRestoreKey, cntEngState ); 
   
-	if( err == KErrNotFound || cntEngState == 0 || 
-			cntEngState & conn::KBURPartTypeMask == conn::EBURNormal || 
-			cntEngState & conn::KBackupIncTypeMask == conn::ENoBackup )
-		{
-	    // Get phone number from phonebook by index	
-		CPbkContactEngine* ptr = CPbkContactEngine::NewL();
+    if( err == KErrNotFound || cntEngState == 0 || 
+            cntEngState & conn::KBURPartTypeMask == conn::EBURNormal || 
+            cntEngState & conn::KBackupIncTypeMask == conn::ENoBackup )
+        {
+        // Get phone number from phonebook by index 
+        CPbkContactEngine* ptr = CPbkContactEngine::NewL();
     CleanupStack::PushL( ptr );       
-		TRACE_ASSERT( ptr != NULL );
-		ptr->GetSpeedDialFieldL( iIndex, iTelNumber );
-		COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::InitializeSpeedDialL() speed dial number is %S", &iTelNumber );
-		CleanupStack::PopAndDestroy( ptr );
-		}
-	else
-		{
-		// contact engine is in busy
-		COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::InitializeSpeedDialL() contact engine is in backup/restore" );
-		User::Leave( KErrInUse );
-		}
-		
-	COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::InitializeSpeedDialL() end" );
-	}
+        TRACE_ASSERT( ptr != NULL );
+        ptr->GetSpeedDialFieldL( iIndex, iTelNumber );
+        COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::InitializeSpeedDialL() speed dial number is %S", &iTelNumber );
+        CleanupStack::PopAndDestroy( ptr );
+        }
+    else
+        {
+        // contact engine is in busy
+        COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::InitializeSpeedDialL() contact engine is in backup/restore" );
+        User::Leave( KErrInUse );
+        }
+*/  
+// <-- QT PHONE END -->
+
+    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::InitializeSpeedDialL() end" );
+    }
 
 // -----------------------------------------------------------------------------
 // CPhoneHandlerControl::SwitchCall
@@ -783,52 +768,7 @@
 TBool CPhoneHandlerControl::SwitchCall()
     {
     return iSwitchCall;
-	}
-
-// ---------------------------------------------------------
-// CPhoneHandlerControl::IsAutoLockOn
-// ---------------------------------------------------------
-//
-TBool CPhoneHandlerControl::IsAutoLockOn() const
-    {
-    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::IsAutoLockOn() start " );
-    TInt err( KErrNone );
-    TInt value( EAutolockStatusUninitialized );
-
-    err = RProperty::Get( KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, value );
-    if ( err != KErrNone )
-        {
-        value = err;
-        }
-    COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::IsAutoLockOn() autolock value = %d", value );
-    
-    return value > EAutolockOff ? ETrue : EFalse;
-      
-    }
-// ---------------------------------------------------------
-// CPhoneHandlerControl::IsBTAccessoryCmd
-// ---------------------------------------------------------
-//
-TBool CPhoneHandlerControl::IsBTAccessoryCmd() const
-    {
-    COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::IsBTAccessoryCmd() start " );
-    TBool retval( EFalse );
-    
-    TRemConExtCmdSource source;             
-    iTarget->GetCommandSourceInfo( source );
-    if ( source == ERemConExtCmdSourceBluetooth )
-        {       
-        retval = ETrue;
-        }
-    
-    COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::IsBTAccessoryCmd() GetCommandSourceInfo = %d", source );
-       
-    return retval;
-    }
-
- 
-
- 
+    }   
 // ======================== OTHER EXPORTED FUNCTIONS ===========================
 
 // End of File