[asterisk-bugs] [JIRA] (ASTERISK-21410) Park() application never returns in some cases

Red (JIRA) noreply at issues.asterisk.org
Thu Apr 11 13:26:02 CDT 2013


    [ https://issues.asterisk.org/jira/browse/ASTERISK-21410?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=205226#comment-205226 ] 

Red edited comment on ASTERISK-21410 at 4/11/13 1:25 PM:
---------------------------------------------------------

It is mentioned to handle the h extensions, but I seem to recall that during dev for Park() h was captured within the application because exposing it causes crash/stability issues.  So I cannot handle h in the case the the parkee hangs up.

Also there are a couple issues with just using features.conf to setup parking.  First is that with the below configs under [general], call parking never worked.  Secondly, supposing I could somehow configure parking this way, there is nothing to prevent cross-account unparking (company A user parks a call in 701, company B user accidentally unparks it).  And yes I understand I can _manually_ specify different lots, but that would require carving up extensions 701-799 between my ever growing list of accounts.

features.conf:
{noformat}
[general]
; Setting these values has no impact, and in no way
; enables parking in my setup.  If it did it would
; still not cover cross-account unparking security
; issues.
parkext => 700
parkpos => 701-799
context => parkedcalls
comebacktoorigin => yes
{noformat}
                
      was (Author: redwolf890):
    It is mentioned to handle the h extensions, but I seem to recall that during dev for Park() h was captured within the application because exposing it causes crash/stability issues.  So I cannot handle h in the case the the parkee hangs up.

Also there are a couple issues with just using features.conf to setup parking.  First is that with the below configs under [general], call parking never worked.  Secondly, supposing I could somehow configure parking this way, there is nothing to prevent cross-account unparking (company A user parks a call in 701, company B user accidentally unparks it).  And yes I understand I can _manually_ specify different lots, but that would require carving up extensions 701-799 between my ever growing list of accounts.

features.conf:
{noformat}
[general]
; Setting these values has no impact, and in no way
; enables parking in my setup.
parkext => 700
parkpos => 701-799
context => parkedcalls
comebacktoorigin => yes
{noformat}
                  
> Park() application never returns in some cases
> ----------------------------------------------
>
>                 Key: ASTERISK-21410
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-21410
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>    Affects Versions: 1.8.15.0
>         Environment: CentOS 5.5 2.6.18-308.13.1.e15 x86_64
>            Reporter: Red
>
> In my setup, I manually manage call parking and unparking.  This requires bookkeeping to be done in the priorities that immediately _follow_ the actual call to the Park() application.  However, under no circumstances are those priorities ever executed.
> If the parking spot times out, Park correctly routes to the timeout context.  However, if a timeout is neither reached nor is the call unparked the Park NEVER returns.  An example of this is A calls B, B parks A, A hangs up before timeout.
> The following dialplan code is an example:
> {noformat}
> [call-park]
> ;***
> ; NOTES
> ;   This context manages parking of calls and 
> ;   access to the parking lot.
> ;***
>   include => parkedcalls  ;none of the features.conf stuff seems to work so this isn't really necessary
>   exten => _700, 1, NoOp(=-=-=- ${EXTEN}@${CONTEXT} -=-=-=)
>   ;Check out a free parking spot and associate it
>   ; with a given account, then park it:
>   exten => _700, n, Set(PARKINGEXTEN=${VOIP_GetAvailableParkingSpot()})
>   exten => _700, n, Set(VOIP_DeleteAvailableParkingSpot(${PARKINGEXTEN})=)
>   exten => _700, n, Set(VOIP_AddParkedCall(${PARKINGEXTEN},${HASH(account,id)})=)
>   ; Here is where the problem is:
>   exten => _700, n, Park(45000,call-park-timeout,${PARKINGEXTEN},1,,)
>   exten => _700, n, NoOp(Nothing after the above park ever gets run.)
>   exten => _700, n, NoOp(Either the timeout context is routed to)
>   exten => _700, n, NoOp(or Park() flakes out and never returns.  Bug?!)
>   exten => _700, n, Hangup()
> {noformat}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.asterisk.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the asterisk-bugs mailing list