Skip to main content


Direct Routing March 2019 (Part 5 of 5)

Welcome back to the final blog in our Direct Routing series! Last time we discussed how to leverage multiple SBC’s in your environment as well as how to configure your SBC to support Direct Routing. This time we’ll wrap things up by discussing the user provisioning process, types of configurations you may have, and lastly how to manage Direct Routing once it is in place!

User Provisioning

For this blog we will discuss two different types of user provisioning scenarios:

  1. Direct Routing Only
  2. Mixed Calling Plan and Direct Routing

Direct Routing Only

In terms of licensing you’ll need a minimum of a Skype for Business Plan 2 license, Microsoft Phone System license, and a Microsoft Teams license. In this scenario the phone number that will be configured on-premises AD or within Azure AD.  As far as routing is concerned, your administrator will be responsible for configuring the necessary routes. Any route that is not found will result in a dropped call.

Mixed Calling Plan and Direct Routing

Similar to the Direct Routing Only scenario, you’ll need a Skype for Business Plan 2 license, Microsoft Phone System license, and Microsoft Teams license. However, for the mixed Calling Plan piece you will need the additional Calling Plan license (domestic or international). In this scenario the phone number that will be configured will be one that you obtain from Microsoft or port over to Microsoft from your losing carrier. In a mixed Calling Plan and Direct Routing scenario routes will first be evaluated depending on what is configured by the administrator. However, if no matching route is found for the callee’s number then the call will be routed via the Calling Plan.

Simple SBC Configuration (Single SBC)

Let’s say we have a pretty small environment where only one SBC is being used. For our first SBC ( it will consist of the following configuration:

  • Online PSTN Gateway
    • Create “New-CsOnlinePSTNGateway -Fqdn -SipSignalingPort 5068 -Enabled $true
      • This allows Microsoft Teams to see the SBC in the environment
      • The SIP signaling port as configured on the SBC in this scenario will be 5068
  • PSTN Usages
    • Run “Set-CsOnlinePSTNUsage -Identity Global -Usage @{Add=”Unrestricted”}
      • Configured to determine whom can use this SBC
      • In this scenario we have set the usage to “Unrestricted”
  • Voice Routes
    • Create “New-CsOnlineVoiceRoute -Identity “Unrestricted” -NumberPattern “.*” -OnlinePSTNGatewayList -Priority 1 -OnlinePSTNUsages “Unrestricted”
      • Determines what types of dialed number patterns the SBC will be accepting
      • In this case it will be accepting any number dialed
  • Voice Routing Policy
    • Create “New-CsOnlineVoiceRoutingPolicy “Unrestricted” -OnlinePstnUsages “Unrestricted”
    • Run “Grant-CsOnlineVoicecRoutingPolicy -Identity “Brian Siefferman” -PolicyName “Unrestricted
      • This user has a routing policy that includes an OnlinePSTNUsage which includes an OnlineVoiceRoute which includes an OnlinePSTNGatewayList to determine how the call will be routed

SBC Advanced Configuration (Multiple SBC’s)

In this scenario we have a customer with multiple SBC’s (as seen below). For multiple SBC’s you will follow the following configuration method:

  • Online PSTN Gateway
    • Create “New-CsOnlinePSTNGateway -Fqdn -SipSignalingPort 5068 -Enabled $true
    • Create “New-CsOnlinePSTNGateway -Fqdn -SipSignalingPort 5068 -Enabled $true
    • Create “New -CsOnlinePSTNGateway -Fqdn -SipSignalingPort 5068 -Enabled $true”
    • Create “New -CsOnlinePSTNGateway -Fqdn -SipSignalingPort 5068 -Enabled $true”
    • Create “New -CsOnlinePSTNGateway -Fqdn -SipSignalingPort 5068 -Enabled $true”
    • Create “New -CsOnlinePSTNGateway -Fqdn -SipSignalingPort 5068 -Enabled $true”
      • Create a new PSTN gateway for each SBC
  • PSTN Usages
    • Run “Set-CsOnlinePSTNUsage -Identity Global -Usage @{Add=”US and Canada”}
      • In this scenario we have one gateway in the US and another in Canada so the PSTN usage covers these regions
    • Create “New-CsOnlineVoiceRoute -Identity “Chicago 1” –NumberPattern “^\+1(312|773)(\d{7})$” –OnlinePstnGatewayList, -Priority 1 –OnlinePstnUsages “US and Canada“”
      • Essentially this means for numbers +1312 or +1773 are assigned to this voice route with the highest priority (Priority 1)
    • Create “New-CsOnlineVoiceRoute -Identity “Chicago 2” –NumberPattern “^\+1(312|773)(\d{7})$” –OnlinePstnGatewayList, -Priority 2 –OnlinePstnUsages “US and Canada“”
      • Same concept as before, just with a lower priority for SBC3 & SBC4
    • Create “New-CsOnlineVoiceRoute -Identity “Other +1” -NumberPattern “^\+1(\d{10})$”” –OnlinePstnGatewayList, –OnlinePstnUsages “US and Canada“”
  • Voice Routing Policy
    • Create “New-CsOnlineVoiceRoutingPolicy “US Only” –OnlinePstnUsages “US and Canada“”
    • Run “Grant-CsOnlineVoiceRoutingPolicy -Identity “Brian Siefferman” -PolicyName “US Only””
      • All pieces above are compiled into the VoiceRoutingPolicy called “US Only” because users will only be able to dial numbers within the US (and Canada…)


Managing Direct Routing

In order to support Direct Routing you need to be aware of the different areas that make Direct Routing work. We will break down each area of the picture below so you can get a better understanding of what your support map should look like.

First let’s start with the end user and the SBC. For this leg of the call it is often helpful to look at CQD (Call Quality Dashboard) for call quality troubleshooting and Call Analytics for individual call troubleshooting. In addition, on the SBC itself you can pull logs which consists of SIP traffic (signaling) between the SBC and Teams. The next leg of the call (SBC to PBX) will only pertain to you if you have a PBX in your environment. However, if you fall under this scenario it is always a good idea to see if you can pull PBX logs to troubleshoot calls between Teams users and PBX users. Lastly, if you find problems making calls out to your PSTN, you may want to reach out to your PSTN provider to ensure no connectivity issues reside on their end.

Common SBC Configuration Issues

Microsoft has collected a number of common issues that they have seen with configurations on SBC’s and provided a helpful table on common solutions to these errors. Errors like the ones in the table below can be found in your SBC logs.

This concludes the final blog in our Direct Routing blog series! Thank you for sticking with me throughout this series, I know it isn’t the most exciting topic to discuss but if this helped you in any way then I consider this a great success! Check back soon, as I will try to get back to blogging on a regular basis and provide you with some of the most up to date Teams news! :).

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Brian Siefferman

Brian is a Technical Consultant for Perficient’s Unified Communications practice focusing primarily on Skype for Business and Microsoft Teams workloads. He has been in this role since December 2017 and has an active presence blogging about all things Teams related. Currently, Brian resides in the suburbs of Chicago and enjoys running, swimming, weight lifting, and playing soccer in his free time.

More from this Author

Follow Us