]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
automerge commit
authorAutomerge script <automerge@asterisk.org>
Wed, 25 Oct 2006 09:02:09 +0000 (09:02 +0000)
committerAutomerge script <automerge@asterisk.org>
Wed, 25 Oct 2006 09:02:09 +0000 (09:02 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2-netsec@46182 65c4cc65-6c06-0410-ace0-fbb531ad65f3

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

index 4264ceda05c357f3d2b233c5e5a0f0448c81f6c5..07d442e8d9fc736f7c280e9f27b1a64e2798d3fe 100644 (file)
@@ -191,6 +191,9 @@ struct chan_list {
        int dropped_frame_cnt;
 
        int far_alerting;
+
+       int nttimeout;
+
        int other_pid;
        struct chan_list *other_ch;
 
@@ -1416,6 +1419,7 @@ 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_NEED_MORE_INFOS, &bc->need_more_infos, sizeof(int));
+       misdn_cfg_get( port, MISDN_CFG_NTTIMEOUT, &ch->nttimeout, sizeof(int));
        
        misdn_cfg_get( port, MISDN_CFG_FAR_ALERTING, &ch->far_alerting, sizeof(int));
 
@@ -2361,11 +2365,14 @@ enum ast_bridge_result  misdn_bridge (struct ast_channel *c0,
                        *rc=who;
                        break;
                }
-               
+       
+#if 0
                if (f->frametype == AST_FRAME_VOICE) {
-                       chan_misdn_log(1,0,"Got Voice frame in Bridged state..\n");
+                       chan_misdn_log(1, ch1->bc->port, "I SEND: Splitting conference with Number:%d\n", ch1->bc->pid +1);
+       
                        continue;
                }
+#endif
 
                if (who == c0) {
                        ast_write(c1,f);
@@ -3943,9 +3950,11 @@ cb_events(enum event_e event, struct misdn_bchannel *bc, void *user_data)
                        chan_misdn_log(1,bc->port,"--> state: %s\n",misdn_get_ch_state(ch));
 
                switch (ch->state) {
-                       case MISDN_CALLING:
                        case MISDN_DIALING:
                        case MISDN_PROGRESS:
+                               if (bc->nt && !ch->nttimeout) break;
+                       
+                       case MISDN_CALLING:
                        case MISDN_ALERTING:
                        case MISDN_PROCEEDING:
                        case MISDN_CALLING_ACKNOWLEDGE:
index 24c6a1feaa1ec0d4dcb22b9ec0da0730940759b6..db007f57df802671f983c64b22424962b4c99e36 100644 (file)
@@ -54,6 +54,7 @@ enum misdn_cfg_elements {
        MISDN_CFG_ECHOCANCEL,          /* int */
        MISDN_CFG_ECHOCANCELWHENBRIDGED,  /* int (bool) */
        MISDN_CFG_NEED_MORE_INFOS,     /* bool */
+       MISDN_CFG_NTTIMEOUT,     /* bool */
        MISDN_CFG_JITTERBUFFER,              /* int */
        MISDN_CFG_JITTERBUFFER_UPPER_THRESHOLD,              /* int */
        MISDN_CFG_CALLGROUP,           /* ast_group_t */
index e02cd14763bb3a7bcbc18c63693350925886ae3b..689c8c7c791e8ced49774ffbe209a853dd5181f2 100644 (file)
@@ -114,6 +114,7 @@ static const struct misdn_cfg_spec port_spec[] = {
        { "incoming_early_audio", MISDN_CFG_INCOMING_EARLY_AUDIO, MISDN_CTYPE_BOOL, "no", NONE },
        { "echocancel", MISDN_CFG_ECHOCANCEL, MISDN_CTYPE_BOOLINT, "0", 128 },
        { "need_more_infos", MISDN_CFG_NEED_MORE_INFOS, MISDN_CTYPE_BOOL, "0", NONE },
+       { "nttimeout", MISDN_CFG_NTTIMEOUT, MISDN_CTYPE_BOOL, "no", NONE },
        { "jitterbuffer", MISDN_CFG_JITTERBUFFER, MISDN_CTYPE_INT, "4000", NONE },
        { "jitterbuffer_upper_threshold", MISDN_CFG_JITTERBUFFER_UPPER_THRESHOLD, MISDN_CTYPE_INT, "0", NONE },
        { "callgroup", MISDN_CFG_CALLGROUP, MISDN_CTYPE_ASTGROUP, NO_DEFAULT, NONE },
index 27d9b05c4b36319902be02975d6ede2b34a9f1f2..9f75de697a4c8aa1d3b8fb2426c3140c8fa3409e 100644 (file)
@@ -207,6 +207,13 @@ reject_cause=16
 ;
 need_more_infos=no
 
+
+;
+; set this to yes if you want to disconnect calls when a timeout occurs
+; for example during the overlapdial phase
+;
+nttimeout=no
+
 ; set the method to use for channel selection:
 ;   standard    - always choose the first free channel with the lowest number
 ;   round_robin - use the round robin algorithm to select a channel. use this