PIN set passthrough to other destinations?

Hi guys,

I have a usage scenario here where I want call routing to pause, ask for a PIN, and continue to a defined destination, is there any way to achieve this with existing or 3rd party modules?

Essentially, I’d like to slot in an extra step into existing routing, for example:
An option on our IVR currently connects customers to a time condition which checks if it’s inside office hours:
If it is, it calls a ring group in the office
If it’s not, it goes to a queue which calls the mobile phones of the on-call engineers, if none of those answer in 60 seconds, it goes to a support voicemail box.

What i’d like to do now is add an extra step, so that if it’s out of hours, the caller is prompted for a PIN from a PIN set.
If they enter it sucessfully, they make it through to the on-call queue as before.
If they don’t, they’re played a message, then put through to the support voicemail.

Has anyone got any ideas? I’m sure this would be useful in other places as well (a PIN-based privacy module, PIN-based access to IVR options, etc)


No ideas on this one, anybody?

Would it be easy enough to write my own module for this?
I’m jsut reluctant to start, as i’ve not looked at the freepbx code before.

I need the same as you and got it kind of working.

-> I created a PIN set.
-> I created an outbound route using that PIN (this is just to see one line in extensions_additional.conf).
-> I created a Queue (in my case, queue 400).

After that, I open extensions_additional.conf and look for the context of the outbound route (search for outrt-) to find a line ending like “Macro(pinsets,1,1)”

I look for the queue (search for ext-queues) and y insert the line before just before the answer “exten=> 400,n,Macro(pinsets,1,1)” (400 has to be the same number as the queue).

It would look something like:

exten => 400,1,Macro(user-callerid,)
exten => 400,n,Macro(pinsets,1,1)
exten => 400,n,Answer

It works fine but there is one little problem: Whe I click the button “Apply configuration” on any change of the webpage it rewrites the whole archive and I have to make the change again.

Any seccond idea or improvement of this one?

you could always sent he call to a new IVR that has a set of options that are the ‘pins’ and if the choose those options, they are let through. If after a number of attempts they fail, they are sent to the desired voicemail. You can achieve the latter with the ‘t’ and ‘i’ options and you can control the number of iterations before it goes there, as well as using a new message if they hit an invalid or timeout letting them know.