allow DTMF timeout to be configurable (issue #5160)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6918 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
parent
261e51b03a
commit
cb28ef70bc
|
@ -13,3 +13,8 @@ rtpend=20000
|
|||
; Whether to enable or disable UDP checksums on RTP traffic
|
||||
;
|
||||
;rtpchecksums=no
|
||||
;
|
||||
; The amount of time a DTMF digit with no 'end' marker should be
|
||||
; allowed to continue (in 'samples', 1/8000 of a second)
|
||||
;
|
||||
;dtmftimeout=3000
|
||||
|
|
13
rtp.c
13
rtp.c
|
@ -58,7 +58,9 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
|
|||
|
||||
#define RTP_MTU 1200
|
||||
|
||||
static int dtmftimeout = 3000; /* 3000 samples */
|
||||
#define DEFAULT_DTMF_TIMEOUT 3000 /* samples */
|
||||
|
||||
static int dtmftimeout = DEFAULT_DTMF_TIMEOUT;
|
||||
|
||||
static int rtpstart = 0;
|
||||
static int rtpend = 0;
|
||||
|
@ -1813,6 +1815,7 @@ void ast_rtp_reload(void)
|
|||
|
||||
rtpstart = 5000;
|
||||
rtpend = 31000;
|
||||
dtmftimeout = DEFAULT_DTMF_TIMEOUT;
|
||||
cfg = ast_config_load("rtp.conf");
|
||||
if (cfg) {
|
||||
if ((s = ast_variable_retrieve(cfg, "general", "rtpstart"))) {
|
||||
|
@ -1840,6 +1843,14 @@ void ast_rtp_reload(void)
|
|||
ast_log(LOG_WARNING, "Disabling RTP checksums is not supported on this operating system!\n");
|
||||
#endif
|
||||
}
|
||||
if ((s = ast_variable_retrieve(cfg, "general", "dtmftimeout"))) {
|
||||
dtmftimeout = atoi(s);
|
||||
if ((dtmftimeout < 0) || (dtmftimeout > 20000)) {
|
||||
ast_log(LOG_WARNING, "DTMF timeout of '%d' outside range, using default of '%d' instead\n",
|
||||
dtmftimeout, DEFAULT_DTMF_TIMEOUT);
|
||||
dtmftimeout = DEFAULT_DTMF_TIMEOUT;
|
||||
};
|
||||
}
|
||||
ast_config_destroy(cfg);
|
||||
}
|
||||
if (rtpstart >= rtpend) {
|
||||
|
|
Loading…
Reference in New Issue