<p>Jenkins2 <strong>merged</strong> this change.</p><p><a href="https://gerrit.asterisk.org/6462">View Change</a></p><div style="white-space:pre-wrap">Approvals:
Richard Mudgett: Looks good to me, but someone else must approve
Joshua Colp: Looks good to me, approved
Jenkins2: Approved for Submit
</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bridge : Fix one-way direct-media when early bridging with native_rtp<br><br>When two channels were early bridged in a native_rtp bridge, the RTP description<br>on one side was not updated when the other side answered.<br>This patch forbids non-answered channels to enter a native_rtp bridge, and<br>triggers a bridge reconfiguration when an ANSWER frame is received.<br><br>ASTERISK-27257<br><br>Change-Id: If1aaee1b4ed9658a1aa91ab715ee0a6413b878df<br>---<br>M bridges/bridge_native_rtp.c<br>M include/asterisk/bridge_technology.h<br>M main/bridge_channel.c<br>3 files changed, 9 insertions(+), 2 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">diff --git a/bridges/bridge_native_rtp.c b/bridges/bridge_native_rtp.c<br>index a166258..fc9d701 100644<br>--- a/bridges/bridge_native_rtp.c<br>+++ b/bridges/bridge_native_rtp.c<br>@@ -600,7 +600,8 @@<br> */<br> static int native_rtp_bridge_capable(struct ast_channel *chan)<br> {<br>- return !ast_channel_has_hook_requiring_audio(chan);<br>+ return !ast_channel_has_hook_requiring_audio(chan)<br>+ && ast_channel_state(chan) == AST_STATE_UP;<br> }<br> <br> /*!<br>diff --git a/include/asterisk/bridge_technology.h b/include/asterisk/bridge_technology.h<br>index fb275c1..8bac1e3 100644<br>--- a/include/asterisk/bridge_technology.h<br>+++ b/include/asterisk/bridge_technology.h<br>@@ -108,11 +108,13 @@<br> *<br> * \note On entry, bridge is already locked.<br> *<br>- * \note The bridge technology must tollerate a failed to join channel<br>+ * \note The bridge technology must tolerate a failed to join channel<br> * until it can be kicked from the bridge.<br> *<br> * \note A channel may be in a suspended state already when joining a bridge<br> * technology. The technology must handle this case.<br>+ *<br>+ * \note A channel may not be answered when joining a bridge technology.<br> */<br> int (*join)(struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel);<br> /*!<br>diff --git a/main/bridge_channel.c b/main/bridge_channel.c<br>index 875d37d..7ef418a 100644<br>--- a/main/bridge_channel.c<br>+++ b/main/bridge_channel.c<br>@@ -2258,6 +2258,10 @@<br> case AST_CONTROL_ANSWER:<br> if (ast_channel_state(chan) != AST_STATE_UP) {<br> ast_answer(chan);<br>+ ast_bridge_channel_lock_bridge(bridge_channel);<br>+ bridge_channel->bridge->reconfigured = 1;<br>+ bridge_reconfigured(bridge_channel->bridge, 0);<br>+ ast_bridge_unlock(bridge_channel->bridge);<br> } else {<br> ast_indicate(chan, -1);<br> }<br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/6462">change 6462</a>. To unsubscribe, visit <a href="https://gerrit.asterisk.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.asterisk.org/6462"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: asterisk </div>
<div style="display:none"> Gerrit-Branch: 14 </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: If1aaee1b4ed9658a1aa91ab715ee0a6413b878df </div>
<div style="display:none"> Gerrit-Change-Number: 6462 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: Jean Aunis - Prescom <jean.aunis@prescom.fr> </div>
<div style="display:none"> Gerrit-Reviewer: Jean Aunis - Prescom <jean.aunis@prescom.fr> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins2 </div>
<div style="display:none"> Gerrit-Reviewer: Joshua Colp <jcolp@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Richard Mudgett <rmudgett@digium.com> </div>