login | register
Tue 02 of Dec, 2008 [01:49 UTC]

voip-info.org

Discuss [16] History

Asterisk call parking

Created by: oej,Last modification on Thu 10 of Apr, 2008 [05:21 UTC] by khairulla

Asterisk call parking


The number used to park a call and the parking extensions are configured in features.conf.
[general]
parkext => 700			; What extension to dial to park
parkpos => 701-720		; What extensions to park calls on 

By default extension 700 is used to park a call. While in a conversation, press # to initiate a transfer, then dial 700.
Asterisk will now announce the parking extension, most probably 701 or 702. Now hang up - the caller will be left on hold at the announced extention. Walk up to a different phone, dial 701 and voilá- the conversation can be continued. If a caller has been parked for a longer time than the specified time limit then Asterisk will again ring the originally dialed extension.

For simple dialplans first edit features.conf as desired, then put this into your extensions.conf:
  include => parkedcalls

If you have a more complex dialplan and want to be able to Goto() a more elaborate 'parkedcalls' handler then you'll need to be sure to include a handler for the 'i' priority to catch calls to parkinglot without call in them as well as the 's' priority to give timeouts somewhere to go, thus:

 ...
 exten => somecontext,3,Goto(parkinglot,${ARG1},1)
 ...
 [parkinglot]
 exten => s,1,NoOp(once a parked call times out it will resume here)
 ...
 include => parkedcalls
 exten => i,1,Playback(pbx-invalidpark)
 exten => i,2,Hangup

Notes

  • It won't show the parking extension when you do a show dialplan in the CLI.
  • Also you'll need to 'restart' Asterisk after modifying features.conf - a simple 'reload' won't do.
  • The user must be allowed to do transfers for being able to park a call, so check the t and T options of the Dial() command
  • For Asterisk 1.4.x, the user must be allowed to use call parking by adding the k and/or K options of the Dial() command
  • Asterisk-based transfers only work if Asterisk in the media path (which can be enforced through "canreinvite=no" in sip.conf, for example)

One problem with this in a comercial environment is that there is only one parking lot (my term) to park the calls in. Therefore, if you are providing VOIP service to your customers and customer A puts a call in the parking lot then it calls him back and tells him "transfer 701", customer B can dial 701 and pick up customer A's parked call. There is no built in way to distinguish one call on park from another in relation to who can and cannot pick up a given call. There is also no way in the Dialplan to determine which parking space (i.e. 701, 702, etc) the call was placed in. If even that small thing was available, and a viable way to use it in the dialplan (remember, when the call is parked, the dialplan is paused on that priority), the account code for the customer could be saved somewhere and a filter could be written to filter out one customer from answering another customer's call.

Of course, the optimal way would be to be able to set a context for the call that you could specify when the call is parked and picked up (different parking lots). An alternate solution would be for the ParkAndAnnounce application to set a variable (maybe ${PARKED_CHANNEL} or something) when it sends the announcement call. - Flobi


One More Solution for Simple Call Parking

Just do the below config to make Call Parking Up & Running
Go to "features.conf"

and add the below lines
general
parkext => 700
parkpos => 701-710
context => parkedcalls

Then go to "extensions.conf"
Just inclute the below line in your current context from where the calls are getting routed

include => parkedcalls

you are done now just reload the asterisk. now you will be able to do call parking Method for the same as follows
When you are in an active call just dail # then 700 now your call will be parked and you will hear the exten where its parked (in-between 701-710)
Just dail the exten from the other phone and you are connectd

See also




Comments

Comments Filter
222

333Re: How to allow one button call Parking in Asterisk

by suddenimpact, Monday 11 of August, 2008 [19:18:51 UTC]
I have this set up and working. But if a far end customer calls in and is placed in the parking slot 71. The second call comes in and Mr speedy fingers places that call in parking slot 71. The two outside callers become conferenced together and the asterisk system loses the call.
Is there a way to check to see if there is a call in that slot and if there is just send it back to that users phone.

Thanks
222

333How to allow one button call Parking in Asterisk

by ikhan, Wednesday 11 of June, 2008 [18:10:11 UTC]
I have Grandstream Phones and I wanted the ability to do a one button park and pickup. Using the modifications below. You can have a button for each Parking Lot Extension. For example, you can Park directly to parking ext 73 with a single button. This brings asterisk closer to a PBX.

