diff -r ed1e38b404e5 -r 6134b5029079 sipvoipprovider/src/svpsessionbase.cpp --- a/sipvoipprovider/src/svpsessionbase.cpp Wed Mar 31 21:20:05 2010 +0300 +++ b/sipvoipprovider/src/svpsessionbase.cpp Wed Apr 14 15:49:55 2010 +0300 @@ -1574,6 +1574,18 @@ SVPDEBUG1( "CSVPSessionBase::HandleStreamStateChange - Resume ICMP, Sink" ) TRAP_IGNORE( StartTimerL( KSVPSinkResumeICMPErrorTime, KSVPSinkResumeICMPErrorTimerExpired ) ) } + + else if ( !HasHoldController() && !aSink.IsEnabled() && CMceSession::EEstablished == sessionState && + CMceMediaStream::EDisabled == aStream.State() ) + { + // Not a hold case, mediaStream and sink is disabled -> try enable after a while + SVPDEBUG1( "CSVPSessionBase::HandleStreamStateChange - ICMP, Sink and MediaStream" ) + if ( !IsSessionMuted() ) + { + SVPDEBUG1( "CSVPSessionBase::HandleStreamStateChange - ICMP, Sink not enabled -> enable" ) + aSink.EnableL(); + } + } } SVPDEBUG1( "CSVPSessionBase::HandleStreamStateChange(aStream,aSink) Out" ) @@ -1616,6 +1628,18 @@ SVPDEBUG1( "CSVPSessionBase::HandleStreamStateChange - Resume ICMP, Source" ) TRAP_IGNORE( StartTimerL( KSVPSourceResumeICMPErrorTime, KSVPSourceResumeICMPErrorTimerExpired ) ) } + + else if ( !HasHoldController() && !aSource.IsEnabled() && CMceSession::EEstablished == sessionState && + CMceMediaStream::EDisabled == aStream.State() ) + { + // Not a hold case, mediaStream and source is disabled -> try enable after a while + SVPDEBUG1( "CSVPSessionBase::HandleStreamStateChange - ICMP, Source and MediaStream" ) + if ( !IsSessionMuted() ) + { + SVPDEBUG1( "CSVPSessionBase::HandleStreamStateChange - ICMP, Source not enabled -> enable" ) + aSource.EnableL(); + } + } } SVPDEBUG1( "CSVPSessionBase::HandleStreamStateChange(aStream,aSource) Out" )