--- 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 );