QUESTION Any way to transfer directly to parking lot positions?

nicknomo

Happy-IT-Guy
Joined
Mar 5, 2009
Messages
63
Reaction score
12
I'm not a huge fan of the way that asterisk handles parking. For whatever reason, asterisk forces you to use the main parking lot extension, and disallows you from directly transferring to the parking lot spaces.

For me, this seriously limits flexibility. We deal with a situation where an operator fields a lot of calls, and we have people moving around on a showroom floor a lot. Its noisy and very busy, so waiting for the system to speak the parking position is both slow and is often misinterpreted due to the noise.

I was able to actually able to get around this in earlier versions of asterisk, but now that I'm on asterisk 11 I can't seem to find a way.

Optimally, I'd like to be able to just transfer to any parking extension I'd like, and avoid having the system assign me the slot unless I ask it to. Does anyone know of a way to do this?

Thanks in advance for any feedback...
 

rossiv

Guru
Joined
Oct 26, 2008
Messages
2,624
Reaction score
139
This has been brought up before with mixed results. Some have opted to create multiple parking lots with one spot each, others have done some dialplan hacking. I don't think any of them worked 100% but I've been wrong before.
 

Porch

Guru
Joined
Jul 5, 2013
Messages
135
Reaction score
15
The Aastra 57i series display the parking lot number on the screen. Not sure if any other phones do the same.
 

nicknomo

Happy-IT-Guy
Joined
Mar 5, 2009
Messages
63
Reaction score
12
I have a T46G. At this point I'll take anything I can get, so if I could find a way to get it displayed on screen that would also make me very happy.
 

nicknomo

Happy-IT-Guy
Joined
Mar 5, 2009
Messages
63
Reaction score
12
I actually have that script implemented. Its very very useful, but its more for the people picking up the parked calls rather than the one parking the calls. The receptionist usually doesn't know (or care) who is calling, only who they want to speak to. Once its parked, the receptionist probably won't remember who it was she parked. These are entry level positions, so it really needs to be a no thinking operation.

Listening to the park position being spoken back to you can both be too slow and too error prone in certain environments. It would be just as bad if they tried to remember who they just parked based on CID when going into the park list script...

If I can't have the operator choose the position, some sort of blind transfer option where you immediately read the parked position would be the next best thing.
 

nicknomo

Happy-IT-Guy
Joined
Mar 5, 2009
Messages
63
Reaction score
12
I'm open to supplying $100 bounty to anyone who completes a script for the T46G that meets the following criteria:

1) Requires a single key press to park the *active* call (call waiting may be enabled).
2) Displays the parking extension on screen, and waits for the user to hit OK (or disappears after an appropriate time).
3) Returns back to the main screen when complete.

Looking at the XMLbrowser programming guide, it looks like PhoneExecuteObject can execute a transfer (to the parking lot). We already have the parklist script for looking up the calls in park with CID and park position... the only thing I don't see anything in the documentation is on how to read the information of the active call. If you could pull the CID from the active call, you can match it with the items in park, and display the extension. I'm not sure if that is possible though...
 

tm1000

Schmoozecom INC/FreePBX
Joined
Dec 1, 2009
Messages
1,360
Reaction score
78

nicknomo

Happy-IT-Guy
Joined
Mar 5, 2009
Messages
63
Reaction score
12
Hi, thanks for the reply.

I don't currently have the commercial endpoint manager... so I c an't really test it out.

I took a look at the documentation, and I couldn't really see what specific features would solve my problem. Since I can't test it out, and the documentation doesn't seem to specifically cite my problem, could you elaborate what your parking lot app would be able to do for me?
 

MGD4me

Guru
Joined
Feb 3, 2009
Messages
505
Reaction score
109
My question would be, "What does the receptionist do after she parks the call?". If she then makes an announcement over the paging system, then this *may be your solution:

Instead of using the 'Park' feature, set up a number of Conference numbers. Each person expected to take calls could have their own personal Conference room number. Once an incoming call is answered by the receptionist, she would then do an Unattended Transfer to the appropriate Conference room, and then page the appropriate party. She wouldn't need to announce the Conference number, as each person could just remember their assigned 'room' number.

The receptionist would need to be able to have a visual display (BLF) on her phone/console so that she would not accidentally "double park" a second call into an already occupied Conference. Otherwise, although I haven't thought this through, you may be able to set up a queue to hold the second caller from barging in.
 

nicknomo

Happy-IT-Guy
Joined
Mar 5, 2009
Messages
63
Reaction score
12
Thanks, that is a creative solution to the problem... the receptionist would in fact page the necessary user.

The question I have is would there be a way to kick back the call if it sits unanswered? We do get quite a few calls on park that return to the person who parked them.
 

nicknomo

Happy-IT-Guy
Joined
Mar 5, 2009
Messages
63
Reaction score
12
I actually think I've gotten this to work, with the only exception that someone can park two calls into the same parking position. I found it off of a FreePBX message board post, although for whatever reason the items in the brackets needed to be renamed..

