diff options
author | Henri Herscher <henri@oreka.org> | 2006-11-10 20:00:14 +0000 |
---|---|---|
committer | Henri Herscher <henri@oreka.org> | 2006-11-10 20:00:14 +0000 |
commit | cc2314dd8f0c5bc8eafdc5da4774d30081c6a6c7 (patch) | |
tree | 3e1115a3f6d153798f0462b51c798c225bba53f1 | |
parent | 3e98fa80955a23e12ceae8944b2fd9537443dd26 (diff) |
RTP Sessions are now also searched by endpoint IP address when a Skinny StopMediaTransmission is received.
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@352 09dcff7a-b715-0410-9601-b79a96267cd0
-rw-r--r-- | orkaudio/audiocaptureplugins/voip/RtpSession.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/orkaudio/audiocaptureplugins/voip/RtpSession.cpp b/orkaudio/audiocaptureplugins/voip/RtpSession.cpp index 0d26562..18238af 100644 --- a/orkaudio/audiocaptureplugins/voip/RtpSession.cpp +++ b/orkaudio/audiocaptureplugins/voip/RtpSession.cpp @@ -752,6 +752,7 @@ void RtpSessions::ReportSkinnyStopMediaTransmission(SkStopMediaTransmissionStruc CStdString passThruPartyId; CStdString skinnyCallId; std::map<CStdString, RtpSessionRef>::iterator pair = m_byCallId.end(); + RtpSessionRef session; // Try to locate the session using either conferenceId or passThruPartyId if(stopMedia->conferenceId != 0) @@ -766,12 +767,18 @@ void RtpSessions::ReportSkinnyStopMediaTransmission(SkStopMediaTransmissionStruc skinnyCallId = GenerateSkinnyCallId(ipHeader->ip_dest, stopMedia->passThruPartyId); pair = m_byCallId.find(skinnyCallId); } - if (pair != m_byCallId.end()) { // Session found: stop it - RtpSessionRef session = pair->second; - + session = pair->second; + } + else + { + // Session was not found by conferenceId or passThruPartyId, try to find it by endpoint IP address + session = findByEndpointIp(ipHeader->ip_dest); + } + if(session.get()) + { if(m_log->isInfoEnabled()) { CStdString logMsg; |