summaryrefslogtreecommitdiff
path: root/channels/sig_analog.c
diff options
context:
space:
mode:
authorKinsey Moore <kmoore@digium.com>2012-08-15 17:56:04 +0000
committerKinsey Moore <kmoore@digium.com>2012-08-15 17:56:04 +0000
commit76d642ff69c15a3a1e51d4ae7884f8b98b2dc069 (patch)
treef60dd69a47eb670c66c9ead1dc6491793712fc37 /channels/sig_analog.c
parent45c6620d744ca2a0ce89805fea2178fb1280aaa5 (diff)
Add HANGUPCAUSE information to callee channels
This adds HANGUPCAUSE information to called channels so that hangup handlers can, in conjunction with predial dialplan execution, access the hangupcause information when the dialed channel hangs up on a one-to-one basis instead of a many-to-one basis as with HANGUPCAUSE usage on the caller channel. Review: https://reviewboard.asterisk.org/r/2069/ (closes issue ASTERISK-20198) ........ Merged revisions 371258 from http://svn.asterisk.org/svn/asterisk/branches/11 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@371259 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/sig_analog.c')
-rw-r--r--channels/sig_analog.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/channels/sig_analog.c b/channels/sig_analog.c
index a7f7b2ff3..79e8e7cb2 100644
--- a/channels/sig_analog.c
+++ b/channels/sig_analog.c
@@ -2819,6 +2819,7 @@ static struct ast_frame *__analog_handle_event(struct analog_pvt *p, struct ast_
cause_code->ast_cause = AST_CAUSE_NETWORK_OUT_OF_ORDER;
case ANALOG_EVENT_ONHOOK:
ast_queue_control_data(ast, AST_CONTROL_PVT_CAUSE_CODE, cause_code, data_size);
+ ast_channel_hangupcause_hash_set(ast, cause_code, data_size);
switch (p->sig) {
case ANALOG_SIG_FXOLS:
case ANALOG_SIG_FXOGS:
@@ -3498,6 +3499,7 @@ winkflashdone:
if (p->hanguponpolarityswitch) {
ast_debug(1, "HangingUp on polarity switch! channel %d\n", p->channel);
ast_queue_control_data(ast, AST_CONTROL_PVT_CAUSE_CODE, cause_code, data_size);
+ ast_channel_hangupcause_hash_set(ast, cause_code, data_size);
ast_softhangup(p->owner, AST_SOFTHANGUP_EXPLICIT);
p->polarity = POLARITY_IDLE;
} else {