Microsoft Teams Direct Routing with Pure IP (No On-Prem Infrastructure)

In my opinion, one of the most exciting things about Microsoft Teams Direct Routing is the ability to configure this directly from a carrier into Microsoft. For companies wanting to test Direct Routing as part of a proof of concept, or even smaller organisations, this means you need zero on-premises voice infrastructure (SBCs etc) and can utilise the scale and resilience of the carriers to achieve your telephony goals.

It was no surprise for Pure IP to be one of the first carriers to offer this as they’ve always been eager to support Microsoft’s voice solutions. They’re very quick when compared to the established carriers who (in my experience) are agonisingly slow to do anything.

Costs

Costs aren’t too bad. Each Teams SIP channel carries a monthly cost of £5.75 along with a £10 setup charge per channel. There is also a one off cost of £150 to cover their setup of your trunks, certificate and testing etc. Be aware there is a minimum order of 5 channels. So, for the purposes of this test it cost us a one off £200 and a monthly recurring charge of £28.75 for 5 channels.

First of all, as you’d expect there are some technical and license requirements to achieve this. The requirements are as follows:

Skype for Business Online

Perhaps the biggest caveat is that the user needs to be hosted in Skype for Business Online. I imagine this is about encouraging people to migrate to the Cloud rather than any technical limitations.

Licensing

  • Skype for Business Online (Plan 2)
  • Microsoft Phone System (Cloud PBX)
  • Microsoft Teams
  • Optional: Audio Conferencing (Required for dial-out from meetings)

Tenant Requirements

DNS

Once you have chosen your domain, Pure IP will ask you to add a couple of A records for their SBCs in your DNS zone. Mine were:

  • pureipuksbc1.<yourdomain>
  • pureipuksbc2.<yourdomain>

Certificate

You will need to provide Pure IP with a certificate (including private key) which they can use on their SBC to establish the TLS connection between themselves and Microsoft. I managed to use a single certificate with two SANs representing each of the SBCs. Be aware that you need to get a certificate from one of the Microsoft trusted certificate authorities published here: https://docs.microsoft.com/en-us/microsoftteams/direct-routing-plan#public-trusted-certificate-for-the-sbc

Voice Policy

The rest of this article will focus on the voice policy required within Microsoft Teams to route the calls to the Pure IP environment.

My configuration is going to be the bare minimum to get the calls routing through Pure IP. If this was going into production you’d want a far more comprehensive configuration of policies to do things like limit international or premium-rate dialing or take advantage of least cost routing etc.

Note: For help with your voice policies, usages and routes I strongly recommend Ken Lasko’s Skype Optimizer as it will save you a lot of work (and time).

Add the new Gateways

New-CsOnlinePSTNGateway -Fqdn pureipuksbc1.domain.com -SipSignallingPort 5061 -MaxConcurrentSessions 5 -Enabled $true
New-CsOnlinePSTNGateway -Fqdn pureipuksbc2.domain.com -SipSignallingPort 5061 -MaxConcurrentSessions 5 -Enabled $true

Add a new PSTN Usage

Set-CsOnlinePSTNUsage -Identity Global -Usage @{Add=”PureIP-UK-All”}

Create a new Voice Routing Policy

New-CsOnlineVoiceRoutingPolicy “PureIP-UK-All”
New-CsOnlineVoiceRoutingPolicy

Configure Voice Routing Policy

Set-CsOnlineVoiceRoutingPolicy -Identity “PureIP-UK-All” -OnlinePstnUsages “PureIP-UK-All”

Create new Voice Route

New-CsOnlineVoiceRoute -Name “PureIP-UK-All” -NumberPattern ‘^\+\d+’ -OnlinePstnGatewayList pureipuksbc1.domain.com, pureipuksbc2.domain.com -Priority 0 -OnlinePstnUsages “PureIP-UK-All”
New-CsOnlineVoiceRoute

Grant the Voice Routing Policy to the user

Grant-CsOnlineVoiceRoutingPolicy -Identity user@domain.com -PolicyName “PureIP-UK-All”

Shortly after you’ve assigned the voice routing policy to the user (can be forced with a sign-out/sign-in) you will see the Calls tab in the Teams client and calls will route via the carrier.

Calls tab
Outbound
Inbound