aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_zap.c
diff options
context:
space:
mode:
authormattf <mattf@f38db490-d61c-443f-a65b-d21fe96a405b>2008-06-11 17:50:17 +0000
committermattf <mattf@f38db490-d61c-443f-a65b-d21fe96a405b>2008-06-11 17:50:17 +0000
commit9edea8c7afaee5ae7cc759655e0cad78731e06ac (patch)
treeed1f488eafe1ed5cfe484c2742d38ab7f00974f1 /channels/chan_zap.c
parente274b08136b2b5e668c6ad6ef09cd32301b80de3 (diff)
Make sure we hangup any calls we have and NULL out the ss7call value when we get a reset circuit message. Fixes crash bug
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@121857 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_zap.c')
-rw-r--r--channels/chan_zap.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index daeb7cf50..495791478 100644
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -9456,11 +9456,18 @@ static void *ss7_linkset(void *data)
}
p = linkset->pvts[chanpos];
ast_mutex_lock(&p->lock);
+
p->inservice = 1;
p->remotelyblocked = 0;
dpc = p->dpc;
isup_set_call_dpc(e->rsc.call, dpc);
+ if (p->ss7call)
+ p->ss7call = NULL;
+ if (p->owner)
+ p->owner->_softhangup |= AST_SOFTHANGUP_DEV;
+
ast_mutex_unlock(&p->lock);
+
isup_rlc(ss7, e->rsc.call);
break;
case ISUP_EVENT_GRS: