Configuration · guide

Setting up Teams voice routing policies and dial plans

Microsoft Teams Phone

Verified 2026-09-30 · 77 sources · tier 2

For Teams Phone administrators configuring dial plans, voice routes, and routing policies for Direct Routing..

Teams Phone call routing for Direct Routing relies on dial plans, PSTN usages, voice routes, and voice routing policies to normalize and deliver outbound calls 52. For Calling Plan, Operator Connect, and Teams Phone Mobile, these dial plans and routing policies are preconfigured at the service level, leaving custom routing configuration to Direct Routing and extension dialing environments 13.

Before you start

Before building routing policies and dial plans:

  • Confirm each pilot user has a Teams Phone application license and an associated PSTN solution 73.
  • Assign each pilot user a Direct Routing phone number using Set-CsPhoneNumberAssignment -Identity <user> -PhoneNumber <number> -PhoneNumberType DirectRouting, which automatically enables the account for Enterprise Voice 23.
  • Confirm each user is set to Teams Only mode (UpgradeToTeams instance of TeamsUpgradePolicy) so calls land in the Teams client, noting that Direct Routing is unsupported in Islands coexistence mode 62​74.
  • Direct Routing infrastructure must already be deployed, including a certified SBC, paired FQDN in a verified tenant domain, public IP, and trusted TLS certificate 75​76. Note that emergency dialing requires separate emergency call routing policies 77.
  • Export current configuration baseline data: 43​42​28
    • Run (Get-CsOnlinePSTNUsage).Usage to retrieve the complete list of tenant PSTN usages, as standard cmdlet output may truncate values 43.
    • Run Get-CsOnlineVoiceRoute to list existing routes 42.
    • Run Get-CsEffectiveTenantDialPlan -Identity <user> to review normalization rules already applied by the service country dial plan 28.

What changes by situation

Pick your answers to see only your path. Nothing is sent anywhere until you make a plan.

How should online voice routing policies be scoped and assigned?
Where do dial plan normalization rules need to be configured?
What number format does your SBC or carrier require from Teams?
What outbound caller ID should be presented on PSTN calls?

Four questions. One permanent page you can send to your manager.

Step 1 Establish baseline dial plan normalization

Do

Evaluate how dialed numbers normalize for pilot users before applying any custom tenant rules by running Test-CsEffectiveTenantDialPlan -DialedNumber <digits> -Identity <user> 63. Pipe Get-CsEffectiveTenantDialPlan -Identity <user> into Test-CsEffectiveTenantDialPlan or supply -CallerNumber with the user's assigned phone number if preferred 64. Use the -TenantScopeOnly parameter to evaluate tenant-scoped rules in isolation from the service plan 65.

Verify

Confirm the returned normalized number matches the baseline output from the service dial plan 63.

Rollback

Suggested rollback: retain the recorded baseline output for subsequent comparison.

Step 2 Configure normalization rules

Rely on built-in service country dial plans without custom tenant rules

Do

Do not create tenant dial plan normalization rules 19. If no tenant normalization rule matches a dialed number, the service dial plan prepends the country code of the user's usage location 58.

Verify

Run Test-CsEffectiveTenantDialPlan -DialedNumber <digits> -Identity <user> to verify that standard national and international dialing converts to E.164 via the service dial plan 63​58.

Rollback

Suggested rollback: no configuration changes were made to roll back.

Add normalization rules to the tenant Global dial plan

Do

Add normalization rules to the tenant Global dial plan for non-E.164 patterns, such as extensions or short dialing, that are not present in the service plan 19. Build each rule in memory using New-CsVoiceNormalizationRule -Parent Global -Name <name> -Pattern <regex> -Translation <translation> -InMemory and append it with Set-CsTenantDialPlan -Identity Global -NormalizationRules @{add=$rule} 44. Rules can also be created in the Teams admin center under Voice > Dial plans 60. Observe these constraints:

  • Ensure rules output numbers starting with a leading plus sign, as numbers normalized without a leading plus are normalized again by the calling service 53.
  • Construct patterns using valid .NET regular expressions to avoid client or service faults 21.
  • Arrange rules with more restrictive patterns above less restrictive patterns, because evaluation stops at the first match 54.
  • Microsoft enforces a maximum of 50 normalization rules in a single dial plan 35.
  • Handle external access prefixes using normalization rules, as the ExternalAccessPrefix and OptimizeDeviceDialing parameters have been removed 26.
  • If supporting 3PIP devices like the Polycom VVX 601, split rules with optional leading tokens (such as ^0?(999)$) into two distinct rules 1.
  • For 4-digit extension dialing, follow Microsoft's pattern format ^(\d{4})$ translating to +1425555$1 55.

Verify

Run (Get-CsTenantDialPlan -Identity Global).NormalizationRules to verify the rule ordering and regex definitions 44.

Rollback

Remove created rules by passing the rule reference into Set-CsTenantDialPlan -Identity Global -NormalizationRules @{remove=$rule} 44.

Create and assign custom tenant dial plans per site or user group

Do

Create a user-scoped tenant dial plan for each site using New-CsTenantDialPlan -Identity <SiteName> -SimpleName <unique_name> -NormalizationRules <rules> 44. Alternatively, create the plan in the Teams admin center under Voice > Dial plans 60. Adhere to these constraints:

  • Ensure the SimpleName is unique and non-empty, following a consistent organizational naming convention 17.
  • Ensure each dial plan contains at least 1 normalization rule 18.
  • Ensure all normalization rules output numbers starting with a plus sign 53.
  • Use valid .NET regular expressions and place restrictive rules ahead of broad rules 21​54.
  • Keep the number of normalization rules within each dial plan at or below 50, and ensure total tenant dial plans do not exceed the tenant limit of 1,000 35​16.
  • Split optional leading tokens into two rules if 3PIP devices are used 1.

Verify

Run Get-CsTenantDialPlan -Identity <SiteName> to inspect the rules and configuration properties 44.

Rollback

Delete the custom tenant dial plan using Remove-CsTenantDialPlan -Identity <SiteName> -Force 44.

Step 3 Assign tenant dial plans

Rely on built-in service country dial plans without custom tenant rules

Do

Do not assign tenant dial plans 20. Users automatically inherit the service dial plan corresponding to their assigned usage location 20.

Verify

Run Get-CsUserPolicyAssignment -Identity <user> -PolicyType TenantDialPlan and confirm that no per-user tenant dial plan is assigned 14.

Rollback

Suggested rollback: no assignments were made to reverse.

Add normalization rules to the tenant Global dial plan

Do

Do not make user-level dial plan assignments 24. Users without an explicit user dial plan automatically receive the tenant Global dial plan merged with their service dial plan 24.

Verify

Run Get-CsUserPolicyAssignment -Identity <user> -PolicyType TenantDialPlan to confirm no user-level policy is overriding the tenant Global dial plan 14.

