[asterisk-dev] [Code Review] Fix directed group pickup feature code *8 with pickupsounds enabled , deadlock and segfault, affects 1.8.0 and trunk

rmudgett reviewboard at asterisk.org
Wed May 11 18:58:56 CDT 2011


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



trunk/channels/chan_sip.c
<https://reviewboard.asterisk.org/r/1185/#comment7218>

    For completeness, "*nounlock = 1;" after unlocking c.



trunk/channels/chan_sip.c
<https://reviewboard.asterisk.org/r/1185/#comment7217>

    Oops.  I was wrong about the c lock.  This function is called with p->owner locked if it is not NULL.
    
    If c is a new call then it is locked in this function.  If it is an existing call then it is already locked when this function is called.
    
    This code needs to be done unconditionally.


- rmudgett


On 2011-05-11 17:42:17, Alec Davis wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/1185/
> -----------------------------------------------------------
> 
> (Updated 2011-05-11 17:42:17)
> 
> 
> Review request for Asterisk Developers.
> 
> 
> Summary
> -------
> 
> Since 1.8, the new pickupsound and pickupfailsound in features.conf cause many issues.
> 
> 1). chan_sip:handle_request_invite() shouldn't be playing out the fail/success audio, as it has 'netlock' locked.
> 2). dialplan applications for directed_pickups shouldn't beep.
> 3). feature code for directed pickup should beep on success/failure if configured.
> 
> Moved app_directed:pickup_do() to features:ast_do_pickup().
> 
> Functions below, all now use the new ast_do_pickup()
> app_directed_pickup.c:
>    pickup_by_channel()
>    pickup_by_exten()
>    pickup_by_mark()
>    pickup_by_part()
> features.c:
>    ast_pickup_call()
> 
> Created a sip_pickup() thread to handle the pickup and playout the audio, spawned from handle_request_invite.
> 
> 
> This addresses bug 18654.
>     https://issues.asterisk.org/view.php?id=18654
> 
> 
> Diffs
> -----
> 
>   trunk/apps/app_directed_pickup.c 317665 
>   trunk/channels/chan_sip.c 317665 
>   trunk/include/asterisk/features.h 317665 
>   trunk/main/features.c 317665 
> 
> Diff: https://reviewboard.asterisk.org/r/1185/diff
> 
> 
> Testing
> -------
> 
> pickup using *8 feature code, with pickup sounds enabled/disabled
> 
> exten => 71,1,Pickup()           ; any ringing extension in same pickupgroup 
> exten => 72,1,Pickup(85 at phones)  ; dahdi extension
> exten => 73,1,Pickup(823 at phones) ; sip extension
> 
> 
> Thanks,
> 
> Alec
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20110511/796b3337/attachment.htm>


More information about the asterisk-dev mailing list