diff --git a/main/app.c b/main/app.c index c4143d8400..a89e5b06f9 100644 --- a/main/app.c +++ b/main/app.c @@ -357,6 +357,11 @@ int ast_app_exec_macro(struct ast_channel *autoservice_chan, struct ast_channel if (autoservice_chan) { ast_autoservice_stop(autoservice_chan); } + + if (ast_check_hangup_locked(macro_chan)) { + ast_queue_hangup(macro_chan); + } + return res; } @@ -433,6 +438,11 @@ int ast_app_exec_sub(struct ast_channel *autoservice_chan, struct ast_channel *s if (autoservice_chan) { ast_autoservice_stop(autoservice_chan); } + + if (!ignore_hangup && ast_check_hangup_locked(sub_chan)) { + ast_queue_hangup(sub_chan); + } + return res; }