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