--- a/sipvoipprovider/src/svpsessionbase.cpp Mon Jun 21 15:29:21 2010 +0300
+++ b/sipvoipprovider/src/svpsessionbase.cpp Thu Aug 19 09:45:22 2010 +0300
@@ -1524,7 +1524,8 @@
TBool bothStreamsDisabled ( ETrue );
TRAP_IGNORE( bothStreamsDisabled = IsBothStreamsDisabledL() );
if ( bothStreamsDisabled &&
- CMceSession::EEstablished == aStream.Session()->State() )
+ CMceSession::EEstablished == aStream.Session()->State() &&
+ IsErrorInULandDLFirstTime() )
{
SetErrorInULandDLFirstTime( EFalse );
TRAP_IGNORE( StartTimerL( KSVPICMPErrorTime, KSVPICMPErrorTimerExpired ) )
@@ -3103,6 +3104,15 @@
SVPDEBUG1( "CSVPSessionBase::UpdateFailed In" )
SVPDEBUG2( "CSVPSessionBase::UpdateFailed aStatusCode=%d", aStatusCode )
+ // Check if MCE Session has changed
+ if ( &Session() != &aSession )
+ {
+ // And if, then update to the current session
+ SVPDEBUG1( "CSVPSessionBase::UpdateFailed - update MCE Session" )
+ delete iSession;
+ iSession = &aSession;
+ }
+
if ( iHoldController )
{
iHoldController->RequestFailed( aSession, aStatusCode, *this );