summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Spencer <markster@digium.com>2003-10-25 18:00:00 +0000
committerMark Spencer <markster@digium.com>2003-10-25 18:00:00 +0000
commitbc7b8ef41e458dc54fd0b80a2697daeb36878bb9 (patch)
tree215ae70beac6d3c3b3572feefc60a3d049ddcdea
parenta40f00bee9b63664613a016024d9b793bbb5f90d (diff)
Make HANGUPCAUSE accessible
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1669 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rwxr-xr-xchannels/chan_zap.c6
-rwxr-xr-xinclude/asterisk/causes.h3
-rwxr-xr-xpbx.c3
3 files changed, 11 insertions, 1 deletions
diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index 2391734eb..77f1fc06d 100755
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -514,6 +514,12 @@ static int hangup_pri2cause(int cause)
return AST_CAUSE_BUSY;
case PRI_CAUSE_NORMAL_CLEARING:
return AST_CAUSE_NORMAL;
+ case PRI_CAUSE_NORMAL_CIRCUIT_CONGESTION:
+ case PRI_CAUSE_REQUESTED_CHAN_UNAVAIL:
+ return AST_CAUSE_CONGESTION;
+ case PRI_CAUSE_UNALLOCATED:
+ case PRI_CAUSE_NUMBER_CHANGED:
+ return AST_CAUSE_UNALLOCATED;
default:
return AST_CAUSE_FAILURE;
}
diff --git a/include/asterisk/causes.h b/include/asterisk/causes.h
index 851362882..e70069069 100755
--- a/include/asterisk/causes.h
+++ b/include/asterisk/causes.h
@@ -16,5 +16,6 @@
#define AST_CAUSE_NORMAL 1
#define AST_CAUSE_BUSY 2
#define AST_CAUSE_FAILURE 3
-
+#define AST_CAUSE_CONGESTION 4
+#define AST_CAUSE_UNALLOCATED 5
diff --git a/pbx.c b/pbx.c
index 98e1ade6a..cda3dd035 100755
--- a/pbx.c
+++ b/pbx.c
@@ -862,6 +862,9 @@ static void pbx_substitute_variables_temp(struct ast_channel *c,const char *var,
} else if (c && !strcmp(var, "UNIQUEID")) {
snprintf(workspace, workspacelen -1, "%s", c->uniqueid);
*ret = workspace;
+ } else if (c && !strcmp(var, "HANGUPCAUSE")) {
+ snprintf(workspace, workspacelen -1, "%i", c->hangupcause);
+ *ret = workspace;
} else {
if (c) {
AST_LIST_TRAVERSE(headp,variables,entries) {