Microsoft Direct Routing
Configuration Guide
Version 1.0
Notice
Intrado Microsoft Direct Routing Configuration Guide
© 2022 by Intrado Safety Services
All Rights Reserved
Printed in U.S.A.
This software product is copyrighted and all rights reserved by Intrado Safety Services. The product is licensed to the original Licensee only for use
according to the terms and conditions set forth in the System Agreement or applicable document containing the licensing provisions. Copying, selling, or
using the product contrary to those licensing terms and conditions is a violation of the law. All parts of this Software documentation are copyrighted and
all rights reserved. This documentation may not be copied, photocopied, or reproduced in whole or in part without Intrado’s prior written consent except
as otherwise provided in writing. Any authorized copying or reproduction in whole or in part, must contain the following statement:
Intrado Microsoft Direct Routing Configuration Guide Documentation
© 2022 by Intrado Safety Services
All Rights Reserved
Printed in U.S.A.
If you have any questions regarding the appropriate use of this software product and documentation, please direct your comments to:
Intrado
Life & Safety Business Center
1601 Dry Creek Drive
Longmont, CO 80503
720.494.5800
Trademark Ownership
All trademarks used herein are the property of their respective owners.
Product Updates
It is the policy of Intrado to improve products as new technology, software, hardware, and firmware become available. Intrado, therefore, reserves the
right to change specifications without prior notice. All features, functions, and operations described herein may not be available worldwide.
Microsoft Direct Routing Configuration Guide Table of Contents
Table of Contents
1.0 Introduction........................................................................................... 1
1.1 About this Guide ........................................................................................ 1
1.2 Deployment Pre-Requisites ....................................................................... 1
1.3 Microsoft Direct Routing Call Flow ............................................................ 1
2.0 Configuring Microsoft Direct Routing ..................................................... 5
2.1 PSTN Gateway ........................................................................................... 5
2.2 Creating Voice Routes and PSTN Usage via Teams Admin Portal .............. 6
2.3 Creating Voice Route Policy via Teams Admin Portal ................................ 8
2.4 Creating Emergency Call Routing Policy and Emergency Number via
Teams Admin Portal ................................................................................ 10
2.5 Tenant Trusted IP Address....................................................................... 12
2.6 Emergency Service Disclaimer ................................................................. 14
2.7 Emergency Call Routing Policy ................................................................. 14
3.0 Network Configuration for Assigning Policies....................................... 15
3.1 Configuring a Region ............................................................................... 15
3.2 Configuring Network Sites ....................................................................... 16
3.3 Configuring Network Subnets .................................................................. 17
4.0 Provisioning Locations ......................................................................... 18
4.1 Adding Civic Addresses ............................................................................ 18
4.2 Adding Additional Locations to a Specific Civic Address .......................... 20
4.3 Location Assignment ............................................................................... 22
4.4 Rule-Based Assignment ........................................................................... 23
5.0 Viewing Location Information on Teams Soft Client ............................. 27
5.1 Method 1 ................................................................................................. 27
5.2 Method 2 ................................................................................................. 27
6.0 Microsoft Teams Teleworker Support .................................................. 29
6.1 Enable Dynamic Location ........................................................................ 29
Last Updated 01/21/2022 Intrado Confidential i
Microsoft Direct Routing Configuration Guide Introduction
6.2 Provisioning Methods .............................................................................. 30
7.0 Provisioning Subscribers ...................................................................... 36
7.1 Automatic Provisioning Script ................................................................. 36
8.0 EGW Configuration .............................................................................. 43
9.0 SBC Configuration Requirements ......................................................... 44
9.1 Important Notes ...................................................................................... 44
Last Updated 01/21/2022 Intrado Confidential ii
Introduction Microsoft Direct Routing Configuration Guide
1.0 Introduction
This document is only to be used as reference material in the configuration of Microsoft Direct
Routing with Intrado’s Emergency Gateway and Emergency Routing Service. This procedure
may vary depending on the customer’s environment.
We provide two methods of configuration where available- one using the Teams Admin portal
and another using PowerShell commands.
1.1 About this Guide
Information and procedural steps that were previously available in the ERS Microsoft Direct
Routing Configuration Guide and the EGW Microsoft Direct Routing Configuration Guide have
been merged into this document.
1.2 Deployment Pre-Requisites
Administrator access to Admin Teams Tenant
Admin access to Direct Routing PowerShell modules
Microsoft Certified SBC
Emergency Gateway (redundant pair)
Emergency Routing Service (ERS)
Desk Alert Software (for EGW only)
Microsoft Teams soft client or certified hard phone
Important: Ensure that your SBC is configured to strip “+1” from the FROM header. If “+1” is
not stripped, EGW is unable to process the call properly.
1.3 Microsoft Direct Routing Call Flow
1.3.1 Scenario I
Call flow is as follows: Teams --> Microsoft Certified SBC --> EGW --> Microsoft Certified SBC
ERS. See Figure 1: Centralized Call Flow
Last Updated 01/21/2022 Intrado Confidential 1
Microsoft Direct Routing Configuration Guide Introduction
Figure 1: Centralized Call Flow
Last Updated 01/21/2022 Intrado Confidential 2
Microsoft Direct Routing Configuration Guide Introduction
1.3.2 Scenario II
Call flow is as follows: Teams --> Microsoft Certified SBC EGW ERS. See Figure 2.
Figure 2: Direct Call Flow
Last Updated 01/21/2022 Intrado Confidential 3
Microsoft Direct Routing Configuration Guide Introduction
1.3.3 Scenario III
Call flow is as follows: Teams --> Microsoft Certified SBC --> ERS. See Figure 3.
Figure 3: Call Flow for ERS Configuration
Last Updated 01/21/2022 Intrado Confidential 4
Microsoft Direct Routing Configuration Guide Configuring Microsoft Direct Routing
2.0 Configuring Microsoft Direct Routing
This guide provides information on how to configure teams using the Teams admin centre as
well as using powershell scripts.
2.1 PSTN Gateway
The first step in configuring Microsoft Direct Routing consists of building a PSTN gateway to the
SBC.
For a list of SBCs that support this solution, see this link: [Link]
us/microsoftteams/direct-routing-border-controllers
2.1.1 Building PSTN Gateway
To build a new PSTN Gateway to the SBC:
1. Go to Voice --> Direct Routing.
2. Click in the SBC tab and provide the FQDN for the SBC. See Figure 4 for an
example.
Figure 4: Teams Admin Portal - Building PSTN Gateways to SBC
2.1.2 Enabling PIDF-LO Support
To enable PIDF-LO support via Teams Admin Portal:
1. Go to Voice Direct Routing.
2. Click on the associated PSTN Gateway.
3. Go to Settings.
4. In the top right corner of the screen, click Edit SBC, as shown in Figure 5.
Last Updated 01/21/2022 Intrado Confidential 5
Microsoft Direct Routing Configuration Guide Configuring Microsoft Direct Routing
Figure 5: Editing SBC Settings
5. Enable the SBC supports PIDF/LO for Emergency Calls option.
Figure 6: Enabling PIDF-LO Support on SBC
6. Click Save to save the changes you made.
2.2 Creating Voice Routes and PSTN Usage via Teams Admin Portal
You can create both the voice routes & PSTN usage records by following the instructions below:
1. Go to Voice Direct Routing Voice Routes.
2. Click Add.
3. Enter the following information:
Last Updated 01/21/2022 Intrado Confidential 6
Microsoft Direct Routing Configuration Guide Configuring Microsoft Direct Routing
A. Voice Route name
B. Description
C. Set Priority to 1
D. Configure the following dialed number pattern (^\+911|^\+933)
E. Assign PSTN Gateway(s)
F. Click “Add/remove PSTN Usage Record in which you can choose an
existing PSTN usage record(s) or choose to create a new usage record by
click on Add
4. Click Save.
Figure 7: Creating Voice Routes
Last Updated 01/21/2022 Intrado Confidential 7
Microsoft Direct Routing Configuration Guide Configuring Microsoft Direct Routing
Figure 8: Assigning a PSTN Gateway
Figure 9: Assigning a PSTN Gateway
2.3 Creating Voice Route Policy via Teams Admin Portal
You can create voice route policy by following the instructions below:
1. Go to Voice Voice Routing policies.
2. Click Add, as shown in Figure 10.
Last Updated 01/21/2022 Intrado Confidential 8
Microsoft Direct Routing Configuration Guide Configuring Microsoft Direct Routing
Figure 10: Adding a new Voice Routing Policy
3. Enter a name for the new voice routing policy.
4. Enter an appropriate description.
5. Click “Add/remove PSTN Usage Record in which you can choose an existing PSTN
usage record(s) or choose to create a new usage record by click on Add. See
Figure 11.
6. Click Save.
Figure 11: Adding a Voice Routing Policy
Last Updated 01/21/2022 Intrado Confidential 9
Microsoft Direct Routing Configuration Guide Configuring Microsoft Direct Routing
2.4 Creating Emergency Call Routing Policy and Emergency Number via
Teams Admin Portal
You can create your emergency call routing policy and emergency dialled numbers by following
the instructions below:
1. Go to Voice -> Call routing policies. Figure 12 shows the Emergency Policies
section of the Teams Admin Centre.
Figure 12: Call Routing Policies
2. Click Add.
3. Enter a name for the call routing policy.
4. Enter an appropriate description.
5. Enable Dynamic Emergency Calling.
6. Enter the required Emergency dial string. For example: 911, 933.
7. Optionally, enter an Emergency dial mask such as 9911, 112. This translates to
the emergency number.
8. Associate a PSTN usage record.
9. Click the Save button to save the changes you made. See Figure 13.
Last Updated 01/21/2022 Intrado Confidential 10
Microsoft Direct Routing Configuration Guide Configuring Microsoft Direct Routing
Figure 13: Adding a new Intrado Call Routing Policy
2.4.1 Creating Emergency Calling Policy via Teams Admin Portal (ERS Only)
You can create an emergency calling policy consisting of the emergency notification settings
when a 911 call is placed. For example: notify pop up to Teams client or three-way conference
bridge to security desk.
Figure 14: Creating Emergency Calling Policy via Teams Admin Center
1. Click on Voice Emergency Policy Calling Policy Add.
2. Enter Policy Name, Description and Notification Mode:
a. Send Notification Only – IM Chat notification of emergency call.
b. Conference in but are muted.
c. Conference in and are un-muted.
3. Enter security desk number if notification mode is “b” or “c”.
Last Updated 01/21/2022 Intrado Confidential 11
Microsoft Direct Routing Configuration Guide Configuring Microsoft Direct Routing
4. Enter user or group to notify.
5. Click Apply. See Figure 15.
Figure 15: Creating an Emergency Calling Policy
2.5 Tenant Trusted IP Address
Certain external IP addresses can be added as “trusted” IP addresses to determine if the user is
inside the corporate network before checking for a site match. If a match exists, then location-
based routing will check internal LIS DB for the location of the endpoint in question
2.5.1 Using Teams Admin Center
1. To add trusted IP addresses using the Teams Admin Center:
2. Go to Locations --> Network Toplogy.
3. Click the Trusted IPs tab and add the new trusted IP addresses, as shown in
Figure 16.
Last Updated 01/21/2022 Intrado Confidential 12
Microsoft Direct Routing Configuration Guide Configuring Microsoft Direct Routing
Figure 16: Teams Admin Centre- Adding a Trusted IP Address
The trusted IP address that was added above is listed in the Trusted IPs section, as shown in
Figure 17.
Figure 17: Teams Admin Centre - Trusted IP address added and Listed Under Trusted IPs
Note: This configuration can take anywhere from 2 to 24 hours to propagate.
Last Updated 01/21/2022 Intrado Confidential 13
Microsoft Direct Routing Configuration Guide Configuring Microsoft Direct Routing
2.6 Emergency Service Disclaimer
2.6.1 Using PowerShell
The following command below is used to view the current Emergency Service Disclaimer.
Get-CsOnlineEnhancedEmergencyServiceDisclaimer –CountryOrRegion US
Reference disclaimer:
IMPORTANT INFORMATION ABOUT EMERGENCY CALLING/911
911 emergency calling operates differently with Skype for Business PSTN Calling
services than on traditional telephone services. It is important that you understand
these differences and communicate them to all users of the Skype for Business PSTN
Calling service. You acknowledge and agree that you have read and understand the
differences in our 911 calling and will provide this notice to each user of Skype for
Business PSTN Calling services. A warning label, describing the differences of our 911
service, is available at[Link] to be
downloaded and distributed to all Skype for Business users.
The differences in our 911 capabilities include the following: 1. Skype for Business
may not know the actual location of a 911 caller, which could result in a 911 call being
routed to the wrong 911 call center and/or emergency services being dispatched to
the wrong location; 2. when a Skype for Business user dials a 911 call, the user may be
asked by an operator to provide his or her current location to assist in properly
routing the 911 call and dispatching emergency services; 3. if the user’s device has no
power, is experiencing a power outage or, for any reason, cannot otherwise access
the Internet, the user cannot make a 911 call through Skype for Business PSTN Calling
services; and 4. although Skype for Business PSTN Calling services can be used
anywhere in the world where an Internet connection is available, users should not call
911 from a location outside the U.S. because the call likely will not be routed to the
appropriate call center in that country.
2.7 Emergency Call Routing Policy
The following command below is used to bind the emergency numbers & enable enhanced
emergency services to an existing PSTNUsage record.
New-CsTeamsEmergencyCallRoutingPolicy -Identity e911_emergencyusage -
EmergencyNumbers @{add=$en1} -AllowEnhancedEmergencyServices $true
Identity – This is the PSTNUsage record.
EmergencyNumbers – These are the dialled numbers that can call emergency services.
AllowEnhanceEmergencyServices – Flag to allow enhanced emergency services.
Last Updated 01/21/2022 Intrado Confidential 14
Microsoft Direct Routing Configuration Guide Network Configuration for Assigning Policies
3.0 Network Configuration for Assigning Policies
The Network Topology section in the Teams Admin Centre enables you to configure the
network for assigning policies specific for your enterprise. Figure 18 shows the Network
Topology screen in the Teams Admin Centre.
Figure 18: Teams Admin Centre- Network Topology
3.1 Configuring a Region
3.1.1 Using Teams Admin Center
To configure a new network region, in the Network Toplogy screen, click +Add Network
Region. An example is shown in Figure 19.
Last Updated 01/21/2022 Intrado Confidential 15
Microsoft Direct Routing Configuration Guide Network Configuration for Assigning Policies
Figure 19: Teams Admin Centre - Configuring a Network Region
3.2 Configuring Network Sites
3.2.1 Using Admins Teams Center
To add a new network site:
1. Go to Locations --> Network Toplogy --> Network Sites.
2. Click the New button.
3. Add a name and description for the new network site.
4. Configure the network site, as shown below and click the Save button.
Last Updated 01/21/2022 Intrado Confidential 16
Microsoft Direct Routing Configuration Guide Network Configuration for Assigning Policies
Figure 20: Teams Admin Centre - Adding a New Network Site
3.3 Configuring Network Subnets
3.3.1 Using Teams Admin Center
In the Network Topology screen:
1. Click the +New button and add a new Subnet.
2. Click Apply button. See Figure 21 for more information.
Figure 21: Teams Admin Centre – Configuring a New Network Subnet
Last Updated 01/21/2022 Intrado Confidential 17
Microsoft Direct Routing Configuration Guide Provisioning Locations
4.0 Provisioning Locations
From the Teams Admin Center, click Locations --> Emergency addresses to view the list of
emergency addresses. See Figure 22.
Figure 22: Teams Admin Centre - Emergency addresses
4.1 Adding Civic Addresses
4.1.1 Using Teams Admin Center
To add civic addresses via the Teams Admin tenant:
1. Go to Locations --> Emergency Addresses.
2. Choose your Country or Region.
3. Enter the address you want to add in the provided address fields.
4. Enable Edit the address manually.
5. Add corresponding ERL_ID. For EGW, this is the Emergency Location Identification
Number (ELIN).
6. Add a description for civic address.
7. Click Save.
Last Updated 01/21/2022 Intrado Confidential 18
Microsoft Direct Routing Configuration Guide Provisioning Locations
Figure 23: Entering Emergency Addresses into Teams Admin Tenant
Note: This will create a “civicaddressID” which can be retrieved from PowerShell and is also
used as a reference when adding or changing information to locations from PowerShell.
4.1.2 Adding Civic Addresses Via Batch File
You can add multiple civic addresses using a batch CSV-type file. By default, it opens using
Microsoft Excel.
Adding civic addresses is the first step involved in mapping out more granular locations for the
for the same address in order to associate to one of the following methods (Subnet, Switch,
Switch port, or BSSID).You can use the Teams Management shell to add civic addresses.
To build a batch file:
1. Enter the following fields as headings into the CSV file:
a. HouseNumber
b. Description
c. StreetName
d. City
e. StateOrProvince
f. PostalCode
g. CountryOrRegion
h. CompanyName
i. Latitude – You can use Bing Maps to find Geo-Coordinates
Last Updated 01/21/2022 Intrado Confidential 19
Microsoft Direct Routing Configuration Guide Provisioning Locations
j. Longitude - You can use Bing Maps to find Geo-Coordinates
2. Save file in .csv format
Figure 24: CSV File Showing Headings Required for Building Batch File
3. Run the following command to import the batch file:
$civic = import-csv C:\PathtoCSV\[Link]
foreach ($C in $civic) { New-CsOnlineLisCivicAddress -HouseNumber $[Link]
-Description $[Link] -StreetName $[Link] -City $[Link] -
StateORProvince $[Link] -PostalCode $[Link] -CountryOrRegion
$[Link] -CompanyName $[Link] -ELIN $[Link] -Latitude
$[Link] -Longitude $[Link]}
You can also pull a complete list of all your civic addresses that are already present by running
the following command:
Get-csonlineliscivicaddress | export-csv c:\temp\civic_addresses.csv
4.2 Adding Additional Locations to a Specific Civic Address
4.2.1 Using Teams Admin Center
You can add additional locations to the civic address to provide more granularity. To do so:
1. Click on Locations --> Emergency Addresses. Then click on the address that you
would like to add location to.
2. Click Add place and enter a description (Floor 2, Suite 205).
3. Click Save.
Last Updated 01/21/2022 Intrado Confidential 20
Microsoft Direct Routing Configuration Guide Provisioning Locations
Figure 25: Adding Additional Locations to Civic Address
Note: Each location you create will be assigned a locationID which can be retrieved from
PowerShell. This locationID is used if changes need to be made to the location.
Note: This location will not inherit the ERL_ID from the civic address. To assign the ERL_ID you
will need to go into PowerShell and run the following command.
Set-CsOnlineLisLocation – locationid d017532d-765b-40aa-b011-669085e51409 –Elin
NOR_BLDG_100
4.2.2 Adding Locations Via Batch File
You can add multiple locations using the batch functionality. This is the second step that needs
to occur in order to be able to map out more granular locations for the same address in order
to associate to one of the following methods (Subnet, Switch, Switch port, or BSSID).
You can use the Teams Management shell to add civic addresses:
Fill in required fields
CivicAddressID
Location – Granularity (Floor1, Suite 105, Cubicle 1)
Latitude – You can use Bing Maps to find Geo-Coordinates
Longitude - You can use Bing Maps to find Geo-Coordinates
Save file in .csv format
Last Updated 01/21/2022 Intrado Confidential 21
Microsoft Direct Routing Configuration Guide Provisioning Locations
Figure 26: Batch File Sample
To import this file, you can run the following command:
$loc = import-csv C:\PathtoCSV\[Link]
foreach ($l in $loc) {
New-CsOnlineLislocation -CivicAddressID $[Link] -Location $[Link] -
ELIN $[Link] -Latitude $[Link] -Longitude $[Link]}
Note: you can pull a complete list of all your locations by running the following command:
Get-csonlinelislocation | export-csv c:\temp\locations_addresses.csv
4.3 Location Assignment
4.3.1 Using Teams Admin Center
1. You can only provision locations one at a time through the Teams admin center as
shown in Figure 27.
Figure 27: Teams Admin Center- Adding a Location
Last Updated 01/21/2022 Intrado Confidential 22
Microsoft Direct Routing Configuration Guide Provisioning Locations
4.4 Rule-Based Assignment
4.4.1 Using Teams Admin Center
You can now assign network elements such as (Subnets, Switches/Ports, Access points) from
the Teams Admin centre as follows
Figure 28: Teams Admin Centre – Rule Based Assignment
4.4.2 Batch Import of Network Elements Using PowerShell
[Link] Switch/ Port Discovery Batch Import via PowerShell
You can track your phones using the Ethernet switch or port to which the client is connected
when 911 is dialled. To enable this feature there must be an Ethernet switches or ports
mapping to emergency locations in the LIS.
Note: This requires all your managed switches to support LLDP-MED, Teams soft clients running
on Windows 8 and above and hard phones running Microsoft Teams Phone Edition.
You can use the Teams Management shell to add switches:
Fill in required fields
ChassisID – Switch MAC Address
Description
LocationID
Save file in .csv format
Last Updated 01/21/2022 Intrado Confidential 23
Microsoft Direct Routing Configuration Guide Provisioning Locations
Figure 29: Batch File for Rule Based Assignment
To import this file, run the following command:
$switch = import-csv C:\PathtoCSV\[Link]
foreach ($S in $switch) { Set-CsOnlineLisSwitch -ChassisID $[Link] -LocationId
$[Link] -Description $[Link] }
Note: You can pull a complete list of all your switches by running the following command:
Get-csonlinelisswitch | export-csv c:\temp\[Link]
You can use the Teams Management shell to add switches ports:
Fill in required fields.
ChassisID – Switch MAC Address
PortID
Description
LocationID
Save file in .csv format
Last Updated 01/21/2022 Intrado Confidential 24
Microsoft Direct Routing Configuration Guide Provisioning Locations
Figure 30: Sample of a CSV File for Batch Import
To import this file, run the following command:
$ports = import-csv C:\PathtoCSV\[Link]
foreach ($P in $ports) { Set-CsOnlineLisPort -ChassisID $[Link] -portid $[Link]
-LocationId $[Link] -Description $[Link]}
Note: You can pull a complete list of all your switches by running the following command:
Get-csonlinelisport | export-csv c:\temp\[Link]
[Link] Wireless Discovery Import Via PowerShell
You can track your phones using the BSSID of the WAP to which the client is connected when
911 is dialled. To enable this feature there must be a mapping of emergency locations and
BSSIDs in the LIS.
You can use the Teams Management shell to add Access Point BSSID:
Fill in required fields
BSSID
Description
LocationID
Save file in .csv format
Figure 31: Wireless Discovery Import Batch File
To import this file, run the following command:
$wlan = import-csv C:\PathtoCSV\[Link]
foreach ($W in $wlan) { Set-CsOnlineLisWirelessAccessPoint -BSSID
$[Link] -Description $[Link] -LocationId $[Link]}
Last Updated 01/21/2022 Intrado Confidential 25
Microsoft Direct Routing Configuration Guide Provisioning Locations
Note: You can pull a complete list of all your Wireless Access points by running the following
command:
Get-csonlineliswirelessaccesspoints | export-csv c:\temp\access_points.csv
[Link] Subnets Discovery Import Via PowerShell
You can track your phones using the subnet to which the client is connected when 911 is
dialled. To enable this feature there must be available a mapping of emergency locations and IP
subnets in the LIS.
You can use the Teams Management shell to add individually different subnets:
Fill in required fields
Subnet
Description
LocationID
Save file in .csv format
Figure 32: Subnet Discovery Batch File
To import this file, you can run the following command:
$subnet = import-csv C:\PathtoCSV\[Link]
foreach ($S in $subnet) { Set-CsOnlineLissubnet -Subnet $[Link] -
LocationId $[Link] -Description $[Link]}
Note: You can pull a complete list of all your Subnets by running the following command:
Get-csonlinelissubnets | export-csv c:\temp\[Link]
Last Updated 01/21/2022 Intrado Confidential 26
Microsoft Direct Routing Configuration Guide Viewing Location Information on Teams Soft Client
5.0 Viewing Location Information on Teams Soft Client
To view location information that is assigned to your Teams client, you can use one of the
following methods:
5.1 Method 1
1. Click on Calls.
2. Locate the dial pad. The location information is displayed below the dial pad as
shown in Figure 33.
Figure 33: Location Information under Dial Pad
5.2 Method 2
1. Click on User profile --> Settings --> Calls. See Figure 34.
Last Updated 01/21/2022 Intrado Confidential 27
Microsoft Direct Routing Configuration Guide Viewing Location Information on Teams Soft Client
Figure 34: Viewing Location Information
2. Scroll to bottom of screen to view the details of your location under Emergency location.
Figure 35: Viewing Location Information
Last Updated 01/21/2022 Intrado Confidential 28
Microsoft Direct Routing Configuration Guide Microsoft Teams Teleworker Support
6.0 Microsoft Teams Teleworker Support
6.1 Enable Dynamic Location
To enable dynamic location tracking, you can do the following:
• The organization can turn on the following feature “-ExternalLocationLookupMode
Enabled” under the CsTeamsEmergencyCallingPolicy through powershell.
o Example of a command to execute from: New-CsTeamsEmergencyCallingPolicy –
Identity ‘PolicyName’ -ExternalLocationLookupMode enabled
o Example of command to add to existing policy: set-
CsTeamsEmergencyCallingPolicy –Identity ‘PolicyName’ -
ExternalLocationLookupMode enabled
o Both the examples are also provided below. Refer to Figure 36.
• The organization must also edit the Group Policies to enable “Let Windows apps access
location” option under Local Computer Policy --> Computer Configuration -->
Administrative Templates --> App Privacy --> Let Windows apps access location -->
o Enable. See Figure 37
o This enables the organization to choose whether all apps are set to either “Force
Allow” or “User is in control”.
The following PowerShell commands can be used to create a new
CsTeamsEmergencyCallingPolicy with “-ExternalLocationLookupMode enabled”.
New-CsTeamsEmergencyCallingPolicy -Identity ‘PolicyName’ -
ExternalLocationLookupMode enabled
The following PowerShell commands can be used to assign emergency calling policy to a user.
Grant-CsTeamsEmergencyCallingPolicy -PolicyName ‘PolicyName’ -Identity ‘User’
The following PowerShell commands can be used to enable “ExternalLocationLookupMode” on
an existing policy.
Set-CsTeamsEmergencyCallingPolicy -Identity ‘PolicyName’ -
ExternalLocationLookupMode enabled
Last Updated 01/21/2022 Intrado Confidential 29
Microsoft Direct Routing Configuration Guide Microsoft Teams Teleworker Support
Figure 36: CsTeamsEmergencyCalling Policy
Figure 37: GPO Policy Configuration
6.2 Provisioning Methods
There are 4 options to enable provisioning locations for teleworkers.
6.2.1 Option 1 - User provisioned location:
To add a location into your Teams client you can following the below steps:
1. Under Calls, there is an option called Location Not Detected. See Figure 38.
Last Updated 01/21/2022 Intrado Confidential 30
Microsoft Direct Routing Configuration Guide Microsoft Teams Teleworker Support
Figure 38: Provisioning Location under Calls
2. Click on Location not detected to add a location. Now if you place a 911 call
the call will route to Intrado ECRC call center to be triaged to the PSAP of the
caller’s area. See Figure 39.
Figure 39: Adding Emergency Location
Last Updated 01/21/2022 Intrado Confidential 31
Microsoft Direct Routing Configuration Guide Microsoft Teams Teleworker Support
Figure 40: Adding a new location
The user-defined location appears as shown in Figure 41.
Figure 41: User-defined location
Last Updated 01/21/2022 Intrado Confidential 32
Microsoft Direct Routing Configuration Guide Microsoft Teams Teleworker Support
If a 911 call is placed the call will be routed to the Intrado “Emergency Call Response Centre” to
be triaged by a call taker who will verify the location details, type of emergency, and then
transfer the call to the local PSAP of the caller’s area.
6.2.2 Option 2 – Dynamically assigned location
The user signs into the Teams client which references the location information using the
location services of the user’s operating system. This provides a general location that will be
automatically assigned to the client. See Figure 42.
Note: This location might not be the exact location of the user but is within the caller’s general
geo-graphical area.
Figure 42: Dynamically assigned location
The user can edit or confirm the location, as shown in Figure 43. If the user confirms the
location and a 911 call is placed, it will route directly to the PSAP of the caller.
Figure 43: Editing or confirming dynamically assigned location
Last Updated 01/21/2022 Intrado Confidential 33
Microsoft Direct Routing Configuration Guide Microsoft Teams Teleworker Support
Figure 44: Editing Location Information
Figure 45: Editing current location
Last Updated 01/21/2022 Intrado Confidential 34
Microsoft Direct Routing Configuration Guide Microsoft Teams Teleworker Support
Figure 46: Location edited by user
If the user edits the location and a 911 call is placed, the call will route to Intrado Emergency
Call Response Center to be triaged by a call taker who will verify location details, type of
emergency, and then transfer to the local PSAP of the caller’s area.
6.2.3 Option 3 – Static assigned location to user/number
• The Teams administrator can statically assign an address to the number of a
user.
• If a 911 call is placed, the call will be routed to Intrado “Emergency Call Response
Center” to be triaged by a call taker who will verify location details, type of
emergency, and then transfer the call to the PSAP closest to the caller.
6.2.4 Option 4 – Dynamically acquired location defined by administrator
• The Teams administrator can assign location information by programming the
user’s location and network elements in Teams.
• If a 911 call is placed, the call will route directly to the PSAP of the caller.
6.2.5 References:
[Link]
Last Updated 01/21/2022 Intrado Confidential 35
Microsoft Direct Routing Configuration Guide Provisioning Subscribers
7.0 Provisioning Subscribers
There are three ways of provisioning subscribers into the EGW or ERS for the Microsoft Teams
deployment:
1. By logging into the EGW dashboard or the ERS Portal and manually
provisioning subscribers.
2. By using the EGW or ERS SOAP methods.
3. By using the Intrado-provided automatic provisioning script. This script is
provided to customers as a courtesy. Any modifications (for example: adding
-filters, adding additional logging requirements) are the sole responsibility of
the customer.
4. Please note that this section describes how the script functions, the various
configurations required and other related information.
5. Important: Contact Intrado support to obtain the Automatic Provisioning
Script.
7.1 Automatic Provisioning Script
You can automatically push multiple subscribers from the Microsoft O365 system to the EGW
or ERS platforms using a PowerShell script. This script is provided by Intrado and retrieves
subscribers from Microsoft O365 Teams system, creates a cache file labelled ([Link] –
for EGW or [Link] for ERS) platforms with these extensions and adds them to the
relevant records.
By default, the script can only add subscribers. Subscribers already present in the O365 system
are retrieved and added to the EGW or ERS platform.
By performing special configuration on the script, you can also delete subscribers from the EGW
or ERS when they are no longer present in the O365 Teams system. The script is executed from
a Windows machine, and it uses the Microsoft Teams PowerShell API as well as the EGW/ERS
SOAP API.
Last Updated 01/21/2022 Intrado Confidential 36
Microsoft Direct Routing Configuration Guide Provisioning Subscribers
Figure 47: Execution of EGW script
Figure 48: Execution of ERS Voice Script
7.1.1 Requirements
The PowerShell script must be executed from a Windows machine that has HTTPS
access to Microsoft O365 server and the EGW or ERS platforms
Skype for Business Online Windows PowerShell Module must be available to enable
O365 Teams API usage.
Last Updated 01/21/2022 Intrado Confidential 37
Microsoft Direct Routing Configuration Guide Provisioning Subscribers
Microsoft Teams username and password for access to the directory. Note that the
password should be set to not expire.
Provisioning URL for the EGW or hosted platforms – you can obtain this from Intrado
support.
7.1.2 Configuring the Script
The parameters listed in Table 1 must be provided to the script for EGW. For ERS, the
parameters in Table 2 must be provided.
Table 1: Automatic Provisioning Script Parameters for EGW
Parameter Description
soap_user_name User name for SOAP
soap_password Password for SOAP
egw_ip IP address of the primary EGW.
ip_pbx_name Name of the IP-PBX for which the extension should be provisioned.
extension_sync Flag that is used to enable or disable synchronization between the
subscribers present in O365 system and the EGW. Possible values:
Y for enabled
N for disabled
For example, if “subscribers_sync” is enabled, and if a subscriber exists
in the EGW but not in the O365 system, then it is deleted from the
EGW.
sync_interval Interval in which the full sync should occur. Value must be in number
of days.
custom_filter Optional filter parameter through which you can decide which
subscribers should be pushed by the script.
For example, using a specific string or expression, you can configure
the script to only push subscribers with a specific voice or site policy.
Table 2:Automatic Provisioning Script Parameters for ERS Only
Parameter Description
Last Updated 01/21/2022 Intrado Confidential 38
Microsoft Direct Routing Configuration Guide Provisioning Subscribers
account_id ERS deployment account ID
account_token ERS account token. Intrado support can provide you this information.
soap_fqdn FQDN to send SOAP requests to the ERS
[Link]
subscribers_chunk Maximum number of subscribers that each SOAP request can support
from the O365 system to ERS.
For example: If there are 100 subscribers on the O365 system and
“subscribers_chunk” is set to 10, then 10 SOAP requests will be sent.
subscribers_sync Flag that is used to enable or disable synchronization between the
subscribers present in O365 system and the ERS. Possible values:
Y for enabled
N for disabled
For example, if “subscribers_sync” is enabled, and if a subscriber exists in
the ERS but not in the O365 system, then it is deleted from the ERS.
custom_filter Optional filter parameter through which you can decide which
subscribers should be pushed by the script. For example, using a specific
string or expression, you can configure the script to only push
subscribers with a specific voice or site policy.
7.1.3 Script Mechanism
[Link] Mechanism for EGW
The EGW MS Teams Voice script retrieves the subscriber list from MS teams system. If the
Subscriber ID is in the form of LineURI, only the 10-digit DID is retrieved. For instance, if the
LineURI is [Link] then the extension retrieved is 2019291012. Note: if the line URI
contains 10-digit DID + Extension (example: 2019291012;ext1234) the script will fail.
The script checks if a cache file already exists with the list of subscribers. If a cache file does not
exist, then it is created and the “Set the Sync Date” is configured to now().
If the cache file does not have the extensions from O365, then the script adds the extensions to
the cache file. If Sync is enabled in the script and the last sync is greater than the
“sync_interval” parameter, then all the extensions are added or updated in the EGW. If there
are some extensions in the EGW but not in the cache file, then they are deleted from the EGW.
If Last Sync is greater than the threshold, Set the Sync Date as now().
Note: now() refers to the current date.
Last Updated 01/21/2022 Intrado Confidential 39
Microsoft Direct Routing Configuration Guide Provisioning Subscribers
Script uses the cache mechanism to reduce the number of SOAP requests by comparing the
extensions in the O365 system to the extensions in the cache file. If an extension is already
available in the cache file, then no action will take place. Scenarios explaining the cache
mechanism are listed in Table 3.
Full sync operations will happen if the extension_sync parameter is provided as Yes and if last
sync reaches threshold (7 or 30 days, Configurable in Script), The Extension from O365 will be
added/Updated to EGW and the Extension that re not in 0365 will be deleted in EGW.
Table 3: Script mechanism for EGW
Scenario Value of Result
“extension_sync”
Extension present in O365 but Y (enabled) Extension will be added to EGW
not on EGW
Extension on O365 but not on N (disabled) Extension will be added to EGW
EGW
Extension on EGW but not on N (disabled) No action
O365
Extension present in EGW but Y (enabled) Extension will be deleted from
not on O365 EGW
Extension on EGW but not on N (disabled) No action
O365 (Not Processed through
the Script)
[Link] Mechanism for ERS
The ERS MS Teams Voice script retrieves the subcriber list from MS Teams System. If the
Subscriber ID is either 10-digit or 10-digit + ext (example:2019291012 or 2019291012;ext1234)
it will be imported into customers Intrado ERS portal.
By default, the script is designed to add subscribers into the ERS. But this configuration can be
changed by setting the “subscribers_sync” parameter to Y (yes). This means you can also use
the script to delete subscribers from the ERS when they no longer exist in the O365 system. See
Table 4 for a detailed scenario.
Last Updated 01/21/2022 Intrado Confidential 40
Microsoft Direct Routing Configuration Guide Provisioning Subscribers
Table 4: Script mechanism when sync is enabled for ERS
Scenario Value of Result
“subscribers_sync”
Subscriber present in O365 but not Y (enabled) Subscriber will be added
on ERS to ERS
Subscriber present in ERS but not on Y (enabled) Subscriber will be
O365 deleted from ERS
Subscriber present in O365 but not N (disabled) Subscriber will be added
on ERS to ERS
Subscriber present in ERS but not on N (disabled) No action
O365
7.1.4 Error Handling
[Link] EGW
If any errors are detected during execution, the script will abort. The following table provides a
list of error messages that might be encountered when there is an issue.
Table 5: Error Messages and System Behaviour
Problem System Behaviour
Invalid number of arguments Script will print warning, display script syntax, and abort
execution.
WARNING: Invalid number of arguments. Aborting script
execution.
Invalid value for “egw_ip Script will print warning, display script syntax, and abort
parameter” execution.
WARNING: Invalid IP provided . Value must be a valid IP Address.
Value provided for parameter Script will print warning, display script syntax, and abort
extension_sync is not Y or N execution.
WARNING: Invalid extension_sync option. Value must be Y or N.
Aborting script execution
Last Updated 01/21/2022 Intrado Confidential 41
Microsoft Direct Routing Configuration Guide Provisioning Subscribers
Value provided for parameter Script will print warning, display script syntax and abort
sync_interval is not an integer or execution.
less than 0 WARNING: Invalid sync_interval option. Value must be greater
than 0. Aborting script execution
System cannot load local cache Script will print warning and abort execution.
file WARNING: Unable to load Extension file (<file location>).
System cannot update local Script will print warning; abort execution and local cache file
cache file won't be updated.
WARNING: Unable to update Extension file (<file location>).
[Link] ERS
After each subscriber is pushed, the script expects a 200 OK response from ERS. Any other
response is considered as an error and the execution will be stopped.
7.1.5 Schedule
A windows scheduled task can be setup for automatic script execution. We recommend the
execution schedule be set as weekly. But, if you expect that subscribers will be added or
deleted on a daily basis, then you can choose a more frequent schedule.
Last Updated 01/21/2022 Intrado Confidential 42
Microsoft Direct Routing Configuration Guide EGW Configuration
8.0 EGW Configuration
The EGW System Guide version 5.5.5 and above versions provide comprehensive information
on how to configure the EGW to support Microsoft Direct Routing deployments. The following
sections are of special interest.
Section 7.5: Configuring Microsoft Direct Routing Settings.
All customer-facing documentation is available from the Intrado Technical Resource Center
located at [Link]
Last Updated 01/21/2022 Intrado Confidential 43
Microsoft Direct Routing Configuration Guide SBC Configuration Requirements
9.0 SBC Configuration Requirements
• 2 SIP trunks to Intrado (208.71.179.x and 208.71.176.x)
• Exact IP addresses will be provided by Intrado support.
• 1 PSTN connection for 3rd failover route
• Intrado will provide a dedicated 10-digit number that you will need to translate 911-to-
ten-digit number. This applies only if the 2 SIP trunks are down.
• Protocols used (TCP/5060, RTP/UDP 20,000 – 21,000).
• Manipulation rule to strip + off DNIS and +1 off Calling party number.
9.1 Important Notes
• Ribbon SBC needs PIDf Body and Pidf Diff Body enabled on the Signaling Profile of the
SIP Trunk.
• Encryption is not supported for both SIP communication and Media to Intrado (EGW).
• If a NAT Policy is used, then the following headers must contain the public NAT IP at call
time: VIA, FROM, Contact, PAI and SDP.
Last Updated 01/21/2022 Intrado Confidential 44