diff options
-rw-r--r-- | orkaudio/audiocaptureplugins/voip/RtpSession.cpp | 20 | ||||
-rw-r--r-- | orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp | 3 | ||||
-rw-r--r-- | orkaudio/audiocaptureplugins/voip/VoIpConfig.h | 1 |
3 files changed, 7 insertions, 17 deletions
diff --git a/orkaudio/audiocaptureplugins/voip/RtpSession.cpp b/orkaudio/audiocaptureplugins/voip/RtpSession.cpp index fa312ae..9ed7360 100644 --- a/orkaudio/audiocaptureplugins/voip/RtpSession.cpp +++ b/orkaudio/audiocaptureplugins/voip/RtpSession.cpp @@ -979,23 +979,9 @@ void RtpSessions::ReportSipInvite(SipInviteInfoRef& invite) } } - // For now, do not report new INVITEs that have the same SIP call ID but a different media address - // those INVITEs are ignored altogether. - if(!session->m_ipAndPort.Equals(ipAndPort)) - { - //===== The following is disabled because it disrupts valid sessions ==== - //===== We need to make sure that at least one RTP packet has been ==== - //===== seen that validates any new INVITE associated with the session ==== - //// The session RTP connection address has changed - //// Remove session from IP and Port map - //m_byIpAndPort.erase(session->m_ipAndPort); - //// ... update - //session->m_ipAndPort = ipAndPort; - //session->ReportSipInvite(invite); - //// ... and reinsert - //m_byIpAndPort.insert(std::make_pair(session->m_ipAndPort, session)); - // - //LOG4CXX_INFO(m_log, "[" + session->m_trackingId + "] updated with new INVITE data"); + if(!session->m_ipAndPort.Equals(ipAndPort) && DLLCONFIG.m_sipDynamicMediaAddress) + { + SetMediaAddress(session, invite->m_fromRtpIp, rtpPort); } return; } diff --git a/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp b/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp index cc4213b..4ab8abd 100644 --- a/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp +++ b/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp @@ -44,6 +44,7 @@ VoIpConfig::VoIpConfig() m_sipLogFailedCalls = false; m_sipUse200OkMediaAddress = false; m_sipReportFullAddress = false; + m_sipDynamicMediaAddress = false; m_useMacIfNoLocalParty = false; // Uses IP address by default m_localPartyForceLocalIp = false; @@ -93,6 +94,8 @@ void VoIpConfig::Define(Serializer* s) s->BoolValue("SipLogFailedCalls", m_sipLogFailedCalls); s->BoolValue("SipUse200OkMediaAddress", m_sipUse200OkMediaAddress); s->BoolValue("SipReportFullAddress", m_sipReportFullAddress); + s->BoolValue("SipDynamicMediaAddress", m_sipDynamicMediaAddress); + s->BoolValue("UseMacIfNoLocalParty", m_useMacIfNoLocalParty); s->BoolValue("LocalPartyForceLocalIp", m_localPartyForceLocalIp); diff --git a/orkaudio/audiocaptureplugins/voip/VoIpConfig.h b/orkaudio/audiocaptureplugins/voip/VoIpConfig.h index b5e5d43..f5e04c7 100644 --- a/orkaudio/audiocaptureplugins/voip/VoIpConfig.h +++ b/orkaudio/audiocaptureplugins/voip/VoIpConfig.h @@ -78,6 +78,7 @@ public: bool m_sipLogFailedCalls; bool m_sipUse200OkMediaAddress; bool m_sipReportFullAddress; + bool m_sipDynamicMediaAddress; bool m_useMacIfNoLocalParty; bool m_localPartyForceLocalIp; |