In enterprise telecommunications and Microsoft Teams Phone System architectures, understanding the physical location of users and IP endpoints is essential for regulatory compliance, dynamic emergency call routing (E911), and Location-Based Routing (LBR). When a user dials an emergency service number (such as 999 or 911), or when toll bypass regulations prohibit routing PSTN calls between specific geographic branch offices and local PBX trunks, Microsoft Teams must match the caller’s active network IP address to a known physical location. In Microsoft Teams PowerShell, administrators construct this network topology using Network Regions, Network Sites, and Network Subnets through the *-CsTenantNetworkSite and *-CsTenantNetworkSubnet cmdlets.
Understanding Microsoft Teams Network Topology Architecture
Microsoft Teams models enterprise corporate networks through a hierarchical three-tiered structure:
- Network Region (
CsTenantNetworkRegion): The top-level geographic hub (e.g., “EMEA”, “NorthAmerica”, “APAC”) coordinating central bandwidth management and interconnecting sites. - Network Site (
CsTenantNetworkSite): Represents a specific physical facility, office building, or branch campus (e.g., “London-HQ”, “Manchester-Branch”). It binds directly to emergency calling policies, emergency call routing policies, and Location-Based Routing flags. - Network Subnet (
CsTenantNetworkSubnet): Maps internal IPv4 or IPv6 network ranges (CIDR blocks, e.g.,10.20.0.0/24) directly to a specific Network Site. When a Teams client connects from an IP within that subnet, Teams dynamically assigns the user to the corresponding physical site.
Connecting to the Microsoft Teams PowerShell Module
Configuring network topology components requires Teams Administrator or Global Administrator privileges in Microsoft 365. Connect via elevated PowerShell:
# Install Microsoft Teams module if not present
Install-Module -Name MicrosoftTeams -Force -AllowClobber
# Authenticate to tenant
Connect-MicrosoftTeams
Inspecting Existing Network Topology Components
To inspect currently defined network regions, sites, and subnets:
# List all network regions
Get-CsTenantNetworkRegion
# List all network sites
Get-CsTenantNetworkSite
# List all mapped subnets
Get-CsTenantNetworkSubnet
To view comprehensive properties for a specific site:
Get-CsTenantNetworkSite -Identity "London-HQ-Site" | Select-Object NetworkSiteId, NetworkRegionId, LocationBasedRoutingEnable, EmergencyCallingPolicy, EmergencyCallRoutingPolicy | Format-List
Constructing a Physical Office Network Topology
Building a fully functional network topology requires establishing the parent region, creating the physical site, and mapping internal IP subnets.
Step 1: Create the Parent Network Region
If a parent geographic region does not already exist, create it using New-CsTenantNetworkRegion:
New-CsTenantNetworkRegion -NetworkRegionId "UK-Region" `
-Description "United Kingdom geographic network region"
Step 2: Create the Physical Network Site with New-CsTenantNetworkSite
Create the network site, linking it to the parent region, assigning emergency calling policies, and enabling Location-Based Routing:
# Query available emergency calling policy
$EmergPolicy = (Get-CsTeamsEmergencyCallingPolicy -Identity "UK-Standard-E911").Identity
# Create Network Site
New-CsTenantNetworkSite -NetworkSiteId "London-HQ-Site" `
-NetworkRegionId "UK-Region" `
-Description "London Corporate Headquarters - 100 Victoria Street" `
-LocationBasedRoutingEnable $true `
-EmergencyCallingPolicy $EmergPolicy
Step 3: Map IP Subnets to the Site with New-CsTenantNetworkSubnet
Associate the internal local area network subnets with the newly created site. Subnets are defined using standard CIDR notation:
# Map office floor 1 IPv4 subnet
New-CsTenantNetworkSubnet -SubnetId "10.150.10.0" `
-MaskBits 24 `
-NetworkSiteId "London-HQ-Site" `
-Description "London HQ Floor 1 Wired Voice VLAN"
# Map office wireless voice subnet
New-CsTenantNetworkSubnet -SubnetId "10.150.20.0" `
-MaskBits 24 `
-NetworkSiteId "London-HQ-Site" `
-Description "London HQ Wi-Fi Calling Subnet"
Modifying Existing Network Sites and Subnets
Administrators frequently update site properties as emergency routing policies change or new subnets are commissioned.
Updating Site Policies and Location-Based Routing
To enable or disable Location-Based Routing or assign a dedicated emergency routing policy to an established site:
Set-CsTenantNetworkSite -Identity "London-HQ-Site" `
-EmergencyCallRoutingPolicy "UK-DirectRouting-Emergency" `
-LocationBasedRoutingEnable $true
Reassigning a Subnet to a Different Site
If network restructuring reallocates an IP block to a different branch facility:
Set-CsTenantNetworkSubnet -Identity "10.150.20.0" `
-NetworkSiteId "Manchester-Branch-Site"
Removing Subnets and Network Sites
When decommissioning a physical facility, you must delete all child subnets associated with the site before deleting the parent site entity:
# Remove subnets mapped to site
Remove-CsTenantNetworkSubnet -Identity "10.150.10.0" -Confirm:$false
Remove-CsTenantNetworkSubnet -Identity "10.150.20.0" -Confirm:$false
# Remove the network site
Remove-CsTenantNetworkSite -Identity "London-HQ-Site" -Confirm:$false
Validating Location Resolution for Client Endpoints
Once subnets are mapped, administrators can verify that external and internal IP handshakes resolve properly using Teams voice diagnostics:
# Audit subnet alignment across all defined sites
Get-CsTenantNetworkSubnet | Select-Object SubnetId, MaskBits, NetworkSiteId, Description | Format-Table
When a Teams client boots or connects to the corporate network on 10.150.10.45, Teams evaluates the active subnet, binds the client to London-HQ-Site, and routes emergency calls directly to the local emergency response desk defined in the site policy.
By leveraging PowerShell’s *-CsTenantNetworkSite and *-CsTenantNetworkSubnet cmdlets, enterprise voice engineers establish deterministic network topologies, fulfilling emergency dispatch compliance and enforcing rigorous Location-Based Routing across global Microsoft Teams environments.