You’ve assigned all the correct licenses for Microsoft Teams voice. But for some reason, the Teams dial-pad is missing.
Sound familiar?
You’re not alone. This issue happens all the time.
In this article, we are going to explore some of the top five reasons why this happens and show how you to fix them.
What does the Microsoft Teams dialpad enable users to do?
The dialpad in Microsoft Teams enables users to make outbound calls to the external telephone network.
Without the dialpad, users can receive incoming calls but not enter a number to dial outbound.
The dialpad is only enabled for Microsoft Teams Phone System users. These users will require the Microsoft Teams Phone System License assigned to them.
This is available as an add-on to F1, F3, E1, and E3 licenses and inclusive of E5. Once assigned, and the required number and voice routes are assigned, the user should be enabled for the Teams dialpad.
However, what happens when the Teams dialpad is missing?
1. Replication of back end Teams tasks
This is the number 1 reason why the Teams dialpad doesn’t appear.
It’s logical to assume that once an admin has completed the required steps to assign a phone number to a user in Teams that this feature should be enabled for the user. In Skype for Business Server, this used to occur within 15 minutes, after all.
With Microsoft Teams, this is not the case. From the moment the IT Admin completes their tasks, several backend routines are triggered to enable this feature culminating in a policy update to the user’s Teams client.
The entire process can take several hours. This is largely because the user’s Teams client stores a cache on their local machine that is only refreshed every so often.
Microsoft states that any changes applied can take up to 24 hours before a user has benefit of them.
In fact, Microsoft support will not perform any troubleshooting until at least 24 hours have expired since the change.
So what can you do?
There are a couple of tricks that you can try in order to speed this process up.
- Ask the user to sign in to Teams using a Microsoft Edge or Google Chrome browser with a cleared browser cache. The client is web loaded and any changes usually appear quicker with the web client than the desktop client
- Clear the desktop cache for the Teams client for the user and relaunch the client. This will force the desktop client to pull down a fresh copy of all the user’s configuration. If all the back-end tasks have been completed, the client should show the dialpad.
If neither of these options work, the problem could still be replication of back-end tasks and you will need to wait a little longer. Or the problem could be something else.
2. Teams user account misconfiguration
If the problem is not replication, the next possible reason could be down to a user account misconfiguration.
Sometimes, assigning a user a phone number fails to change the ‘EnterpriseVoiceEnabled’ attribute boolean flag from FALSE (default) to TRUE.
This attribute is a very important one that controls the show/hiding of the Teams dialpad and it must be set to TRUE.
Unfortunately, there is no way to check or set this attribute using the Teams Admin Center. The only way is by using the Teams PowerShell Module.
To check a user’s attribute, run the following command:
Get-CsOnlineUser -Identity username@domain.com | Select EnterpriseVoiceEnabled

If this parameter is set to FALSE. Change it using the following command:
Set-CsPhoneNumberAssignment -Identity username@domain.com -EnterpriseVoiceEnabled $true
Once set, you will need to wait again to see if the change has fixed the issue. You may have to perform the clearing of the client cache.
3. Incorrect calling policy assigned
Another common reason is when a user has been promoted to PSTN calling from a restricted state. Sometimes it is easy to forget that user based policies can also affect the dialpad’s visibility.
Check that the user’s Calling Policy is not set to restrict ‘Private Calls’ and ‘Web PSTN Calling’.

You can check this against the user using the Teams Admin Center.
- Find the user in question in Users >> Manage Users.
- Click on their name and then the Policies tab.
- Under the Assigned Policies column, check the calling policy assigned.
- If the policy is restrictive, click on Edit next to the Assigned Policies title and change the calling policy for the user to another policy that has the correct settings enabled.

After this change, you will need to wait up to 24 hours for the policy to become effective on the user’s client.
4. Unsupported browsers
A less common reason for the Teams dialpad not to appear is when a user is using Microsoft Teams in browser mode.
Currently, Microsoft Teams Calling is only supported in browser mode for the following web browsers
- Microsoft Edge
- Google Chrome
Any other browser, like Safari or Firefox doesn’t support PSTN calling. Therefore the Microsoft Teams dialpad will be missing.
A full list of limitations and supported features can be found here.
It goes without saying to ask the user to use a supported browser or install the desktop client if possible.
5. Missing voice route in global routing policy
This is a very niche cause for the Teams dialpad to be missing. If this is the problem, it will be affecting all users and not individual ones.
This affects all voice users, Direct Routing, Calling Plans, and Operator Connect users.
When your Teams tenant is created, Microsoft creates some default settings. In the Online Voice Routing Policies, a Global policy is created. This global policy is in effect for all users, regardless of PSTN connectivity type.
Within this policy there should be a default PSTN Usage record added that contains a single voice route.

If this is missing, then the Teams Dialpad will not appear for any voice-enabled user, regardless of the steps you’ve already tried in this blog.
Why would it be missing?
In very rare cases, it could have been a bug at the tenant creation time. But it’s more likely to have been manually deleted by a Global Administrator at an earlier time.
Fortunately, it can be created fairly easily within the Teams Admin Center.
First, go to Voice >> Direct Routing >> Manage PSTN Usage Records

Add a usage record called ‘Global‘ and press Apply
Next, click on the Voice Routes tab and click Add to add a new route to the routing table

Name the route LocalRoute and add the dialled number pattern to be ^(\d{2})$ – this is usually safe to use.
We don’t want to use any pattern that could be a legitimate number to call. This is purely to create a default route for the Global policy. Then add the Global PSTN Usage Policy you created to the route.

You don’t need to add an SBC to the route. Press Save
Finally, go back to your Voice Routing Policies >> Global Policy and edit it. Add the Global PSTN Usage to it that you created and press Apply.

Once applied, wait a few hours for the changes to take effect. However, once replicated, this should finally solve the issue of the missing Teams dialpad for you.
If you’re a Callroute customer, we take care of this for you by automatically checking that this route exists and if not, we create it as part of our provisioning solution.