diff options
author | George Joseph <gjoseph@digium.com> | 2016-11-14 14:55:13 -0500 |
---|---|---|
committer | George Joseph <gjoseph@digium.com> | 2016-11-14 14:14:28 -0600 |
commit | f62c9c42fa8a8ca72496872c0d0065b2933e6d6b (patch) | |
tree | cc4a6f8f1e23ff6a7f66846b87706048851df101 /main/channel.c | |
parent | 2966fa5ad770710ca1d0ca7f306def6792255bd9 (diff) |
Revert "Revert "AGI: Only defer frames when in an interception routine.""
This reverts commit 6bce938c2fcb60b7a77a0e997a6518860c0bfa39.
Change-Id: Iadbf462bf2a52e8b2fa9ebc75b37b1f688ba51d9
Diffstat (limited to 'main/channel.c')
-rw-r--r-- | main/channel.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/main/channel.c b/main/channel.c index 6317f6f20..b30bb1de7 100644 --- a/main/channel.c +++ b/main/channel.c @@ -10283,9 +10283,15 @@ int ast_channel_connected_line_macro(struct ast_channel *autoservice_chan, struc ast_party_connected_line_copy(ast_channel_connected(macro_chan), connected); } + ast_channel_start_defer_frames(macro_chan); ast_channel_unlock(macro_chan); retval = ast_app_run_macro(autoservice_chan, macro_chan, macro, macro_args); + + ast_channel_lock(macro_chan); + ast_channel_stop_defer_frames(macro_chan); + ast_channel_unlock(macro_chan); + if (!retval) { struct ast_party_connected_line saved_connected; @@ -10333,9 +10339,15 @@ int ast_channel_redirecting_macro(struct ast_channel *autoservice_chan, struct a ast_party_redirecting_copy(ast_channel_redirecting(macro_chan), redirecting); } + ast_channel_start_defer_frames(macro_chan); ast_channel_unlock(macro_chan); retval = ast_app_run_macro(autoservice_chan, macro_chan, macro, macro_args); + + ast_channel_lock(macro_chan); + ast_channel_stop_defer_frames(macro_chan); + ast_channel_unlock(macro_chan); + if (!retval) { struct ast_party_redirecting saved_redirecting; @@ -10376,9 +10388,15 @@ int ast_channel_connected_line_sub(struct ast_channel *autoservice_chan, struct ast_party_connected_line_copy(ast_channel_connected(sub_chan), connected); } + ast_channel_start_defer_frames(sub_chan); ast_channel_unlock(sub_chan); retval = ast_app_run_sub(autoservice_chan, sub_chan, sub, sub_args, 0); + + ast_channel_lock(sub_chan); + ast_channel_stop_defer_frames(sub_chan); + ast_channel_unlock(sub_chan); + if (!retval) { struct ast_party_connected_line saved_connected; @@ -10419,9 +10437,15 @@ int ast_channel_redirecting_sub(struct ast_channel *autoservice_chan, struct ast ast_party_redirecting_copy(ast_channel_redirecting(sub_chan), redirecting); } + ast_channel_start_defer_frames(sub_chan); ast_channel_unlock(sub_chan); retval = ast_app_run_sub(autoservice_chan, sub_chan, sub, sub_args, 0); + + ast_channel_lock(sub_chan); + ast_channel_stop_defer_frames(sub_chan); + ast_channel_unlock(sub_chan); + if (!retval) { struct ast_party_redirecting saved_redirecting; |