aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_misdn.c
diff options
context:
space:
mode:
authorcrichter <crichter@f38db490-d61c-443f-a65b-d21fe96a405b>2007-03-12 13:08:06 +0000
committercrichter <crichter@f38db490-d61c-443f-a65b-d21fe96a405b>2007-03-12 13:08:06 +0000
commit52f3cfaa1fccdd1551e50c8383e50a80979e4924 (patch)
tree6409c884ea4ae289a07fdf2ed82827ac3c532356 /channels/chan_misdn.c
parentd3d44c7d2adb5f650b9cf32e84be2975d7de4903 (diff)
Merged revisions 57034,57523,57753,58558 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r57034 | crichter | 2007-02-28 17:09:27 +0100 (Mi, 28 Feb 2007) | 1 line fixed bugs.digium.com bugs: #9157 and bugs.beronet.com bugs: #302, #303, #304 ........ r57523 | crichter | 2007-03-02 19:32:51 +0100 (Fr, 02 Mar 2007) | 1 line fixed typo ........ r57753 | crichter | 2007-03-04 11:39:50 +0100 (So, 04 Mar 2007) | 1 line fixed another place where the out_cause was hardcoded to 16 ........ r58558 | crichter | 2007-03-09 15:43:58 +0100 (Fr, 09 Mar 2007) | 1 line we can free channel 31 as well, since we can occupy it ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@58826 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_misdn.c')
-rw-r--r--channels/chan_misdn.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c
index c76facee5..37afcc9f6 100644
--- a/channels/chan_misdn.c
+++ b/channels/chan_misdn.c
@@ -2261,12 +2261,8 @@ static int misdn_indication(struct ast_channel *ast, int cond, const void *data,
chan_misdn_log(1, p->bc->port, " --> * IND :\tcongestion pid:%d\n",p->bc?p->bc->pid:-1);
p->bc->out_cause=42;
- if (p->state != MISDN_CONNECTED) {
- start_bc_tones(p);
- misdn_lib_send_event( p->bc, EVENT_RELEASE);
- } else {
- misdn_lib_send_event( p->bc, EVENT_DISCONNECT);
- }
+ start_bc_tones(p);
+ misdn_lib_send_event( p->bc, EVENT_DISCONNECT);
if (p->bc->nt) {
hanguptone_indicate(p);
@@ -3789,7 +3785,9 @@ cb_events(enum event_e event, struct misdn_bchannel *bc, void *user_data)
if ( stop_tone ) {
stop_indicate(ch);
}
-
+
+ if (!ch->ast) break;
+
if (ch->state == MISDN_WAITING4DIGS ) {
/* Ok, incomplete Setup, waiting till extension exists */
@@ -4340,8 +4338,6 @@ cb_events(enum event_e event, struct misdn_bchannel *bc, void *user_data)
case EVENT_RELEASE:
{
- bc->out_cause=16;
-
hangup_chan(ch);
release_chan(bc);