diff options
author | Henri Herscher <henri@oreka.org> | 2008-12-10 22:45:50 +0000 |
---|---|---|
committer | Henri Herscher <henri@oreka.org> | 2008-12-10 22:45:50 +0000 |
commit | 960e134a00df44a2cb3eda87f2d7dcde9fb5156e (patch) | |
tree | a2e8421a3cde7945e2aab894086795dfd907f0d0 | |
parent | a578ceb82ea189a0296eb5bb1bbe70e20cc427a6 (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.cpp | 22 | ||||
-rw-r--r-- | orkaudio/audiocaptureplugins/voip/RtpSession.h | 5 | ||||
-rw-r--r-- | orkaudio/audiocaptureplugins/voip/VoIp.cpp | 18 | ||||
-rw-r--r-- | orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp | 4 | ||||
-rw-r--r-- | orkaudio/audiocaptureplugins/voip/VoIpConfig.h | 2 |
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; |