<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/3857/">https://reviewboard.asterisk.org/r/3857/</a>
</td>
</tr>
</table>
<br />
<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.ab6f3b1072c9.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
<tr>
<td>
<div>Review request for Asterisk Developers.</div>
<div>By Mark Michelson.</div>
<p style="color: grey;"><i>Updated July 28, 2014, 5:21 p.m.</i></p>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Changes</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;">This addresses opticron's findings.
* There is now a move feature hook instead of a callback on the bridge channel.
* The datastore used for indicating that a stasis end has been published for a channel is now removed upon entering stasis and is removed upon exiting as well. This way, there should not be a way for the datastore to get added twice.</pre>
</td>
</tr>
</table>
<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;">Channels have the ability to cross the boundary from Stasis to being not in Stasis by sneaky means, such as the AMI Bridge action. This changeset seeks to detect the condition where a channel is moved directly from a Stasis bridge to a non-Stasis bridge. When such a thing occurs, after the ChannelLeftBridge event, we issue a StasisEnd and unsubscribe the Stasis app from that channel's further doings.</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 this in the following way:
Create a bridge in ARI.
Have two phones call into Stasis.
Add both phones to the ARI bridge.
Use AMI Bridge action to move both channels into a non-Stasis bridge.
I have ensured that each channel sees a ChannelLeftBridge, followed by a StasisEnd event. No further events are emitted for the channels over the websocket.</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> (updated)</h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>/team/group/ari-greedy-atxfer/res/stasis/stasis_bridge.c <span style="color: grey">(419681)</span></li>
<li>/team/group/ari-greedy-atxfer/res/res_stasis.c <span style="color: grey">(419681)</span></li>
<li>/team/group/ari-greedy-atxfer/main/bridge.c <span style="color: grey">(419681)</span></li>
<li>/team/group/ari-greedy-atxfer/include/asterisk/stasis_app.h <span style="color: grey">(419681)</span></li>
<li>/team/group/ari-greedy-atxfer/include/asterisk/bridge_features.h <span style="color: grey">(419681)</span></li>
</ul>
<p><a href="https://reviewboard.asterisk.org/r/3857/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>