Microsoft Teams – What to Do Before March 2023 if You Use Phone Number Extensions (MC487014)

MC487014 (as reported by Tom Arbuthnot) has an impact on all the organizations that use Extensions in their phone numbers. If you already know what the change is all about, just jump to the What to do? paragraph.

What Happens?

There are two ways to manage phone extensions:

  1. The extension is just the last digits of a unique telephone number (like for Megan Bowen that has +44 161 240 2399 and extension 399)
  1. The extensions use the same base number and add some digits to distinguish two different users (like for Johanna Lorenz and Miriam Graham that have +44 161 240 200 as a base phone number and have a specific extensions each, 374 and 375)

Previously, Teams was doing a number reverse lookup if the incoming phone number was not matched exactly.

After the change has been applied from Microsoft (due Feb/March 2023), the user will get the phone call only if incoming phone number is exactly formatted like in the user properties. In our example the incoming calls must be exactly “tel:+441612402399;ext=399” for Megan Bowen “tel:+44161240200;ext=374” for Johanna Lorenz and “tel:+44161240200;ext=375” for Miriam Graham

So, the incoming phone numbers should be formatted accordingly by a SBC or by a normalization rules.

What to do?

First of all, use the following to identify all the Teams users that have a phone number with an extension

# Connect to Microsoft Teams
# Retrieve all Teams users in the tenant enabled to Enterprise Voice
$TeamsUsers = Get-CsOnlineUser | Where-Object {$_.EnterpriseVoiceEnabled -eq $true}

# Create an array to store Teams users with a phone number
$TeamsUsersWithPhone = @()

# Loop through each Teams user
foreach ($User in $TeamsUsers) {
    # Check if the LineURI property is not empty
    if ($User.LineURI -ne $null -and $User.LineURI -ne "") {
        # Check if the LineURI property contains the string "ext"
        if ($User.LineURI -like "*ext*") {
            # Create a custom object with the display name and phone number of the user
            $TeamsUser = [PSCustomObject]@{
                DisplayName = $User.DisplayName
                PhoneNumber = $User.LineURI
            # Add the custom object to the array of Teams users with a phone number
            $TeamsUsersWithPhone += $TeamsUser

# Display the results in a table format
$TeamsUsersWithPhone | Format-Table DisplayName,PhoneNumber

The result will be similar to the one below

  • For users with a unique phone number, removing the extension is the suggested solution
  • For users with the same base number and different extensions, check that the calls are sent to Teams with the phone number formatted correctly including the extension

Note: if your Teams Enterprise Voice is managed by a provider, get in touch with them to check that the Microsoft change has been already managed.