summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerald Begumisa <ben_g@users.sourceforge.net>2007-02-06 10:54:15 +0000
committerGerald Begumisa <ben_g@users.sourceforge.net>2007-02-06 10:54:15 +0000
commitb6bd6aec16199ec7c14718a40b354c7ef8734cfb (patch)
tree801b667d67738473df8f4c710c0fee340e7f072f
parent6ea47988e23c732814f792cb9dde7a35f9b26885 (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.cpp1
-rw-r--r--orkaudio/audiocaptureplugins/voip/VoIp.cpp27
-rw-r--r--orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp2
-rw-r--r--orkaudio/audiocaptureplugins/voip/VoIpConfig.h1
-rw-r--r--orkaudio/config-linux-template.xml3
-rw-r--r--orkaudio/config-template.xml3
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>-->