From e57fa9fa82fd999699aa5107f44c94b2e16dcfab Mon Sep 17 00:00:00 2001 From: Christian Richter <christian.richter@beronet.com> Date: Mon, 25 Jun 2007 09:34:05 +0000 Subject: [PATCH] Merged revisions 71120 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ................ r71120 | crichter | 2007-06-22 17:30:08 +0200 (Fr, 22 Jun 2007) | 9 lines Merged revisions 69887 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r69887 | crichter | 2007-06-19 15:23:04 +0200 (Di, 19 Jun 2007) | 1 line when we send out a SETUP, but get no response, we should cleanup everything after reception of a hangup. ........ ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@71496 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_misdn.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c index a9a43b7605..e86921bb84 100644 --- a/channels/chan_misdn.c +++ b/channels/chan_misdn.c @@ -2155,7 +2155,7 @@ static int misdn_digit_end(struct ast_channel *ast, char digit, unsigned int dur if ( bc->send_dtmf ) send_digit_to_chan(p,digit); break; - } +} return 0; } @@ -2370,6 +2370,11 @@ static int misdn_hangup(struct ast_channel *ast) case MISDN_INCOMING_SETUP: case MISDN_CALLING: p->state = MISDN_CLEANING; + /* This is the only place in misdn_hangup, where we + * can call release_chan, else it might create lot's of trouble + * */ + ast_log(LOG_NOTICE, "release channel, in CALLING/INCOMING_SETUP state.. no other events happened\n"); + release_chan(bc); misdn_lib_send_event( bc, EVENT_RELEASE_COMPLETE); break; case MISDN_HOLDED: @@ -2380,7 +2385,6 @@ static int misdn_hangup(struct ast_channel *ast) if (bc->need_disconnect) misdn_lib_send_event( bc, EVENT_DISCONNECT); break; - case MISDN_CALLING_ACKNOWLEDGE: start_bc_tones(p); hanguptone_indicate(p); -- GitLab