diff -r 8b36925e8e80 -r e275ee612b82 multimediacommsengine/mmcesrv/mmceserver/src/mcesipsession.cpp --- a/multimediacommsengine/mmcesrv/mmceserver/src/mcesipsession.cpp Mon Mar 08 21:43:55 2010 +0000 +++ b/multimediacommsengine/mmcesrv/mmceserver/src/mcesipsession.cpp Sun Mar 14 13:11:20 2010 +0000 @@ -225,6 +225,13 @@ CMceComSession* body = iBodyBucket[ 0 ]; if ( &body->SdpSession() ) { + if( body->SdpSession().Context() == Dialog() ) + { + //fork situation + CMceComSession* tmpBody = body; + body = iBody; + iBody = tmpBody; + } body->SdpSession().AttachContext( NULL ); } CMceComSession::Delete( body, Manager().MediaManager() ); @@ -1268,7 +1275,8 @@ } else { - if ( Response().Type() == SIPStrings::StringF( SipStrConsts::EInvite ) ) + if ( Response().Type() == SIPStrings::StringF( SipStrConsts::EInvite ) || + Response().Type() == SIPStrings::StringF( SipStrConsts::EPrack ) ) { // If one of the forked dialogs generated 200 OK response // for a session that is not in established state, @@ -2612,4 +2620,33 @@ { return iForkedDialogs.Count(); } +// ----------------------------------------------------------------------------- +// CMceSipSession::ForceUpdateStreamL +// ----------------------------------------------------------------------------- +// +void CMceSipSession::ForceUpdateStreamL() + { + MCESRV_DEBUG("CMceSipSession::ForceUpdateStream, Entry"); + if( iBody->SdpSession().Context() == Dialog() ) + { + Manager().MediaManager().ForceEnableSinkState( ActiveBody() ); + } + else + { + ActiveBody().SdpSession().UpdateSecureStreamL( ActiveBody() ); + Manager().MediaManager().UpDateStreamStateL( *iBody, ActiveBody() ); + } + MCESRV_DEBUG("CMceSipSession::ForceUpdateStream, Exit"); + } +// ----------------------------------------------------------------------------- +// CMceSipSession::ResetCurrentDialog +// ----------------------------------------------------------------------------- +// +void CMceSipSession::ResetCurrentDialog() + { + if( iBodyBucket.Count() == 0 ) + { + iCurrentDialog = iDialog; + } + } // End of File