Blocking external calls on groups of extensions

I have around 500 extensions and 200 of these are for internal calls only. The only way i know of stopping external calls is to configure the outbound route for each extension.

As you can imagine it would be a real pain manually configuring 200 outbound routes, is there an easier way to do?

It would be great if i could configure a group to block outgoing calls.

You can drop them as necessary in the [macro-dialout-trunk-predial-hook] context you create in extensions_custom.conf (look at the cautions in extensions.conf first)

You could try changing their context to one that doesn’t connect to the all-routes context. This could be a custom-context, or you could do something hackish like “from-pstn” which would definitely keep them from dialing out.

Commercial Module COS does exactly this. You can group a bunch of a extensions and restrict which routes they have access to.

Would that not still require the OP to similarly change 200 of his 500 extensions? If so is not that still not “easier” for him. (gotta love the double negative here though :wink: )

Why would it require to change the extensions? You can select a bunch of extensions in COS at a time.

Take a look at this video

Sorry , don’t have any systems with any commercial module availability , so that doesn’t work for me or many others, maybe the OP does, my post was for Generic FreePBX, appropriate to this Forum category.

I’ll look into the commercial module as i’ve just realised i wouldn’t want to block all external calls as i would want to emergency calls to be allowed.

COS module surely works.
Another option is to use the /CallerID field in your outbound route under Dial Patterns.
There you can allow only specific extensions to use that route, sparing you from having to build many of them.


would that mean a single extension per line?

This is starting to get more complicated.

We have a single FreePBX for our primary (k12) schools. In each school i’ve earmarked 50 extensions, some of those extensions are in offices, some in classrooms.

I need to stop classrooms from calling external numbers (this one is easy to do)
I need to stop classrooms (school a) from calling classrooms from another school (school b), but school the must be able to call all extensions in it’s own school.

I now have the commercial module from above.
Any advice?

You have the class of service commercial module? If you do this is very easy. you would create one CoS, then move all of the extensions into this, then select the route that they are allowed to use.

If you are on a system that supports commercial modules, this one really makes it quite easy.

I get how i can use the class of service, but i’m struggling on how to configure the routes.

You might be able to do this by just creating a CoS group, adding the restricted extensions, then not allowing an outbound route.

If that doesn’t work try:

  1. Make an outbound route for the extensions you want restrictions on. Don’t add trunks.

  2. Make a dial pattern that matched the numbers you want the restricted extensions to be able to call. If you want the restricted extensions to only be able to call 100-199, make a dial pattern of 1XX.

  3. After you save the outbound route, go to CoS and make a group for the restricted extensions.

  4. Add the restricted extensions to the CoS group and only allow your new route.

i don’t think the first option would work as they would need an outbound route for internal calls? Or outbount routes just for external calls?

I’ll investigate the second option.

They only need an outbound route to get out of the PBX, If all the stations are one PBX, no outbound route should be needed, I believe.

So am i correct in saying i can’t block an extension from calling another extension?

hmmm, i’ve been looking at this.

You cannot block internal extension to extension without a little extra work.

Have a look at these:

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.