Parking/Unparking Asterisk 13

I am working with Park/Unpark calls. In Asterisk 11 I am able to make it work.
I use a phone_id to put the call in a parking lot

exten => s,n,Set(PARKINGEXTEN=${sc_phone_id})
exten => s,n,Park(,s)

And when I unpark that call, I send an originate to that phone_id. (Local/12345@parkedcalls)

I tried to do the same in Asterisk 13, but when I send the originate thru http with the same parameter (Local/12345@parkedcalls), it doesn’t continue the dial plan after the Park(). It starts a new dial plan from the begining.

Log when trying to unpark 2000277. (Local/2000277@parkedcalls)
— Called 2000277@parkedcalls
— Executing [2000277@parkedcalls:1] ParkedCall(“Local/2000277@parkedcalls-00000001;2”, “default,2000277”) in new stack
— Local/2000277@parkedcalls-00000001;1 answered
— Executing [s@sc_customer:1] Verbose(“Local/2000277@parkedcalls-00000001;1”, “1,Starting call to Phone ID 2000277: “) in new stack ===> This verbose is set in the begining of my dialplan

Do you know if something has changed from Asterisk 11 to ASterisk 13 regarding park/unpark?

Instead of configuring on features.conf I configure on res_parking.conf (after my changes are done, I restart asterisk service as expected).

res_parking.conf (some information that might be usefull)
parkpos => 2000001-2000900
context => parkedcalls
parkingtime => 300
comebacktoorigin = yes (tried both yes and no)

Well, I was able to move forward. The park/unpark worked. I specified the label in my originate to make sure it would continue on the dial plan and not on priority 1.
But now I am trying to test the dynamic park


  1. Tried creating a template, it was created succesfully because i can see it running “parking show park_template” but when i park the channel, it shows it is using “default” without any error.
    exten => s,n,Set(PARKINGDYNAMIC=park_template)
    exten => s,n,Park(,s)

  2. Then i tried defining the channel variables below before running Park()
    exten => s,n,Set(PARKINGDYNPOS=2000250-2000400)
    exten => s,n,Set(PARKINGLOT=${sc_phone_id})
    exten => s,n,Set(PARKINGDYNEXTEN=${sc_phone_id})
    exten => s,n,Park(,s)
    -> But it failed to add the range

  3. If I don’t define the range and just set the variables below, it puts the channel in the parking lot defined in default on the first position of the range
    exten => s,n,Set(PARKINGLOT=${sc_phone_id})
    exten => s,n,Set(PARKINGDYNEXTEN=${sc_phone_id})
    exten => s,n,Park(,s)

So what i really want to see is a working example of the dynamic park. What really needs to be done.
I’ve read all the documentation but that doesn’t help much.

I have lots of unanswered questions and doubts. I won’t ask all of them right now to give you a chance to guide me to the correct configuration.

I can point you to the blog post from last year that had a working example of parking including dynamic parking.

Thanks John for your suggestion.
Unfortunatelly I have already read this blog and it helped me to clarify a few things, but still the examples didn’t match my scenario.

I am quiting for now the dynamic park/unpark. I will use it as static.
I did learn a lot about it during my tests but I am not sure it is trully dynamic.

I should also write down everything I learnt for people in the future that might want to use it too, but i need to find sometime to do that. I can tell that asterisk documentation is really poor and you will only learn how to use it if you have time to make several attempts with lots of errors on the way.

Between the sample configurations that come with the source of Asterisk and the Wiki I personally feel things to be fairly well documented, Asterisk is a toolkit and not a turn-key solution so there may not be a document that shows exactly the solution you plan to build with asterisk.