I setup four buttons on my phone to correspond to parking lines 71 to 74. I am using the default parking lot from FreePBX to be 71-74.

I programed four buttons on my Grandstream phone to be "71" to "74", respectively. They were setup to be the type of "Asterisk BLF".

..... modify /etc/asterisk/extensions_additional.conf .....
park-hints
include => park-hints-custom
; exten => 71,1,ParkedCall(71)
exten => 71,hint,park:71@parkedcalls
; exten => 72,1,ParkedCall(72)
exten => 72,hint,park:72@parkedcalls
; exten => 73,1,ParkedCall(73)
exten => 73,hint,park:73@parkedcalls
; exten => 74,1,ParkedCall(74)
exten => 74,hint,park:74@parkedcalls

; end of park-hints

{ Notice that I have remed out the default lines generated by FrePBX }

..... edit/create /etc/asterisk/globals_custom.conf .....
park-hints-custom
exten => 71,1,Answer
exten => 71,n,Set(PARKINGEXTEN="71")
exten => 71,n,Park
exten => 71,n,hangup

exten => 72,1,Answer
exten => 72,n,Set(PARKINGEXTEN="72")
exten => 72,n,Park
exten => 72,n,hangup

exten => 73,1,Answer
exten => 73,n,Set(PARKINGEXTEN="73")
exten => 73,n,Park
exten => 73,n,hangup

exten => 74,1,Answer
exten => 74,n,Set(PARKINGEXTEN="74")
exten => 74,n,Park
exten => 74,n,hangup

...............

Please Note:
1) The example above assumes that you have setup four (4) Number of slots in the Parking Lot. If you have a different number of Parking Slots, you would have to modify my example a little.
2) Due to the way this wiki interprets text. The words "park-hints" and "park-hints-custom" are actually surround by left bracket and right bracket, respectively. The wiki--unfortunately--is automatically modifying my example.

This should give you the ability to use one button per parking lot extension. In order to park, just use the transfer button to transfer the call to that slot. To pick up the parked call, just press the corresponding button.

Hope this helps.

222

333PARKINGEXTEN, to place the call into a specifc parking

by jsturtevant, Friday 14 of March, 2008 [03:18:25 UTC]
I'm not sure when this was introduced but you can set a channel variable, PARKINGEXTEN, to place the call into a specifc parking "slot". This is handy if you want to setup speed dials on phones to park and pickup.

I also didn't know you could set channel variables in SIP.CONF:
100
...
setvar=PARKINGEXTEN=0703

This will always force calls parked by x100 into parking slot 703.


222

333Re: Re: Where does the include go?

by bigdawggi, Thursday 25 of October, 2007 [00:43:07 UTC]
Transfer the call that comes to you, as an attended transfer, to the extension used to park calls (in your case it looks like 151). The "operator" will read back the call's parked location, and then you complete the transfer.

Once that is complete, dial the parked extension (making sure your dialplan is configured properly) and you'll be connected to the parked call.
222

333Re: Re: Where does the include go?

by sonic49, Tuesday 16 of October, 2007 [21:31:22 UTC]
I can get call parking to work for call I make, so if I dial ext 151 I can put it in park, but I cannot park a call if I receive it. So if someone calls me I can't put it in park and go to another phone, how do I set this up.
222

333Re: Re: Where does the include go?

by xsilver, Wednesday 16 of August, 2006 [16:01:00 UTC]
into the context for your station to make parking-places (in default 701-720) reachable by dial 7xx .
in sip.conf I have station vith context=local
in extensions.conf I have context local and in this context I have included this 'parkedcalls' as mentioned.

.. so my station is able to dial, for exmaple, 705 and reach parked call previously parked on that exten.
222

333Re: Re: Where does the include go?

by stormkrow, Friday 02 of June, 2006 [20:19:01 UTC]
I have been experiencing the same issue and haven't found the work around. Hopefully we can get some sort of answer from someone who knows the system better than we do.
222

333confused

by lacigol, Thursday 11 of May, 2006 [00:58:01 UTC]
I can park calls and asterisk says the call is parked at xxx but i can't pick it up from my phone or any other phone. Gives an error as if that extension doesn't exist. Any suggestions?
222

333Re: Where does the include go?

by jon.webster, Thursday 09 of March, 2006 [03:35:49 UTC]
222

333Re: Where does the include go?

by jon.webster, Thursday 09 of March, 2006 [03:35:34 UTC]