]> git.ipfire.org Git - thirdparty/asterisk.git/commit
app: Queue hangup if channel is hung up during sub or macro execution. 99/1999/2
authorJoshua Colp <jcolp@digium.com>
Tue, 12 Jan 2016 17:14:29 +0000 (13:14 -0400)
committerJoshua Colp <jcolp@digium.com>
Wed, 13 Jan 2016 17:01:18 +0000 (11:01 -0600)
commit022423b98b6283185cf05e32520a201c5f263c55
tree4514b6d75840adb7af9c5cac992180393df64f07
parentef57080b27cee39991a2bf501d6fadfe8bc61146
app: Queue hangup if channel is hung up during sub or macro execution.

This issue was exposed when executing a connected line subroutine.
When connected or redirected subroutines or macros are executed it is
expected that the underlying applications and logic invoked are fast
and do not consume frames. In practice this constraint is not enforced
and if not adhered to will cause channels to continue when they shouldn't.
This is because each caller of the connected or redirected logic does not
check whether the channel has been hung up on return. As a result the
the hung up channel continues.

This change makes it so when the API to execute a subroutine or
macro is invoked the channel is checked to determine if it has hung up.
If it has then a hangup is queued again so the caller will see it
and stop.

ASTERISK-25690 #close

Change-Id: I1f9a8ceb1487df0389f0d346ce0f6dcbcaf476ea
main/app.c