diff options
Diffstat (limited to 'main/rtp_engine.c')
-rw-r--r-- | main/rtp_engine.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/main/rtp_engine.c b/main/rtp_engine.c index d60790c41..e739c7014 100644 --- a/main/rtp_engine.c +++ b/main/rtp_engine.c @@ -917,12 +917,14 @@ static enum ast_bridge_result local_bridge_loop(struct ast_channel *c0, struct a } ast_frfree(fr); } else if (fr->subclass.integer == AST_CONTROL_CONNECTED_LINE) { - if (ast_channel_connected_line_macro(who, other, fr, other == c0, 1)) { + if (ast_channel_connected_line_sub(who, other, fr, 1) && + ast_channel_connected_line_macro(who, other, fr, other == c0, 1)) { ast_indicate_data(other, fr->subclass.integer, fr->data.ptr, fr->datalen); } ast_frfree(fr); } else if (fr->subclass.integer == AST_CONTROL_REDIRECTING) { - if (ast_channel_redirecting_macro(who, other, fr, other == c0, 1)) { + if (ast_channel_redirecting_sub(who, other, fr, 1) && + ast_channel_redirecting_macro(who, other, fr, other == c0, 1)) { ast_indicate_data(other, fr->subclass.integer, fr->data.ptr, fr->datalen); } ast_frfree(fr); @@ -1206,12 +1208,14 @@ static enum ast_bridge_result remote_bridge_loop(struct ast_channel *c0, } ast_frfree(fr); } else if (fr->subclass.integer == AST_CONTROL_CONNECTED_LINE) { - if (ast_channel_connected_line_macro(who, other, fr, other == c0, 1)) { + if (ast_channel_connected_line_sub(who, other, fr, 1) && + ast_channel_connected_line_macro(who, other, fr, other == c0, 1)) { ast_indicate_data(other, fr->subclass.integer, fr->data.ptr, fr->datalen); } ast_frfree(fr); } else if (fr->subclass.integer == AST_CONTROL_REDIRECTING) { - if (ast_channel_redirecting_macro(who, other, fr, other == c0, 1)) { + if (ast_channel_redirecting_sub(who, other, fr, 1) && + ast_channel_redirecting_macro(who, other, fr, other == c0, 1)) { ast_indicate_data(other, fr->subclass.integer, fr->data.ptr, fr->datalen); } ast_frfree(fr); |