]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
added 'astdtmf' option to allow configuring the asterisk dtmf detector instead of...
authorChristian Richter <christian.richter@beronet.com>
Wed, 19 Sep 2007 09:31:55 +0000 (09:31 +0000)
committerChristian Richter <christian.richter@beronet.com>
Wed, 19 Sep 2007 09:31:55 +0000 (09:31 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@83023 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_misdn.c
channels/misdn/chan_misdn_config.h
channels/misdn_config.c

index 339cec0d90a73ebba1b9ff40ac170a8345c8881d..6e299ef1591980042ff12de74997560383422a8f 100644 (file)
@@ -1764,6 +1764,7 @@ static int read_config(struct chan_list *ch, int orig)
        
        port=bc->port;
        
+
        chan_misdn_log(1,port,"read_config: Getting Config\n");
 
        misdn_cfg_get( port, MISDN_CFG_LANGUAGE, lang, BUFFERSIZE);
@@ -1780,6 +1781,12 @@ static int read_config(struct chan_list *ch, int orig)
        
        misdn_cfg_get( port, MISDN_CFG_SENDDTMF, &bc->send_dtmf, sizeof(int));
 
+       misdn_cfg_get( port, MISDN_CFG_ASTDTMF, &ch->ast_dsp, sizeof(int));
+
+       if (ch->ast_dsp) {
+               ch->ignore_dtmf=1;
+       }
+
        misdn_cfg_get( port, MISDN_CFG_NEED_MORE_INFOS, &bc->need_more_infos, sizeof(int));
        misdn_cfg_get( port, MISDN_CFG_NTTIMEOUT, &ch->nttimeout, sizeof(int));
        
@@ -1954,12 +1961,16 @@ static int read_config(struct chan_list *ch, int orig)
 
        ch->overlap_dial_task = -1;
        
-       if (ch->faxdetect) {
+       if (ch->faxdetect  || ch->ast_dsp) {
                misdn_cfg_get( port, MISDN_CFG_FAXDETECT_TIMEOUT, &ch->faxdetect_timeout, sizeof(ch->faxdetect_timeout));
                if (!ch->dsp)
                        ch->dsp = ast_dsp_new();
-               if (ch->dsp)
-                       ast_dsp_set_features(ch->dsp, DSP_FEATURE_DTMF_DETECT | DSP_FEATURE_FAX_DETECT);
+               if (ch->dsp) {
+                       if (ch->faxdetect) 
+                               ast_dsp_set_features(ch->dsp, DSP_FEATURE_DTMF_DETECT | DSP_FEATURE_FAX_DETECT);
+                       else 
+                               ast_dsp_set_features(ch->dsp, DSP_FEATURE_DTMF_DETECT );
+               }
                if (!ch->trans)
                        ch->trans=ast_translator_build_path(AST_FORMAT_SLINEAR, AST_FORMAT_ALAW);
        }
@@ -2649,9 +2660,10 @@ static struct ast_frame *process_ast_dsp(struct chan_list *tmp, struct ast_frame
        
        if (tmp->ast_dsp && (f->subclass != 'f')) {
                chan_misdn_log(2, tmp->bc->port, " --> * SEND: DTMF (AST_DSP) :%c\n", f->subclass);
+               //ast_queue_frame(tmp->ast, f);
        }
 
-       return frame;
+       return f;
 }
 
 
index eb2b5057215ca59ae50ede76e386daaa1b4c5c0d..5ced271581d73cc27ff756175df6c30b9d61b1c2 100644 (file)
@@ -48,6 +48,7 @@ enum misdn_cfg_elements {
        MISDN_CFG_NODIALTONE,    /* int (bool) */
        MISDN_CFG_IMMEDIATE,           /* int (bool) */
        MISDN_CFG_SENDDTMF,           /* int (bool) */
+       MISDN_CFG_ASTDTMF,            /* int (bool) */
        MISDN_CFG_HOLD_ALLOWED,        /* int (bool) */
        MISDN_CFG_EARLY_BCONNECT,      /* int (bool) */
        MISDN_CFG_INCOMING_EARLY_AUDIO,      /* int (bool) */
index 7185dd6a710a543008b9abb7e68db094464d6970..6755a5e73780a15b829afad00acf792fe574d839 100644 (file)
@@ -220,6 +220,10 @@ static const struct misdn_cfg_spec port_spec[] = {
                "\tinstead." },
        { "senddtmf", MISDN_CFG_SENDDTMF, MISDN_CTYPE_BOOL, "no", NONE,
                "Enable this if we should produce DTMF Tones ourselves." },
+       { "astdtmf", MISDN_CFG_ASTDTMF, MISDN_CTYPE_BOOL, "no", NONE,
+               "Enable this if you want to use the Asterisk dtmf detector\n"
+               "instead of the mISDN_dsp/hfcmulti one."
+               },
        { "hold_allowed", MISDN_CFG_HOLD_ALLOWED, MISDN_CTYPE_BOOL, "no", NONE,
                "Enable this to have support for hold and retrieve." },
        { "early_bconnect", MISDN_CFG_EARLY_BCONNECT, MISDN_CTYPE_BOOL, "yes", NONE,