diff options
author | Christian Richter <christian.richter@beronet.com> | 2006-10-27 11:18:32 +0000 |
---|---|---|
committer | Christian Richter <christian.richter@beronet.com> | 2006-10-27 11:18:32 +0000 |
commit | f19300635f0286385ad23255dade2903651f2c12 (patch) | |
tree | 3756e6fc9a54d0d423ef12a209cf813c436e706d /channels/chan_misdn.c | |
parent | ebd08b418531d020ecea71a9d78becc85ec7a2d3 (diff) |
Merged revisions 46351-46353 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
................
r46351 | crichter | 2006-10-27 11:49:20 +0200 (Fr, 27 Okt 2006) | 9 lines
Merged revisions 46176 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2
........
r46176 | crichter | 2006-10-25 10:41:59 +0200 (Mi, 25 Okt 2006) | 1 line
added nttimeout option to configure wether we disconnect calls on NT timeouts or not during an overlapdial session
........
................
r46352 | crichter | 2006-10-27 11:58:44 +0200 (Fr, 27 Okt 2006) | 1 line
fixed not compile issue, which was just introduced
................
r46353 | crichter | 2006-10-27 12:03:23 +0200 (Fr, 27 Okt 2006) | 9 lines
Merged revisions 46350 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2
........
r46350 | crichter | 2006-10-27 11:24:01 +0200 (Fr, 27 Okt 2006) | 1 line
fixed a bug which caused chan_misdn to try to allocate 2 times the same channel on high load, which then caused instability of mISDN. removed a useless function from isdn_lib.c
........
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46354 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_misdn.c')
-rw-r--r-- | channels/chan_misdn.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c index 030388e00..e318bd267 100644 --- a/channels/chan_misdn.c +++ b/channels/chan_misdn.c @@ -199,6 +199,9 @@ struct chan_list { int dropped_frame_cnt; int far_alerting; + + int nttimeout; + int other_pid; struct chan_list *other_ch; @@ -1650,6 +1653,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)); @@ -2741,11 +2745,14 @@ static 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); @@ -4264,6 +4271,7 @@ cb_events(enum event_e event, struct misdn_bchannel *bc, void *user_data) ch->state=MISDN_CLEANING; } break; + case EVENT_BCHAN_ERROR: case EVENT_CLEANUP: { stop_bc_tones(ch); @@ -4375,9 +4383,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: |