PJSIP extensions with address location
Here is how we solved this issue, using Yealink phones.
-
Create an e911 DID, per location, that is properly registered with the correct physical address of each unique location.
-
Create a unique EPM template per physical location. Each template has a dial string change in the basefile with its “designator”. Meaning this: Location 1 is 10, location 2 is 20, etc. We then make the following basefile edits:
dialplan.replace.replace.1 = 10911 dialplan.replace.prefix.1 = 911 dialplan.replace.replace.2 = 10933 dialplan.replace.prefix.2 = 933 dialnow.item.1 = 911 dialnow.item.2 = 933
This tells the phone, if a user dials 911 (or 933 for test) change what is sent to the PBX to be 10911 for the location 1 template (location 2 would be 20911, location 3 would be 30911, etc)
-
Create an outbound route for only 911 and 933 dialed calls, per location. So, emergency outbound route for location 1 looks for 10911 or 10933 only, in the accepted dial patterns. That route is NOT marked Emergency in the route settings, this allows us to specify the outbound caller ID for the whole route. We then specify the “Route CID” to be the e911 specified DID as the outbound caller ID number (using the DID we setup in step 1 with the correct physical address, for that location, in e911). We replicate this for all other locations, looking for 20911 in the next route, etc.
-
We specify the dialnow variable for 911 and 933 that ensure a user dialing just 911 or 933 allows the call to immediately process without the need to have the user pressing dial, #, etc.
It takes a small bit of planning and detail, but it does provide for multiple correct e911 data being transmitted for the same extension that has physical devices located across multiple physical offices.