From bea7528f5e0aa1b20c5be938e1e7ae078cea5e65 Mon Sep 17 00:00:00 2001 From: Automerge script Date: Wed, 25 Oct 2006 09:02:09 +0000 Subject: [PATCH] automerge commit git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2-netsec@46182 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_misdn.c | 15 ++++++++++++--- channels/misdn/chan_misdn_config.h | 1 + channels/misdn_config.c | 1 + configs/misdn.conf.sample | 7 +++++++ 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c index 4264ceda05..07d442e8d9 100644 --- a/channels/chan_misdn.c +++ b/channels/chan_misdn.c @@ -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: diff --git a/channels/misdn/chan_misdn_config.h b/channels/misdn/chan_misdn_config.h index 24c6a1feaa..db007f57df 100644 --- a/channels/misdn/chan_misdn_config.h +++ b/channels/misdn/chan_misdn_config.h @@ -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 */ diff --git a/channels/misdn_config.c b/channels/misdn_config.c index e02cd14763..689c8c7c79 100644 --- a/channels/misdn_config.c +++ b/channels/misdn_config.c @@ -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 }, diff --git a/configs/misdn.conf.sample b/configs/misdn.conf.sample index 27d9b05c4b..9f75de697a 100644 --- a/configs/misdn.conf.sample +++ b/configs/misdn.conf.sample @@ -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