From 0e25d8036ef9f6d21c57791fd6b58179816e6e6c Mon Sep 17 00:00:00 2001
From: Mark Michelson <mmichelson@digium.com>
Date: Tue, 9 Jul 2013 20:07:21 +0000
Subject: [PATCH] Use correct function for getting bridged peer when doing
 direct media checks.

(closes issue ASTERISK-21947)
reported by Matt Jordan



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393897 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 channels/chan_gulp.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/channels/chan_gulp.c b/channels/chan_gulp.c
index 144fb6aaa9..b4a53685c5 100644
--- a/channels/chan_gulp.c
+++ b/channels/chan_gulp.c
@@ -488,12 +488,14 @@ static int gulp_set_rtp_peer(struct ast_channel *chan,
 	struct gulp_pvt *pvt = ast_channel_tech_pvt(chan);
 	struct ast_sip_session *session = pvt->session;
 	int changed = 0;
+	struct ast_channel *bridge_peer;
 
-	/* BUGBUG - ast_bridged_channel will always return NULL, meaning direct media will never occur */
 	/* Don't try to do any direct media shenanigans on early bridges */
-	if ((rtp || vrtp || tpeer) && !ast_bridged_channel(chan)) {
+	bridge_peer = ast_channel_bridge_peer(chan);
+	if ((rtp || vrtp || tpeer) && !bridge_peer) {
 		return 0;
 	}
+	ast_channel_cleanup(bridge_peer);
 
 	if (nat_active && session->endpoint->disable_direct_media_on_nat) {
 		return 0;
-- 
GitLab