Prevent User from making outbound calls

I am running FreePBX 12.0.76.2 and would like to prevent some extensions from making outbound calls.

I tried PIN Sets on the outbound route and to set Pinless Dialing for these extensions to disable. The extensions which are allowed to make outbound calls are set to Pinless Dialing = enabled. This does prevent the disallowed extensions from making outbound calls.

So far, so good, but if a user with an extension allowed to make outbound calls forwards his calls to say mobile or an external number receives a call from an inbound trunk (I have DID’s for each user, which come in via trunks) the system also asks for a PIN. The caller obviously does not know it and simply hangs up.

It’s not an issue if I call from within the system, e.g. extn. 100 to 200 (forwarded to mobile) and both extensions have Pinless Dailing enabled. In this case the outbound route will not ask for the PIN and the call proceeds as normal.

Is there a way to prevent some extensions from making outbound calls, without effecting the call forwarding for allowed extensions?

You want Extension Routes. It’s a Commercial (but $0) module, or, for more configuration ability, Class of Service (which isn’t free).

How are you doing the forward? From the phone or through the Feature code?