sipvoipprovider/src/svpsessionbase.cpp
branchRCL_3
changeset 20 65a3ef1d5bd0
parent 16 df4dfb214df5
--- 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 );