From 36da6b62865366b335511aa836d300e2dc163ea9 Mon Sep 17 00:00:00 2001
From: Terry Wilson <twilson@digium.com>
Date: Thu, 3 Feb 2011 21:13:11 +0000
Subject: [PATCH] Merged revisions 306127 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r306127 | twilson | 2011-02-03 13:03:26 -0800 (Thu, 03 Feb 2011) | 23 lines

  Merged revisions 306126 via svnmerge from
  https://origsvn.digium.com/svn/asterisk/branches/1.6.2

  ................
    r306126 | twilson | 2011-02-03 12:56:00 -0800 (Thu, 03 Feb 2011) | 16 lines

    Merged revisions 306119 via svnmerge from
    https://origsvn.digium.com/svn/asterisk/branches/1.4

    ........
      r306119 | twilson | 2011-02-03 12:36:34 -0800 (Thu, 03 Feb 2011) | 9 lines

      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/trunk@306128 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 channels/chan_local.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/channels/chan_local.c b/channels/chan_local.c
index fbe1e530e0..a0253b8638 100644
--- a/channels/chan_local.c
+++ b/channels/chan_local.c
@@ -879,6 +879,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);
 			}
-- 
GitLab