Note that this approach doesn't work with sipXbridge because it doesn't allow you to setup multiple trunks to the same provider (unless they have separate pops). External SBC is the key here if you use SIP trunking...
1. You can force outbound caller-id in a gateway to override a user's callerid.
2. You can create 'phantom' gateways. These are just unmanaged gateways to the same IP address.
3. Branches secure gateways inside a dial plan entry (permissions secure an entire dial plan entry... see the difference?).
1. So, in the case of a building with 4 floors, setup 4 branches as Floor1, Floor2, Floor3, Floor4 (notice no spaces in names...).
2. Next, you setup 4 additional gateways to your primary gateway called e911Floor1, e911Floor2, e911Floor3, e911Floor4.
3. On each of those 4 gateways specify them as being in their respective branches. Make sure they are not 'shared'.
4. On each of those 4 gateways make sure that you force an outbound caller-id which is the ELIN (emergency line identification number) that corresponds to that floor.
5. Now, put your users in their respective floor Branches.
6. Add the 4 gateways to the emergency dial plan. I always leave a shared gateway as my last ditch effort. This shared gateway can be another phantom too if you want to force out a different ELIN than your main number.
Now each branch will select it's proper gateway and the proper callerid will go out.
1. Make sure you test... Some providers want to only push out BTN (billing telephone number) for 911 calls.
2. Turn on alarming and make sure a group of people get emergency dialing alarm emails (or snmp traps). This will send out who dialed 911 and when...
3. Make sure all of your ELINs call back to a live person who is in that list of people who get the emergency dialing alarm emails. If the 911 caller hangs up or gets disconnected, the PSAP (public safety answering position) wants to call them back... There's no way to direct to that person and that person may be incapacitated anyway. So even in systems that do allow for e911 return dialing it's not a great idea to actually allow that dial back.
eZuce openUC vs. sipXcom:
In openUC there some fancier e911 features that allow for not having to create all of these phantom gateways by specifying locations for phones and allowing the gateway to pick the right outbound ELIN by location. Additionally, we've been working to Conveyant for a while and finally got over the hump with 14.04 and Conveyant can now (or as soon as their next update comes out) automatically determine a phone's location with SNMP traps and use API calls to openUC to update phone locations.