aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_misdn.c
diff options
context:
space:
mode:
authorcrichter <crichter@f38db490-d61c-443f-a65b-d21fe96a405b>2007-11-12 13:33:13 +0000
committercrichter <crichter@f38db490-d61c-443f-a65b-d21fe96a405b>2007-11-12 13:33:13 +0000
commit6bc7693d58885b4e0bc321c1e0213ff5a2f56145 (patch)
tree72633d24a1dab0b13f17ffef5f455ad5869524ab /channels/chan_misdn.c
parent4b753c1924e930b594a079d03ea2813f72774bc2 (diff)
Merged revisions 89172 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r89172 | crichter | 2007-11-12 12:23:57 +0100 (Mo, 12 Nov 2007) | 1 line added restart all interfaces Restart_Indicator, to automatically send a RESTART after the L2 of a PTP Port comes up. Also fixed some places where we have send a RELEASE without need for it. ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89178 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_misdn.c')
-rw-r--r--channels/chan_misdn.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c
index 066c981f5..ef7302be6 100644
--- a/channels/chan_misdn.c
+++ b/channels/chan_misdn.c
@@ -2655,6 +2655,7 @@ static int misdn_hangup(struct ast_channel *ast)
start_bc_tones(p);
hanguptone_indicate(p);
+ p->state=MISDN_CLEANING;
if (bc->need_disconnect)
misdn_lib_send_event( bc, EVENT_DISCONNECT);
break;
@@ -2690,7 +2691,8 @@ static int misdn_hangup(struct ast_channel *ast)
/*p->state=MISDN_CLEANING;*/
break;
case MISDN_DISCONNECTED:
- misdn_lib_send_event( bc, EVENT_RELEASE);
+ if (bc->need_release)
+ misdn_lib_send_event( bc, EVENT_RELEASE);
p->state = MISDN_CLEANING; /* MISDN_HUNGUP_FROM_AST; */
break;
@@ -2708,13 +2710,15 @@ static int misdn_hangup(struct ast_channel *ast)
chan_misdn_log(1, bc->port, " --> out_cause %d\n", bc->out_cause);
bc->out_cause = -1;
- misdn_lib_send_event(bc, EVENT_RELEASE);
+ if (bc->need_release)
+ misdn_lib_send_event(bc, EVENT_RELEASE);
p->state = MISDN_CLEANING;
break;
default:
if (bc->nt) {
bc->out_cause = -1;
- misdn_lib_send_event(bc, EVENT_RELEASE);
+ if (bc->need_release)
+ misdn_lib_send_event(bc, EVENT_RELEASE);
p->state = MISDN_CLEANING;
} else {
if (bc->need_disconnect)