summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorChristian Richter <christian.richter@beronet.com>2006-07-03 16:47:28 +0000
committerChristian Richter <christian.richter@beronet.com>2006-07-03 16:47:28 +0000
commit5da284815891e6de7cc31efe540393de2fc86366 (patch)
tree36fd373f2ed95894517497ae6522d5c641b8cb24 /channels
parentf629ae18724cb4148a9fa0679a51aac7d8dfd3ab (diff)
removed our own tone creation from misdn_indicate, we just return -1. Now we get a lot fewer blocked in thread blah warnings..
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@36867 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_misdn.c14
-rw-r--r--channels/misdn/isdn_lib.c4
2 files changed, 11 insertions, 7 deletions
diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c
index bf0e7ddad..6d02eebab 100644
--- a/channels/chan_misdn.c
+++ b/channels/chan_misdn.c
@@ -1779,6 +1779,9 @@ static int misdn_call(struct ast_channel *ast, char *dest, int timeout)
ast_setstate(ast, AST_STATE_DIALING);
ast->hangupcause=16;
+
+ if (newbc->nt) stop_bc_tones(ch);
+
return 0;
}
@@ -1945,9 +1948,8 @@ static int misdn_indication(struct ast_channel *ast, int cond, const void *data,
p->bc->out_cause=17;
if (p->state != MISDN_CONNECTED) {
misdn_lib_send_event( p->bc, EVENT_DISCONNECT);
- tone_indicate(p, TONE_BUSY);
+ return -1;
} else {
-
chan_misdn_log(-1, p->bc->port, " --> !! Got Busy in Connected State !?! ast:%s\n", ast->name);
}
break;
@@ -1961,7 +1963,7 @@ static int misdn_indication(struct ast_channel *ast, int cond, const void *data,
break;
case MISDN_CONNECTED:
chan_misdn_log(1, p->bc->port, " --> * IND :\tringing pid:%d but Connected, so just send TONE_ALERTING without state changes \n",p->bc?p->bc->pid:-1);
- tone_indicate(p, TONE_ALERTING);
+ return -1;
break;
default:
p->state=MISDN_ALERTING;
@@ -1987,13 +1989,13 @@ static int misdn_indication(struct ast_channel *ast, int cond, const void *data,
}
+ 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);
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);
+ return -1;
}
break;
case AST_CONTROL_ANSWER:
diff --git a/channels/misdn/isdn_lib.c b/channels/misdn/isdn_lib.c
index 39ec08e52..f45f67052 100644
--- a/channels/misdn/isdn_lib.c
+++ b/channels/misdn/isdn_lib.c
@@ -1878,7 +1878,9 @@ handle_event_nt(void *dat, void *arg)
}
else cb_log(-1, stack->port, "Couldnt find BC so I couldnt remove the Process!!!! this is a bad port.\n");
- handle_cr(stack, &frm);
+ if (handle_cr(stack, &frm)<0) {
+ }
+
free_msg(msg);
return 0 ;
}