Update 9/28/2016 – Including information for Lync Phone Edition Cumulative Update that adds support for multiple E-911 number functionality. Fixes for client support table.
Update 7/15/2016 – Including information for official release via CU3 for Skype for Business Server, including information for official release via July 5, 2016 CU for Office 2016 Skype for Business client.
E-911 is a passion of mine, largely due to some past experiences in my life that have proven the importance of proper E-911 setup within unified communications environments. Despite having done the configuration multiple times within many Lync Server deployments, there has always been a critical limitation within Lync Server in regards to E-911. Most US-based deployments never really encountered this issue because we here in the US have a single emergency number to call for all emergency types, but when you step into a country like Switzerland, a breakdown occurs because Switzerland offers multiple emergency numbers for different types of emergencies. Lync Server 2010/2013 couldn’t support the multiple number configuration of these countries within the context of the platform’s E-911 logic and resulted in an incomplete solution (and potentially dangerous workarounds). This problem remained throughout the Lync Server 2013 lifecycle and even through RTM of Skype for Business Server 2015 until July of 2016. Microsoft officially added multiple emergency number support within Skype for Business, thus alleviating the issues that plagued the platform prior to now. This is a BIG step forward in making the platform more flexible but isn’t without limitations. It’s a more holistic turn-key solution, but is still incomplete and has some pieces left to fill.
Understanding the Problem
Within Lync Server 2010/2013, there simply did not exist a way to support the dialing of multiple emergency numbers for countries that support it. For example, in Switzerland you could dial 117 for Police, 144 for Ambulance, and 118 for Fire, in addition to 112 for the EU-centric global emergency number. In Lync Server 2010/2013 you absolutely could account for users dialing those numbers within a location policy, but the mapping was a 1:M assocation:
An E9-1-1 dial mask is effectively a normalization rule, defining all the different digits that are recognized to indicate an emergency call. An E9-1-1 dial number is the singular number that all dial masks map to and is the number that actually gets dialed by the Skype for Business client.
As you can see, there is a 1:M mapping which effectively means that while you can have multiple numbers defined in the mask, they all get translated into a single emergency number of 112. What this also means is that you cannot support calling the other emergency numbers specified within the dial mask due to the lack of multiple number support calling within the Location Policy logic.
Note: Some readers would correctly point out that you could actually build normalization rules into dial plans to allow users to dial each of those numbers, and you would be correct. That being said, defining those numbers within a dial plan allows external users and mobile users to make calls to those numbers. The whole purpose of E9-1-1 is to precisely map the caller’s location to a known civic address location via LIS. LIS functionality isn’t natively available for mobility clients nor external users. I am a strong opponent of allowing normalization rules in dial plans for emergency calls and do not advise this approach.
So what’s New?
The new addition is that Microsoft has added the ability to have the location policy recognize unique and independent combinations of emergency dialing masks and emergency dial numbers, effectively giving an M:N option for emergency numbers..
https://technet.microsoft.com/en-us/library/mt723406.aspx
When planning for multiple emergency numbers, keep the following in mind: •You can define up to five emergency numbers for a given location. •For each emergency number, you can specify an emergency dial mask, which is unique to a given location policy. A dial mask is a number that you want to translate into the value of the emergency dial number value when it is dialed. For example, assume you enter a value of 212 in this field and the emergency dial number field has a value of 911. When a user dials 212, the call will be made to 911. This allows for alternate emergency numbers to be dialed and still have the call reach emergency services (for example, if someone from a country or region with a different emergency number attempts to dial that country or region’s number rather than the number for the country or region they are currently in). You can define multiple emergency dial masks by separating the values with semicolons. For example, 212;414. The string limit for a dial mask is 100 characters. Each character must be a digit 0 through 9. •Each location policy has a single public switched telephone network (PSTN) usage that is used to determine which voice route is used to route emergency calls from clients using this policy. The usage can have a unique route per emergency number. •If a location policy has both the EmergencyNumbers and DialString parameters defined, and the client supports multiple emergency numbers, then the emergency number takes precedence. If the client does not support emergency numbers, then the emergency dial string is used. •For information about which Skype for Business and Lync clients support receiving multiple emergency numbers, dial masks, and public switched telephone network (PSTN) usages, see Supported clients.
To configure this new feature, you must abandon the GUI and revert to PowerShell by utilizing the new New-CsEmergencyNumber cmdlet. This cmdlet allows you to create the individual mask->number mappings, within the limitations above, of course.
Step 1 – Research your Emergency Number Needs
The first task you should take is simply to define your number mappings. Ask yourself these questions:
- Given the locale of the office location, how many different number types do I need to support?
- Given the locale of the office location, do I need to account for other regions’ emergency numbers being dialed by visiting personnel?
Step 2 – Plan your Emergency Number Mappings
Once you have identified the needs above, you can create a table that outlines the configuration you will put into place:
Location Policy Name | Emergency Dial String | Emergency Dial Mask | PSTN Usage |
CH-BE-Bern-Hochschulstrasse-FL1 | 117 | 117 | CH-BE-Bern-Hochschulstrasse-Emergency |
CH-BE-Bern-Hochschulstrasse-FL1 | 144 | 144 | CH-BE-Bern-Hochschulstrasse-Emergency |
CH-BE-Bern-Hochschulstrasse-FL1 | 118 | 118 | CH-BE-Bern-Hochschulstrasse-Emergency |
CH-BE-Bern-Hochschulstrasse-FL1 | 112 | 112;999;911 | CH-BE-Bern-Hochschulstrasse-Emergency |
You’ll notice in my table above, I’ve accounted for each of the individual emergency types first and mapped them directly to their unique dial string. This configuration ensures that each user can dial each emergency number and not have that number be changed in any way. The last line of the table is the “catch all”, allowing users to dial the EU-centric emergency number ‘112’, along with some other emergency numbers from other locales (such as the UK and the US) that will automatically map to ‘112’. This final configuration helps to ensure that emergency calls complete for users who may not know the specific emergency number for a given local (think visitors).
Step 3 – Configure the Number Mappings
PowerShell will be your friend here, as it is the only method by which you can configure this new functionality. Do not attempt to configure this within the Control Panel web portal, as you won’t find it anywhere! Open up your Skype for Business Server Management Shell and add the configuration:
$a = New-CsEmergencyNumber -DialString 117 -DialMask 117 $b = New-CsEmergencyNumber -DialString 144 -DialMask 144 $c = New-CsEmergencyNumber -DialString 118 -DialMask 118 $d = New-CsEmergencyNumber -DialString 112 -DialMask 112;999;911 Set-CsLocationPolicy -Identity CH-BE-Bern-Hochschulstrasse-FL1 -EmergencyNumbers @{add=$a,$b,$c,$d}
Step 4 – Configure Legacy Client Number Mappings
This is done via the CSCP GUI, just as before. Configure this for the legacy clients that still need emergency services information via the legacy location policy logic. Remember that these clients will be limited to a single emergency number, so make sure to utilize the most global emergency number such as ‘112’:
Step 5 – Configure Location Policy PSTN Usage
Take a look at your PSTN Usage assigned to your location policy. Remember that your PSTN Usage determines the available voice routes for the calls users make, so you need to ensure that the voice route assigned to the PSTN Usage allows all the different emergency dial numbers you have configured.
If needed, make changes to your PSTN Usage, otherwise simply make note of the voice route(s) you need to edit and move on to step 6.
Step 6 – Edit your Emergency Number Voice Route
This can be accomplished by the CSCP GUI. Go into your voice routing configuration and edit the appropriate emergency voice route (the ones tied to the PSTN Usage in Step 5) to now match all the emergency numbers you have configured. Simply use a logical “|” (or) in the matching rule:
Step 7 – Commit Changes
Commit all your changes and test, test, TEST!
Limitations of this Approach
Nothing is 100% fool-proof and the new multiple emergency number support falls in line with that statement.
Clients
There are now three separate clients that support the multiple E-911 number functionality, a large increase from the original support of one when this feature was first released:
- September 2016 cumulative update for Lync Phone Edition
- July 2016 CU for Office 2016 Click-to-Run
- July 2016 CU for Office 2016 MSI
Mobility, Lync for Mac 2011, or legacy 2013/2015 clients seem to be excluded from support. In addition to that list are unknowns about Polycom VVX phones (or other 3PIP phones from Audiocodes, for example) and the new Skype for Business 2016 client for Mac. Note: Given that the new Mac client works off the same functionality as the mobility clients (UCWA), I can almost guarantee support is not available at this time. I’m sure Microsoft will continue to add to this list as time goes on, but be aware of this limitation and check back on TechNet to find out the latest client supportability.
Note: Sadly, this is simply another reason to make sure you are staying up-to-date with software releases, as the best stuff is only available in the latest versions.
Servers
With Microsoft now releasing information on this, you must have the CU3 update installed for Skype for Business Server 2015. Microsoft may add this functionality back into Lync Server 2013 (it seems to be back-porting much functionality these days), but I wouldn’t hold my breath.
Note: Sadly, this is simply another reason to make sure you are staying up-to-date with software releases, as the best stuff is only available in the latest versions.
Wrapping Up
This addition is a BIG-WIN for non-US based Skype4B deployments and adds a sorely missing feature. While I’ve focused mainly on non-US for this post, there are distinct cases where additional emergency numbers could be utilized within the US, such as corporations, manufacturers or hospitals that would require the ability to have multiple emergency numbers. Those organizations could allow unique emergency number combinations for any number of scenarios that may meet internal life-safety requirements.
Hi Trevor
You cannot specify the same dial mask number as the dial string or when you add it to the location policy you will get an error:
“Set-CsLocationPolicy : Dial mask 112 for Dial string 112 is already present either as another dial string or as dial mask.”
Other than that,
great wrap up 😉
Hey Luis – Not sure I follow what you’re saying. Are you saying that attempting to add the legacy dialmask/dialstring config doesn’t work, assuming those same digits have been added to the new multiple emergency number functionality?