From f080be134edec9e9fd7dc9175170db6fd946a010 Mon Sep 17 00:00:00 2001 From: Kinsey Moore Date: Tue, 19 Jun 2012 21:13:41 +0000 Subject: Ensure that pvt cause information does not break native bridging Channel drivers that allow native bridging need to handle AST_CONTROL_PVT_CAUSE_CODE frames and previously did not handle them properly, usually breaking out of the native bridge. This change corrects that behavior and exposes the available cause code information to the dialplan while native bridges are in place. This required exposing the HANGUPCAUSE hash setter outside of channel.c, so additional documentation has been added. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@369086 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/rtp_engine.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'main/rtp_engine.c') diff --git a/main/rtp_engine.c b/main/rtp_engine.c index 81c2a0a56..297bf3b77 100644 --- a/main/rtp_engine.c +++ b/main/rtp_engine.c @@ -933,7 +933,7 @@ static enum ast_bridge_result local_bridge_loop(struct ast_channel *c0, struct a } ast_frfree(fr); } else if (fr->subclass.integer == AST_CONTROL_PVT_CAUSE_CODE) { - ast_indicate_data(other, fr->subclass.integer, fr->data.ptr, fr->datalen); + ast_channel_hangupcause_hash_set(other, fr->data.ptr); ast_frfree(fr); } else { *fo = fr; @@ -1227,7 +1227,7 @@ static enum ast_bridge_result remote_bridge_loop(struct ast_channel *c0, } ast_frfree(fr); } else if (fr->subclass.integer == AST_CONTROL_PVT_CAUSE_CODE) { - ast_indicate_data(other, fr->subclass.integer, fr->data.ptr, fr->datalen); + ast_channel_hangupcause_hash_set(other, fr->data.ptr); ast_frfree(fr); } else { *fo = fr; -- cgit v1.2.3