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 */