Rollback

Suggested rollback: reverse changes by removing normalization rules from the Global dial plan.

Create and assign custom tenant dial plans per site or user group

Do

Assign the site dial plan to a pilot user with Grant-CsTenantDialPlan -Identity <user> -PolicyName <SiteName> 15. For broad deployment, assign the plan to user groups using Grant-CsTenantDialPlan -Group <group_id> -Rank <number> -PolicyName <SiteName> 15. Note that direct user assignments take precedence over group assignments, and higher group rank takes precedence over lower group rank 39.

Verify

Verify the assigned policy using Get-CsUserPolicyAssignment -Identity <user> -PolicyType TenantDialPlan 14. For group assignments, review operation status in the Teams admin center Activity log, which records group operations for 30 days 2.

Rollback

Remove the user assignment using Grant-CsTenantDialPlan -Identity <user> -PolicyName $null to return the user to the Global dial plan fallback 15.

Step 4 Validate dial plan normalization

Do

Test dialing patterns across all user scopes by running Test-CsEffectiveTenantDialPlan -DialedNumber <digits> -Identity <user> for pilot accounts 63. Alternatively, test rules within the Teams admin center using the Test dial plan tool under Voice > Dial plans 60. The effective dial plan resolves by checking user dial plan rules first, tenant Global dial plan rules second, and service dial plan rules last, with user and Global plans never merging together directly 24.

Verify

Confirm each dialed format resolves to a normalized string starting with a leading plus sign 53. Note that Teams clients use this effective dial plan across all outbound calls, including numbers selected from call history or web telephone links 11.

Rollback

Suggested rollback: if normalization fails or matches an incorrect rule, reorder the rules or adjust regex match patterns in the dial plan.

Step 5 Configure PSTN usages

Edit the Global (Org-wide default) voice routing policy directly for all users

Do

Add required PSTN usages to the global usage list using Set-CsOnlinePstnUsage -Identity Global -Usage @{Add="<usage_name>"} 43. In the Teams admin center, usages are managed under Voice > Direct Routing > Manage PSTN usage records 61. Do not use @{replace=...}, as replacing the usage list removes all other existing usages across the tenant 69.

Verify

Run (Get-CsOnlinePSTNUsage).Usage to confirm the full usage name appears without truncation 43.

Rollback

Remove the created usage entry using Set-CsOnlinePstnUsage -Identity Global -Usage @{Remove="<usage_name>"} 69.

Create one custom voice routing policy and assign it to Direct Routing users

Do

Define the PSTN usages needed for the custom Direct Routing policy using Set-CsOnlinePstnUsage -Identity Global -Usage @{Add="<usage_name>"} 43. Ensure unique naming across the tenant, as usages exist strictly as a single tenant-wide global collection 69. Do not use @{replace=...} to avoid clearing pre-existing usages 69.

Verify

Run (Get-CsOnlinePSTNUsage).Usage to confirm the new usages are registered 43.

Rollback

Remove the added usage entry using Set-CsOnlinePstnUsage -Identity Global -Usage @{Remove="<usage_name>"} 69.

Create distinct custom voice routing policies per site or user group

Do

Create site-specific and shared PSTN usages using Set-CsOnlinePstnUsage -Identity Global -Usage @{Add="<site_usage_name>"} 43. Usages can be shared across multiple policies or isolated to specific sites 52. Avoid using @{replace=...} to prevent removing existing tenant usages 69.

Verify

Run (Get-CsOnlinePSTNUsage).Usage to confirm all site and shared usage records appear 43.

Rollback

Remove each created site usage using Set-CsOnlinePstnUsage -Identity Global -Usage @{Remove="<site_usage_name>"} 69.

Step 6 Create voice routes

Do

Create voice routes pairing normalized number patterns with PSTN usages and SBC gateways using New-CsOnlineVoiceRoute -Identity <route_name> -NumberPattern <regex> -OnlinePstnGatewayList <sbc_fqdns> -Priority <integer> -OnlinePstnUsages <usage_name> 42. In the Teams admin center, create routes under Voice > Direct Routing > Voice routes 61. Follow these routing rules:

  • Ensure referenced PSTN usages already exist, as routes created with empty usage or gateway lists trigger warnings 50.
  • All voice routes are created at Global scope and require unique names across the tenant 51.
  • Explicitly define -NumberPattern with a valid regular expression, noting that the cmdlet default is [0-9]{10} and .* routes all calls to the SBC 49​72.
  • When a dialed number includes an extension (such as +1425XXXXXXX;ext=YYY), Teams strips the extension and applies the voice route pattern solely against the primary number 27.
  • Explicitly assign -Priority rather than allowing automatic assignment 46. When a number matches multiple routes, the route with the lowest Priority integer is evaluated first 40.
  • Gateways listed within a single route are tried in random order; do not place non-interchangeable SBCs in the same route 56.
  • For trunk failover, create a secondary voice route using the same number pattern but a higher Priority integer pointing to backup SBC gateways 3.

Verify

Run Get-CsOnlineVoiceRoute to verify route names, number patterns, priority values, gateway lists, and associated PSTN usages 42.

Rollback

Delete the voice routes using Remove-CsOnlineVoiceRoute -Identity <route_name> 48.

Step 7 Configure online voice routing policies

Edit the Global (Org-wide default) voice routing policy directly for all users

Do

Update the Global voice routing policy to include the required PSTN usages using Set-CsOnlineVoiceRoutingPolicy -Identity Global -OnlinePstnUsages @{Replace="<usage_1>","<usage_2>"} 71. Alternatively, create a custom policy and assign it globally using Grant-CsOnlineVoiceRoutingPolicy -PolicyName <policy_name> -Global 31. Arrange usages in order from most specific to least specific, as matching terminates at the first matching usage and catch-all usages placed earlier prevent evaluation of later usages 70. Note that the Global policy cannot be deleted or renamed 30.

Verify

Run Get-CsOnlineVoiceRoutingPolicy -Identity Global and verify that the OnlinePstnUsages array shows usages in the required order 48​70.

Rollback

Restore the initial PSTN usage order recorded earlier using Set-CsOnlineVoiceRoutingPolicy -Identity Global -OnlinePstnUsages @{Replace=<recorded_list>} 71.

Create one custom voice routing policy and assign it to Direct Routing users

Do

Create a new voice routing policy with ordered usages using New-CsOnlineVoiceRoutingPolicy -Identity "<policy_name>" -OnlinePstnUsages "<usage_1>","<usage_2>" 41. Alternatively, add the policy in the Teams admin center under Voice > Voice routing policies > Add 61. List specific usages ahead of general or catch-all usages to ensure correct route evaluation 70.

Verify

