Multiple Parking Lots, Valet Parking

FreePBX is great.

I wanted to set up multiple parking lots and direct calls into a particular lot, but I could not find how to do this in FreePBX. I knew Asterisk was supposed to support it. I figured it out and will show my work here.

The reason is if you have multiple targets (salespeople, doctors, etc), and a call comes into reception. If you only have one parking lot, the receptionist parks the call and gets a parking spot and announces it. If the target cannot be found before the call reverts, the receptionist may park the call again, but may get a different parking spot. The target now has to be told of the new spot.

I think a better approach is to give each target their own parking lot. Then, when a call comes in, the receptionist parks it in the target’s parking lot and announces that. The target then will always know where their call is parked. If it reverts, the receptionist can send it back to the same lot.
I implemented 64 parking lots but have cut it down for this posting. In the following example, there are 8 parking lots, each holding up to 9 calls. The parking lots are numbered 22, 23, 24, 25, 26, 27, 28 ,29. To park a call, transfer it to the extension 222, or 223, or 224 etc. To retrieve the call, you dial 422, 423, 424 etc.

There are two files in /etc/asterisk you need to have. You can either login as root and edit them, or, I think there is some sort of FreePBX module that allows editing of such custom files.

The file features_general_custom.conf

[parkinglot_22]
context => parkedcalls
parkext => 222
parkpos => 7221-7229
parkext_exclusive=yes
parkingtime=20
comebacktoorigin=no
parkinghints=yes

[parkinglot_23]
context => parkedcalls
parkext => 223
parkpos => 7231-7239
parkext_exclusive=yes
parkingtime=20
comebacktoorigin=no
parkinghints=yes

[parkinglot_24]
context => parkedcalls
parkext => 224
parkpos => 7241-7249
parkext_exclusive=yes
parkingtime=20
comebacktoorigin=no
parkinghints=yes

[parkinglot_25]
context => parkedcalls
parkext => 225
parkpos => 7251-7259
parkext_exclusive=yes
parkingtime=20
comebacktoorigin=no
parkinghints=yes

[parkinglot_26]
context => parkedcalls
parkext => 226
parkpos => 7261-7269
parkext_exclusive=yes
parkingtime=20
comebacktoorigin=no
parkinghints=yes

[parkinglot_27]
context => parkedcalls
parkext => 227
parkpos => 7271-7279
parkext_exclusive=yes
parkingtime=20
comebacktoorigin=no
parkinghints=yes

[parkinglot_28]
context => parkedcalls
parkext => 228
parkpos => 7281-7289
parkext_exclusive=yes
parkingtime=20
comebacktoorigin=no
parkinghints=yes

[parkinglot_29]
context => parkedcalls
parkext => 229
parkpos => 7291-7299
parkext_exclusive=yes
parkingtime=20
comebacktoorigin=no
parkinghints=yes

and the file extensions_custom.conf

[park-return-routing-custom]

exten => _7NNZ,1,Goto(park-return-routing,700,1)

[park-hints-custom]

exten => 4NN,1,Macro(parked-call,parkinglot${EXTEN:1})
exten => _4NN,hint,park:7${EXTEN:1}[email protected]&park:7${EXTEN:1}[email protected]&park:7${EXTEN:1}[email protected]&park:7${EXTEN:1}[email protected]&park:7${EXTEN:1}[email protected]&park:7${EXTEN:1}[email protected]&park:7${EXTEN:1}[email protected]&park:7${EXTEN:1}[email protected]&park:7${EXTEN:1}[email protected]
================================================================
Each target can have up to 9 calls parked, and, will be able to see if there is anyone there with a busy lamp field on the 4nn extension.

There is a module for that.

See Parking Pro, enables automatic Park and Announce features (includes license of Paging Pro) as well as multiple parking lots, Private and Public Parking, see the details here:

Give Derek the credit due here guys, he came up with an open source solution that he shared and saved himself (and anyone who finds his method useful) 150 bucks !! .

Thanks for your efforts Derek at least from me :wink:

1 Like

(it will even work on FreePBX installations where the ‘Pro’ thing won’t)

1 Like

Dicko, no one is trying to take credit for anything here, his solution is fine, just posting an option we have that includes some other functionality, in fact I even cleaned up his code tags so that people could view his code better. Always happy to have people interested in enhancing FreePBX.

This is fully documented in the Asterisk docs. This is not custom code it’s just configuration.

The feature came out in 1.6, didn’t work until 1.8

I was playing with in 6 years ago: http://www.freepbx.org/forum/freepbx/development/park-application

I don’t believe I suggested that at all Preston, I posted in the spirit of the forum being called “tips and tricks”, it seems valid , and is ubiquitous so will work on all FreePBX deployments, but thanks for the sales pitch here anyway ;-).

1 Like

First, it’s Preston’s job to promote the commercial stuff.

It’s is fun to tinker and to enhance funtionality. If you company has the staff and process in place to support custom Open Source applications that is fantastic.

The majority of end users and integrators do not have this capability. After years of rolling our own distro my company standardized on the FreePBX offering and the commercial modules. It was a great choice.

I’m locking this thread before it get’s out of control. We’ve all had our say and there’s nothing more relevant to add to the conversation. The dialplan code is there and it works as is.

Also note that the “$150” pays the developers who keep this project going. Without that support this project would be dead and you can think all you want that “oh no it wouldn’t” but it would.