phoneengine/phonemodel/src/cpemessagehandler.cpp
branchRCL_3
changeset 58 40a3f856b14d
parent 39 b8d67d6176f5
child 61 41a7f70b3818
--- a/phoneengine/phonemodel/src/cpemessagehandler.cpp	Thu Jul 15 18:38:16 2010 +0300
+++ b/phoneengine/phonemodel/src/cpemessagehandler.cpp	Thu Aug 19 09:54:27 2010 +0300
@@ -162,6 +162,7 @@
             iExternalDataHandler( aExternalDataHandler ),
             iSimStateMonitor( aSimStateMonitor ),
             iFsSession( aFsSession ),
+			iSwitchToVidCalReconFlag( EFalse ),
             iServiceHandling( aServiceHandling ),
             iDataStore( *aModel.DataStore() )
     {
@@ -1879,8 +1880,17 @@
     // Check the phone number for prefix change and change the prefix if needed
     CheckPrefix();
 
-    phoneNumber = iDataStore.PhoneNumber();
-  
+    if( iSwitchToVidCalReconFlag )
+        {
+        phoneNumber = iDataStore.SwitchToNumberCommand();
+		// Clear flag to match the previous set operation in HandleSwitchToVideoOrVoice() function.
+        iSwitchToVidCalReconFlag = EFalse;
+        }
+    else
+        {
+        phoneNumber = iDataStore.PhoneNumber();
+        }
+    
     __ASSERT_ALWAYS( !( phoneNumber == KNullDesC ), User::Leave( ECCPErrorInvalidPhoneNumber ));
     
     // Number parser operations
@@ -2076,10 +2086,16 @@
 
     iAutomaticAnswerTimer->Cancel();
 
-    TEFLOGSTRING( KTAMESOUT, 
+    // Prevent playing inband tone when phone is in silent mode and 
+    // audio output is not defined (call is  not connected).
+    if ( ( iDataStore.RingingType() != EProfileRingingTypeSilent ) || 
+         ( iDataStore.AudioOutput() != EPENotActive ) )
+        {
+        TEFLOGSTRING( KTAMESOUT, 
         "PE CPEMessageHandler::HandleDisconnecting > iGsmAudioData.PlayInbandTone()");
-    iGsmAudioData.PlayInbandTone();
-    
+        iGsmAudioData.PlayInbandTone();
+        }
+
     return ECCPErrorNone;
     }
 
@@ -2719,6 +2735,7 @@
             iDataStore.SetSwitchToNumberCommand( iDataStore.WholeOutgoingPhoneNumber( aCallId ) );  
             // Clear phonenumber to prevent using the wrong number in MO video call.
             iDataStore.SetPhoneNumber( KNullDesC() );
+            iSwitchToVidCalReconFlag = ETrue;
             }
         else
             {
@@ -2747,6 +2764,8 @@
     TInt errorCode( ECCPErrorNone );
   
     TPEPhoneNumber phoneNumber = iDataStore.SwitchToNumberCommand();
+    RemovePreAndPostFix( phoneNumber );
+    
     TEFLOGSTRING2( KTAINT, 
         "PE CPEMessageHandler::ContinueSwitchToCall, phoneNumber : %S", 
         &phoneNumber );