Merged revisions 71120 via svnmerge from
authorChristian Richter <christian.richter@beronet.com>
Mon, 25 Jun 2007 09:34:05 +0000 (09:34 +0000)
committerChristian Richter <christian.richter@beronet.com>
Mon, 25 Jun 2007 09:34:05 +0000 (09:34 +0000)
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

index a9a43b7..e86921b 100644 (file)
@@ -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);