[asterisk-dev] [Code Review] 2393: Add directed pickup to features

wedhorn reviewboard at asterisk.org
Tue Mar 26 13:40:58 CDT 2013



> On March 18, 2013, 7:01 p.m., rmudgett wrote:
> > /trunk/main/features.c, line 8053
> > <https://reviewboard.asterisk.org/r/2393/diff/3/?file=34817#file34817line8053>
> >
> >     You might want to look at the Pickup application for finding the exten selects channels in ast_channel_iterator_by_exten_new()/ast_channel_by_exten_cb().  Your target may be in a macro.
> >     
> >     Passing in the exten to search for set in the channel does seem a bit awkward for more general use.  Probably should also specify a context or you may get more target matches than intended.
> 
> wedhorn wrote:
>     The idea is that the directed_callgroup will be set by (and only by) channel drivers. So to match callstate, callgroup, and exten should preclude any unwanted matches. Still, I'll have another look over the code.
>     
>     Agree that passing in the chan with target exten already set is a bit awkward, but given that it's for developer use, seems reasonable.
>     
>     I thought about including context (possibly even optionally). Given that they need to be in the same directed_callgroup, and that group pickup allows cross context pickups, thought this approach reasonable. Happy to include context, but would make it optional.

I've had more of a dig around and don't think that a revision of the directed pickup method is warranted. The new function ast_pickup_call_directed is a copy of ast_pickup_call with the same general limitations, but providing an additional parameter to specify the exten to pickup. If there's an issue with the new method regarding what can be picked up, it is most likely a current bug with ast_pickup_call (probably in ast_can_pickup, which is shared by both ast_pickup_call and the pickup app).

Also I'm having a hard time rationalising adding contexts to the directed pickup. Given that the only calls parsed for exten will be those specifically set to that particular directedCallGroup in the respective channel config (eg sip.conf), it seems redundant to include the pickup context. If the configurer want groups separated, they should be in separate directedCallGroups.

To reiterate, if you could pass in a matchall exten (eg *), ast_pickup_call_directed would pickup the same calls as ast_pickup_call.


- wedhorn


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/2393/#review8084
-----------------------------------------------------------


On March 18, 2013, 3:22 p.m., wedhorn wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/2393/
> -----------------------------------------------------------
> 
> (Updated March 18, 2013, 3:22 p.m.)
> 
> 
> Review request for Asterisk Developers.
> 
> 
> Repository: Asterisk
> 
> 
> Description
> -------
> 
> 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.
> 
> 
> Diffs
> -----
> 
>   /trunk/CHANGES 383304 
>   /trunk/channels/chan_sip.c 383304 
>   /trunk/channels/chan_skinny.c 383304 
>   /trunk/channels/sip/include/sip.h 383304 
>   /trunk/configs/sip.conf.sample 383304 
>   /trunk/configs/skinny.conf.sample 383304 
>   /trunk/include/asterisk/channel.h 383304 
>   /trunk/include/asterisk/features.h 383304 
>   /trunk/main/channel_internal_api.c 383304 
>   /trunk/main/features.c 383304 
> 
> Diff: https://reviewboard.asterisk.org/r/2393/diff/
> 
> 
> Testing
> -------
> 
> 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.
> 
> 
> Thanks,
> 
> wedhorn
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20130326/482abcb9/attachment-0001.htm>


More information about the asterisk-dev mailing list