summaryrefslogtreecommitdiff
path: root/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp
diff options
context:
space:
mode:
authorHenri Herscher <henri@oreka.org>2007-06-25 19:22:12 +0000
committerHenri Herscher <henri@oreka.org>2007-06-25 19:22:12 +0000
commit1b42814d7ab545334fa97982b1b3023731a0cd64 (patch)
tree2b297edfc35e6632d3ce181792bdb43b46d529ed /orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp
parent0ae3f2872bd27751d52b78ecc693232c15fe999f (diff)
Added support for capturing audio from any Sangoma telephony board (Sangoma driver needs to be capable of generating RTP copy of voice traffic).
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@451 09dcff7a-b715-0410-9601-b79a96267cd0
Diffstat (limited to 'orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp')
-rw-r--r--orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp b/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp
index a079cd6..80aff5d 100644
--- a/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp
+++ b/orkaudio/audiocaptureplugins/voip/VoIpConfig.cpp
@@ -45,6 +45,10 @@ VoIpConfig::VoIpConfig()
m_skinnyIgnoreOpenReceiveChannelAck = false;
m_skinnyDynamicMediaAddress = false;
m_skinnyAllowCallInfoUpdate = false;
+
+ m_sangomaEnable = false;
+ m_sangomaRxTcpPortStart = 0;
+ m_sangomaTxTcpPortStart = 0;
}
void VoIpConfig::Define(Serializer* s)
@@ -82,6 +86,9 @@ void VoIpConfig::Define(Serializer* s)
s->BoolValue("SkinnyIgnoreOpenReceiveChannelAck", m_skinnyIgnoreOpenReceiveChannelAck);
s->BoolValue("SkinnyDynamicMediaAddress", m_skinnyDynamicMediaAddress);
s->BoolValue("SkinnyAllowCallInfoUpdate", m_skinnyAllowCallInfoUpdate);
+
+ s->IntValue("SangomaRxTcpPortStart", m_sangomaRxTcpPortStart);
+ s->IntValue("SangomaTxTcpPortStart", m_sangomaTxTcpPortStart);
}
void VoIpConfig::Validate()
@@ -249,6 +256,38 @@ void VoIpConfig::Validate()
exception.Format("VoIpConfig: RtpSessionOnHoldTimeOutSec must be > 0 (currently:%d) please fix config.xml", m_rtpSessionWithSignallingTimeoutSec);
throw (exception);
}
+
+ if(m_sangomaRxTcpPortStart == 0)
+ {
+ }
+ else if(m_sangomaRxTcpPortStart > 65000 || m_sangomaRxTcpPortStart < 2000 || ((m_sangomaRxTcpPortStart%1000) != 0) )
+ {
+ CStdString exception;
+ exception.Format("VoIpConfig: SangomaRxTcpPort must be between 2000 and 65000 and be a multiple of 1000 (currently:%d) please fix config.xml", m_sangomaRxTcpPortStart);
+ throw (exception);
+ }
+ if(m_sangomaTxTcpPortStart == 0)
+ {
+ }
+ else if(m_sangomaTxTcpPortStart > 65000 || m_sangomaTxTcpPortStart < 2000 || ((m_sangomaTxTcpPortStart%1000) != 0) )
+ {
+ CStdString exception;
+ exception.Format("VoIpConfig: SangomaTxTcpPort must be between 2000 and 65000 and be a multiple of 1000 (currently:%d) please fix config.xml", m_sangomaTxTcpPortStart);
+ throw (exception);
+ }
+
+ if(m_sangomaRxTcpPortStart > m_sangomaTxTcpPortStart)
+ {
+ CStdString exception;
+ exception.Format("VoIpConfig: SangomaTxTcpPort should always be bigger than SangomaRxTcpPort please fix config.xml");
+ throw (exception);
+ }
+ else if(m_sangomaRxTcpPortStart > 0 && m_sangomaTxTcpPortStart>0)
+ {
+ m_sangomaTcpPortDelta = m_sangomaTxTcpPortStart - m_sangomaRxTcpPortStart;
+ m_sangomaEnable = true;
+ m_rtpDetectOnOddPorts = true;
+ }
}
bool VoIpConfig::IsPartOfLan(struct in_addr addr)