Fix AMI redirect action with two channels failing to redirect both channels.
authorRichard Mudgett <rmudgett@digium.com>
Wed, 2 Jan 2013 21:23:16 +0000 (21:23 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Wed, 2 Jan 2013 21:23:16 +0000 (21:23 +0000)
commit5601f3be43b06363541f585f23ebd8cf29b081c6
tree27b73a5986c3f8f515fee7c40a4cee8c4c880abc
parent8fb5bdce9ab9f7f3758545753cbc787653920753
Fix AMI redirect action with two channels failing to redirect both channels.

The AMI redirect action can fail to redirect two channels that are bridged
together.  There is a race between the AMI thread redirecting the two
channels and the bridge thread noticing that a channel is hungup from the
redirects.

* Made the bridge wait for both channels to be redirected before exiting.

* Made the AMI redirect check that all required headers are present before
proceeding with the redirection.

* Made the AMI redirect require that any supplied ExtraChannel exist
before proceeding.  Previously the code fell back to a single channel
redirect operation.

(closes issue ASTERISK-18975)
Reported by: Ben Klang

(closes issue ASTERISK-19948)
Reported by: Brent Dalgleish
Patches:
      jira_asterisk_19948_v11.patch (license #5621) patch uploaded by rmudgett
Tested by: rmudgett, Thomas Sevestre, Deepak Lohani, Kayode

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

Merged revisions 378356 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 378358 from http://svn.asterisk.org/svn/asterisk/branches/11

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@378374 65c4cc65-6c06-0410-ace0-fbb531ad65f3
include/asterisk/channel.h
main/features.c
main/manager.c