diff options
-rw-r--r-- | orkaudio/audiocaptureplugins/voip/VoIp.cpp | 14 | ||||
-rw-r--r-- | orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp | 3 | ||||
-rw-r--r-- | orkaudio/audiocaptureplugins/voip/VoIpConfig.h | 1 |
3 files changed, 13 insertions, 5 deletions
diff --git a/orkaudio/audiocaptureplugins/voip/VoIp.cpp b/orkaudio/audiocaptureplugins/voip/VoIp.cpp index 96e7349..ed5bc5f 100644 --- a/orkaudio/audiocaptureplugins/voip/VoIp.cpp +++ b/orkaudio/audiocaptureplugins/voip/VoIp.cpp @@ -300,10 +300,14 @@ bool TrySipInvite(EthernetHeaderStruct* ethernetHeader, IpHeaderStruct* ipHeader { info->m_fromIp = fromIp; - //if((unsigned int)fromIp.s_addr != (unsigned int)ipHeader->ip_src.s_addr) - //{ - // drop =true; - //} + if (DLLCONFIG.m_sipDropIndirectInvite) + { + if((unsigned int)fromIp.s_addr != (unsigned int)ipHeader->ip_src.s_addr) + { + // SIP invite SDP connection address does not match with SIP packet origin + drop =true; + } + } } } } @@ -313,7 +317,7 @@ bool TrySipInvite(EthernetHeaderStruct* ethernetHeader, IpHeaderStruct* ipHeader info->m_fromIp = ipHeader->ip_src; } - if(drop ==false && info->m_fromRtpPort.size() && info->m_from.size() && info->m_to.size() && info->m_callId.size()) + if(drop == false && info->m_fromRtpPort.size() && info->m_from.size() && info->m_to.size() && info->m_callId.size()) { RtpSessionsSingleton::instance()->ReportSipInvite(info); } diff --git a/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp b/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp index 7cb6dde..cdea7fb 100644 --- a/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp +++ b/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp @@ -24,6 +24,8 @@ VoIpConfig::VoIpConfig() m_asciiLanMasks.push_back("192.168.255.255"); m_asciiLanMasks.push_back("10.255.255.255"); m_asciiLanMasks.push_back("172.31.255.255"); + + m_sipDropIndirectInvite = false; } void VoIpConfig::Define(Serializer* s) @@ -34,6 +36,7 @@ void VoIpConfig::Define(Serializer* s) s->CsvValue("MediaGateways", m_asciiMediaGateways); s->StringValue("PcapFile", m_pcapFile); s->StringValue("PcapDirectory", m_pcapDirectory); + s->BoolValue("SipDropIndirectInvite", m_sipDropIndirectInvite); } void VoIpConfig::Validate() diff --git a/orkaudio/audiocaptureplugins/voip/VoIpConfig.h b/orkaudio/audiocaptureplugins/voip/VoIpConfig.h index 4a9ce83..2c68eab 100644 --- a/orkaudio/audiocaptureplugins/voip/VoIpConfig.h +++ b/orkaudio/audiocaptureplugins/voip/VoIpConfig.h @@ -45,6 +45,7 @@ public: std::list<CStdString> m_asciiLanMasks; CStdString m_pcapFile; CStdString m_pcapDirectory; + bool m_sipDropIndirectInvite; }; //======================================== |