I need to choose a specific destination (an extension, a queue, etc) based on a PIN request to the caller (i.e. “for personal assistant dial your own pin”)
How can I achieve this ?
I tried multiple IVR entries , it works with some minor limitations,
Is there a more specific application ??
That sounds like a custom context. There are lots of examples of “pin based” services out there. Set your IVR up so that “#” (or 9 maybe) goes to the “Assistants Selector” and set up the context so that the pins you want to hit are “extensions” in the context. These then point to actual specific extensions. Sounds pretty straight-forward to me. With a little creativity, you could even use database entries and add a simple database update page that associates PINs with extensions.
I’d design it using custom-contexts and make it a miscellaneous destination (so you can hit from an IVR choice).
“Creativity” probably is a great word for a wooden like me…
Anyway , the goal is to collect a quite great number of customer personal PINs (50, 100, ?) ad forward call to a pair of different extensions or to a third one if PIN isn’t recognized, that’s all
I’ll try to setup something like with custom context…
Pinset module method would be interesting, but it is used in conjunction with outbound routes only
Is there perhaps a way to match incoming calls dial against pinset list with some tricky custom cli modification ??
Matching inbound caller ID is a “typical” method of handling something like this. The problem is that the method isn’t scalable - it’s one for one (every inbound Caller ID requires its own inbound route).
We were talking about something like that a couple of weeks ago and I think the “easy” solution ended up being a commercial module.
For another solution and if you allow direct dialing from an IVR, you can set up “extensions” that correspond to your PINs. The specifics are variable, but the theory looks like this: let’s say you have 4-digit extensions in the “5xxx” range. Set up the PINs so that they are 4-digit numbers and start with (say) “8”. Your IVR can now use 1, 2, 3, and 4 for other choices.
Set up direct extensions as “8001”, “8002” and call these your PINs. Each direct extension is set up to a ring group of two numbers and a FMFM to a third number.
You can replace the IVR with an announcement on a line dedicated to this. Once again, allow direct dialing from the announcement (you might have to do this in an IVR with no options) and say “Please dial your PIN to speak to your personal representative.” If they fall through or dial an invalid extension, they go to the catch-all number.
A third option would be to look at the context for retrieving voicemail. It has code that accepts a number and a PIN (you’d only need the pin) and then dial a number based on DBGET commands from the Asterisk real-time database. This would actually be really simple - the trick here is that it has to be it’s own context, so you have to get into that context somehow (an option on an IVR or a number dedicated to this function).