<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/2638/">https://reviewboard.asterisk.org/r/2638/</a>
</td>
</tr>
</table>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<p style="margin-top: 0;">On July 1st, 2013, 10:45 p.m. UTC, <b>Matt Jordan</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
<thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
<a href="https://reviewboard.asterisk.org/r/2638/diff/2/?file=40539#file40539line83" style="color: black; font-weight: bold; text-decoration: underline;">/trunk/main/parking.c</a>
<span style="font-weight: normal;">
(Diff revision 2)
</span>
</th>
</tr>
</thead>
<tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
<tr>
<td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">struct stasis_topic *ast_parking_topic(void)</pre></td>
</tr>
</tbody>
<tbody>
<tr>
<th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2">83</font></th>
<td bgcolor="#ffffff" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="tb">        </span><span class="n">ao2_cleanup</span><span class="p">(</span><span class="n">park_obj</span><span class="o">-></span><span class="n">retriever</span><span class="p">);</span></pre></td>
<th bgcolor="#f0f0f0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">82</font></th>
<td bgcolor="#ffffff" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="tb">        </span><span class="n">ao2_cleanup</span><span class="p">(</span><span class="n">park_obj</span><span class="o">-></span><span class="n">retriever</span><span class="p">);</span></pre></td>
</tr>
</tbody>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
<td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
<th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">83</font></th>
<td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="tb">        </span><span class="n">ao2_cleanup</span><span class="p">(</span><span class="n">park_obj</span><span class="o">-></span><span class="n">retriever</span><span class="p">);</span></pre></td>
</tr>
</tbody>
</table>
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Don't clean up retriever twice.
(I'm surprised this didn't FRACK on you)</pre>
</blockquote>
</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I miiiiight not have tested retrieving a parked call with this change in place. I'll have to go back and test that. This probably happened as a result of a frustratingly conflict-inducing svn up.</pre>
<br />
<p>- jrose</p>
<br />
<p>On June 27th, 2013, 8:51 p.m. UTC, jrose 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, Matt Jordan and rmudgett.</div>
<div>By jrose.</div>
<p style="color: grey;"><i>Updated June 27, 2013, 8:51 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-21877">ASTERISK-21877</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;">We decided parker snapshots were misleading and unuseful for all but a few uses of parked call messages and events. As such, they've been replaced with just having parker dial strings for handling call control on timeout.
If a channel directly parks another channel, then setting the park dial string is fairly trivial. We just use the copy the name of the channel that parked the call and then flatten it while creating the parked user. If the call was transferred to the park application somehow, then it must be read from either the BLINDTRANSFER variable or from the newly added ATTENDEDTRANSFER variable which is basically just the BLINDTRANSFER variable for attended transfers.
This effectively wipes out one of the bug bug comments mentioned in ASTERISK-21877 regarding not having a snapshot of who parked the call on so-called 'deep parks' where a park application is deeper than the first priority of the extension a call is transferred to. The other bug bug comment remains at large, but mmichelson has a patch for bridge roles in the works which should make fixing that trivial.</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;">All kinds of different transfers (DTMF blind, DTMF attended, SIP blind, SIP attended, SIP attended with hangups before park, etc).
The only noteworthy case where the parker was anything other than who transferred the call was the following:
SIP/A calls SIP/B
SIP/A performs attended transfer to extension f
f,1,NoOp
f,2,Wait(10)
f,3,Park()
SIP/A hangs up during the wait
This causes the park dial string for SIP/B's parked user to be SIP/B unfortunately, but this is more of a transfer related issue than a parking related issue. It's also one that Richard says was also the case in previous versions, so this isn't a change in behavior.
This could be addressed by setting the ATTENDEDTRANSFER variable when the masquerade occurs to put B in the PBX where A leaves off.</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/bridges/bridge_builtin_features.c <span style="color: grey">(393053)</span></li>
<li>/trunk/include/asterisk/channel.h <span style="color: grey">(393053)</span></li>
<li>/trunk/include/asterisk/parking.h <span style="color: grey">(393053)</span></li>
<li>/trunk/main/bridging.c <span style="color: grey">(393053)</span></li>
<li>/trunk/main/cel.c <span style="color: grey">(393053)</span></li>
<li>/trunk/main/channel.c <span style="color: grey">(393053)</span></li>
<li>/trunk/main/features.c <span style="color: grey">(393053)</span></li>
<li>/trunk/main/parking.c <span style="color: grey">(393053)</span></li>
<li>/trunk/res/parking/parking_applications.c <span style="color: grey">(393053)</span></li>
<li>/trunk/res/parking/parking_bridge.c <span style="color: grey">(393053)</span></li>
<li>/trunk/res/parking/parking_bridge_features.c <span style="color: grey">(393053)</span></li>
<li>/trunk/res/parking/parking_controller.c <span style="color: grey">(393053)</span></li>
<li>/trunk/res/parking/parking_manager.c <span style="color: grey">(393053)</span></li>
<li>/trunk/res/parking/parking_ui.c <span style="color: grey">(393053)</span></li>
<li>/trunk/res/parking/res_parking.h <span style="color: grey">(393053)</span></li>
</ul>
<p><a href="https://reviewboard.asterisk.org/r/2638/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>