<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/3446/">https://reviewboard.asterisk.org/r/3446/</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, Matt Jordan and rmudgett.</div>
<div>By Jonathan Rose.</div>
<p style="color: grey;"><i>Updated April 25, 2014, 11:54 a.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;">Address findings</pre>
</td>
</tr>
</table>
<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-23397">ASTERISK-23397</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;">r334840 removed announcements from Park manager actions back in 2011 from all of the actively supported Asterisk versions. Asterisk 12 has provided an opportunity to bring this functionality back.
TimeoutChannel will now receive announcements under the strict condition that it is in a one to one bridge with Channel (the channel being parked) at the time the Park action was invoked. In this case, TimeoutChannel will be treated more or less entirely as the channel responsible for parking the call instead of just as a return point for when the call times out.
Parking behavior in cases where TimeoutChannel isn't directly bridged with Channel remains mostly unchanged. The channel being parked will no longer receive announcements, but it will still be treated as having more or less self-parked. Timeout Channel will still work just as a comeback override at that point (Will be used to dial when the call times out if it's specified).
AnnounceChannel field has been added to the Park action. If the AnnounceChannel field is specified and maps to an active channel, a parking announcement listener stasis subscription will be applied to that channel. When Channel is parked, that listener will trip and apply the announcement bridge feature to the AnnounceChannel. Provided that AnnounceChannel is in some kind of bridge that can use features at that point (tested with two party bridges and holding bridges), the AnnounceChannel will receive the parking announcement while staying on the bridge.
If AnnounceChannel and TimeoutChannel are the same channel and that channel is bridged with Channel, a safeguard is in place to make sure multiple announcements aren't queued. In that case, AnnounceChannel is just ignored.</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 Parking with the park action using different parking lot and timeout settings under the following scenarios:
_______________________________________
Channel: SIP channel in a holding bridge
TimeoutChannel: SIP channel in another holding bridge
AnnounceChannel: same as TimeoutChannel
Results: Timeout Channel received announcements, remained in holding bridge, and was set as the comeback dial channel. Channel gets dialed upon timeout.
---
Channel: SIP channel talking to TimeoutChannel
TimeoutChannel: SIP channel talking to Channel
AnnounceChannel: both unspecified and the same as TimeoutChannel
Results: TimeoutChannel received announcements and then hung up... treated as the Parker of the call. Gets dialed after timeout.
---
Channel: Local channel in a Holding Bridge
TimeoutChannel: SIP channel talking to another, unrelated SIP channel
AnnounceChannel: Same as TimeoutChannel
Results: TimeoutChannel receives announcements, acts as comeback dial channel.
---
Channel: Local channel in a Holding Bridge
TimeoutChannel: SIP channel talking to another, unrelated SIP channel
AnnounceChannel: Unspecified
Results: SIP channel acts as comeback dial channel, but does not receive announcements</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>/branches/12/res/parking/res_parking.h <span style="color: grey">(412989)</span></li>
<li>/branches/12/res/parking/parking_manager.c <span style="color: grey">(412989)</span></li>
<li>/branches/12/res/parking/parking_bridge_features.c <span style="color: grey">(412989)</span></li>
<li>/branches/12/CHANGES <span style="color: grey">(412989)</span></li>
</ul>
<p><a href="https://reviewboard.asterisk.org/r/3446/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>