Microsoft Teams Phone System, Direct Routing, and SBCs, a journey. (part 1/4)

Erik Lagerway
4 min readMay 25, 2020

--

If you are frustrated by how difficult it is to associate external phone numbers and SIP services (Session Initiation Protocol, the defacto signaling protocol for VoIP) to Teams users, this may be of interest to you. In this article, I will break down my journey from initial research of Microsoft’s inbuilt calling features to the implementation of an external Direct Routing solution using primarily open-source resources. If you are a Microsoft Teams direct routing and SBC (Session Border Controller) aficionado, you might decide to skip this one.

Introduction

We understand that Microsoft Teams is intrinsically connected to Azure AD (Active Directory) and Microsoft 365, and therefore requires licensing and some training to manage. It can be a complicated beast. That being said, adding phone numbers and calling would seem to be something that Microsoft would have enabled by default? I mean, why would anyone want their customers to jump through hoops to get a phone number for their Teams account? A loaded question to be sure, let’s unpack it.

Getting Started

Recently I have been helping some of my friends, colleagues, and even my son’s teachers get more familiar with Microsoft Teams. I am quite impressed with how far this product has come in recent years. The old Skype For Business app was never my thing, it just felt clunky, but this new Teams app, it’s pretty good!

The one question I am hearing a lot is, “How can I get a phone number from my existing phone system into Teams?”. It’s been a while since I have looked at this but I was hoping Microsoft had a simple way of enabling basic calling from an external SIP source. I then had a flashback going back several years, I remembered that the process for adding SIP trunks to Skype for Business was arcane and wrought with utter frustration. I was hoping that had improved. Spoiler alert: it has improved, but not by a large margin, especially if you are moving from one Microsoft platform (eg. Skye for Business On-line, Or SfB On-premises) to Teams.

Setting up Microsoft Business Voice and Phone System in Teams

After a bit of research, and familiarizing myself with Azure AD, 365, licensing mechanisms (and Power Shell) and Teams, a few things became clear;

1) Managing policies & licensing is done via Azure Active Directory, the 365 admin center, Power Shell, and Teams Admin.

2) Teams user management is done primarily in Teams admin

3) Calling plans in Teams are fine but not what I would describe as competitively priced.

4) Enabling external phone services is not trivial.

To expand on that last point, things get much more complicated when you are migrating from existing Lync, Exchange, or Skype for Business Online or on-premises deployments. Microsoft has plenty of information on the topic on their website, so I won’t get into the nitty-gritty details but suffice it to say, you really need a certified Microsoft shop to help you with this. That said, if you folks really would like me to cover an actual cutover or customer deployment please leave a comment, maybe I will do so in a future post.

Enabling Phone System in Teams

To enable calling using Microsoft’s own phone services, we needed the Business Voice License and a Calling Plan license for each user. These are extra costs per subscriber over and above the other 365 fees your organization would need. Then, you can add numbers via the Teams admin console, but ensure you have the correct licensing and policies in 365 admin or you will not see anything. As you can see, there were none available… in the entire United States…

Most shops that are deploying Teams calling have an in-house admin that will know their way around the licensing. For this demo I am using a trial version of Microsoft Office 365 — Enterprise 5/E5, (you can get a trial here) so I can feel the pain from ground zero.

After a bit more digging, I found out I had not attributed the proper license, of course. Once I had the configuration in proper order, I then saw locations and numbers. I added some numbers to the account and then provisioned them to the users. After a few calls, I was satisfied it was working as per expectations. The admin could pick some number, associate them with users and the number would propagate to the end-user.

A friend of mine was keen on using Teams to make calls, as his team was using it daily for internal communications. What he wasn’t keen on was paying roughly $22/user (USD)+ extra monthly 365 licensing costs per user. Which is what spurred on this whole journey. Now that I knew what was possible and what it costed, I shifted gears to research any potential support for SIP trunking in Teams, something Microsoft calls Direct Routing.

Next week we will start in on Direct Routing and Microsoft’s required configuration for SBC behavior.

If you have any questions or comments or want your own SBC for Direct Routing, get in touch via erik@snapsonic.com or give us a call 1.877.897.1952

--

--