app_macro: Don't restore the calling location on a channel redirect.
authorRichard Mudgett <rmudgett@digium.com>
Tue, 13 Jan 2015 18:17:51 +0000 (18:17 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Tue, 13 Jan 2015 18:17:51 +0000 (18:17 +0000)
commit1780de95e45a74cbcd0b5f677292c8945a9b8448
tree3cccd09c1b53f8eccc3076249cb2d897a5141a73
parent0e631a541dc8881861ded54a2bd66227e2233a57
app_macro: Don't restore the calling location on a channel redirect.

v11: If a channel redirect to a macro exten of a macro that is active
happens, the redirect location doesn't get executed.  Instead the original
macro location is restored and gets reexecuted.

v13: An additional effect happens if a parked call times out to an
extension in the macro that parked the call then the macro is reexecuted
instead of the expected park return location.

* Made not restore the macro calling location on an
AST_SOFTHANGUP_ASYNCGOTO.

* Increased the locked channel range when setting up the macro execution
environment to cover things that should be done while the channel is
locked.

* Removed unnecessary NULL tests before calling ast_free() in
_macro_exec().

ASTERISK-23850 #close
Reported by: Andrew Nagy

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

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

Merged revisions 430565 from http://svn.asterisk.org/svn/asterisk/branches/13

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@430567 65c4cc65-6c06-0410-ace0-fbb531ad65f3
apps/app_macro.c