]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Made VAST improvements in DTMF receiver in RADIO_RELAX mode (thanx Steve
authorJim Dixon <telesistant@hotmail.com>
Tue, 31 Jul 2007 21:00:08 +0000 (21:00 +0000)
committerJim Dixon <telesistant@hotmail.com>
Tue, 31 Jul 2007 21:00:08 +0000 (21:00 +0000)
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

channels/chan_zap.c
main/dsp.c

index df996cd275bb18c5d8f1b0684c1cd1b3a21e99d1..da3454b0f29c2f00231f3eee69ba689c1e54c5f6 100644 (file)
@@ -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;
index 1054c37768ea0be561a365d7ff9d4edd098c303b..d220c9bc2ecfc6a3cda97f6af541e83e99ac4520 100644 (file)
@@ -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 */