E911 setup with multiple buildings

FreePBX version 12.7.6-1904-1.sng7. Six ELIN numbers assigned by building address at the carrier.
Attempting to assign extensions to the proper ELIN for each building. I can manually assign the emergency caller ID in the advanced tab of the extension. (Tedious at best).
I have each group of phones defined in Endpoint Manager by Building. I need to put the ELIN on each group and have it automatically populate the Emergency Caller ID.
I cannot find a way to do this.

This is what Outbound Routes are for. You’ll need to make a route for each building that uses their ELIN as the Route CID, force it over the extensions.

You’ll need to use the callerid field to filter down which extensions can use which routes. Or if you have Class of Service or Extension Routing modules installed/licensed you can use those to assign which extensions can use which routes. I’d go with getting Extensions Routing since it is free for the first year.

I ended up just entering the ELIN assigned to each building in the Emergency Caller ID of each extension. It took about an hour for ~ 100 extensions. Looks like this could be a feature request for the Endpoint Manager module.

Well Bulk Handler would have been the better way to update 100 extensions. This also wouldnt be an Endpoint Manager feature. It has notbing to do with phones.

Thanks for that, I figured that out after I finished doing it manually. I attempted to use the Bulk Handler to check/fix the extension setting - Advanced Tab - Default Group Inclusion - choice is Exclude or Include.
This setting does not show in the Bulk Handler Export. I have several extensions that somehow had this set to Exclude and outside callers could not direct dial the extension from our main IVR.
So I am off to manually edit the same 100 extensions again.

For mass edits of things that simply affect the Asterisk dialplan on a reload, I like to edit the MySQL database directly.
The Emergency CID is found in the devices table.

For something like the default directory, I would probably test to see if it worked from a SQL change, but that one is likely to affect other things when the submit is clicked.


Is there a map of what is where in the MySQL database?
It would be nice to be able to dump to Excel for quick analysis etc.

I am sure that Sangoma has one. But I just poke around until I find what I want. Experience helping me narrow things down most of the time.

Adminer is an awesome tool for this. Just don’t leave it on a public PBX instance. It is a single PHP file you can drop onto your FreePBX instance and have a lightweight web GUI to use to deal with things.

You can sometimes manipulate sql directly, but you need to be careful when doing so. Particularly for values that are also in the AstDB:

[[email protected] ~]# asterisk -x "database show" | grep emergency_cid
/DEVICE/5017/emergency_cid                        : "emergency" <1234567890>

yes, I should qualify that… I just use MySQL to mass update things that I would have to do in the GUI repetatively, then i issue a fwconsole reload


I still think that the Outbound Routes method was probably the better way to do this along with the 1 Year Free of Extensions Routing ($39 after that year). It would be 6 Outbound Routes for the E911 CallerID path and not require updating 100 users plus any more that will be added in the future.

So all this mass updating and how to do it is just extra work that costs more than a $39 module. At this point a FREE module.

Oh I agree there. I always make a route for each location and use the caller id field to restrict who hits it.

No need for the Extension Routing module.

Edit: Like this. Obviously depending on the extension design this can get complicated.


We want most of our extensions to show our main number as the caller ID. About 15 of them (different division) will show a second main number. So how would the outbound route method make this work?

Just like I posted above… Here is more of the routing.
Arrows are main numbers and rectangle is the 911 forced numbers

Either method works. I was going to suggest using the CallerID field but with Extensions Routing, the routes can also be controlled at the Extensions level in the Other tab. It adds route options in that tab. So if you need to create an extension and then give it access to three routes, you can go in the Other tab and drag and drop them vs having to update the three routes with the callerid.

Like I said both methods work and have merit. Just depends on how much you have to do and how you want to manage it.

1 Like

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