diff --git a/channels/chan_gulp.c b/channels/chan_gulp.c index 144fb6aaa9d811b5680198d2cdf037d7cd2c3273..b4a53685c57e550b3f02903f8015c1bf0d4ba887 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;