<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/2393/">https://reviewboard.asterisk.org/r/2393/</a>
</td>
</tr>
</table>
<br />
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Since this is a chan_skinny specific feature, it should not affect other channel drivers.
I think this feature could work this way:
1) Device requests feature.
2) Device supplies exten to attempt pickup.
3) Driver creates a channel.
4) Driver sets a channel variable with the requested exten to pickup. Say SKINNY_PICKUP_EXTEN?
5) Driver starts dialplan at a location configured by the skinny.conf file for this feature.
6) Dialplan uses Pickup(${SKINNY_PICKUP_EXTEN}@context) to fetch the call.
7) If the pickup attempt was not successful, Pickup continues in the dialplan so the user could do something else like play a file.
At the very least, I don't think special directed pickup group options are needed. The existing pickup groups and named pickup groups are sufficient to restrict the available extensions to select the requested exten.
</pre>
<br />
<p>- rmudgett</p>
<br />
<p>On March 28th, 2013, 9:11 p.m. UTC, wedhorn 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 wedhorn.</div>
<p style="color: grey;"><i>Updated March 28, 2013, 9:11 p.m.</i></p>
<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;">Added ast_pickup_call_directed to features. Included some refactoring of ast_pickup_call to reuse same code.
In order to use ast_pickup_call, the chan passed in must have the exten set of the intended target. Will only pickup the target if the exten's match and the pickupgroupdirected and callgroupdirected of the chans match.
Also add ast_channel_callgroupdirected and ast_channel_pickupgroupdirected functions (and set functions) including code to set both of these in skinny and sip.
Code to actually do a directed pickup included in skinny.</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;">Directed pickup to non ringing skinny and non ringing sip device (with matching and unset groups). Returns without picking up.
Directed pickup to ringing skinny and ringing sip device, with matching groups, picks up call, with unmatching groups return without pickup.</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/CHANGES <span style="color: grey">(383948)</span></li>
<li>/trunk/channels/chan_sip.c <span style="color: grey">(383948)</span></li>
<li>/trunk/channels/chan_skinny.c <span style="color: grey">(383948)</span></li>
<li>/trunk/channels/sip/include/sip.h <span style="color: grey">(383948)</span></li>
<li>/trunk/configs/sip.conf.sample <span style="color: grey">(383948)</span></li>
<li>/trunk/configs/skinny.conf.sample <span style="color: grey">(383948)</span></li>
<li>/trunk/include/asterisk/channel.h <span style="color: grey">(383948)</span></li>
<li>/trunk/include/asterisk/features.h <span style="color: grey">(383948)</span></li>
<li>/trunk/main/channel_internal_api.c <span style="color: grey">(383948)</span></li>
<li>/trunk/main/features.c <span style="color: grey">(383948)</span></li>
</ul>
<p><a href="https://reviewboard.asterisk.org/r/2393/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>