From 3b0b11b04d2e09a18f48b258f04fbedec4479f3c Mon Sep 17 00:00:00 2001 From: Gerald Begumisa Date: Tue, 15 Sep 2009 11:26:13 +0000 Subject: Added new config.xml parameter RtpTrackByUdpPortOnly, which when set to true, causes the media address to be computed as to contain only the Udp port specified. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@641 09dcff7a-b715-0410-9601-b79a96267cd0 --- orkaudio/audiocaptureplugins/voip/RtpSession.cpp | 12 ++++++++++-- orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp | 2 ++ orkaudio/audiocaptureplugins/voip/VoIpConfig.h | 1 + 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/orkaudio/audiocaptureplugins/voip/RtpSession.cpp b/orkaudio/audiocaptureplugins/voip/RtpSession.cpp index b9bc898..f571212 100644 --- a/orkaudio/audiocaptureplugins/voip/RtpSession.cpp +++ b/orkaudio/audiocaptureplugins/voip/RtpSession.cpp @@ -1969,8 +1969,16 @@ RtpSessionRef RtpSessions::findNewestByEndpointIp(struct in_addr endpointIpAddr) void RtpSessions::CraftMediaAddress(CStdString& mediaAddress, struct in_addr ipAddress, unsigned short udpPort) { char szIpAddress[16]; - ACE_OS::inet_ntop(AF_INET, (void*)&ipAddress, szIpAddress, sizeof(szIpAddress)); - mediaAddress.Format("%s,%u", szIpAddress, udpPort); + + if(DLLCONFIG.m_rtpTrackByUdpPortOnly == false) + { + ACE_OS::inet_ntop(AF_INET, (void*)&ipAddress, szIpAddress, sizeof(szIpAddress)); + mediaAddress.Format("%s,%u", szIpAddress, udpPort); + } + else + { + mediaAddress.Format("%u", udpPort); + } } void RtpSessions::MapOtherMediaAddress(RtpSessionRef& session, CStdString& ipAndPort) diff --git a/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp b/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp index 03dea4f..69d51d7 100644 --- a/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp +++ b/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp @@ -35,6 +35,7 @@ VoIpConfig::VoIpConfig() m_rtpSessionWithSignallingInitialTimeoutSec = 5*60; m_rtpSessionOnHoldTimeOutSec = 1800; m_rtpReportDtmf = false; + m_rtpTrackByUdpPortOnly = false; m_pcapTest= false; m_rtpDiscontinuityDetect = false; m_rtpDiscontinuityMinSeqDelta = 1000; @@ -108,6 +109,7 @@ void VoIpConfig::Define(Serializer* s) s->IntValue("RtpSessionOnHoldTimeOutSec", m_rtpSessionOnHoldTimeOutSec); s->BoolValue("RtpReportDtmf", m_rtpReportDtmf); s->IpRangesValue("RtpBlockedIpRanges", m_rtpBlockedIpRanges); + s->BoolValue("RtpTrackByUdpPortOnly", m_rtpTrackByUdpPortOnly); s->BoolValue("PcapTest", m_pcapTest); s->StringValue("PcapFilter", m_pcapFilter); diff --git a/orkaudio/audiocaptureplugins/voip/VoIpConfig.h b/orkaudio/audiocaptureplugins/voip/VoIpConfig.h index 5d5cd32..d853b85 100644 --- a/orkaudio/audiocaptureplugins/voip/VoIpConfig.h +++ b/orkaudio/audiocaptureplugins/voip/VoIpConfig.h @@ -74,6 +74,7 @@ public: bool m_rtpDetectOnOddPorts; bool m_rtpReportDtmf; IpRanges m_rtpBlockedIpRanges; + bool m_rtpTrackByUdpPortOnly; bool m_iax2Support; bool m_sipOverTcpSupport; -- cgit v1.2.3