Run Get-CsOnlineVoiceRoutingPolicy -Identity "<policy_name>" to confirm policy existence and usage order 48.

Rollback

Unassign the policy from any test accounts, then delete it using Remove-CsOnlineVoiceRoutingPolicy -Identity "<policy_name>" 48.

Create distinct custom voice routing policies per site or user group

Do

Create custom voice routing policies for each site using New-CsOnlineVoiceRoutingPolicy -Identity "<site_policy_name>" -OnlinePstnUsages "<site_usage>","<shared_usage>" 41. In the Teams admin center, add them under Voice > Voice routing policies 61. Always place site-specific usages ahead of broad national or international catch-all usages 70.

Verify

Run Get-CsOnlineVoiceRoutingPolicy and confirm each site policy is created with its proper ordered usages 48.

Rollback

Unassign site policies from all accounts, then remove them using Remove-CsOnlineVoiceRoutingPolicy -Identity "<site_policy_name>" 48.

Step 8 Assign online voice routing policies

Edit the Global (Org-wide default) voice routing policy directly for all users

Do

Do not assign per-user voice routing policies 30. Users automatically inherit the Global policy unless a custom policy is explicitly assigned 30. Microsoft cautions that configuring the Global policy causes all voice-enabled users across the organization to inherit it, which can unintentionally direct Calling Plan or Operator Connect users to Direct Routing trunks 29. Assigning a voice routing policy does not by itself enable a user for PSTN calling; Direct Routing enablement is also required 38.

Verify

Run Get-CsOnlineUser -Identity <user> | Select-Object OnlineVoiceRoutingPolicy and verify the property is empty, indicating inheritance of Global 41​39.

Rollback

Suggested rollback: reverse the usage assignments on the Global policy in Step 7.

Create one custom voice routing policy and assign it to Direct Routing users

Do

Assign the custom policy to Direct Routing users individually using Grant-CsOnlineVoiceRoutingPolicy -Identity <user> -PolicyName "<policy_name>" or in the Teams admin center under Users > Manage users > Policies 41​61. To assign to a group, run Grant-CsOnlineVoiceRoutingPolicy -Group <group_id> -Rank <number> -PolicyName "<policy_name>" (supported in Teams PowerShell Module 4.5.1-preview or later) 32. Note that if a Calling Plan user is assigned a voice routing policy, matching numbers exit via Direct Routing and non-matching numbers route over Calling Plan 4.

Verify

Run Get-CsOnlineUser -Identity <user> | Select-Object OnlineVoiceRoutingPolicy to confirm the assignment 41.

Rollback

Remove the custom policy assignment using Grant-CsOnlineVoiceRoutingPolicy -Identity <user> -PolicyName $null to return the user to the Global policy 33.

Create distinct custom voice routing policies per site or user group

Do

Assign the site policy to individual pilot users using Grant-CsOnlineVoiceRoutingPolicy -Identity <user> -PolicyName "<site_policy_name>" 41. Assign site groups using Grant-CsOnlineVoiceRoutingPolicy -Group <group_id> -Rank <number> -PolicyName "<site_policy_name>" (Teams PowerShell Module 4.5.1-preview or later) 32. In the event of overlapping group memberships, the policy with the highest rank applies; direct per-user assignments override all group policies 39.

Verify

Run Get-CsOnlineUser -Identity <user> | Select-Object OnlineVoiceRoutingPolicy to confirm the assigned site policy 41. Monitor group assignment processing using the Teams admin center Activity log 2.

Rollback

Revert user assignments using Grant-CsOnlineVoiceRoutingPolicy -Identity <user> -PolicyName $null 33.

Step 9 Configure SBC number translation rules

Standard E.164 format with a leading plus sign

Do

Do not configure translation rules on the Teams online PSTN gateway 53. Dial plans already emit numbers in standard E.164 format with a leading plus sign 53.

Verify

Suggested check: verify that test SIP INVITE messages arriving at the SBC retain the leading plus sign and full E.164 string.

Rollback

Suggested rollback: no translation rules were created to remove.

Stripped or national format without a leading plus sign

Do

Create number translation rules to convert normalized E.164 numbers into the required format before sending them to the SBC 66. Create the rule using New-CsTeamsTranslationRule -Identity "<rule_name>" -Pattern '<regex>' -Translation '<translation>' 68. For example, stripping +1 from a 10-digit number uses pattern ^\+1(\d{10})$ and translation $1 59. Attach translation rules to the SBC configuration using Set-CsOnlinePSTNGateway -Identity <sbc_fqdn> -OutboundPSTNNumberTranslationRules <rule_name> for called numbers and -OutboundTeamsNumberTranslationRules <rule_name> for calling numbers 68. Follow these constraints:

  • Direct Routing customers should normalize to a leading plus sign in dial plans and strip the plus using route-based translation rules to prevent double normalization 58.
  • Translation rules on an SBC execute in the order listed 68.
  • Adhere to translation limits: a maximum of 400 translation rules total, rule names up to 100 symbols, pattern expressions up to 1024 symbols, and translation strings up to 256 symbols 67.
  • For inbound calls, inbound translation rules (InboundPSTNNumberTranslationRules and InboundTeamsNumberTranslationRules) must yield numbers that match user phone number assignments exactly (from 3 to 38 digits, including any extension) so Reverse Number Lookup succeeds 68​45.

Verify

Run Get-CsTeamsTranslationRule -Identity "<rule_name>" to confirm rule properties, and inspect Get-CsOnlinePSTNGateway -Identity <sbc_fqdn> to confirm attached outbound rules 68.

Rollback

Remove the translation rule from the gateway using Set-CsOnlinePSTNGateway -Identity <sbc_fqdn> -OutboundPSTNNumberTranslationRules @{Remove="<rule_name>"} and delete the rule with Remove-CsTeamsTranslationRule -Identity "<rule_name>" 68.

Step 10 Configure outbound caller ID policies

The user's assigned direct inward dial number

Do

Do not create custom caller ID policies 7. The default caller ID behavior in Teams presents the user's assigned telephone number on outbound calls 7.

Verify

Suggested check: place an outbound PSTN call from a pilot user and confirm the dialed device displays the user's assigned phone number.

Rollback

Suggested rollback: no custom caller ID policy was assigned.

A substitute number assigned to an auto attendant or call queue resource account

Do

