summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;