Requiring PIN input for trunk calls?

In setting up a PBX for a school I need to configure the classroom extensions such that external calls require the input of a PIN (so only authorized personnel can make outside calls).

Can someone point me to some documentation on how to do that?



You can set PIN’s in the outbound routes section of FreePBX. If you need phones that use the PIN’s and some that don’t, you could create a simple custom context in extensions_custom.conf to handle that such as:

exten => _XXXXX.,1,goto(outbound-allroutes,4445${EXTEN},1)
exten => _XXXXX.,n,hangup()
include => from-internal

Now create an outbound route with a pin set on it and make the match pattern in the Dial Pattern:


Now, anyone that pick up that phone can dial up to 5 digits and it will be processed by the normal dial plan. Any number with more than 5 digits, will be processed by the special route with the pin set. You will probably want to modify this a little to match your specific requirements, but this will get you started.

Theory of operation: the special context prepends “4445” to all numbers dialed that match the pattern. This is used to steer the call to the proper outbound route, where the steering digits are stripped back off and the call is processed as it was originally dialed.

actually, there is an un-exposed option to allow specific phones to bypass the need of using a pin code. I can’t recall if this will bypass pinsets as well or just the single static pincode. I don’t recall the astdb setting that is needed for this but maybe John can look it up in his class notes and let you know. (sorry John, just too early for me:-)

Sorry to get back to this with such a delay …

How do I get a specific extension to go to that custom context [from-classroom]? Is there a way to do this from the GUI?

(I am perfectly happy to edit config files with vi, but I need to set this up and document it for non-UNIX geeks :slight_smile: