Solutions for Managing Direct Routing Numbers in Teams

Solutions for Managing Direct Routing Numbers in Teams
Easily view the Inventory of Numbers purchased from Microsoft or Operator Connect.

There are various reasons why your organization may choose Direct Routing as your PSTN connectivity option in Microsoft Teams. (Shameless plug to my other article on why you should consider DRaaS)

  • You may have an existing PSTN infrastructure (ex. SBCs / SIP Trunks) you want to continue to leverage with existing agreements with your carriers/operators.
  • Perhaps you’re simply moving at your own pace from a traditional/legacy PBX and need to maintain a hybrid model for a while.

Whatever your reasons, you will need to assign Direct Routing phone numbers to Microsoft Teams users and manage everything that comes with them.

This article explores the intricacies of Direct Routing Phone Number Management in Microsoft Teams and offers in-depth insights into the challenges that people often encounter. It then presents various available options/solutions to overcome these challenges.

The Teams Admin Center is Not Effective in Managing Direct Routing Numbers — Here’s Why

While Direct Routing is Microsoft’s most flexible calling solution, managing Direct Routing Numbers through the Teams Admin Center (TAC) can be challenging.

No Inventory View of Direct Routing Numbers in Teams

Unlike Microsoft Calling Plans or Operator Connect Numbers that can be easily viewed/listed in the Teams Admin Center, administrators attempting to list the inventory of their Direct Routing Numbers are stuck managing that information elsewhere, such as in shared spreadsheets or custom reports using PowerShell.

Assigning Direct Routing Numbers in Teams Admin Center is Manual

When assigning Operator Connect or Microsoft numbers, you can choose from a list of available numbers. However, when assigning Direct Routing numbers, administrators must manually enter the number without any assurance that it is correct and configured on the SBC the number routes through.

Assigning an Operator Connect Number via a drop-down of available numbers
Assigning a Direct Routing Number in Teams by manually typing 😬

There is no visibility into Numbers Routing Outside of Teams

TAC offers no visibility into numbers routed elsewhere (ex. Cisco’s CUCM, Voice Gateways). Depending on how you’ve set up your routing, this can be a nightmare tracking which numbers are going to Teams vs. another PBX.

There is no delegate or role-based access (RBAC) to numbers

Administrators can assign or remove any number to/from any team's user. This means that any user can access any number without restrictions on who can access what.

There is no mechanism to push Teams Numbers to AD (on Prem)

Folks who still have an on-premise AD cannot automatically keep it up to date with the numbers you assign in teams. You are stuck writing Powershell to Sync Microsoft Teams Phone Numbers (LineURI) with Active Directory.

Extension Dialing is Complicated

Setting up extension dialling in Teams can be challenging for administrators who require it. You must either configure Dial plans with Normalization Rules in Teams or establish transformation rules in your SBC configurations.

Policies (and lots of them)

Locations are commonly associated with distinct ranges of numbers and corresponding policies (ex. Emergency Calling Policy, Dial Plan, Calling Policy, Voice Routing Policy), but there’s no such concept in Teams. It can be easy to forget to set certain policies for new users or to keep track of which ranges of numbers correspond to which settings. Moreover, some policies are only assignable via Powershell (ex. Call Recording, Shared Calling).

No mechanism for automating Number Assignment

Although many mechanisms exist to automatically assign licenses or policies to newly onboarded users through the group-based policy assignment, nothing is readily available to assign users a phone number.

No Teams Dedicated Audits (Who changed what, when?)

Imagine this scenario: An employee reports that their phone cannot make/receive PSTN calls. You quickly identify that their number/LineURI was deleted in Teams. When did that happen, and by whom? Microsoft Purview is an extremely powerful tool that can spot those changes. Still, nothing is quickly/readily available within TAC itself to show you the history of a user’s configuration or who changed it.

Teams Administrators Cannot License Users for Calling

To assign Teams Users a phone number, they require a Phone System License. These licenses can be assigned through Group Based Licensing or Direct Assignment. However, adding a user to a group or assigning them a license requires additional roles and portals beyond the Teams Administration roles.

How to Automate Your Team Number Management with Open-Source Libraries

TeamsPhoneNumberManagement by Microsoft Cloud Solution Architect Jamy Klotzsche provides users with an automated way to manage phone numbers in Microsoft Teams by deploying a collection of PowerShell scripts and Azure functions alongside a MySQL database in your Tenant.

The solution also exposes APIs and even provides methods of updating your on-premise Active Directory based on phone number assignment in Teams.

Built on top of Azure services, TeamsPhoneNumberManagement provides a way to manage the phone numbers for your Teams users in a structured and automated way.

Martin Heusser | M365 Apps & Services MVP also provides an elegant solution by combining Azure Automation, Powershell CLI (PnP) and Power Automate to generate beautiful interactive reports in Sharepoint. His reports can even handle misconfiguration (ex. user having the wrong usage location) and phone number re-assignments.

SaaS Products for Microsoft Teams Phone Management — No PowerShell Required!

For those willing to open their wallet and desire a more readily available solution, there are various options to choose from:

These solutions provide comprehensive features and support, eliminating the need to repair PowerShell scripts or update spreadsheets when your customized solution fails.

For instance, the ZIRO Platform For Microsoft Teams offers a full range of features that you’d normally expect from an enterprise application. These features include automated provisioning, de-provisioning or re-assigning numbers and extensions, role-based access control, audit trails, reporting, zero-touch provisioning, bulk provisioning, and licensing

Furthermore, the solution enables you to update Active Directory based on the numbers assigned in Microsoft Teams or pull availability from other on-prem PBX systems like Cisco’s CUCM.

ZIRO Platform — Assign and Manage Numbers in Microsoft Teams as you would pick a seat on an airplane ✈️

With the Microsoft Phone System, anything is possible.

I have assisted numerous individuals in moving or integrating their telephony into Teams via Direct Routing. Although there have been times when I have thought to myself, “I cannot believe Microsoft does not have this feature out of the box,” it has become easier to extend your calling solution and bridge those gaps with third-party products and custom solutions, thanks to Microsoft’s APIs, libraries, and its flourishing community.

Did you face any troubles while managing Direct Routing Numbers that I may have missed?

Don’t hesitate to let me know in the comments below! 😀