diff options
author | Gerald Begumisa <ben_g@users.sourceforge.net> | 2007-02-06 10:54:15 +0000 |
---|---|---|
committer | Gerald Begumisa <ben_g@users.sourceforge.net> | 2007-02-06 10:54:15 +0000 |
commit | b6bd6aec16199ec7c14718a40b354c7ef8734cfb (patch) | |
tree | 801b667d67738473df8f4c710c0fee340e7f072f | |
parent | 6ea47988e23c732814f792cb9dde7a35f9b26885 (diff) |
IAX2 support added by Gerald Begumisa
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@400 09dcff7a-b715-0410-9601-b79a96267cd0
-rw-r--r-- | orkaudio/audiocaptureplugins/voip/Iax2Session.cpp | 1 | ||||
-rw-r--r-- | orkaudio/audiocaptureplugins/voip/VoIp.cpp | 27 | ||||
-rw-r--r-- | orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp | 2 | ||||
-rw-r--r-- | orkaudio/audiocaptureplugins/voip/VoIpConfig.h | 1 | ||||
-rw-r--r-- | orkaudio/config-linux-template.xml | 3 | ||||
-rw-r--r-- | orkaudio/config-template.xml | 3 |
6 files changed, 37 insertions, 0 deletions
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<CStdString> 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 @@ <TapeProcessors>BatchProcessing</TapeProcessors> <VoIpPlugin> + <!-- Set the option below to "false" to disable IAX2 support --> + <!-- the default is that IAX2 support is enabled --> + <!--<Iax2Support>true</Iax2Support> --> <!-- Use this if you want to force capture from a given list of devices. --> <!-- All available devices are listed in /etc/orkaudio/orkaudio.log when the service is starting --> <!--<Devices>eth1, eth2</Devices>--> 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 @@ <TapeProcessors>BatchProcessing</TapeProcessors> <VoIpPlugin> + <!-- Set the option below to "false" to disable IAX2 support --> + <!-- the default is that IAX2 support is enabled --> + <!--<Iax2Support>true</Iax2Support> --> <!-- Use this if you want to force capture from a given list of devices. --> <!-- All available devices are listed in orkaudio.log when the service is starting --> <!--<Devices>\Device\NPF_{E0E496FA-DABF-47C1-97C2-DD914DFD3354}, \Device\NPF_{ADE496FA-DABF-47C1-97C2-DD914DFDAB38}</Devices>--> |