Create a custom caller ID policy substituting the caller ID with a resource account number using New-CsCallingLineIdentity -Identity "<policy_name>" -CallingIDSubstitute Resource -ResourceAccount <resource_account_object_id> -CompanyName "<company_name>" -EnableUserOverride $false (requires Teams PowerShell module 2.3.1 or later) 5. Assign the policy using Grant-CsCallingLineIdentity -Identity <user> -PolicyName "<policy_name>" 5. Alternatively, create and assign the policy in the Teams admin center under Voice > Caller ID policies 9. Follow these operational rules:

  • Do not use -CallingIDSubstitute Service, which is deprecated and ignored 8.
  • The selected resource account must have an assigned telephone number; Direct Routing numbers assigned directly to individual users cannot be used as substitute caller IDs 6​9.
  • Setting -EnableUserOverride $false prevents end users from overriding caller ID presentation via client settings 10.
  • For Direct Routing, the substitute caller ID appears in the SIP From header; setting -ForwardPai $true on the SBC gateway configuration populates the real calling user in the P-Asserted-Identity header 22.
  • Calling party name strings can contain up to 200 characters, though delivery depends on carrier support 12.

Verify

Run Get-CsCallingLineIdentity -Identity "<policy_name>" to confirm policy attributes 5. Place a test outbound call and confirm the recipient device displays the resource account phone number 7. Emergency calls always present the calling user's individual calling line ID regardless of caller ID policy configuration 25.

Rollback

Unassign the policy using Grant-CsCallingLineIdentity -Identity <user> -PolicyName $null and remove it using Remove-CsCallingLineIdentity -Identity "<policy_name>" 5.

Anonymous

Do

Create an anonymous caller ID policy using New-CsCallingLineIdentity -Identity "<policy_name>" -CallingIDSubstitute Anonymous -EnableUserOverride $false (Teams PowerShell module 2.3.1 or later) 5. Assign the policy using Grant-CsCallingLineIdentity -Identity <user> -PolicyName "<policy_name>" 5. Ensure -EnableUserOverride $false is set, because client-level user override settings take precedence and could expose the caller's number 10.

Verify

Run Get-CsCallingLineIdentity -Identity "<policy_name>" to verify the policy 5. Place an outbound call and confirm the receiving device displays Anonymous 7. Note that emergency calls continue to transmit the user's actual phone number 25.

Rollback

Unassign the policy with Grant-CsCallingLineIdentity -Identity <user> -PolicyName $null and delete it with Remove-CsCallingLineIdentity -Identity "<policy_name>" 5.

Step 11 Perform end-to-end routing validation

Do

Validate end-to-end call paths across pilot users before broader assignment:

  • Run Test-CsEffectiveTenantDialPlan -DialedNumber <digits> -Identity <user> across dialed patterns (local, national, international, extension) to verify normalization rules 63.
  • Place outbound test calls to numbers matching each configured voice route 42. Call routing directs traffic based on the called number pattern, or a combination of the pattern and calling user 47.
  • Place a test call to a non-matching number; for users licensed for Teams Phone without Calling Plan, non-matching numbers are dropped, while users with an additional Calling Plan license fall back to Calling Plan infrastructure 36.
  • Verify failover routes by disabling the primary SBC; confirm calls successfully advance to the higher priority number backup route 3. If all SBCs across matching routes are unavailable, calls drop 3.
  • For forwarded or transferred inbound calls where the ingress SBC is listed among egress SBCs, verify outbound traffic prefers that ingress SBC regardless of route priority 34.
  • Microsoft 365 admins can run a Direct Routing self-diagnostic from the Microsoft 365 admin center to verify a user is correctly configured for Direct Routing, noting this tool is unavailable in Microsoft 365 Government, Microsoft 365 operated by 21Vianet, and Microsoft 365 Germany 57.

Verify

Suggested check: verify that test calls egress the correct SBCs, display expected caller ID details, and establish two-way audio.

Rollback

Suggested rollback: if routing errors occur, review voice route priority orders, PSTN usage sequences in voice routing policies, and regex patterns.

Applicability

Applies to: Microsoft Teams Phone and Microsoft Teams. Deployments: multi-tenant. Sources checked 2026-09-30. Specific features carry defined prerequisites and exclusions:

  • Direct Routing group policy assignments with -Group and -Rank require Teams PowerShell Module 4.5.1-preview or later 32.
  • Managing caller ID policies with CsCallingLineIdentity cmdlets requires Teams PowerShell Module 2.3.1 or later 5.
  • The Direct Routing self-diagnostic tool is excluded from Microsoft 365 Government, Microsoft 365 operated by 21Vianet, and Microsoft 365 Germany 57.
  • Dial plan normalization rules with optional leading tokens are unsupported on 3PIP devices like the Polycom VVX 601 1.

What remains uncertain

  • Client-side policy propagation latency for newly assigned dial plans and voice routing policies is not covered by the sources below.
  • The behavior and error handling when deleting a PSTN usage record that remains referenced by an active voice route or routing policy is not covered by the sources below.
  • Specific PowerShell cmdlets for unassigning or clearing group-based voice routing policy assignments are not covered by the sources below.
  • Specific manufacturer SBC configuration interfaces and SIP trace inspection procedures are not covered by the sources below.

See also

Configures

  • Microsoft teams phone — Outbound Direct Routing routing (PSTN usages; voice routes; online voice routing policies); tenant dial plans and caller ID policies for Teams Phone.

