diff options
Diffstat (limited to 'orkaudio')
-rw-r--r-- | orkaudio/audiocaptureplugins/voip/SipTcp.cpp | 4 | ||||
-rw-r--r-- | orkaudio/audiocaptureplugins/voip/VoIp.cpp | 15 | ||||
-rw-r--r-- | orkaudio/audiocaptureplugins/voip/VoIp.dsp | 8 | ||||
-rw-r--r-- | orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp | 2 | ||||
-rw-r--r-- | orkaudio/audiocaptureplugins/voip/VoIpConfig.h | 1 |
5 files changed, 22 insertions, 8 deletions
diff --git a/orkaudio/audiocaptureplugins/voip/SipTcp.cpp b/orkaudio/audiocaptureplugins/voip/SipTcp.cpp index 0cea0f5..eaa86e3 100644 --- a/orkaudio/audiocaptureplugins/voip/SipTcp.cpp +++ b/orkaudio/audiocaptureplugins/voip/SipTcp.cpp @@ -223,7 +223,9 @@ bool SipTcpStream::SipRequestIsComplete() return false; if(strlen(eol) == cLength) - return true; + return true;
+
+ return false; } SafeBufferRef SipTcpStream::GetCompleteSipRequest() diff --git a/orkaudio/audiocaptureplugins/voip/VoIp.cpp b/orkaudio/audiocaptureplugins/voip/VoIp.cpp index 9f34247..1c9cddb 100644 --- a/orkaudio/audiocaptureplugins/voip/VoIp.cpp +++ b/orkaudio/audiocaptureplugins/voip/VoIp.cpp @@ -1218,9 +1218,9 @@ bool TrySipTcp(EthernetHeaderStruct* ethernetHeader, IpHeaderStruct* ipHeader, T } } - for(std::list<SipTcpStreamRef>::iterator it = toErase.begin(); it != toErase.end(); it++) + for(std::list<SipTcpStreamRef>::iterator it2 = toErase.begin(); it2 != toErase.end(); it2++) { - SipTcpStreamRef tcpstream = *it; + SipTcpStreamRef tcpstream = *it2; s_SipTcpStreams.remove(tcpstream); } @@ -1694,11 +1694,6 @@ void HandlePacket(u_char *param, const struct pcap_pkthdr *header, const u_char else if(ipHeader->ip_p == IPPROTO_TCP) { TcpHeaderStruct* tcpHeader = (TcpHeaderStruct*)((char *)ipHeader + ipHeaderLength); - CStdString tcpSeq; - - memToHex((unsigned char *)&tcpHeader->seq, 4, tcpSeq); - - TrySipTcp(ethernetHeader, ipHeader, tcpHeader); if(ntohs(tcpHeader->source) == SKINNY_CTRL_PORT || ntohs(tcpHeader->dest) == SKINNY_CTRL_PORT) { @@ -1727,6 +1722,12 @@ void HandlePacket(u_char *param, const struct pcap_pkthdr *header, const u_char skinnyHeader = (SkinnyHeaderStruct*)((u_char*)skinnyHeader + SKINNY_HEADER_LENGTH + skinnyHeader->len); } } + else if(DLLCONFIG.m_sipOverTcpSupport) + { + //CStdString tcpSeq; + //memToHex((unsigned char *)&tcpHeader->seq, 4, tcpSeq); + TrySipTcp(ethernetHeader, ipHeader, tcpHeader); + } } if((now - s_lastHooveringTime) > 5) diff --git a/orkaudio/audiocaptureplugins/voip/VoIp.dsp b/orkaudio/audiocaptureplugins/voip/VoIp.dsp index ce715bc..50b4321 100644 --- a/orkaudio/audiocaptureplugins/voip/VoIp.dsp +++ b/orkaudio/audiocaptureplugins/voip/VoIp.dsp @@ -140,6 +140,14 @@ SOURCE=.\RtpSession.h # End Source File # Begin Source File +SOURCE=.\SipTcp.cpp +# End Source File +# Begin Source File + +SOURCE=.\SipTcp.h +# End Source File +# Begin Source File + SOURCE=.\VoIp.cpp # End Source File # Begin Source File diff --git a/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp b/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp index c8e1459..2ff4046 100644 --- a/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp +++ b/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp @@ -37,6 +37,7 @@ VoIpConfig::VoIpConfig() m_rtpDiscontinuityMinSeqDelta = 1000; m_iax2Support = false; // Disabled by default m_rtpDetectOnOddPorts = false; + m_sipOverTcpSupport = false; // Disabled by default } void VoIpConfig::Define(Serializer* s) @@ -66,6 +67,7 @@ void VoIpConfig::Define(Serializer* s) s->BoolValue("Iax2Support", m_iax2Support); s->BoolValue("RtpDetectOnOddPorts", m_rtpDetectOnOddPorts); s->CsvValue("SipExtractFields", m_sipExtractFields); + s->BoolValue("SipOverTcpSupport", m_sipOverTcpSupport); } void VoIpConfig::Validate() diff --git a/orkaudio/audiocaptureplugins/voip/VoIpConfig.h b/orkaudio/audiocaptureplugins/voip/VoIpConfig.h index df6ef45..2e62f39 100644 --- a/orkaudio/audiocaptureplugins/voip/VoIpConfig.h +++ b/orkaudio/audiocaptureplugins/voip/VoIpConfig.h @@ -70,6 +70,7 @@ public: int m_rtpDiscontinuityMinSeqDelta; bool m_rtpDetectOnOddPorts; bool m_iax2Support; + bool m_sipOverTcpSupport; std::list<CStdString> m_dnisNumbers; std::list<CStdString> m_sipExtractFields; |