spandsp dtmf detection configurable as default dtmf detector

git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@546 8eb893ce-cfd4-0310-b710-fb5ebe64c474
sayer/1.4-spce2.6
Stefan Sayer 19 years ago
parent 052984ad11
commit 65550b96ed

@ -61,6 +61,8 @@ bool AmConfig::SingleCodecInOK = false;
unsigned int AmConfig::DeadRtpTime = DEAD_RTP_TIME;
bool AmConfig::IgnoreRTPXHdrs = false;
string AmConfig::DefaultApplication = "";
Dtmf::InbandDetectorType
AmConfig::DefaultDTMFDetector = Dtmf::SEMSInternal;
vector <string> AmConfig::CodecOrder;
@ -282,6 +284,15 @@ int AmConfig::readConfiguration()
}
}
if(cfg.hasParameter("dtmf_detector")){
if (cfg.getParameter("dtmf_detector") == "spandsp") {
#ifndef USE_SPANDSP
WARN("spandsp support not compiled in.\n");
#endif
DefaultDTMFDetector = Dtmf::SpanDSP;
}
}
return defaultSessionTimerConfig.readFromConfig(cfg);
}

@ -29,6 +29,7 @@
#define _AmConfig_h_
#include "AmSdp.h"
#include "AmDtmfDetector.h"
#include <string>
#include <map>
@ -101,6 +102,8 @@ struct AmConfig
/** Ignore RTP Extension headers? */
static bool IgnoreRTPXHdrs;
static Dtmf::InbandDetectorType DefaultDTMFDetector;
/** Init function. Resolves SMTP server address. */
static int init();

@ -181,9 +181,11 @@ AmDtmfDetector::AmDtmfDetector(AmSession *session)
m_eventPending(false), m_sipEventReceived(false),
m_inbandEventReceived(false), m_rtpEventReceived(false)
{
m_inbandDetector.reset(new AmSemsInbandDtmfDetector(this));
m_inband_type = Dtmf::SEMSInternal;
#ifndef USE_SPANDSP
setInbandDetector(Dtmf::SEMSInternal);
#else
setInbandDetector(AmConfig::DefaultDTMFDetector);
#endif
}
void AmDtmfDetector::setInbandDetector(Dtmf::InbandDetectorType t) {
@ -649,7 +651,7 @@ void AmSpanDSPInbandDtmfDetector::tone_report_func(void *user_data, int code, in
}
void AmSpanDSPInbandDtmfDetector::tone_report_f(int code, int level, int delay) {
// DBG("tone report %c, %d, %d\n", code, level, delay);
// DBG("spandsp reports tone %c, %d, %d\n", code, level, delay);
if (code) { // key pressed
gettimeofday(&key_start, NULL);
m_lastCode = code;

@ -216,3 +216,12 @@ media_processor_threads=1
#
# ignore_rtpxheaders=yes
# optional parameter: dtmf_detector={spandsp|internal}
#
# sets inband DTMF detector to use. spandsp support must be compiled in
# for this to have effect if dtmf_detector=spandsp.
#
# default: internal
#
#dtmf_detector=spandsp

Loading…
Cancel
Save