<html>
<body>
<div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
<table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
<tr>
<td>
This is an automatically generated e-mail. To reply, visit:
<a href="https://reviewboard.asterisk.org/r/2636/">https://reviewboard.asterisk.org/r/2636/</a>
</td>
</tr>
</table>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<p style="margin-top: 0;">On June 21st, 2013, 9:50 p.m. UTC, <b>rmudgett</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I think you need to look at changing the calls to bridge_reconfigured() with a candidate for COLP update flag. Pushing/Pulling can cause the bridge technology to need changing which will not happen until the bridge_reconfigured() call. When you need to update COLP after a bridge reconfiguration, two party bridge peers need to exchange COLP unless it was an optimization. Also the COLP exchange needs to run interception macros which will happen automatically if you write the control frame into the bridge for the peer.
I also don't see the necessary COLP exchange after an attended transfer to an application.</pre>
</blockquote>
<p>On June 21st, 2013, 9:55 p.m. UTC, <b>Joshua Colp</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Due to the Mark did the attended transfer code a pull still happens which causes the COLP update to occur. Why would bridge reconfiguration require COLP to update?</pre>
</blockquote>
<p>On June 21st, 2013, 10:15 p.m. UTC, <b>rmudgett</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">A -- B1
C -- B2
An external attended transfer is going to pull C from the bridge with B2 and push/swap it with B1. Just updating on push/pull will leave C not having A's COLP. The bridge_reconfigured() calls happen on a bridge when the bridge channel push/pull's have completed. Push/pull's cannot look at the bridge technology because they can cause the technology to change.
</pre>
</blockquote>
<p>On June 21st, 2013, 10:27 p.m. UTC, <b>Joshua Colp</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">So on the pull from C it gets an updated COLP with nothing.
On the push/swap it gets an updated COLP from A, and A gets an updated COLP from C.
If a push/pull can cause the technology to change... then yeah. What case would that happen?</pre>
</blockquote>
</blockquote>
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Oh - are you referring to a smart bridge operation changing things?</pre>
<br />
<p>- Joshua</p>
<br />
<p>On June 20th, 2013, 3:13 p.m. UTC, Joshua Colp wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://reviewboard.asterisk.org/static/rb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
<tr>
<td>
<div>Review request for Asterisk Developers.</div>
<div>By Joshua Colp.</div>
<p style="color: grey;"><i>Updated June 20, 2013, 3:13 p.m.</i></p>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Bugs: </b>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21829">ASTERISK-21829</a>
</div>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt;">Repository: </b>
Asterisk
</div>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">The attached change adds COLP updates on bridging push/pull operations and passes information down so it can do it semi-intelligently (ie: only when it really should).
Old code which is no longer required has also been removed.</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Tested the various scenarios to make sure that connected line information is updated when it should be (and not more than it needs to be).
Calling, transfers, etc.</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>/trunk/include/asterisk/channel.h <span style="color: grey">(392315)</span></li>
<li>/trunk/main/bridging.c <span style="color: grey">(392315)</span></li>
<li>/trunk/main/channel.c <span style="color: grey">(392315)</span></li>
</ul>
<p><a href="https://reviewboard.asterisk.org/r/2636/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>