From: Jim Dixon Date: Tue, 31 Jul 2007 21:00:08 +0000 (+0000) Subject: Made VAST improvements in DTMF receiver in RADIO_RELAX mode (thanx Steve X-Git-Tag: 1.4.10~49 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=cd1614fcd8cb6eb14b402b2ce7c4c56d272adfdd;p=thirdparty%2Fasterisk.git Made VAST improvements in DTMF receiver in RADIO_RELAX mode (thanx Steve W9SH), and oversight in logic in TONE_VERIFY/RELAX mode in chan_zap. git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@77845 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_zap.c b/channels/chan_zap.c index df996cd275..da3454b0f2 100644 --- a/channels/chan_zap.c +++ b/channels/chan_zap.c @@ -2956,7 +2956,9 @@ static int zt_setoption(struct ast_channel *chan, int option, void *data, int da cp = (char *) data; ast_log(LOG_DEBUG, "Set option RELAX DTMF, value: %s(%d) on %s\n", *cp ? "ON" : "OFF", (int) *cp, chan->name); - ast_dsp_digitmode(p->dsp, ((*cp) ? DSP_DIGITMODE_RELAXDTMF : DSP_DIGITMODE_DTMF) | p->dtmfrelax); + p->dtmfrelax = 0; + if (*cp) p->dtmfrelax = DSP_DIGITMODE_RELAXDTMF; + ast_dsp_digitmode(p->dsp, DSP_DIGITMODE_DTMF | p->dtmfrelax); break; case AST_OPTION_AUDIO_MODE: /* Set AUDIO mode (or not) */ cp = (char *) data; diff --git a/main/dsp.c b/main/dsp.c index 1054c37768..d220c9bc2e 100644 --- a/main/dsp.c +++ b/main/dsp.c @@ -153,22 +153,28 @@ enum gsamp_thresh { * Frequency tolerance +- 1.5% will detect, +-3.5% will reject */ -#define DTMF_THRESHOLD 8.0e7 -#define FAX_THRESHOLD 8.0e7 -#define FAX_2ND_HARMONIC 2.0 /* 4dB */ -#define DTMF_NORMAL_TWIST 6.3 /* 8dB */ -#ifdef RADIO_RELAX -#define DTMF_REVERSE_TWIST ((digitmode & DSP_DIGITMODE_RELAXDTMF) ? 6.5 : 2.5) /* 4dB normal */ +#define DTMF_THRESHOLD 8.0e7 +#define FAX_THRESHOLD 8.0e7 +#define FAX_2ND_HARMONIC 2.0 /* 4dB */ + +#ifdef RADIO_RELAX +#define DTMF_NORMAL_TWIST ((digitmode & DSP_DIGITMODE_RELAXDTMF) ? 11.3 : 6.3) /* 8dB sph 12.3 was 6.3 */ +#define DTMF_REVERSE_TWIST ((digitmode & DSP_DIGITMODE_RELAXDTMF) ? 9.5 : 2.5) /* 4dB normal sph 12.5 : 5.5 was 6.5 : 2.5 */ +#define DTMF_RELATIVE_PEAK_ROW ((digitmode & DSP_DIGITMODE_RELAXDTMF) ? 3.3 : 6.3) /* 8dB sph was 6.3 */ +#define DTMF_RELATIVE_PEAK_COL ((digitmode & DSP_DIGITMODE_RELAXDTMF) ? 3.3 : 6.3) /* 8dB sph was 6.3 */ +#define DTMF_TO_TOTAL_ENERGY ((digitmode & DSP_DIGITMODE_RELAXDTMF) ? 26.0 : 42.0) #else -#define DTMF_REVERSE_TWIST ((digitmode & DSP_DIGITMODE_RELAXDTMF) ? 4.0 : 2.5) /* 4dB normal */ +#define DTMF_NORMAL_TWIST 6.3 +#define DTMF_REVERSE_TWIST ((digitmode & DSP_DIGITMODE_RELAXDTMF) ? 4.0 : 2.5) /* 4dB normal */ +#define DTMF_RELATIVE_PEAK_ROW 6.3 /* 8dB */ +#define DTMF_RELATIVE_PEAK_COL 6.3 /* 8dB */ +#define DTMF_TO_TOTAL_ENERGY 42.0 #endif -#define DTMF_RELATIVE_PEAK_ROW 6.3 /* 8dB */ -#define DTMF_RELATIVE_PEAK_COL 6.3 /* 8dB */ + +#ifdef OLD_DSP_ROUTINES #define DTMF_2ND_HARMONIC_ROW ((digitmode & DSP_DIGITMODE_RELAXDTMF) ? 1.7 : 2.5) /* 4dB normal */ #define DTMF_2ND_HARMONIC_COL 63.1 /* 18dB */ -#define DTMF_TO_TOTAL_ENERGY 42.0 -#ifdef OLD_DSP_ROUTINES #define MF_THRESHOLD 8.0e7 #define MF_NORMAL_TWIST 5.3 /* 8dB */ #define MF_REVERSE_TWIST 4.0 /* was 2.5 */