From d12350ccc33a3245a8f26f3346a9fda721d98a85 Mon Sep 17 00:00:00 2001 From: Kinsey Moore Date: Wed, 21 Aug 2013 14:08:23 +0000 Subject: Allow channels in app_stasis to hangup properly This detects hangups that occur while bridged to allow channels to exit app_stasis even if the hangup frame was absorbed by the bridge the channel was in. Reported by: David Lee (closes issue ASTERISK-22297) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@397244 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- res/res_stasis.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/res/res_stasis.c b/res/res_stasis.c index 5d44d0ef9..4b4563af3 100644 --- a/res/res_stasis.c +++ b/res/res_stasis.c @@ -597,6 +597,11 @@ int stasis_app_exec(struct ast_channel *chan, const char *app_name, int argc, int r; int command_count; + /* Check to see if a bridge absorbed our hangup frame */ + if (ast_check_hangup_locked(chan)) { + break; + } + if (stasis_app_get_bridge(control)) { /* Bridge is handling channel frames */ control_wait(control); -- cgit v1.2.3