From: Terry Wilson Date: Thu, 3 Feb 2011 20:36:34 +0000 (+0000) Subject: Set hangup cause in local_hangup X-Git-Tag: 1.4.41-rc1~16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a5955e4b8f097ec2c1be802da8cb75fe0979de9f;p=thirdparty%2Fasterisk.git Set hangup cause in local_hangup When a call involves a local channel (like SIP -> Local -> SIP), the hangup cause was not being set. This resulted in SIP channels sometimes getting a 503 error instead of a 486 when the far side sent a busy. In Asterisk 1.8+ this also can cause issues with CCSS that involve a local channel. This patch sets the hangupcause for one side of the local channel to the other in local_hangup for outbound calls. git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@306119 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_local.c b/channels/chan_local.c index ef06830de4..26b9f51f09 100644 --- a/channels/chan_local.c +++ b/channels/chan_local.c @@ -660,6 +660,7 @@ static int local_hangup(struct ast_channel *ast) ao2_lock(p); } if (p->owner) { + p->owner->hangupcause = p->chan->hangupcause; pbx_builtin_setvar_helper(p->owner, "CHANLOCALSTATUS", status); ast_channel_unlock(p->owner); }