summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenri Herscher <henri@oreka.org>2006-11-10 20:00:14 +0000
committerHenri Herscher <henri@oreka.org>2006-11-10 20:00:14 +0000
commitcc2314dd8f0c5bc8eafdc5da4774d30081c6a6c7 (patch)
tree3e1115a3f6d153798f0462b51c798c225bba53f1
parent3e98fa80955a23e12ceae8944b2fd9537443dd26 (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.cpp13
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;