adde incoming_early_audio option, to avoid sending tone indications to the remote...
authorChristian Richter <christian.richter@beronet.com>
Wed, 15 Feb 2006 19:51:33 +0000 (19:51 +0000)
committerChristian Richter <christian.richter@beronet.com>
Wed, 15 Feb 2006 19:51:33 +0000 (19:51 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@10227 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_misdn.c
channels/misdn/chan_misdn_config.h
channels/misdn_config.c
configs/misdn.conf.sample

index 68adc5e..1e01f96 100644 (file)
@@ -150,6 +150,8 @@ struct chan_list {
        int norxtone;
        int notxtone; 
 
+       int incoming_early_audio;
+
        int pipe[2];
        char ast_rd_buf[4096];
        struct ast_frame frame;
@@ -1210,6 +1212,8 @@ static int read_config(struct chan_list *ch, int orig) {
        misdn_cfg_get( port, MISDN_CFG_TXGAIN, &bc->txgain, sizeof(int));
        misdn_cfg_get( port, MISDN_CFG_RXGAIN, &bc->rxgain, sizeof(int));
        
+       misdn_cfg_get( port, MISDN_CFG_INCOMING_EARLY_AUDIO, &ch->incoming_early_audio, sizeof(int));
+       
        misdn_cfg_get( port, MISDN_CFG_SENDDTMF, &bc->send_dtmf, sizeof(int));
 
        misdn_cfg_get( port, MISDN_CFG_NEED_MORE_INFOS, &bc->need_more_infos, sizeof(int));
@@ -1733,7 +1737,11 @@ static int misdn_indication(struct ast_channel *ast, int cond)
                                p->state=MISDN_ALERTING;
                                chan_misdn_log(1, p->bc->port, " --> * IND :\tringing pid:%d\n",p->bc?p->bc->pid:-1);
                                misdn_lib_send_event( p->bc, EVENT_ALERTING);
-                               tone_indicate(p, TONE_ALERTING);
+                               
+                               if ( !p->bc->nt && (p->orginator==ORG_MISDN) && !p->incoming_early_audio ) 
+                                       chan_misdn_log(1,p->bc->port, " --> incoming_early_audio off\n");
+                                else 
+                                        tone_indicate(p, TONE_ALERTING);
                                chan_misdn_log(1, p->bc->port, " --> * SEND: State Ring pid:%d\n",p->bc?p->bc->pid:-1);
                                ast_setstate(ast,AST_STATE_RINGING);
                }
@@ -2860,7 +2868,11 @@ static void do_immediate_setup(struct misdn_bchannel *bc,struct chan_list *ch ,
                        ret = misdn_lib_send_event(bc, EVENT_PROCEEDING );
                }
        }
-       tone_indicate(ch,TONE_DIAL);  
+
+       if ( !bc->nt && (ch->orginator==ORG_MISDN) && !ch->incoming_early_audio ) 
+               chan_misdn_log(1,bc->port, " --> incoming_early_audio off\n");
+        else 
+               tone_indicate(ch,TONE_DIAL);  
   
        chan_misdn_log(1, bc->port, "* Starting Ast ctx:%s dad:%s oad:%s with 's' extension\n", ast->context, ast->exten, AST_CID_P(ast));
   
index 84f346a..1c6bb10 100644 (file)
@@ -43,6 +43,7 @@ enum misdn_cfg_elements {
        MISDN_CFG_SENDDTMF,           /* int (bool) */
        MISDN_CFG_HOLD_ALLOWED,        /* int (bool) */
        MISDN_CFG_EARLY_BCONNECT,      /* int (bool) */
+       MISDN_CFG_INCOMING_EARLY_AUDIO,      /* int (bool) */
        MISDN_CFG_ECHOCANCEL,          /* int */
        MISDN_CFG_ECHOCANCELWHENBRIDGED,  /* int (bool) */
        MISDN_CFG_ECHOTRAINING,        /* int (bool) */
index 7716ce3..94114ba 100644 (file)
@@ -104,6 +104,7 @@ static const struct misdn_cfg_spec port_spec[] = {
        { "senddtmf", MISDN_CFG_SENDDTMF, MISDN_CTYPE_BOOL, "no", NONE },
        { "hold_allowed", MISDN_CFG_HOLD_ALLOWED, MISDN_CTYPE_BOOL, "no", NONE },
        { "early_bconnect", MISDN_CFG_EARLY_BCONNECT, MISDN_CTYPE_BOOL, "yes", NONE },
+       { "incoming_early_audio", MISDN_CFG_INCOMING_EARLY_AUDIO, MISDN_CTYPE_BOOL, "no", NONE },
        { "echocancel", MISDN_CFG_ECHOCANCEL, MISDN_CTYPE_BOOLINT, "0", 128 },
        { "echocancelwhenbridged", MISDN_CFG_ECHOCANCELWHENBRIDGED, MISDN_CTYPE_BOOL, "no", NONE },
        { "echotraining", MISDN_CFG_ECHOTRAINING, MISDN_CTYPE_BOOLINT, "0", 1 },
index 09ade12..1715aaa 100644 (file)
@@ -197,6 +197,17 @@ localdialplan=0
 ;
 early_bconnect=yes
 
+
+;
+; turn this on if you like to send Tone Indications to a Incoming
+; isdn channel on a TE Port. Rarely used, only if the Telco allows
+; you to send indications by yourself, normally the Telco sends the 
+; indications to the remote party.
+; 
+; default: no
+;
+incoming_early_audio=no
+
 ; uncomment the following to get into s extension at extension conf
 ; there you can use DigitTimeout if you can't or don't want to use
 ; isdn overlap dial.