Sources

  1. 1
    Normalization rules whose first token is optional (for example ^0?(999)$) are not supported on 3PIP devices such as the Polycom VVX 601, and Microsoft advises splitting such a rule into two rules.
    Normalization rules for Microsoft Teams dial plans · Creating normalization rules, Note · Checked 2026-09-30
  2. 2
    The Teams admin center Activity log shows group policy operations and batch policy operations (more than 20 users) for the last 30 days, with statuses including In progress, Rolling out to users and Completed.
    Assign policies in Teams · View your policy assignments in the Activity log · Checked 2026-09-30
  3. 3
    A second voice route with the same number pattern and a lower priority (higher priority number) acts as a backup: it is tried only when none of the SBCs in the higher-priority route are available, and if no SBC in any matching route is available the call is dropped.
    Configure call routing for Direct Routing · Example 1, Call Flow 2 description and summary table (Redmond 1 / Redmond 2) · Checked 2026-09-30
  4. 4
    If a user with a Calling Plan license is also assigned an online voice routing policy, a dialed number matching a pattern in that policy is routed over Direct Routing and a non-matching number is routed through the Calling Plan PSTN infrastructure.
    Configure call routing for Direct Routing · Voice routing policy considerations (first paragraph) · Checked 2026-09-30
  5. 5
    Caller ID policies are managed with New-, Set-, Remove-, Get- and Grant-CsCallingLineIdentity in Teams PowerShell module 2.3.1 or later; a resource-account policy uses -CallingIDSubstitute Resource with -ResourceAccount set to the resource account's ObjectId and optional -CompanyName, and an anonymous policy uses -CallingIDSubstitute Anonymous.
    Manage caller ID for users - Microsoft Teams · Use PowerShell; New custom caller ID policy · Checked 2026-09-30
  6. 6
    Numbers that cannot be used as a substitute outbound caller ID include Calling Plan or Operator Connect numbers with usage type User, any Direct Routing number assigned to a user, and Skype for Business Server on-premises numbers.
    Manage caller ID for users - Microsoft Teams · Outbound caller ID behavior, list after 'You can't assign the following types of phone numbers' · Checked 2026-09-30
  7. 7
    A Teams caller ID policy can send the user's assigned number (the default), Anonymous, or a substitute number assigned to a resource account used by an auto attendant or call queue (Calling Plan service or toll-free, Operator Connect or Direct Routing).
    Manage caller ID for users - Microsoft Teams · Outbound caller ID behavior, Outbound calling line ID; Configure caller ID policies table · Checked 2026-09-30
  8. 8
    CallingIDSubstitute = Service is deprecated: new caller ID policies can no longer use it and existing policies that use it are not honored; Resource should be used instead.
    Manage caller ID for users - Microsoft Teams · Use PowerShell, Grant a caller ID policy, Note · Checked 2026-09-30
  9. 9
    Caller ID policies are managed in the Teams admin center under Voice > Caller ID policies; users get the global policy unless a custom one is assigned, and when choosing Resource account only resource accounts with an assigned phone number are listed, possibly after a delay of a few minutes.
    Manage caller ID for users - Microsoft Teams · Use the Teams admin center; Create a custom caller ID policy, step 6 · Checked 2026-09-30
  10. 10
    The caller ID policy setting Override the caller ID policy (-EnableUserOverride) takes precedence over the policy's other settings and lets users choose in client settings whether their number is shown, so it can make a resource-account policy send Anonymous or an Anonymous policy send the user's number.
    Manage caller ID for users - Microsoft Teams · End user control that overrides the caller ID policy · Checked 2026-09-30
  11. 11
    The Teams client normalizes numbers for all outbound calls, including calls placed from call history or from telephone-number links, using the user's effective dial plan.
    Microsoft Teams Dial plans for phone call routing · Dial plans and routing considerations, bullet · Checked 2026-09-30
  12. 12
    The calling party name in a caller ID policy can be up to 200 characters, downstream systems may support fewer, and delivery of the name to the called party depends on PSTN operators.
    Manage caller ID for users - Microsoft Teams · Outbound calling party name, bullet and Note · Checked 2026-09-30
  13. 13
    For Calling Plan, Operator Connect and Teams Phone Mobile, dial plans and voice routing policies are preconfigured at the service level and administration is not necessary, whereas Direct Routing or extension dialing requires the admin to configure voice routes and assign voice routing policies.
    Microsoft Teams Dial plans for phone call routing · User dial plans with Calling Plans and Operator Connect; User dial plans with Direct Routing or extension dialing · Checked 2026-09-30
  14. 14
    Whether a user has a per-user tenant dial plan can be checked with Get-CsUserPolicyAssignment -Identity <user> -PolicyType TenantDialPlan.
    Grant-CsTenantDialPlan (MicrosoftTeams) · Description, last paragraph · Checked 2026-09-30
  15. 15
    Grant-CsTenantDialPlan assigns a tenant dial plan to a user (-Identity), to a group (-Group with -Rank), or sets the Global instance (-Global); -PolicyName $null removes a user's dial plan so the user falls back to the global dial plan.
    Grant-CsTenantDialPlan (MicrosoftTeams) · Description; Syntax; Examples 1-3 · Checked 2026-09-30
  16. 16
    A tenant can have at most 1,000 tenant dial plans.
    Microsoft Teams Dial plans for phone call routing · Dial plans and routing considerations, first sentence · Checked 2026-09-30
  17. 17
    Microsoft recommends naming user dial plans after the geographic location or group of users they apply to and applying one naming convention across all sites; the dial plan SimpleName cannot be empty and must be unique.
    Create and manage dial plans · Name and simple name · Checked 2026-09-30
  18. 18
    Each dial plan must have at least one normalization rule associated with it.
    Create and manage dial plans · Using the Microsoft Teams admin center, Create a dial plan, step 3 · Checked 2026-09-30
  19. 19
    Microsoft's dial plan planning steps are: decide whether a custom dial plan is needed (typically to support non-E.164 dialing such as extensions or abbreviated national dialing); use user-scoped dial plans if users have different local dialing requirements; define only patterns not already in the service country dial plan; and adopt an organization-wide naming scheme.
    Microsoft Teams Dial plans for phone call routing · Planning for tenant dial plans, Steps 1-4 · Checked 2026-09-30
  20. 20
    Teams has three dial plan scopes: a Microsoft-managed service dial plan (not configurable, assigned automatically from the user's usage location), the tenant Global dial plan, and user dial plans that an admin creates and assigns.
    Microsoft Teams Dial plans for phone call routing · Dial plan scopes and a user's effective dial plan, first table · Checked 2026-09-30
  21. 21
    Normalization rules use .NET Framework regular expressions for the match pattern plus a translation, and Microsoft warns that invalid expressions in dial plan normalization rules may cause client or service issues.
    Normalization rules for Microsoft Teams dial plans · Creating normalization rules · Checked 2026-09-30
  22. 22
    For Direct Routing, the substituted caller ID number and calling party name are sent in the SIP From header, and if the SBC's online PSTN gateway is configured with -ForwardPai $true the P-Asserted-Identity header carries the real calling user.
    Manage caller ID for users - Microsoft Teams · Outbound caller ID behavior, paragraph beginning 'For Direct Routing' · Checked 2026-09-30
  23. 23
    Set-CsPhoneNumberAssignment -Identity <user> -PhoneNumber <number> -PhoneNumberType DirectRouting assigns a Direct Routing number and automatically enables the user for Enterprise Voice; Microsoft recommends, but does not require, full E.164 format.
    Enable users for Direct Routing · Configure the phone number and enable enterprise voice, Use PowerShell · Checked 2026-09-30
  24. 24
    A user's effective dial plan merges the service country dial plan with either the tenant Global dial plan or an assigned user dial plan (never both), and user dial plan rules take precedence over tenant Global rules, which take precedence over service dial plan rules.
    Microsoft Teams Dial plans for phone call routing · Dial plan scopes and a user's effective dial plan, paragraphs after the first table and second table · Checked 2026-09-30
  25. 25
    Emergency calls always send the user's own calling line ID to the PSAP regardless of the caller ID policy.
    Manage caller ID for users - Microsoft Teams · Outbound caller ID behavior, Important · Checked 2026-09-30
  26. 26
    The ExternalAccessPrefix and OptimizeDeviceDialing parameters have been removed from New-CsTenantDialPlan and Set-CsTenantDialPlan; external access dialing is now handled through normalization rules, and Get-CsTenantDialPlan shows any external access prefix as a normalization rule.
    Grant-CsTenantDialPlan (MicrosoftTeams) · Notes · Checked 2026-09-30
  27. 27
    When a called number contains an extension, the voice route number pattern is applied only to the number without the extension (for +1425XXXXXXX;ext=YYY the pattern is matched against +1425XXXXXXX).
    Configure call routing for Direct Routing · Voice routing policy considerations, Caution item 2 · Checked 2026-09-30
  28. 28
    Get-CsEffectiveTenantDialPlan -Identity <user> returns all normalization rules applicable to the user, and Microsoft recommends using it to see which rules the service country dial plan already provides before writing tenant rules.
    Normalization rules for Microsoft Teams dial plans · Determining the required normalization rules · Checked 2026-09-30
  29. 29
    Microsoft cautions that configuring the global (Org-wide default) online voice routing policy makes every voice-enabled user inherit it, which might inadvertently route PSTN calls from Calling Plan and Operator Connect users to a Direct Routing trunk; to avoid this, create a custom policy and assign it to individual voice-enabled users.
    Configure call routing for Direct Routing · Voice routing policy considerations, Caution item 1 · Checked 2026-09-30
  30. 30
    Users automatically get the global (Org-wide default) voice routing policy unless a custom policy is assigned; the global policy can be edited but cannot be renamed or deleted.
    Manage call routing policies for Direct Routing · Introduction, third paragraph · Checked 2026-09-30
  31. 31
    Grant-CsOnlineVoiceRoutingPolicy -PolicyName <name> -Global makes the named policy the global online voice routing policy, affecting all users in the tenant except those with an explicit policy assignment.
    Grant-CsOnlineVoiceRoutingPolicy (MicrosoftTeams) · Examples, Example 4; Parameters, -Global · Checked 2026-09-30
  32. 32
    Grant-CsOnlineVoiceRoutingPolicy can assign a policy to a group with -Group and -Rank, a syntax supported from Teams PowerShell Module 4.5.1-preview.
    Grant-CsOnlineVoiceRoutingPolicy (MicrosoftTeams) · Examples, Example 5; Notes · Checked 2026-09-30
  33. 33
    Running Grant-CsOnlineVoiceRoutingPolicy with -PolicyName $null removes a user's per-user voice routing policy so the user falls back to the global policy.
    Grant-CsOnlineVoiceRoutingPolicy (MicrosoftTeams) · Examples, Example 2; Parameters, -PolicyName · Checked 2026-09-30
  34. 34
    When an inbound PSTN call is forwarded or transferred and its ingress SBC is also listed as a potential egress SBC, that SBC's route priority is ignored and it is tried before other SBCs.
    Configure call routing for Direct Routing · Example 1, Note below the three-route summary table · Checked 2026-09-30
  35. 35
    Microsoft enforces a maximum of 50 normalization rules in a single dial plan.
    Normalization rules for Microsoft Teams dial plans · Introduction, Note · Checked 2026-09-30
  36. 36
    For a user who has Teams Phone but no Calling Plan, a dialed number that matches no number pattern in the user's voice routing policy is dropped; for a user who also has a Calling Plan, the Calling Plan applies automatically as the last route.
    Configure call routing for Direct Routing · Example 1, Note after the diagram and paragraph after the third-route diagram · Checked 2026-09-30
  37. 37
    Per-site voice routing policies and per-site user dial plans are most likely warranted when sites have different local dialing habits or must egress through different SBCs, while a single policy and the Global dial plan are likely sufficient when all users share one dialing convention and one set of SBCs.inferred
    Microsoft Teams Dial plans for phone call routing · Planning for tenant dial plans, Step 2; combined with ms-learn-dr-voice-routing Call routing overview (routing by pattern plus user) · Checked 2026-09-30
  38. 38
    Assigning a voice routing policy does not by itself enable a user to make PSTN calls; the user must also be enabled for Direct Routing.
    Manage call routing policies for Direct Routing · Introduction, fourth paragraph · Checked 2026-09-30
  39. 39
    A Teams user's effective policy for a policy type is the directly assigned policy if one exists; otherwise the policy of the highest-ranked group assignment among the user's groups; otherwise the global (Org-wide default) policy.
    Assign policies in Teams · Which policy takes precedence? · Checked 2026-09-30
  40. 40
    When a number resolves to more than one voice route, the route with the lowest Priority value is applied first and the rest follow in ascending order.
    New-CsOnlineVoiceRoute (MicrosoftTeams) · Parameters, -Priority · Checked 2026-09-30
  41. 41
    A voice routing policy is created with New-CsOnlineVoiceRoutingPolicy <name> -OnlinePstnUsages <usage list>, assigned with Grant-CsOnlineVoiceRoutingPolicy -Identity <user> -PolicyName <name>, and the assignment is checked with Get-CsOnlineUser <user> | Select OnlineVoiceRoutingPolicy.
    Configure call routing for Direct Routing · Example 1 configuration steps, Using PowerShell, Steps 3 and 4 · Checked 2026-09-30
  42. 42
    A voice route is created with New-CsOnlineVoiceRoute -Identity <name> -NumberPattern <regex> -OnlinePstnGatewayList <SBC FQDNs> -Priority <n> -OnlinePstnUsages <usage>, and checked with Get-CsOnlineVoiceRoute.
    Configure call routing for Direct Routing · Example 1 configuration steps, Using PowerShell, Step 2 · Checked 2026-09-30
  43. 43
    A PSTN usage is created in PowerShell with Set-CsOnlinePstnUsage -Identity Global -Usage @{Add="name"}, and because Get-CsOnlinePSTNUsage output can be truncated, (Get-CsOnlinePSTNUsage).Usage lists the full usage names.
    Configure call routing for Direct Routing · Example 1 configuration steps, Using PowerShell, Step 1 · Checked 2026-09-30
  44. 44
    Tenant dial plans are managed with New-, Set-, Get-, Grant- and Remove-CsTenantDialPlan, and a rule is added by building it with New-CsVoiceNormalizationRule ... -InMemory and passing it to Set-CsTenantDialPlan -NormalizationRules @{add=$rule} (or @{remove=$rule} to take it out).
    Create and manage dial plans · Using PowerShell, Using single cmdlets; Using a PowerShell script · Checked 2026-09-30
  45. 45
    Inbound calls reach a Teams user or resource account by Reverse Number Lookup on an exactly matching assigned number; for Direct Routing the number value can be 3 to 38 digits, and if an extension is assigned the inbound dialed number must include it, otherwise the call fails or follows unassigned number routing.
    Microsoft Teams Dial plans for phone call routing · Number lookup for inbound calls · Checked 2026-09-30
  46. 46
    When a voice route is created without -Priority, the service assigns it a priority automatically (Microsoft's example route created without a priority was given priority 4 after routes with priorities 1 and 2).
    Configure call routing for Direct Routing · Example 1 configuration steps, Using PowerShell, Step 2 ("the route Other +1 was automatically assigned priority 4") · Checked 2026-09-30
  47. 47
    Teams Phone routes a Direct Routing call to a specific SBC based on the called number pattern, or on the called number pattern plus the specific user who makes the call.
    Configure call routing for Direct Routing · Call routing overview (first paragraph and bullets) · Checked 2026-09-30
  48. 48
    Online voice routes are managed with New-, Get-, Set- and Remove-CsOnlineVoiceRoute, and online voice routing policies with New-, Get-, Set-, Grant- and Remove-CsOnlineVoiceRoutingPolicy.
    New-CsOnlineVoiceRoute (MicrosoftTeams) · Related Links · Checked 2026-09-30
  49. 49
    The New-CsOnlineVoiceRoute reference gives [0-9]{10} as the default NumberPattern when none is specified.
    New-CsOnlineVoiceRoute (MicrosoftTeams) · Parameters, -NumberPattern ("Default: [0-9]{10}") · Checked 2026-09-30
  50. 50
    A PSTN usage named on a voice route must already exist (retrievable with Get-CsOnlinePstnUsage), and creating a route with an empty usage list or an empty gateway list produces a warning.
    New-CsOnlineVoiceRoute (MicrosoftTeams) · Parameters, -OnlinePstnUsages and -OnlinePstnGatewayList · Checked 2026-09-30
  51. 51
    All online voice routes are created at the Global scope and each needs a unique name; voice routes are tied to voice routing policies only through PSTN usages.
    New-CsOnlineVoiceRoute (MicrosoftTeams) · Description, paragraphs 1 and 3 · Checked 2026-09-30
  52. 52
    Teams Direct Routing call routing is made up of voice routing policies (containers for PSTN usages that are assigned to users), PSTN usages (containers for voice routes that can be shared across policies), voice routes (a number pattern plus a set of online PSTN gateways) and online PSTN gateways (pointers to SBCs).
    Configure call routing for Direct Routing · Call routing overview (element list) · Checked 2026-09-30
  53. 53
    Microsoft recommends that every normalization rule produce a number starting with +, because a number normalized without + is normalized again by the calling service using tenant and regional rules; Direct Routing customers can remove the + with trunk translation rules if needed.
    Create and manage dial plans · Using the Microsoft Teams admin center, Create a dial plan, step 4 Note · Checked 2026-09-30
  54. 54
    Normalization rules in a dial plan are evaluated top to bottom and the first matching rule is used with no further rules tried, so more restrictive rules should be placed above less restrictive ones.
    Normalization rules for Microsoft Teams dial plans · Introduction, third paragraph · Checked 2026-09-30
  55. 55
    Microsoft's sample normalization rule for 4-digit extensions uses pattern ^(\d{4})$ with translation +1425555$1, turning 0100 into +14255550100, and its 7-digit local rule uses ^(\d{7})$ with translation +1425$1.
    Normalization rules for Microsoft Teams dial plans · Sample normalization rules, first table (4digitExtension, 7digitcallingRedmond) · Checked 2026-09-30
  56. 56
    Voice routes are tried in priority order, but the SBCs listed within a single voice route are tried in random order.
    Configure call routing for Direct Routing · Example 1: Voice routing with one PSTN usage (sentence after the diagram) · Checked 2026-09-30
  57. 57
    Microsoft 365 admins can run a Direct Routing self-diagnostic from the Microsoft 365 admin center to verify a user is correctly configured for Direct Routing; it is not available for Microsoft 365 Government, Microsoft 365 operated by 21Vianet or Microsoft 365 Germany.
    Configure call routing for Direct Routing · Run a Self-diagnostics tool · Checked 2026-09-30
  58. 58
    If the user's effective dial plan applies no normalization rule to a dialed number, the Teams service dial plan prepends +CC (the country code of the user's usage location); to avoid double normalization Microsoft recommends Direct Routing customers normalize to + in dial plans and remove the + with a route-based translation rule.
    Translate phone numbers for Direct Routing · Route-based number translations - for outbound calls, Note · Checked 2026-09-30
  59. 59
    Microsoft's example strips +1 for an SBC that expects 10-digit numbers using a rule with pattern ^\+1(\d{10})$ and translation $1, applied as OutboundPSTNNumberTranslationRules (called number) and OutboundTeamsNumberTranslationRules (calling number).
    Translate phone numbers for Direct Routing · Example SBC configuration (StripPlus1 rule) and Example 3 · Checked 2026-09-30
  60. 60
    In the Teams admin center, dial plans are created under Voice > Dial plans, where rules can be added, reordered with Move up and Move down, and a number entered under Test dial plan to test the plan.
    Create and manage dial plans · Using the Microsoft Teams admin center, Create a dial plan, steps 1-6 · Checked 2026-09-30
  61. 61
    In the Teams admin center, PSTN usage records are managed under Voice > Direct Routing > Manage PSTN usage records, voice routes under Voice > Direct Routing > Voice routes, voice routing policies under Voice > Voice routing policies, and a user's voice routing policy under Users > the user > Policies.
    Configure call routing for Direct Routing · Example 1 configuration steps, Using the Microsoft Teams admin center, Steps 1-4 · Checked 2026-09-30
  62. 62
    Direct Routing requires users to be in Teams Only mode (the UpgradeToTeams instance of TeamsUpgradePolicy) so that incoming calls land in the Teams client.
    Enable users for Direct Routing · Assign Teams Only mode to users to ensure calls land in Microsoft Teams · Checked 2026-09-30
  63. 63
    Test-CsEffectiveTenantDialPlan -DialedNumber <digits> -Identity <user> normalizes the dialed number by applying the normalization rules of the effective tenant dial plan returned for that user.
    Test-CsEffectiveTenantDialPlan (MicrosoftTeams) · Description; Examples 1 and 2 · Checked 2026-09-30
  64. 64
    Test-CsEffectiveTenantDialPlan accepts piped output of Get-CsEffectiveTenantDialPlan -Identity <user>, and its -CallerNumber parameter takes the user's assigned phone number to identify which effective tenant dial plan to use.
    Test-CsEffectiveTenantDialPlan (MicrosoftTeams) · Examples 1 and 3; Parameters, -CallerNumber · Checked 2026-09-30
  65. 65
    The -TenantScopeOnly switch of Test-CsEffectiveTenantDialPlan runs the test against tenant-level dial plans only, ignoring service-level dial plans.
    Test-CsEffectiveTenantDialPlan (MicrosoftTeams) · Parameters, -TenantScopeOnly · Checked 2026-09-30
  66. 66
    For outbound Direct Routing calls, the dialed number is first processed by the user's effective dial plan, then matched to a PSTN usage and voice route, and route-based number translation rules applied on the selected SBC's PSTN gateway configuration then change the format the SBC receives.
    Translate phone numbers for Direct Routing · Route-based number translations - for outbound calls, paragraphs 2-3 · Checked 2026-09-30
  67. 67
    Direct Routing number translation rules are limited to 400 rules in total, a 100-symbol name, a 1024-symbol pattern and a 256-symbol translation.
    Translate phone numbers for Direct Routing · Considerations, Note · Checked 2026-09-30
  68. 68
    Translation rules are created with New-, Set-, Get- and Remove-CsTeamsTranslationRule and attached to an SBC with New- or Set-CsOnlinePSTNGateway through the InboundTeamsNumberTranslationRules, InboundPSTNNumberTranslationRules, OutboundTeamsNumberTranslationRules and OutboundPSTNNumberTranslationRules parameters; rules on an SBC apply in the order listed.
    Translate phone numbers for Direct Routing · Considerations; Configuring translation rules with PowerShell · Checked 2026-09-30
  69. 69
    Online PSTN usages are a single tenant-wide Global list used by routes and policies; Set-CsOnlinePstnUsage adds or removes entries, and using @{replace=...} replaces the whole list so all previously existing usages are removed.
    Set-CsOnlinePstnUsage (MicrosoftTeams) · Description; Examples 2 and 4; Parameters, -Identity · Checked 2026-09-30
  70. 70
    The order of PSTN usages in a voice routing policy is critical: usages are evaluated in order and, once a match is found in one usage, later usages are never evaluated, so a catch-all usage such as International must be placed after more specific usages.
    Configure call routing for Direct Routing · Example 2, Note below the No Restrictions table (first bullet) · Checked 2026-09-30
  71. 71
    The order of PSTN usages in an existing voice routing policy is changed with Set-CsOnlineVoiceRoutingPolicy using -OnlinePstnUsages @{Replace=...} listing the usages in the new order.
    Configure call routing for Direct Routing · Example 2, Note below the No Restrictions table (Set-CsOnlineVoiceRoutingPolicy example) · Checked 2026-09-30
  72. 72
    Microsoft cautions that the NumberPattern of a voice route must be a valid regular expression, and a pattern of ".*" can be used to send all calls to the same SBC.
    Configure call routing for Direct Routing · Example 1 configuration steps, Using PowerShell, Step 2, Caution · Checked 2026-09-30
  73. 73
    To use PSTN telephony with Teams Phone, a user account must be licensed with the Teams Phone application and also be equipped with a PSTN solution from a PSTN service provider.
    PSTN connectivity options · PSTN connectivity options, section 'What is the Public Switched Telephone Network (PSTN)?' · Checked 2026-09-24
  74. 74
    Direct Routing is not supported in Islands coexistence mode.
    Plan Direct Routing · Plan Direct Routing, section 'Licensing requirements', Note · Checked 2026-09-24
  75. 75
    Direct Routing requires a Microsoft-certified SBC, PSTN trunks to it, users homed online, a public IP, an SBC FQDN in a verified tenant domain (not *.onmicrosoft.com) with public DNS, and a publicly trusted TLS certificate.
    Plan Direct Routing · Plan Direct Routing, section 'Infrastructure requirements' table and section 'SBC domain names' · Checked 2026-09-24
  76. 76
    Microsoft supports Teams Phone with Direct Routing only when certified SBCs are used, expects the SBC vendor to investigate first and escalate, and may decline support requests involving non-certified SBCs.
    Plan Direct Routing · Plan Direct Routing, sections 'Supported Session Border Controllers (SBCs)' and 'Support boundaries' · Checked 2026-09-24
  77. 77
    Direct Routing requires specific emergency call routing policies, whereas with the other PSTN options the carrier handles much of the emergency call routing configuration.
    Plan and manage emergency calling · Plan and manage emergency calling, section 'Emergency call routing' · Checked 2026-09-24

Documents

tier 2 current vendor documentation

Assign policies in Teams

Microsoft · 2026-02-04 · accessed 2026-09-24

tier 2 current vendor documentation

Configure call routing for Direct Routing

Microsoft · 2026-09-10 · accessed 2026-09-21

tier 2 current vendor documentation

Create and manage dial plans

Microsoft · 2025-04-25 · accessed 2026-09-21

tier 2 current vendor documentation

Enable users for Direct Routing

Microsoft · 2026-08-21 · accessed 2026-09-21

tier 2 current vendor documentation

Grant-CsOnlineVoiceRoutingPolicy (MicrosoftTeams)

Microsoft · 2026-05-06 · accessed 2026-09-25

tier 2 current vendor documentation

Grant-CsTenantDialPlan (MicrosoftTeams)

Microsoft · 2026-04-27 · accessed 2026-09-30

tier 2 current vendor documentation

Manage call routing policies for Direct Routing

Microsoft · 2025-08-11 · accessed 2026-09-24

tier 2 current vendor documentation

Manage caller ID for users - Microsoft Teams

Microsoft · 2026-03-30 · accessed 2026-09-24

tier 2 current vendor documentation

Microsoft Teams Dial plans for phone call routing

Microsoft · 2025-08-11 · accessed 2026-09-23

tier 2 current vendor documentation

New-CsOnlineVoiceRoute (MicrosoftTeams)

Microsoft · 2026-04-27 · accessed 2026-09-30

tier 2 current vendor documentation

Normalization rules for Microsoft Teams dial plans

Microsoft · 2025-08-11 · accessed 2026-09-23

tier 2 current vendor documentation

Plan and manage emergency calling

Microsoft · 2026-03-23 · accessed 2026-09-16

tier 2 current vendor documentation

Plan Direct Routing

Microsoft (Microsoft Learn) · 2026-08-21 · accessed 2026-09-06

tier 2 current vendor documentation

PSTN connectivity options

Microsoft (Microsoft Learn) · 2026-08-06 · accessed 2026-09-06

tier 2 current vendor documentation

Set-CsOnlinePstnUsage (MicrosoftTeams)

Microsoft · 2026-04-27 · accessed 2026-09-30

tier 2 current vendor documentation

Test-CsEffectiveTenantDialPlan (MicrosoftTeams)

Microsoft · 2025-12-30 · accessed 2026-09-24

tier 2 current vendor documentation

Translate phone numbers for Direct Routing

Microsoft · 2026-09-10 · accessed 2026-09-21

Cite this page

APA

WarmTransfer. (2026, September 30). Setting up Teams voice routing policies and dial plans. WarmTransfer. https://warmtransfer.net/guides/teams-voice-routing-setup

BibTeX

@misc{warmtransfer-teams-voice-routing-setup,
  title  = {Setting up Teams voice routing policies and dial plans},
  author = {{WarmTransfer}},
  year   = {2026},
  url    = {https://warmtransfer.net/guides/teams-voice-routing-setup},
  note   = {Verified 2026-09-30}
}