First, I turned off parking in FreePBX

In features_general_custom.conf I added the following to the end of the file:
Code:
parkext=700
parkpos=701-705
context=parkedcalls1

In extensions_custom.conf, I added the following under the [from-internal-custom]
Code:
include => park-hints1

Then at the bottom of extensions_custom.conf, I added the following:
Code:
[park-hints1]
exten => 701,hint,park:701@parkedcalls1
exten => 702,hint,park:702@parkedcalls1
exten => 703,hint,park:703@parkedcalls1
exten => 704,hint,park:704@parkedcalls1
exten => 705,hint,park:705@parkedcalls1
exten => _70[12345],1,Set(PARKINGEXTEN=${EXTEN})
exten => _70[12345],n,NoOp(Park in parkinglot ${PARKINGEXTEN})
exten => _70[12345],n,GotoIf($[ ${DEVICE_STATE(park:${EXTEN}@parkedcalls1)} = NOT_INUSE ] ?PARK,1)
exten => PARK,1,Park(60000,,,,s)
exten => _**70[12345],n,ParkedCall(${EXTEN})

It seems to work well, with the exception that if you transfer a call to an occupied parking spot, then both calls end up conferenced inaccessible. My guess is that the following line does not work.

Code:
exten => _70[12345],n,GotoIf($[ ${DEVICE_STATE(park:${EXTEN}@parkedcalls1)} = NOT_INUSE ] ?PARK,1)

Not sure how to fix it yet, but its progress
 

nicknomo

Happy-IT-Guy
Joined
Mar 5, 2009
Messages
63
Reaction score
12
Ok, this correctly detects if the parking lot is in use (I used !=BUSY instead of = NOT_INUSE)

Code:
exten => _70[12345],n,GotoIf($[ ${DEVICE_STATE(park:${EXTEN}@parkedcalls1)} != BUSY ] ?PARK,1)

However, the new problem is that the call is not gracefully returned, and is instead just dropped. It looks like the statement is executing only if not busy. It can probably be flipped around to transfer the call back by doing something like
Code:
exten => _70[12345],n,GotoIf($[ ${DEVICE_STATE(park:${EXTEN}@parkedcalls1)} = BUSY ] .... something something

Of course, I'm not quite sure how to do that... my manual asterisk is sort of crappy.

I'm going to give my brain a rest for a little while. If anyone thinks of any ideas, I'd appreciate it. Thanks.
 

nicknomo

Happy-IT-Guy
Joined
Mar 5, 2009
Messages
63
Reaction score
12
I'm still stumped.

Code:
[park-hints1]
exten => 701,hint,park:701@parkedcalls1
exten => 702,hint,park:702@parkedcalls1
exten => 703,hint,park:703@parkedcalls1
exten => 704,hint,park:704@parkedcalls1
exten => 705,hint,park:705@parkedcalls1
exten => _70[12345],1,Set(PARKINGEXTEN=${EXTEN})
exten => _70[12345],n,NoOP(Park in parkinglot ${PARKINGEXTEN})
exten => _70[12345],n,GotoIf($[ ${DEVICE_STATE(park:${EXTEN}@parkedcalls1)} != BUSY ] ?PARK,1:CALLBACK,1)
exten => CALLBACK,1,dial(local/200)
exten => PARK,1,Park(60000,,,,s)
exten => _**70[12345],n,ParkedCall(${EXTEN:2})

This code's syntax appears to be correct. If the park position isn't busy, it gets parked. If I change it from !=BUSY to =BUSY, it jumps to CALLBACK and dials the operator. So, the dial plan creates the proper path, and its correctly understanding when the position is occupied... but in a real life scenario it drops the call if I accidentally put a second call in an occupied park space.

I'm not entirely sure why... Anyone have any insight?

edit: changed it to use ** to pick up a parking lot extension
 

nicknomo

Happy-IT-Guy
Joined
Mar 5, 2009
Messages
63
Reaction score
12
Finally got it... Yay me!

The key to this was to use some of the behind the scenes FreePBX magic that seemed to be needed to get the hints working properly. For some reason the context of "parkedcalls" worked, but others did not. I also included park-hints-custom, but I'm not really sure if this had any effect. It works, so I just left it in.

I also had to add a lot of extra logic to make sure you could internally dial to pickup calls, while still transferring calls to park. I've also handled the case of a failed transfer, where the park position is taken. I hope will make a new clean post in the forum with the code, and I'll post the link back here. I'm sure some people will find this useful.

edit for search reference:
http://pbxinaflash.com/community/in...parking-to-parking-slots-valet-parking.14606/
 

Members online

No members online now.

Forum statistics

Threads
25,782
Messages
167,509
Members
19,202
Latest member
pbxnewguy
Get 3CX - Absolutely Free!

Link up your team and customers Phone System Live Chat Video Conferencing

Hosted or Self-managed. Up to 10 users free forever. No credit card. Try risk free.

3CX
A 3CX Account with that email already exists. You will be redirected to the Customer Portal to sign in or reset your password if you've forgotten it.
Top