Merged revisions 295866 via svnmerge from
authorRichard Mudgett <rmudgett@digium.com>
Mon, 22 Nov 2010 19:42:02 +0000 (19:42 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Mon, 22 Nov 2010 19:42:02 +0000 (19:42 +0000)
commit7c7486ad192cc5d2ca62f0f709e54814998a7095
treec070b03d53de56d60997efba3ccde084aa0fad5c
parent7bd56615b28d2f6ef795d23ba08801ca713583b9
Merged revisions 295866 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r295866 | rmudgett | 2010-11-22 13:36:10 -0600 (Mon, 22 Nov 2010) | 60 lines

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

  ................
    r295843 | rmudgett | 2010-11-22 13:28:23 -0600 (Mon, 22 Nov 2010) | 53 lines

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

    ........
      r295790 | rmudgett | 2010-11-22 12:46:26 -0600 (Mon, 22 Nov 2010) | 46 lines

      The channel redirect function (CLI or AMI) hangs up the call instead of redirecting the call.

      To recreate the problem:
      1) Party A calls Party B
      2) Invoke CLI "channel redirect" command to redirect channel call leg
      associated with A.
      3) All associated channels are hung up.

      Note that if the CLI command were done on the channel call leg associated
      with B it works.

      This regression was a result of the fix for issue #16946
      (https://reviewboard.asterisk.org/r/740/).

      The regression affects all features that use an async goto to execute the
      dialplan because of an external event: Channel redirect, AMI redirect, SIP
      REFER, and FAX detection.

      The struct ast_channel._softhangup code is a mess.  The variable is used
      for several purposes that do not necessarily result in the call being hung
      up.  I have added doxygen comments to describe how the various _softhangup
      bits are used.  I have corrected all the places where the variable was
      tested in a non-bit oriented manner.

      The primary fix is the new AST_CONTROL_END_OF_Q frame.  It acts as a weak
      hangup request so the soft hangup requests that do not normally result in
      a hangup do not hangup.

      JIRA SWP-2470
      JIRA SWP-2489

      (closes issue #18171)
      Reported by: SantaFox
      (closes issue #18185)
      Reported by: kwemheuer
      (closes issue #18211)
      Reported by: zahir_koradia
      (closes issue #18230)
      Reported by: vmarrone
      (closes issue #18299)
      Reported by: mbrevda
      (closes issue #18322)
      Reported by: nerbos

      Review: https://reviewboard.asterisk.org/r/1013/
    ........
  ................
................

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@295867 65c4cc65-6c06-0410-ace0-fbb531ad65f3
apps/app_macro.c
include/asterisk/channel.h
include/asterisk/frame.h
main/channel.c
main/pbx.c