From 6867a3fbe0111d352b9e00388a46249057818cef Mon Sep 17 00:00:00 2001 From: Henri Herscher Date: Thu, 28 May 2009 16:31:39 +0000 Subject: SIP INVITE advertising an RTP address matching an existing session (with a different SIP Call ID) will now result in the existing session being stopped and a new session being created. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@616 09dcff7a-b715-0410-9601-b79a96267cd0 --- orkaudio/audiocaptureplugins/voip/RtpSession.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/orkaudio/audiocaptureplugins/voip/RtpSession.cpp b/orkaudio/audiocaptureplugins/voip/RtpSession.cpp index 9424cd9..e6f789c 100644 --- a/orkaudio/audiocaptureplugins/voip/RtpSession.cpp +++ b/orkaudio/audiocaptureplugins/voip/RtpSession.cpp @@ -1308,6 +1308,13 @@ void RtpSessions::ReportSipInvite(SipInviteInfoRef& invite) // Do nothing here so that we end up stopping this Raw RTP session // and creating new session below } + else if (invite->m_callId.Equals(session->m_callId) == false) + { + LOG4CXX_INFO(m_log, "[" + session->m_trackingId + "] Detecting new SIP callId:" + invite->m_callId + " stopping..."); + // Forcing previous session type to Raw RTP so that SetMediaAddress() successfully + // replaces it by a new session below. + session->m_protocol = RtpSession::ProtRawRtp; + } else { if(invite->m_attrSendonly) -- cgit v1.2.3