# Troubleshooting a missing Teams dial pad and PSTN calling

Canonical: https://warmtransfer.net/knowledge/teams-dial-pad-missing

Last verified: 2026-10-01

For the Microsoft Teams dial pad to appear, a user must meet specific licensing, homing, calling policy, and Enterprise Voice prerequisites[^38][^37][^36][^39]. Placing outbound calls from that dial pad further requires an active Public Switched Telephone Network (PSTN) connectivity option[^43].

## Dial pad prerequisites

Displaying the dial pad in the Teams client requires four foundational settings[^38][^37][^36][^39]:

- **Teams Phone licensing**: The user must hold a Teams Phone licence, represented by an enabled `MCOEV` capability[^38]. Any Microsoft 365 E5 licence includes the Microsoft 365 Phone System application, meaning a stand-alone Teams Phone Standard licence is not required on top of it[^14]. To validate this in PowerShell, inspect `(Get-CsOnlineUser -Identity $user).AssignedPlan` to verify that a plan with a capability starting with `MCOEV` (such as `MCOEV` or `MCOEV1`) exhibits a `CapabilityStatus` of `Enabled`[^3]. In `MicrosoftTeams` PowerShell module version 3.0.0 and later, `Get-CsOnlineUser` also exposes a `FeatureTypes` array where `PhoneSystem` indicates enabled voice capabilities; users can be filtered using `-Filter "FeatureTypes -Contains 'PhoneSystem'"` starting in module version 4.0.0[^22].
- **Online homing**: The user must be homed online rather than in on-premises Skype for Business[^37]. This is confirmed when `Get-CsOnlineUser` displays a non-null `RegistrarPool` and a `HostingProvider` value beginning with `sipfed.online`[^5]. For Direct Routing scenarios, online homing requires `RegistrarPool` to carry a value in the `infra.lync.com` domain[^12].
- **Enterprise Voice**: The account must be Enterprise Voice enabled[^36]. Assigning the Teams Phone licence is what allows the account to be configured for Enterprise Voice, making the licence check a prerequisite to verifying Enterprise Voice[^20].
- **Private calling policy**: The user's effective calling policy must enable Make private calls (`AllowPrivateCalling`)[^39].

In Teams for Education, the Calling app is not available; although it appears in the app list when creating a custom app setup policy, Education users cannot view the Calls app because it is not pinned[^15].

## Enterprise Voice configuration

If a user holds a licence and the Microsoft 365 Phone System application but still lacks a dial pad, Microsoft indicates that `EnterpriseVoiceEnabled` may be set to false[^21]. 

Assigning a phone number with `Set-CsPhoneNumberAssignment` automatically sets `EnterpriseVoiceEnabled` to `True`[^16]. However, if a user already possesses a phone number while `EnterpriseVoiceEnabled` remains `False`, an administrator must set it to `True` manually[^19].

Enterprise Voice can be enabled through either administrative interface:
- **Teams admin center**: Navigate to **Users** > **Manage users** > select the user > **Account** tab > **Assigned phone number**, switch **Enterprise Voice** to **On**, and save[^18].
- **PowerShell**: Run `Set-CsPhoneNumberAssignment -Identity <user> -EnterpriseVoiceEnabled $true` to enable Enterprise Voice without assigning a telephone number[^17].

During migrations to Direct Routing, Microsoft advises against setting `EnterpriseVoiceEnabled` to `False`, as this can cause dial plan normalisation issues on legacy Skype for Business phones when `UseOnPremDialPlan` is `$True`[^10].

## Calling policies and web calling

Users without an explicitly assigned custom calling policy inherit the Global policy, which sets `AllowPrivateCalling` to `true` by default[^24]. To verify effective calling policy settings, Microsoft's diagnostic script queries `Get-CsUserPolicyAssignment` for a `TeamsCallingPolicy` assignment, falls back to `Get-CsTeamsCallingPolicy -Identity Global` if none is assigned, and checks `AllowPrivateCalling`[^4].

Disabling `AllowPrivateCalling` shuts off all calling functionality in Teams for the affected users[^41]. However, `AllowPrivateCalling` does not affect calling inside Skype for Business for users who use Skype for Business for voice[^40].

The `AllowWebPSTNCalling` policy setting controls whether users can place PSTN calls directly within the Teams web client, and it is enabled by default[^59].

## PSTN connectivity and number assignment

A PSTN connectivity option—such as Microsoft Calling Plans, Operator Connect, Teams Phone Mobile, Direct Routing, or Shared Calling—is required to place calls from the dial pad[^43]. PSTN access is separate from the base Teams Phone licence; the licence provides access to the Microsoft 365 Phone System application and connectivity options, but does not include phone numbers or calling services[^44].

