Dynamic Emergency Calling


Some assistance please in those who have configured Dynamic Emergency Call Routing


When it comes to Set-CsOnlineLisSubnet for the subnets.


For example, the persons IP address is

If I enter the subnet as 


Then the emergency address doesn't pick up. I can't use CIDR format when adding subnets as it's not an accepted format.


If I enter the subnet as (person's IP address) then the emergency address shows and the correct information (location etc) goes out in the SIP packet to the Direct Routing SBC.


How do I cover the whole subnet as I can't enter each IP address manually?  I must be missing something I'm sure!


Thanks in advance

6 Replies
Best Response confirmed by ThereseSolimeno (Microsoft)

Hi @fowler_23 ,


Have you tried defining the Network via New-CsTenantNetworkSubnet, an example of which is shown here:  New-CsTenantNetworkSubnet -Identity -Description "Home Subnet" -MaskBits 24 -NetworkSiteID "Home Office"


The above should let you at least define the Subnet Mask, so not sure if you did this and then your set command it would help?


You might want to even do the New-CsTenantNetwork site. A sequence of which is shown below:


#Specify New Network Location

New-CsTenantNetworkSite -EmergencyCallingPolicy "Home Office" -Description "Home" -Identity "Home Office"


#Add Subnet to Network Location

New-CsTenantNetworkSubnet -Identity -Description "Home Subnet" -MaskBits 24 -NetworkSiteID "Home Office"


#Associate Subnet with LIS Location

Set-CsOnlineLisSubnet -Subnet -LocationId c0139040-8a99-4288-b09b-639b34efb999







@henryarphillips365 Thanks for the message.

Yes - I started with defining the Site and Subnet.


However, no emergency policy was assigned to me. Looking at the Teams logs (.....calling.txt). This log shows info about the emergency policy. It shows I matched the Site Match Info but NetworkLocationMatchInfo shows NotMatched


"debugInfo": {
"ncsDebugInfo": {
"trustedIpMatchInfo": {
"publicIp": "",
"trustedIpAddress": "",
"maskBits": 32,
"reason": "Matched"
"siteMatchInfo": {
"ipv4": "",
"subnetLengthIPv4": "32",
"subnetId": "",
"maskBits": 24,
"teamsEmergencyCallRoutingPolicyTag": "TeamsEmergencyCallRoutingPolicy=Tenant: Office",
"teamsEmergencyCallingPolicyTag": "TeamsEmergencyCallingPolicy=Tenant:Emergency Call Notification",
"networkSiteId": " Office Site ID",
"enableLocationBasedRouting": false,
"reason": "Matched"
"networkLocationMatchInfo": {
"reason": "NotMatched"


It seems I have to add the Set-CsOnlineLisSubnet to match the NetworkLocation but as I say entering the format of doesn't work. I have to add the actual IP I'm using. When I do that, networklocation shows Matched and Emergency Address shows.


Hi @fowler_23 ,


So I have had a good play with this as I find Emergency Calling really interesting and it is of course vital to help out the emergency services and those that need there services.

So not knowing if you are based in the US or not but are you using Dynamic Emergency Calling and if so have you specified anything in terms of Trusted IPs. Trusted IPs are what define your corporate network essentially and are vital in terms of the Dynamic Configuration as without this nothing else follows really.

Also when you mention you are unable to specify the subnet, do you mean it actually prevents you PowerShell wise or just that when you do it makes no difference?

I managed to reproduce your issue and for me it was because I seemed to have a conflicting other subnet defined here:


Once removed I could see the Emergency location reflected in the client by going to settings > calls and it was reflected in the log area you sent too.

But ultimately it is possible to define by way of Subnet and not an explicit IP, so don't give up.

Although this is centred around the Dynamic capabilities you may want to take a look at the following as it has some really good content and might spark some ideas: 




Watch this Teams Academy video to learn about dynamic emergency calling in Teams Phone System. We'll cover emergency calling concepts, as well as configurati...



Thanks for your assistance. I have it working now using the subnet defined in networks & locations rather than having to use the exact IP address in there.


I think it could have been the duplication of that subnet in network topology so thanks for pointing that out


I was also defining it when on my company VPN which could have caused issues. By removing any duplicates and testing it on my home network or office network, it's working.


Thanks for the advice.



Perfect :)


@fowler_23 Can you provide some details on how you fixed this? 

I'm in the same boat, the system requires that you define the network sites and mask bits for the dynamic emergency policies to work, but also define that same network (minus the mask bits some how) for the LIS.  Policies are working, it's matching the sites enough to give me the proper policy but the LIS is not matching even though it's in there.  Can you provide some direction on how you defined these to setup network sites and LIS database?

"endpointNetwork": "Trusted",

"reason": "Matched"
"reason": "NotMatched"