summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenri Herscher <henri@oreka.org>2008-12-10 22:45:50 +0000
committerHenri Herscher <henri@oreka.org>2008-12-10 22:45:50 +0000
commit960e134a00df44a2cb3eda87f2d7dcde9fb5156e (patch)
treea2e8421a3cde7945e2aab894086795dfd907f0d0
parenta578ceb82ea189a0296eb5bb1bbe70e20cc427a6 (diff)
Added SipIgnoreBye configuration parameter. Improved BYE logging and made sure 200 OK is only logged in the INFO level if it has valid SDP (otherwise DEBUG).
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@586 09dcff7a-b715-0410-9601-b79a96267cd0
-rw-r--r--orkaudio/audiocaptureplugins/voip/RtpSession.cpp22
-rw-r--r--orkaudio/audiocaptureplugins/voip/RtpSession.h5
-rw-r--r--orkaudio/audiocaptureplugins/voip/VoIp.cpp18
-rw-r--r--orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp4
-rw-r--r--orkaudio/audiocaptureplugins/voip/VoIpConfig.h2
5 files changed, 48 insertions, 3 deletions
diff --git a/orkaudio/audiocaptureplugins/voip/RtpSession.cpp b/orkaudio/audiocaptureplugins/voip/RtpSession.cpp
index 7d9038a..cf1ba08 100644
--- a/orkaudio/audiocaptureplugins/voip/RtpSession.cpp
+++ b/orkaudio/audiocaptureplugins/voip/RtpSession.cpp
@@ -2476,6 +2476,7 @@ void SipFailureMessageInfo::ToString(CStdString& string, SipInviteInfoRef invite
string.Format("sender:%s from:%s to:%s rcvr:%s callid:%s errorcode:%s reason:\"%s\"", senderIp, inviteInfo->m_from, inviteInfo->m_to, receiverIp, inviteInfo->m_callId, m_errorCode, m_errorString);
}
+//============================
Sip200OkInfo::Sip200OkInfo()
{
m_mediaIp.s_addr = 0;
@@ -2503,6 +2504,8 @@ void Sip200OkInfo::ToString(CStdString& string)
}
}
+
+//================================================
SipSessionProgressInfo::SipSessionProgressInfo()
{
m_mediaIp.s_addr = 0;
@@ -2523,3 +2526,22 @@ void SipSessionProgressInfo::ToString(CStdString& string)
string.Format("sender:%s from:%s RTP:%s,%s to:%s rcvr:%s callid:%s", senderIp, m_from, mediaIp, m_mediaPort, m_to, receiverIp, m_callId);
}
+
+//================================================
+SipByeInfo::SipByeInfo()
+{
+ m_senderIp.s_addr = 0;
+ m_receiverIp.s_addr = 0;
+}
+
+void SipByeInfo::ToString(CStdString& string)
+{
+ char senderIp[16];
+ ACE_OS::inet_ntop(AF_INET, (void*)&m_senderIp, senderIp, sizeof(senderIp));
+
+ char receiverIp[16];
+ ACE_OS::inet_ntop(AF_INET, (void*)&m_receiverIp, receiverIp, sizeof(receiverIp));
+
+ string.Format("sender:%s rcvr:%s callid:%s", senderIp, receiverIp, m_callId);
+}
+
diff --git a/orkaudio/audiocaptureplugins/voip/RtpSession.h b/orkaudio/audiocaptureplugins/voip/RtpSession.h
index f9286d1..a24c882 100644
--- a/orkaudio/audiocaptureplugins/voip/RtpSession.h
+++ b/orkaudio/audiocaptureplugins/voip/RtpSession.h
@@ -72,7 +72,12 @@ typedef boost::shared_ptr<SipFailureMessageInfo> SipFailureMessageInfoRef;
class SipByeInfo
{
public:
+ SipByeInfo();
+ void ToString(CStdString& string);
+
CStdString m_callId;
+ struct in_addr m_senderIp;
+ struct in_addr m_receiverIp;
};
diff --git a/orkaudio/audiocaptureplugins/voip/VoIp.cpp b/orkaudio/audiocaptureplugins/voip/VoIp.cpp
index 5e4d76f..812e872 100644
--- a/orkaudio/audiocaptureplugins/voip/VoIp.cpp
+++ b/orkaudio/audiocaptureplugins/voip/VoIp.cpp
@@ -1388,8 +1388,13 @@ bool TrySipBye(EthernetHeaderStruct* ethernetHeader, IpHeaderStruct* ipHeader, U
{
GrabTokenSkipLeadingWhitespaces(callIdField, sipEnd, info.m_callId);
}
- LOG4CXX_INFO(s_sipPacketLog, "BYE: callid:" + info.m_callId);
- if(callIdField)
+ info.m_senderIp = ipHeader->ip_src;
+ info.m_receiverIp = ipHeader->ip_dest;
+
+ CStdString logMsg;
+ info.ToString(logMsg);
+ LOG4CXX_INFO(s_sipPacketLog, "BYE: " + logMsg);
+ if(callIdField && DLLCONFIG.m_sipIgnoreBye == false)
{
RtpSessionsSingleton::instance()->ReportSipBye(info);
}
@@ -1941,7 +1946,14 @@ bool TrySip200Ok(EthernetHeaderStruct* ethernetHeader, IpHeaderStruct* ipHeader,
info->ToString(logMsg);
logMsg = "200 OK: " + logMsg;
- LOG4CXX_INFO(s_sipPacketLog, logMsg);
+ if(info->m_hasSdp)
+ {
+ LOG4CXX_INFO(s_sipPacketLog, logMsg);
+ }
+ else
+ {
+ LOG4CXX_DEBUG(s_sipPacketLog, logMsg);
+ }
RtpSessionsSingleton::instance()->ReportSip200Ok(info);
}
diff --git a/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp b/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp
index 5143e7b..22a5746 100644
--- a/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp
+++ b/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp
@@ -46,6 +46,8 @@ VoIpConfig::VoIpConfig()
m_sipDetectSessionProgress = true; // Enabled by default
m_sipReportFullAddress = false;
m_sipDynamicMediaAddress = false;
+ m_sipIgnoreBye = false;
+
m_rtcpDetect = false;
m_inInMode = false;
@@ -111,6 +113,8 @@ void VoIpConfig::Define(Serializer* s)
s->BoolValue("SipReportFullAddress", m_sipReportFullAddress);
s->BoolValue("SipDynamicMediaAddress", m_sipDynamicMediaAddress);
s->IpRangesValue("SipIgnoredMediaAddresses", m_sipIgnoredMediaAddresses);
+ s->BoolValue("SipIgnoreBye", m_sipIgnoreBye);
+
s->BoolValue("RtcpDetect", m_rtcpDetect);
s->BoolValue("InInMode", m_inInMode);
diff --git a/orkaudio/audiocaptureplugins/voip/VoIpConfig.h b/orkaudio/audiocaptureplugins/voip/VoIpConfig.h
index 7e43247..0e1a2c7 100644
--- a/orkaudio/audiocaptureplugins/voip/VoIpConfig.h
+++ b/orkaudio/audiocaptureplugins/voip/VoIpConfig.h
@@ -81,6 +81,8 @@ public:
bool m_sipReportFullAddress;
bool m_sipDynamicMediaAddress;
IpRanges m_sipIgnoredMediaAddresses;
+ bool m_sipIgnoreBye;
+
bool m_rtcpDetect;
bool m_inInMode;