diff -r 8b36925e8e80 -r e275ee612b82 multimediacommsengine/mmcesrv/mmceserver/src/mcestateoffering.cpp --- a/multimediacommsengine/mmcesrv/mmceserver/src/mcestateoffering.cpp Mon Mar 08 21:43:55 2010 +0000 +++ b/multimediacommsengine/mmcesrv/mmceserver/src/mcestateoffering.cpp Sun Mar 14 13:11:20 2010 +0000 @@ -34,6 +34,9 @@ #include "mcenatmacros.h" #include "mcesdpsession.h" #include "mcesrvlogs.h" +#include "mcemediastate.h" +#include "mcemediadefs.h" +#include "mcemediamanager.h" // ----------------------------------------------------------------------------- // CMceStateOffering::CMceStateOffering @@ -271,7 +274,15 @@ if ( MceSip::ResponseCode( session.Response() ) == KMceSipSessionProgress && session.ForkedDialogsCount() ) { + if( session.ActiveBody().NegotiationState().Id() == KMceMediaNegotiated || + session.ActiveBody().NegotiationState().Id() == KMceOfferingMedia ) + { IsFork = ETrue; + } + else + { + session.ResetCurrentDialog(); + } } if ( session.Actions().NeedToProcessL( aEvent ) || IsFork ) { @@ -484,6 +495,13 @@ { if ( !MCE_NEED_TO_RECEIVE( session ) ) { + if ( session.ActiveBody().SecureSession()) + { + if( session.ForkedDialogsCount() ) + { + session.ForceUpdateStreamL(); + } + } status = session.Actions().UpdateL(); // SDP answer was received before // go to established state