diff options
author | Matthew Fredrickson <creslin@digium.com> | 2007-03-26 16:46:07 +0000 |
---|---|---|
committer | Matthew Fredrickson <creslin@digium.com> | 2007-03-26 16:46:07 +0000 |
commit | df42d78569846c4beca82459124a23848456e0e8 (patch) | |
tree | c86d3549346366141f891715375d30c72fb1eb2c /channels/chan_zap.c | |
parent | 24d8595d00de93b2e82a135104c81b3043911c53 (diff) |
Small API related SS7 updates.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@59204 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_zap.c')
-rw-r--r-- | channels/chan_zap.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/channels/chan_zap.c b/channels/chan_zap.c index 9ff2e52e4..96172a072 100644 --- a/channels/chan_zap.c +++ b/channels/chan_zap.c @@ -2767,7 +2767,14 @@ static int zt_hangup(struct ast_channel *ast) if (p->ss7call) { if (!ss7_grab(p, p->ss7)) { if (!p->alreadyhungup) { - isup_rel(p->ss7->ss7, p->ss7call, ast->hangupcause ? ast->hangupcause : -1); + const char *cause = pbx_builtin_getvar_helper(ast,"SS7_CAUSE"); + int icause = ast->hangupcause ? ast->hangupcause : -1; + + if (cause) { + if (atoi(cause)) + icause = atoi(cause); + } + isup_rel(p->ss7->ss7, p->ss7call, icause); ss7_rel(p->ss7); p->alreadyhungup = 1; } else @@ -8741,11 +8748,11 @@ static void *ss7_linkset(void *data) break; case ISUP_EVENT_CGB: ss7_block_cics(linkset, e->cgb.startcic, e->cgb.endcic, e->cgb.status, 1); - isup_cgba(linkset->ss7, e->cgb.startcic, e->cgb.endcic, e->cgb.status); + isup_cgba(linkset->ss7, e->cgb.startcic, e->cgb.endcic, e->cgb.status, e->cgb.type); break; case ISUP_EVENT_CGU: ss7_block_cics(linkset, e->cgu.startcic, e->cgu.endcic, e->cgb.status, 0); - isup_cgua(linkset->ss7, e->cgu.startcic, e->cgu.endcic, e->cgb.status); + isup_cgua(linkset->ss7, e->cgu.startcic, e->cgu.endcic, e->cgb.status, e->cgu.type); break; case ISUP_EVENT_BLO: chanpos = ss7_find_cic(linkset, e->blo.cic); |