summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenri Herscher <henri@oreka.org>2006-03-29 21:40:57 +0000
committerHenri Herscher <henri@oreka.org>2006-03-29 21:40:57 +0000
commit6fabf5102dfda1341eb43aa8a2ab9a2f8bff2461 (patch)
treeecd5b8f878a746c83bc1c459e9c8cb34f39e5ca1
parent15808b4c81e4373c71456ba66e2cdfd41b292e94 (diff)
Added SipDropIndirectInvite configuration parameter
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@207 09dcff7a-b715-0410-9601-b79a96267cd0
-rw-r--r--orkaudio/audiocaptureplugins/voip/VoIp.cpp14
-rw-r--r--orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp3
-rw-r--r--orkaudio/audiocaptureplugins/voip/VoIpConfig.h1
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;
};
//========================================