Emergency Services Notifications and Handling for Microsoft Teams Direct Routing

So after a recent thread over on Twitter discussing the legalities of the E911 laws in the states (I’m an Australian) as well as the fact that Enterprise Voice is now easy enough to deploy that its getting deployed by Office365 administrators without traditional telephony experience. I figured I’d take a few minutes to publish a bit of information regarding what is available to you as a Teams administrator for Emergency Services and things you should and shouldn’t do when it comes to testing them.

Note: Some of this information is specific to Australian emergency services but the concepts should be global.

My understanding is that this is greatly simplified if you are using Microsoft Calling in the states as Microsoft run their own service to handle 911 calls and route it to a PSAP (local 911 call centre) appropriately. Unless your using a mobile phone, That fails back to the mobile carriage network (as documented by Anthony Caragol here)

Update: Muttley Madsen wrote an article on this for the upcoming 911 changes in the states for 2020. Check it out https://ucworkerbee.com/2019/08/04/fcc-911-rules-and-consequences/

Emergency Services and VoIP in general

It’s important that you set the expectations early. There are so many moving components that must work for calling to wok that it cant be relied on in the event of an emergency.

I remember back in the early 2000’s when I was doing Asterisk based VoIP for an Australian rural carrier. We used to have to put labels on the ATA’s and Phones we sold stating that the devices might not be able to call emergency servicesin some cirucumstances.

Microsoft even provides designs for similar labels for Direct Routing / PSTN Calling users. There is also a disclaimer it might not be perfect here.

Just like any other technology, the best solution is redundancy. Have mobile phones available, or in the case of remote sites dedicated separate PSTN line provided by the carrier. The last thing you need is a UPS explosion taking out the gateway and stopping the poor intern that caused it calling for help.

About Australian Emergency Services

Australia runs things a little differently than the US when it comes to emergency services.
Firstly, we don’t have local Public Safety Answering Points (PSAPs) scattered all throughout the country. We have 3 call centres across the country and another 3 exclusively for Victoria that route calls to appropriate emergency services.

Unlike using E911 gateways and data for user location information our emergency services are based entirely on the presented Caller ID and the Integrated Public Number Database (IPND) which is updated by your telephony carrier. Thus its important to make sure that wherever possible to present the right caller ID for the users location. Even if you wish to hide the caller ID you should set it correctly then set the Caller ID Presentation flag to Restricted so when you reach a 000 operator they are presented with the right information.

You should also as part of your UAT test calling to 000. Ensure that they are receiving your correct caller ID and that the number is listed as nomadic. A nomadic flagged number will force the 000 operator to verify your location before transferring your call to the appropriate emergency service.

To test calls to 000 you should call them from the number in question and after the call is answered state “This is James from IComm with an emergency services test call. Please confirm the displayed caller id is 0x xxxx xxxx”

The operator will then confirm or deny the caller ID is correct. (They will not tell you the caller ID. You must supply it, if its incorrect check your gateway config / speak with your carrier)

Once that has been done you can ask the operator “And the number is listed as nomadic?” at which point they will confirm or deny it again.

If the number is not nomadic you must ask the customer to contact the carrier to have it amended. Emergency 000 cannot do this for you. Do not delay the 000 operators any further!

More information on test calls to 000 can be found here.

It’s important to understand that the ACMA take access to Triple Zero very seriously! Back in 2014 they fined a voip carrier $400,000 for failing to connect over 190 Emergency Services calls as their services were barred (deactivated for non-payment)

Finally, whilst I’m talking about special numbers in Australia and the ACMA there is a lovely document showing our equivalent of “555” numbers for documentation etc.

So What Can I do in Teams?

At this point, Teams E911 and Emergency Services support is limited. I can see little snippets in documentation that suggests 911 support is coming but we have no idea what that means.
The good news is if you are using Microsoft Calling in your Office 365 tenant, I understand Microsoft run their own emergency operator service to connect you to an appropriate PSAP in your area to dispatch services.
There is also a ton of information on Microsoft Calling here. But if you’re using Direct Routing, its on you to ensure your call gets to the right place with the right caller ID.

So what else can you do in the meantime?

  • Firstly you can vote for better E911 support in Teams over here
  • Configure Emergency call detection and notification on your gateway (see below)
  • Make sure your numbers are listed as Nomadic with your carrier (you should already be doing this on Skype)
  • Make sure you use send the correct caller ID and use the most appropriate trunk that is closest to the user.
  • Keep your dial plans and voice policies up to date, implement a HR policy to update them whenever a user moves location.
  • Remind users as part of their user adoption training / on devices that Emergency Services might not know where they are (labels here)

Enable Emergency Call Detection and Notification on Your SBC

If you’re running Teams Direct Routing with a Sonus/Ribbon gateway/SBC, you can setup a call route to mark any calls to 000/911 as an emergency call.
This causes the SBC to throw an SNMP trap and log a message whenever an emergency call is made. You can then capture this in your monitoring system and have your security team action this.

Create a new Transformation Table called Match to Emergency

Edit the new Transformation Table and add a new Transformation Table Entry to match your emergency Services Number and do any translation you need and set the match type to Mandatory so we don’t trigger this on other calls.

Don’t forget to add any caller ID translation you need.

Now you have a valid translation table, head over to your routing table from Teams and add a new route using the new transformation table.
As part of the new route set the priority to Emergency

Don’t forget to re-order this new rule to hit before anything else.

And test the outbound call (Dont forget to actually make sure the call connects and you explain its a test call)

Once you complete the test call, you should see a new alarm in your SBC’s monitoring view

The source field for the alarm will show the Inbound caller ID, Extension and the IP Address (in this case the Teams SBC) of the user that attempted the call.

You can get more information about the call by heading to Settings > Emergency Services > Call Status Table. Calls will stay in this list for 24 hours by default.

Other things you can do is setup SNMP monitoring for that emergency call event, if you head over to Settings > SNMP/Alarms > Alarms/Events Config and search for emergency, you can see the 3 events that will be logged in the event someone calls emergency services.

Once that is done we simply have to setup some form of SNMP alerting which is outside the scope of this document. But if you look at the OID OID. (iso.org.dod.internet.private.enterprises.enterprises-177.ux.uxObjects.uxActAlarmTable) you will see you can read the Alarm table there. See the screenshot below for an example Emergency Call alarm in iReasoning MIB Browser.

For more information I’ll point you over to the Sonus SNMP documentation https://support.sonus.net/display/UXDOC80/Configuring+SBC+Edge+for+SNMP+Management

Anything else I can do?

You can also configure the SBC to disconnect other calls if the outbound channel is full under Settings > Emergency Configuration > Configuration > Preempt Non-Emergency Calls.

Setting Preempt Non-Emergency Calls to Enabled, will allow the SBC to preempt (steal) the voice channel of another call if the destination trunk group is fully utilized

Final Thoughts

E911 support in Teams doesnt quite match Skype for Business today, but with the above tips and a little thinking you can ensure your users get the help they need when they need it and ensure your team knows about it too.

Something that would be really cool is to capture this via SNMP / REST API and them post to a teams channel.
This would give you some of the old functionality of E911 support in Skype4B, but I haven’t looked into that yet.

Till next time

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.