From 5da284815891e6de7cc31efe540393de2fc86366 Mon Sep 17 00:00:00 2001 From: Christian Richter Date: Mon, 3 Jul 2006 16:47:28 +0000 Subject: 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 --- channels/chan_misdn.c | 14 ++++++++------ channels/misdn/isdn_lib.c | 4 +++- 2 files changed, 11 insertions(+), 7 deletions(-) (limited to 'channels') 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 ; } -- cgit v1.2.3