summaryrefslogtreecommitdiff
path: root/orkaudio
diff options
context:
space:
mode:
authorHenri Herscher <henri@oreka.org>2006-12-20 16:06:55 +0000
committerHenri Herscher <henri@oreka.org>2006-12-20 16:06:55 +0000
commit99c3dbf70cb598675a988a5124629796a6d10632 (patch)
tree57057970ce5b0b585ac57bc8b87007018fce1523 /orkaudio
parent179e05d310e852573838d417c38744ed77c8dc30 (diff)
Fixed bug where SIP calls could be reported with the wrong metadata when involved media addresses were not within LAN.
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@373 09dcff7a-b715-0410-9601-b79a96267cd0
Diffstat (limited to 'orkaudio')
-rw-r--r--orkaudio/audiocaptureplugins/voip/RtpSession.cpp24
1 files changed, 15 insertions, 9 deletions
diff --git a/orkaudio/audiocaptureplugins/voip/RtpSession.cpp b/orkaudio/audiocaptureplugins/voip/RtpSession.cpp
index 9ca049a..9bc0e01 100644
--- a/orkaudio/audiocaptureplugins/voip/RtpSession.cpp
+++ b/orkaudio/audiocaptureplugins/voip/RtpSession.cpp
@@ -174,9 +174,7 @@ void RtpSession::ProcessMetadataRawRtp(RtpPacketInfoRef& rtpPacket)
void RtpSession::ProcessMetadataSip(RtpPacketInfoRef& rtpPacket)
{
- bool done = false;
-
- // work out invitee IP address
+ // work out invitee media IP address
if((unsigned int)rtpPacket->m_sourceIp.s_addr == (unsigned int)m_invitorIp.s_addr)
{
m_inviteeIp = rtpPacket->m_destIp;
@@ -199,12 +197,20 @@ void RtpSession::ProcessMetadataSip(RtpPacketInfoRef& rtpPacket)
{
if(DLLCONFIG.IsMediaGateway(m_inviteeIp))
{
- // dismiss
+ // Media gateway talking to media gateway, this is probably incoming
+ ProcessMetadataSipIncoming();
}
- if(DLLCONFIG.IsPartOfLan(m_inviteeIp))
+ else if(DLLCONFIG.IsPartOfLan(m_inviteeIp))
{
+ // Gateway to LAN, this is pobably incoming
ProcessMetadataSipIncoming();
- }
+ }
+ else
+ {
+ // Gateway to outside address, probably outgoing but treat as incoming for now because
+ // It can be due to misconfigured LAN Mask, odds are it's still incoming.
+ ProcessMetadataSipIncoming();
+ }
}
else if (DLLCONFIG.IsPartOfLan(m_invitorIp))
{
@@ -212,10 +218,10 @@ void RtpSession::ProcessMetadataSip(RtpPacketInfoRef& rtpPacket)
}
else
{
- // SIP invitor IP address is an outside IP address
+ // SIP invitor media IP address is an outside IP address
if(DLLCONFIG.IsMediaGateway(m_inviteeIp))
{
- // dismiss
+ ProcessMetadataSipIncoming();
}
else if(DLLCONFIG.IsPartOfLan(m_inviteeIp))
{
@@ -223,7 +229,7 @@ void RtpSession::ProcessMetadataSip(RtpPacketInfoRef& rtpPacket)
}
else
{
- // SIP invitee IP address is an outside IP address
+ // SIP invitee media address is an outside IP address
ProcessMetadataSipOutgoing();
}
}