When Microsoft provides PSTN access, a Calling Plan licence assigned in the Microsoft 365 admin center is required alongside Teams Phone licensing, and a Calling Plan number cannot be assigned without this licence[^6][^2]. If connectivity is provided by a third-party operator, Microsoft requires no additional calling licence[^2]. For Shared Calling, end users do not require their own number or calling plan, requiring only a Teams Phone licence and a policy granting access to a licensed resource account's phone number[^49].

When assigning numbers:
- The assigned phone number and the user's configured usage location must reside in the same country or region[^52].
- `Set-CsPhoneNumberAssignment -NumberType` (or alias `-PhoneNumberType`) accepts `DirectRouting`, `CallingPlan`, and `OperatorConnect`[^31]. Teams Phone Mobile numbers are assigned using the `OperatorConnect` type[^31].
- `HostedVoiceMail` no longer needs to be configured for Teams users and is not a parameter on `Set-CsPhoneNumberAssignment`[^25].
- In the `MicrosoftTeams` module version 3.0.0 and later, `OnPremLineURI` only reflects values assigned via on-premises Active Directory; Direct Routing numbers populate `LineURI` and are distinguished from Calling Plan numbers via `FeatureTypes`[^35].

## Coexistence, routing, and hybrid considerations

Since the retirement of Skype for Business Online, online-homed users can only exist in `TeamsOnly` coexistence mode[^32]. Users homed on an on-premises Skype for Business Server cannot be `TeamsOnly`; they default to `Islands` mode and can take any mode other than `TeamsOnly`[^34]. In `Islands` mode, PSTN services stay within Skype for Business, and Teams Phone System is unsupported in Teams[^29]. Similarly, in `Skype for Business with Teams Collaboration` mode, Teams calling, private chat, and meeting scheduling are turned off by default while calling remains in Skype for Business[^48]. Direct Routing requires users to be in `TeamsOnly` mode—assigned via the `UpgradeToTeams` instance of `TeamsUpgradePolicy`—so incoming calls route to Teams[^13].

If a telephone number is defined in on-premises Active Directory and synchronised to Microsoft 365, `Set-CsPhoneNumberAssignment` cannot assign a number until the on-premises attribute is cleared and synchronised[^33]. If `OnPremLineUri` is populated, the assignment must be cleared in the Skype for Business Management Shell with `Set-CsUser -LineUri $null` and allowed to sync before managing it online[^11].

Voice routing considerations include:
- **Routing policies**: Online voice routing policies are assigned using `Grant-CsOnlineVoiceRoutingPolicy -Identity <user> -PolicyName <name>` and confirmed via `Get-CsOnlineUser <user> | Select OnlineVoiceRoutingPolicy`[^57].
- **Unmatched routes**: For Direct Routing users lacking a Calling Plan, an outbound call is dropped if it does not match any route in their voice routing policy[^58]. For users holding a Calling Plan licence, the Calling Plan functions as an automatic fallback route for numbers not matching an online voice route[^55].
- **Global policy caution**: All voice-enabled accounts inherit the global online voice routing policy once configured, which can inadvertently direct Calling Plan and Operator Connect outbound calls to Direct Routing SBC trunks[^56].
- **Toll bypass**: Enabling `PreventTollBypass` on Calling Plan or Operator Connect accounts breaks call routing, as that setting only operates with Direct Routing configured for location-based routing[^51].

## Diagnostic tools and propagation delays

Client updates and policy adjustments are subject to synchronization timing:
- Following updates to dial pad prerequisites, restarting the Teams client may be required[^47].
- Propagating prerequisite changes to the client can take a few hours[^42]. Edits to app setup policies can likewise take several hours to apply pinned apps[^1].
- Latency between Microsoft 365 and Teams can delay number assignments up to 24 hours[^30]. If the assignment is unresolved after 24 hours, Microsoft directs administrators to the Phone Number Service Center[^30]. Microsoft Support should be contacted if dial pad issues persist past 24 hours[^50].

Administrators can check for provisioning errors using `Get-CsOnlineUser -Identity $user | Select UserValidationErrors`[^53]. In `MicrosoftTeams` PowerShell module 3.0.0 and higher, this attribute was renamed from `MCOValidationErrors` to `UserValidationErrors`[^54].

Automated diagnostic tools include:
- **Teams Dial Pad Missing Diagnostic**: Available in the Microsoft 365 admin center via shortcut `aka.ms/TeamsDialPadMissingDiag`[^8].
- **Remote Connectivity Analyzer**: The `Teams PSTN Calling Dial Pad` test (`testconnectivity.microsoft.com/tests/TeamsDialpadMissing/input`) tests dial pad visibility and can be executed by non-admin users[^46].
- **Call Failure Diagnostics**: When the dial pad is visible but outbound or inbound calling fails, administrators can run the `Teams Direct Routing` diagnostic (`aka.ms/TeamsDirectRoutingDiag`) or the `Teams PSTN` diagnostic (`aka.ms/TeamsPSTNDiag`)[^9].

