summaryrefslogtreecommitdiff
path: root/channels/chan_misdn.c
diff options
context:
space:
mode:
authorChristian Richter <christian.richter@beronet.com>2006-10-27 11:18:32 +0000
committerChristian Richter <christian.richter@beronet.com>2006-10-27 11:18:32 +0000
commitf19300635f0286385ad23255dade2903651f2c12 (patch)
tree3756e6fc9a54d0d423ef12a209cf813c436e706d /channels/chan_misdn.c
parentebd08b418531d020ecea71a9d78becc85ec7a2d3 (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.c16
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: