From b6bd6aec16199ec7c14718a40b354c7ef8734cfb Mon Sep 17 00:00:00 2001 From: Gerald Begumisa Date: Tue, 6 Feb 2007 10:54:15 +0000 Subject: IAX2 support added by Gerald Begumisa git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@400 09dcff7a-b715-0410-9601-b79a96267cd0 --- orkaudio/audiocaptureplugins/voip/Iax2Session.cpp | 1 + orkaudio/audiocaptureplugins/voip/VoIp.cpp | 27 +++++++++++++++++++++++ orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp | 2 ++ orkaudio/audiocaptureplugins/voip/VoIpConfig.h | 1 + orkaudio/config-linux-template.xml | 3 +++ orkaudio/config-template.xml | 3 +++ 6 files changed, 37 insertions(+) (limited to 'orkaudio') diff --git a/orkaudio/audiocaptureplugins/voip/Iax2Session.cpp b/orkaudio/audiocaptureplugins/voip/Iax2Session.cpp index 6b072b5..8b6c3e0 100644 --- a/orkaudio/audiocaptureplugins/voip/Iax2Session.cpp +++ b/orkaudio/audiocaptureplugins/voip/Iax2Session.cpp @@ -344,6 +344,7 @@ bool Iax2Session::AddIax2Packet(Iax2PacketInfoRef& iax2Packet) logMsg.Format("[%s] receiving voice packets while in %s state? " "Destroying session...", m_trackingId, iax2_state_to_str(m_iax2_state)); + LOG4CXX_INFO(m_log, logMsg); return false; } diff --git a/orkaudio/audiocaptureplugins/voip/VoIp.cpp b/orkaudio/audiocaptureplugins/voip/VoIp.cpp index ef6807f..1453356 100644 --- a/orkaudio/audiocaptureplugins/voip/VoIp.cpp +++ b/orkaudio/audiocaptureplugins/voip/VoIp.cpp @@ -448,6 +448,9 @@ bool TryIax2New(EthernetHeaderStruct* ethernetHeader, IpHeaderStruct* ipHeader, char source_ip[16], dest_ip[16]; CStdString logmsg; + if(!DLLCONFIG.m_iax2Support) + return false; + memset(&ies, 0, sizeof(ies)); udp_act_payload_len = (ntohs(udpHeader->len)-sizeof(UdpHeaderStruct)); if(udp_act_payload_len < sizeof(*fh)) @@ -527,6 +530,9 @@ bool TryIax2Accept(EthernetHeaderStruct* ethernetHeader, IpHeaderStruct* ipHeade int ies_len = 0, udp_act_payload_len = 0; Iax2AcceptInfoRef info(new Iax2AcceptInfo()); + if(!DLLCONFIG.m_iax2Support) + return false; + memset(&ies, 0, sizeof(ies)); udp_act_payload_len = (ntohs(udpHeader->len)-sizeof(UdpHeaderStruct)); if(udp_act_payload_len < sizeof(*fh)) @@ -574,6 +580,9 @@ bool TryIax2Authreq(EthernetHeaderStruct* ethernetHeader, IpHeaderStruct* ipHead int ies_len = 0, udp_act_payload_len = 0; Iax2AuthreqInfoRef info(new Iax2AuthreqInfo()); + if(!DLLCONFIG.m_iax2Support) + return false; + memset(&ies, 0, sizeof(ies)); udp_act_payload_len = (ntohs(udpHeader->len)-sizeof(UdpHeaderStruct)); if(udp_act_payload_len < sizeof(*fh)) @@ -638,6 +647,9 @@ bool TryIax2Hangup(EthernetHeaderStruct* ethernetHeader, IpHeaderStruct* ipHeade int ies_len = 0, udp_act_payload_len = 0; Iax2HangupInfoRef info(new Iax2HangupInfo()); + if(!DLLCONFIG.m_iax2Support) + return false; + memset(&ies, 0, sizeof(ies)); udp_act_payload_len = (ntohs(udpHeader->len)-sizeof(UdpHeaderStruct)); if(udp_act_payload_len < sizeof(*fh)) @@ -682,6 +694,9 @@ bool TryIax2ControlHangup(EthernetHeaderStruct* ethernetHeader, IpHeaderStruct* Iax2HangupInfoRef info(new Iax2HangupInfo()); int udp_act_payload_len = 0; + if(!DLLCONFIG.m_iax2Support) + return false; + udp_act_payload_len = (ntohs(udpHeader->len)-sizeof(UdpHeaderStruct)); if(udp_act_payload_len < sizeof(*fh)) return false; /* Frame too small */ @@ -718,6 +733,9 @@ bool TryIax2Reject(EthernetHeaderStruct* ethernetHeader, IpHeaderStruct* ipHeade int ies_len = 0, udp_act_payload_len = 0; Iax2HangupInfoRef info(new Iax2HangupInfo()); + if(!DLLCONFIG.m_iax2Support) + return false; + memset(&ies, 0, sizeof(ies)); udp_act_payload_len = (ntohs(udpHeader->len)-sizeof(UdpHeaderStruct)); if(udp_act_payload_len < sizeof(*fh)) @@ -761,6 +779,9 @@ bool TryIax2FullVoiceFrame(EthernetHeaderStruct* ethernetHeader, IpHeaderStruct* int data_len = 0, codec = 0, pt = 0, udp_act_payload_len = 0; Iax2PacketInfoRef info(new Iax2PacketInfo()); + if(!DLLCONFIG.m_iax2Support) + return false; + udp_act_payload_len = (ntohs(udpHeader->len)-sizeof(UdpHeaderStruct)); if(udp_act_payload_len < sizeof(*fh)) return false; /* Frame too small */ @@ -819,6 +840,9 @@ bool TryIax2MetaTrunkFrame(EthernetHeaderStruct* ethernetHeader, IpHeaderStruct* int entries = 0, udp_act_payload_len = 0; Iax2PacketInfoRef info(new Iax2PacketInfo()); + if(!DLLCONFIG.m_iax2Support) + return false; + udp_act_payload_len = (ntohs(udpHeader->len)-sizeof(UdpHeaderStruct)); if(udp_act_payload_len < sizeof(*mh)) return false; /* Frame too small */ @@ -926,6 +950,9 @@ bool TryIax2MiniVoiceFrame(EthernetHeaderStruct* ethernetHeader, IpHeaderStruct* int data_len = 0, udp_act_payload_len = 0; Iax2PacketInfoRef info(new Iax2PacketInfo()); + if(!DLLCONFIG.m_iax2Support) + return false; + udp_act_payload_len = (ntohs(udpHeader->len)-sizeof(UdpHeaderStruct)); if(udp_act_payload_len < sizeof(*mini)) return false; /* Frame too small */ diff --git a/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp b/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp index 9ecb4c6..88f0769 100644 --- a/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp +++ b/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp @@ -35,6 +35,7 @@ VoIpConfig::VoIpConfig() m_pcapTest= false; m_rtpDiscontinuityDetect = false; m_rtpDiscontinuityMinSeqDelta = 1000; + m_iax2Support = true; // Enabled by default } void VoIpConfig::Define(Serializer* s) @@ -61,6 +62,7 @@ void VoIpConfig::Define(Serializer* s) s->BoolValue("RtpDiscontinuityDetect", m_rtpDiscontinuityDetect); s->IntValue("RtpDiscontinuityMinSeqDelta", m_rtpDiscontinuityMinSeqDelta); s->CsvValue("DnisNumbers", m_dnisNumbers); + s->BoolValue("Iax2Support", m_iax2Support); } void VoIpConfig::Validate() diff --git a/orkaudio/audiocaptureplugins/voip/VoIpConfig.h b/orkaudio/audiocaptureplugins/voip/VoIpConfig.h index 3b633a7..7d37214 100644 --- a/orkaudio/audiocaptureplugins/voip/VoIpConfig.h +++ b/orkaudio/audiocaptureplugins/voip/VoIpConfig.h @@ -68,6 +68,7 @@ public: bool m_pcapTest; bool m_rtpDiscontinuityDetect; int m_rtpDiscontinuityMinSeqDelta; + bool m_iax2Support; std::list m_dnisNumbers; }; diff --git a/orkaudio/config-linux-template.xml b/orkaudio/config-linux-template.xml index 6e000ed..c68f564 100644 --- a/orkaudio/config-linux-template.xml +++ b/orkaudio/config-linux-template.xml @@ -32,6 +32,9 @@ BatchProcessing + + + diff --git a/orkaudio/config-template.xml b/orkaudio/config-template.xml index 13e67a5..35e57f1 100644 --- a/orkaudio/config-template.xml +++ b/orkaudio/config-template.xml @@ -29,6 +29,9 @@ BatchProcessing + + + -- cgit v1.2.3