Admin center diagnostics are unavailable in GCC High, DoD, and Microsoft 365 operated by 21Vianet[^7]. Remote Connectivity Analyzer tests are not available for GCC and GCC High government environments[^45].

## See also

- [Troubleshooting Teams phone number assignment errors](https://warmtransfer.net/knowledge/teams-number-assignment-errors)
- [Teams voice routing policies and dial plans](https://warmtransfer.net/knowledge/teams-voice-routing)
- [Troubleshooting Teams Direct Routing](https://warmtransfer.net/knowledge/teams-direct-routing-troubleshooting)
- [Teams voice administration with PowerShell](https://warmtransfer.net/knowledge/teams-powershell-voice-admin)
- [Microsoft Teams Calling Plans](https://warmtransfer.net/knowledge/teams-calling-plans)
- [Microsoft Teams shared calling and call delegation](https://warmtransfer.net/knowledge/teams-shared-calling)
- [Microsoft Teams Phone architecture and licensing](https://warmtransfer.net/knowledge/teams-phone-architecture)
- [Teams Phone Direct Routing and SBC certification](https://warmtransfer.net/knowledge/teams-direct-routing)
- [Teams Operator Connect and Azure Communication routing](https://warmtransfer.net/knowledge/teams-operator-connect)
- [Teams contact center integration models](https://warmtransfer.net/knowledge/teams-contact-center-integration)
- [Setting up Microsoft Teams Direct Routing](https://warmtransfer.net/knowledge/teams-direct-routing-setup)
- [Microsoft Teams auto attendants and call queues](https://warmtransfer.net/knowledge/teams-auto-attendant-call-queue)
- [Setting up Microsoft Teams auto attendants and call queues](https://warmtransfer.net/knowledge/teams-auto-attendant-call-queue-setup)
- [Setting up dynamic emergency calling in Microsoft Teams](https://warmtransfer.net/knowledge/teams-dynamic-e911-setup)
- [Microsoft Teams compliance recording](https://warmtransfer.net/knowledge/teams-compliance-recording)
- [Teams Rooms and common area phones calling](https://warmtransfer.net/knowledge/teams-rooms-common-area-phones)
- [Teams phones and certified devices](https://warmtransfer.net/knowledge/teams-phone-devices)
- [Porting numbers to Microsoft Teams](https://warmtransfer.net/knowledge/teams-number-porting)
- [Troubleshooting Teams call queues and auto attendants](https://warmtransfer.net/knowledge/teams-call-queue-troubleshooting)

## Applicability

Applies to: Microsoft Teams Phone, Microsoft Teams PowerShell module, Microsoft Teams, Microsoft 365 admin center, and Microsoft Remote Connectivity Analyzer. Deployments: hybrid and multi-tenant. Sources checked 2026-10-01. The self-help diagnostics in the Microsoft 365 admin center are not available in GCC High, DoD, or Microsoft 365 operated by 21Vianet[^7]. The Microsoft Remote Connectivity Analyzer is not available for GCC and GCC High Microsoft 365 Government environments[^45]. The `Set-CsPhoneNumberAssignment` cmdlet and the attributes `UserValidationErrors`, `FeatureTypes`, and modified `OnPremLineURI` handling apply to `MicrosoftTeams` PowerShell module version 3.0.0 or later, with `FeatureTypes` filtering supported from version 4.0.0 or later[^17][^22][^35][^54].

## What remains uncertain

## Sources

[^1]: After an app setup policy is edited or assigned, it can take a few hours for the changes, including pinned apps, to take effect. Source: [Manage agents and app setup policies in Microsoft Teams](https://learn.microsoft.com/en-us/microsoftteams/teams-app-setup-policies), Section 'Edit an agent or app setup policy'; 'Considerations and limitations' bullet on timing. Checked 2026-10-01.
[^2]: If Microsoft provides PSTN access and phone numbers, the user needs a Microsoft Calling Plan licence in addition to Teams Phone licensing. With a third-party operator, Microsoft requires no other licensing. Source: [Teams Phone licensing](https://learn.microsoft.com/en-us/microsoftteams/teams-phone-licensing), Section 'Licensing Teams Phone - adding PSTN', paragraphs after the Note. Checked 2026-10-01.
[^3]: To validate the licence, run (Get-CsOnlineUser -Identity $user).AssignedPlan and confirm a plan whose Capability starts with MCOEV (MCOEV, MCOEV1 and so on are all acceptable) has CapabilityStatus Enabled. Source: [Teams dial pad access](https://learn.microsoft.com/en-us/microsoftteams/dial-pad-configuration), Section 'User is assigned with a Teams Phone ("MCOEV") license'. Checked 2026-10-01.
[^4]: To check the effective calling policy, Microsoft's script reads the user's TeamsCallingPolicy assignment with Get-CsUserPolicyAssignment, falls back to Get-CsTeamsCallingPolicy -Identity Global if none is assigned, and inspects AllowPrivateCalling. Source: [Teams dial pad access](https://learn.microsoft.com/en-us/microsoftteams/dial-pad-configuration), Section 'User has Make Private Calls enabled in Teams Calling Policy', PowerShell block. Checked 2026-10-01.
[^5]: To confirm a user is homed online, the dial pad article requires that Get-CsOnlineUser shows a non-null RegistrarPool and a HostingProvider value beginning with sipfed.online. Source: [Teams dial pad access](https://learn.microsoft.com/en-us/microsoftteams/dial-pad-configuration), Section 'User is homed online and not in Skype for Business on premises'. Checked 2026-10-01.
[^6]: A user can only be assigned a Teams Calling Plan number if they also have a Teams Calling Plan licence, and Calling Plan licences are assigned in the Microsoft 365 admin center. Source: [Manage phone numbers for users](https://learn.microsoft.com/en-us/microsoftteams/assign-change-or-remove-a-phone-number-for-a-user), Section 'Prerequisites', paragraph and Note on Calling Plan licences. Checked 2026-10-01.
[^7]: The admin center diagnostics aren't available in GCC High, DoD, or Microsoft 365 operated by 21Vianet. Source: [Self-help diagnostics for Teams administrators](https://learn.microsoft.com/en-us/troubleshoot/microsoftteams/teams-administration/admin-self-help-diagnostics), Section 'Diagnostics and Connectivity tests', Note first bullet. Checked 2026-10-01.
[^8]: The Microsoft 365 admin center has a 'Teams Dial Pad Missing' self-help diagnostic (shortcut aka.ms/TeamsDialPadMissingDiag) that checks whether the dial pad is visible within Teams. Source: [Self-help diagnostics for Teams administrators](https://learn.microsoft.com/en-us/troubleshoot/microsoftteams/teams-administration/admin-self-help-diagnostics), Section 'Scenarios covered by diagnostics and connectivity tests', Voice table, row 'Checks whether the dial pad is visible within Teams.'. Checked 2026-10-01.
[^9]: Two separate voice diagnostics help when the dial pad shows but calls fail: 'Teams Direct Routing' (aka.ms/TeamsDirectRoutingDiag) checks Direct Routing user configuration, and 'Teams PSTN' (aka.ms/TeamsPSTNDiag) checks the ability to make or receive domestic or international PSTN calls. Source: [Self-help diagnostics for Teams administrators](https://learn.microsoft.com/en-us/troubleshoot/microsoftteams/teams-administration/admin-self-help-diagnostics), Section 'Scenarios covered by diagnostics and connectivity tests', Voice table, first and fourth rows. Checked 2026-10-01.
[^10]: During migration to Direct Routing, Microsoft advises against setting EnterpriseVoiceEnabled to False, because this can cause dial plan normalisation issues with legacy Skype for Business phones when UseOnPremDialPlan is $True. Source: [Enable users for Direct Routing](https://learn.microsoft.com/en-us/microsoftteams/direct-routing-enable-users), Section 'Ensure that the user is homed online', first Note. Checked 2026-10-01.
[^11]: If OnPremLineUri is populated, the number was assigned on-premises and synchronised. To manage it online, clear it in Skype for Business Management Shell with Set-CsUser -LineUri $null and let it synchronise. Source: [Enable users for Direct Routing](https://learn.microsoft.com/en-us/microsoftteams/direct-routing-enable-users), Section 'Ensure that the user is homed online', steps 2-3. Checked 2026-10-01.
[^12]: For Direct Routing, a user is confirmed as homed online when RegistrarPool has a value in the infra.lync.com domain. Source: [Enable users for Direct Routing](https://learn.microsoft.com/en-us/microsoftteams/direct-routing-enable-users), Section 'Ensure that the user is homed online'. Checked 2026-10-01.
[^13]: Direct Routing requires users to be in Teams Only mode so that incoming calls land in the Teams client. Users are put in Teams Only mode by assigning the UpgradeToTeams instance of TeamsUpgradePolicy. Source: [Enable users for Direct Routing](https://learn.microsoft.com/en-us/microsoftteams/direct-routing-enable-users), Section 'Assign Teams Only mode to users to ensure calls land in Microsoft Teams'. Checked 2026-10-01.
[^14]: Any Microsoft 365 E5 licence includes the Microsoft 365 Phone System application, so a stand-alone Teams Phone Standard licence isn't needed on top of it. Source: [Teams Phone licensing](https://learn.microsoft.com/en-us/microsoftteams/teams-phone-licensing), Section 'Licensing Teams Phone - for end users', bullet list and following sentence. Checked 2026-10-01.
[^15]: In Teams for Education, the Calling app isn't available. It appears in the app list when creating a custom app setup policy, but Education users can't see the Calls app because it isn't pinned. Source: [Manage agents and app setup policies in Microsoft Teams](https://learn.microsoft.com/en-us/microsoftteams/teams-app-setup-policies), Section 'Considerations and limitations', final bullet. Checked 2026-10-01.
[^16]: Assigning a phone number to a user with Set-CsPhoneNumberAssignment automatically sets EnterpriseVoiceEnabled to True. Source: [Set-CsPhoneNumberAssignment (MicrosoftTeams)](https://learn.microsoft.com/en-us/powershell/module/microsoftteams/set-csphonenumberassignment), Description section; Parameters, -TelephoneNumber. Checked 2026-10-01.
[^17]: In PowerShell, Enterprise Voice is enabled without assigning a number by running Set-CsPhoneNumberAssignment -Identity <user> -EnterpriseVoiceEnabled $true. Source: [Set-CsPhoneNumberAssignment (MicrosoftTeams)](https://learn.microsoft.com/en-us/powershell/module/microsoftteams/set-csphonenumberassignment), Syntax 'Attribute' parameter set; Examples, Example 3. Checked 2026-10-01.
[^18]: In the Teams admin center, Enterprise Voice is turned on under Users > Manage users > (user) > Account tab > Assigned phone number by setting Enterprise Voice to On and saving. Source: [Teams dial pad access](https://learn.microsoft.com/en-us/microsoftteams/dial-pad-configuration), Section 'User is Enterprise Voice enabled', first bullet. Checked 2026-10-01.
[^19]: If a user already has a phone number but EnterpriseVoiceEnabled reads False, the admin must set it to True manually in the Teams admin center or with PowerShell. Source: [Teams dial pad access](https://learn.microsoft.com/en-us/microsoftteams/dial-pad-configuration), Section 'User is Enterprise Voice enabled', closing Note. Checked 2026-10-01.
[^20]: Assigning a Teams Phone licence is what allows an account to be configured as Enterprise Voice enabled, so the licence check comes before the Enterprise Voice check. Source: [Teams dial pad access](https://learn.microsoft.com/en-us/microsoftteams/dial-pad-configuration), Section 'User is Enterprise Voice enabled', first paragraph. Checked 2026-10-01.
[^21]: If the licence and the Microsoft 365 Phone System app are assigned but the user still has no dial pad, Microsoft says EnterpriseVoiceEnabled may be set to false. Source: [Teams dial pad access](https://learn.microsoft.com/en-us/microsoftteams/dial-pad-configuration), Section 'User is Enterprise Voice enabled', second paragraph. Checked 2026-10-01.
[^22]: In MicrosoftTeams PowerShell 3.0.0 and later, Get-CsOnlineUser exposes a FeatureTypes array where PhoneSystem and CallingPlan show the enabled voice features. Users with Phone System can be filtered with -Filter "FeatureTypes -Contains 'PhoneSystem'" (filterable from 4.0.0). Source: [Get-CsOnlineUser (MicrosoftTeams)](https://learn.microsoft.com/en-us/powershell/module/microsoftteams/get-csonlineuser), Examples, Example 7; Notes, 'Updates in Teams PowerShell Module version 3.0.0 and above', New user attributes. Checked 2026-10-01.
[^23]: On Microsoft Q&A, a Microsoft moderator answering a missing Calls/dial pad question listed an outdated Teams client, free or guest accounts, and admin calling-policy restrictions as likely causes, alongside missing licences. The asker didn't confirm a resolution (field report). Source: [No dial pad option calls in Teams - unable to make phone call](https://learn.microsoft.com/en-us/answers/questions/2179807/no-dial-pad-option-calls-in-teams-unable-to-make-p), Top answer by moderator JimmyYang-MSFT. Checked 2026-10-01.
[^24]: Users who have no custom calling policy inherit the Global calling policy, which has AllowPrivateCalling set to true by default. Source: [Teams dial pad access](https://learn.microsoft.com/en-us/microsoftteams/dial-pad-configuration), Section 'User has Make Private Calls enabled in Teams Calling Policy', first paragraph. Checked 2026-10-01.
[^25]: HostedVoiceMail no longer needs to be set for Teams users and isn't a parameter of Set-CsPhoneNumberAssignment, unlike the older Set-CsUser. Source: [Set-CsPhoneNumberAssignment (MicrosoftTeams)](https://learn.microsoft.com/en-us/powershell/module/microsoftteams/set-csphonenumberassignment), Section 'Notes', final paragraph. Checked 2026-10-01.
[^26]: An assigned phone number isn't one of the four documented dial pad prerequisites, and Enterprise Voice can be enabled without a number. So a user with no number but a licence, Enterprise Voice, online homing and private calling may still see the dial pad, but can only place calls through Shared Calling or a voice route (inferred). Source: [Teams dial pad access](https://learn.microsoft.com/en-us/microsoftteams/dial-pad-configuration), Introduction, prerequisites list and Note; read together with Set-CsPhoneNumberAssignment Attribute parameter set. Checked 2026-10-01.
[^27]: Because online users can only be TeamsOnly, a coexistence mode check matters for a missing dial pad mainly in hybrid tenants where the user is still homed on Skype for Business Server or was migrated incompletely (inferred). Source: [Understand Microsoft Teams and Skype for Business coexistence and interoperability](https://learn.microsoft.com/en-us/microsoftteams/teams-and-skypeforbusiness-coexistence-and-interoperability), Section 'Coexistence of Teams and Skype for Business overview', Important box; compare Islands mode section. Checked 2026-10-01.
[^28]: A missing or wrong online voice routing policy isn't among the documented dial pad visibility prerequisites, so for Direct Routing users it most likely shows up as failed or dropped outbound calls rather than a missing dial pad (inferred). Source: [Configure call routing for Direct Routing](https://learn.microsoft.com/en-us/microsoftteams/direct-routing-voice-routing), Example 1 Notes on dropped calls; compare dial-pad-configuration prerequisites list. Checked 2026-10-01.
[^29]: In Islands mode, PSTN voice services are handled by Skype for Business rather than Teams, and Teams Phone System isn't supported in Teams. Source: [Understand Microsoft Teams and Skype for Business coexistence and interoperability](https://learn.microsoft.com/en-us/microsoftteams/teams-and-skypeforbusiness-coexistence-and-interoperability), Section 'Islands mode', bullet list and following sentence. Checked 2026-10-01.
[^30]: Because of latency between Microsoft 365 and Teams, it can take up to 24 hours for users to be enabled after phone number assignment. If the number still isn't assigned correctly after 24 hours, Microsoft points admins to the Phone Number Service Center. Source: [Manage phone numbers for users](https://learn.microsoft.com/en-us/microsoftteams/assign-change-or-remove-a-phone-number-for-a-user), Section 'Use PowerShell to assign a phone number to a user', first Note. Checked 2026-10-01.
[^31]: Set-CsPhoneNumberAssignment -NumberType (alias PhoneNumberType) accepts DirectRouting, CallingPlan and OperatorConnect. Teams Phone Mobile numbers are assigned with OperatorConnect. Source: [Set-CsPhoneNumberAssignment (MicrosoftTeams)](https://learn.microsoft.com/en-us/powershell/module/microsoftteams/set-csphonenumberassignment), Parameters, -NumberType. Checked 2026-10-01.
[^32]: Since Skype for Business Online was retired, users homed online can only have the TeamsOnly coexistence mode, and no other mode can be assigned to them. Source: [Understand Microsoft Teams and Skype for Business coexistence and interoperability](https://learn.microsoft.com/en-us/microsoftteams/teams-and-skypeforbusiness-coexistence-and-interoperability), Section 'Coexistence of Teams and Skype for Business overview', Important box. Checked 2026-10-01.
[^33]: If a user's phone number is set in on-premises Active Directory and synchronised to Microsoft 365, Set-CsPhoneNumberAssignment can't set the number until it is cleared on-premises and the change has synchronised. Source: [Set-CsPhoneNumberAssignment (MicrosoftTeams)](https://learn.microsoft.com/en-us/powershell/module/microsoftteams/set-csphonenumberassignment), Section 'Notes', third paragraph. Checked 2026-10-01.
[^34]: Users still homed on Skype for Business Server on-premises can't be TeamsOnly. They can have any coexistence mode except TeamsOnly, and Islands is the default for on-premises users. Source: [Understand Microsoft Teams and Skype for Business coexistence and interoperability](https://learn.microsoft.com/en-us/microsoftteams/teams-and-skypeforbusiness-coexistence-and-interoperability), Section 'Coexistence of Teams and Skype for Business overview', first and second paragraphs. Checked 2026-10-01.
[^35]: In MicrosoftTeams PowerShell 3.0.0 and later, OnPremLineURI only reflects a LineURI set through on-premises AD. Direct Routing numbers appear in LineURI and are told apart from Calling Plan numbers through FeatureTypes. Source: [Get-CsOnlineUser (MicrosoftTeams)](https://learn.microsoft.com/en-us/powershell/module/microsoftteams/get-csonlineuser), Notes, 'Attributes that have changed in meaning/format', OnPremLineURI. Checked 2026-10-01.
[^36]: For the Teams dial pad to display, the user must be Enterprise Voice enabled. Source: [Teams dial pad access](https://learn.microsoft.com/en-us/microsoftteams/dial-pad-configuration), Introduction, prerequisites bullet list (third bullet). Checked 2026-10-01.
[^37]: For the Teams dial pad to display, the user must be homed online and not in Skype for Business on-premises. Source: [Teams dial pad access](https://learn.microsoft.com/en-us/microsoftteams/dial-pad-configuration), Introduction, prerequisites bullet list (second bullet). Checked 2026-10-01.
[^38]: For the Teams dial pad to display, the user must be assigned a Teams Phone licence, which appears as the MCOEV capability. Source: [Teams dial pad access](https://learn.microsoft.com/en-us/microsoftteams/dial-pad-configuration), Introduction, prerequisites bullet list (first bullet). Checked 2026-10-01.
[^39]: For the Teams dial pad to display, the user's effective Teams calling policy must have Make private calls (AllowPrivateCalling) enabled. Source: [Teams dial pad access](https://learn.microsoft.com/en-us/microsoftteams/dial-pad-configuration), Introduction, prerequisites bullet list (fourth bullet); section 'User has Make Private Calls enabled in Teams Calling Policy'. Checked 2026-10-01.
[^40]: AllowPrivateCalling doesn't affect calling in Skype for Business for users who use Skype for Business for calling. Source: [Set-CsTeamsCallingPolicy (MicrosoftTeams)](https://learn.microsoft.com/en-us/powershell/module/microsoftteams/set-csteamscallingpolicy), Parameters, -AllowPrivateCalling. Checked 2026-10-01.
[^41]: Turning off Make private calls (AllowPrivateCalling) in a Teams calling policy turns off all calling functionality in Teams for the users it applies to. Source: [Configure calling policies in Microsoft Teams](https://learn.microsoft.com/en-us/microsoftteams/teams-calling-policy), Section 'Calling policy settings', bullet 'Make private calls'. Checked 2026-10-01.
[^42]: After a recent change to any dial pad prerequisite, it might take a few hours for the client to receive the new settings. Source: [Teams dial pad access](https://learn.microsoft.com/en-us/microsoftteams/dial-pad-configuration), Section 'Additional notes', second bullet. Checked 2026-10-01.
[^43]: To actually place a call from the dial pad, the user also needs a PSTN connectivity option: Microsoft Calling Plan, Operator Connect, Teams Phone Mobile, Direct Routing, or Shared Calling. Source: [Teams dial pad access](https://learn.microsoft.com/en-us/microsoftteams/dial-pad-configuration), Introduction, Note following the prerequisites list. Checked 2026-10-01.
[^44]: A PSTN solution is separate from the Teams Phone licence. The licence grants use of the Microsoft 365 Phone System application and access to a PSTN solution, but not phone numbers or PSTN calling itself. Source: [Teams Phone licensing](https://learn.microsoft.com/en-us/microsoftteams/teams-phone-licensing), Section 'Licensing Teams Phone - adding PSTN', Note. Checked 2026-10-01.
[^45]: The Microsoft Remote Connectivity Analyzer isn't available for the GCC and GCC High Microsoft 365 Government environments. Source: [Self-help diagnostics for Teams administrators](https://learn.microsoft.com/en-us/troubleshoot/microsoftteams/teams-administration/admin-self-help-diagnostics), Section 'Diagnostics and Connectivity tests', Note second bullet. Checked 2026-10-01.
[^46]: The Microsoft Remote Connectivity Analyzer offers a 'Teams PSTN Calling Dial Pad' connectivity test (testconnectivity.microsoft.com/tests/TeamsDialpadMissing/input) for the same scenario, and users without admin permissions can run it. Source: [Self-help diagnostics for Teams administrators](https://learn.microsoft.com/en-us/troubleshoot/microsoftteams/teams-administration/admin-self-help-diagnostics), Section 'Diagnostics and Connectivity tests', second paragraph; Voice table, dial pad row. Checked 2026-10-01.
[^47]: After changing any of the dial pad prerequisites, the Teams client might need to be restarted. Source: [Teams dial pad access](https://learn.microsoft.com/en-us/microsoftteams/dial-pad-configuration), Section 'Additional notes', first bullet. Checked 2026-10-01.
[^48]: In Skype for Business with Teams Collaboration mode, Teams private chat, calling and meeting scheduling are off by default, and calling stays in Skype for Business. Source: [Understand Microsoft Teams and Skype for Business coexistence and interoperability](https://learn.microsoft.com/en-us/microsoftteams/teams-and-skypeforbusiness-coexistence-and-interoperability), Section 'Skype for Business with Teams Collaboration'. Checked 2026-10-01.
[^49]: With Shared Calling, end users don't need their own phone number or a calling plan. They only need a Teams Phone licence and a policy granting access to a licensed resource account's number. Source: [Teams Phone licensing](https://learn.microsoft.com/en-us/microsoftteams/teams-phone-licensing), Section 'Licensing Teams Phone - for Shared Calling'. Checked 2026-10-01.
[^50]: If problems continue more than 24 hours after the changes, Microsoft says to contact Support. Source: [Teams dial pad access](https://learn.microsoft.com/en-us/microsoftteams/dial-pad-configuration), Section 'Additional notes', fourth bullet. Checked 2026-10-01.
[^51]: Setting PreventTollBypass to True for Calling Plan or Operator Connect users prevents successful call routing, because the setting only works with Direct Routing configured for location-based routing. Source: [Set-CsTeamsCallingPolicy (MicrosoftTeams)](https://learn.microsoft.com/en-us/powershell/module/microsoftteams/set-csteamscallingpolicy), Parameters, -PreventTollBypass, Note. Checked 2026-10-01.
[^52]: When assigning a phone number, the number and the user's usage location must be in the same country or region. Source: [Manage phone numbers for users](https://learn.microsoft.com/en-us/microsoftteams/assign-change-or-remove-a-phone-number-for-a-user), Section 'Prerequisites', second paragraph. Checked 2026-10-01.
[^53]: If the dial pad still doesn't appear, Microsoft says to check for a provisioning error with Get-CsOnlineUser -Identity $user | Select UserValidationErrors. Source: [Teams dial pad access](https://learn.microsoft.com/en-us/microsoftteams/dial-pad-configuration), Section 'Additional notes', third bullet. Checked 2026-10-01.
[^54]: In MicrosoftTeams PowerShell 3.0.0 and later, the Get-CsOnlineUser attribute MCOValidationErrors was renamed UserValidationErrors. Source: [Get-CsOnlineUser (MicrosoftTeams)](https://learn.microsoft.com/en-us/powershell/module/microsoftteams/get-csonlineuser), Notes, 'Updates in Teams PowerShell Module version 3.0.0 and above', Attributes renamed. Checked 2026-10-01.
[^55]: For users with a Microsoft Calling Plan licence, the Calling Plan applies automatically as the last route, so calls matching no online voice route go out through the Calling Plan. Source: [Configure call routing for Direct Routing](https://learn.microsoft.com/en-us/microsoftteams/direct-routing-voice-routing), Section 'Voice routing policy considerations'; Example 1 Note. Checked 2026-10-01.
[^56]: All voice-enabled users inherit the global online voice routing policy once it is configured, which can inadvertently send PSTN calls from Calling Plan and Operator Connect users to a Direct Routing trunk. Source: [Configure call routing for Direct Routing](https://learn.microsoft.com/en-us/microsoftteams/direct-routing-voice-routing), Section 'Voice routing policy considerations', Caution item 1. Checked 2026-10-01.
[^57]: An online voice routing policy is assigned with Grant-CsOnlineVoiceRoutingPolicy -Identity <user> -PolicyName <name> and checked with Get-CsOnlineUser <user> | Select OnlineVoiceRoutingPolicy. Source: [Configure call routing for Direct Routing](https://learn.microsoft.com/en-us/microsoftteams/direct-routing-voice-routing), Section 'Example 1: Configuration steps', Using PowerShell, Step 4. Checked 2026-10-01.
[^58]: For a Direct Routing user with Teams Phone but no Calling Plan, a call to a number that matches no voice route in their online voice routing policy is dropped. Source: [Configure call routing for Direct Routing](https://learn.microsoft.com/en-us/microsoftteams/direct-routing-voice-routing), Section 'Example 1: Voice routing with one PSTN usage', Notes and paragraph after the third-route diagram. Checked 2026-10-01.
[^59]: The Web PSTN calling setting (AllowWebPSTNCalling) in the Teams calling policy controls whether users can call PSTN numbers from the Teams web client, and it's on by default. Source: [Configure calling policies in Microsoft Teams](https://learn.microsoft.com/en-us/microsoftteams/teams-calling-policy), Section 'Calling policy settings', bullet 'Web PSTN calling'. Checked 2026-10-01.
