summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorMatthew Fredrickson <creslin@digium.com>2007-03-26 16:46:07 +0000
committerMatthew Fredrickson <creslin@digium.com>2007-03-26 16:46:07 +0000
commitdf42d78569846c4beca82459124a23848456e0e8 (patch)
treec86d3549346366141f891715375d30c72fb1eb2c /channels
parent24d8595d00de93b2e82a135104c81b3043911c53 (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')
-rw-r--r--channels/chan_zap.c13
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);