so you are implementing Microsoft Teams Direct Routing, maybe side-by-side with Skype for Business On-Prem, with a Ribbon (formely Sonus) SBC 1K/2K, and you want to improve your call routes for Teams Direct Routing.
You are on the right page!
Note: instead if you use AudioCodes SBC, you can read a similar guide from my dear friend and MVP Roberto Ferazzi here:
If you use Ribbon (formely Sonus) SBC 1K/2K with Skype for Business, you are probably confident with Call Routing Based on Active Directory User Attributes.
This is a simple example of a Transformation Rule that search for Called Number in AD and route the call to SfB if and only if the called number is found in the msRTCSIP-Line Attribute of a User
Pay attention to the * (asterisk) at the end of the Output Field Value on the first line: it instructs the SBC to search for the called number and IGNORE any presence of ;ext= in the Attribute.
This is very useful in SfB because you will match numbers with or without the ;ext=
Adding Teams Direct Routing
Probably when you started to test Teams Direct Routing you have added a Transformation Rule that statically match the called number migrated from SfB to Teams.
Very useful at the beginning of the journey from SfB to Teams, but now it’s time to improve the Call Routing
This table describe two “little” differences between Users on SfB On-Prem and Users migrated to Teams Direct Routing
|Users on SfB On-Prem||Users on Teams|
|TelURI||Could contain ;ext=||Could not contain ;ext=|
The idea is very simple: add a rule that route calls to Teams if the DeploymentLocator is equal to sipfed.online.lync.com
Change Query Attributes List on SBC
In Setting -> Auth and Directory Services -> Active Directory -> Configuration add msRTCSIP-DeploymentLocator to the Query Attributes List
Change the Transformation Rule
In this example I assume you have a Transformation Rule that statically route call to Teams, called “FROM PSTN TO TEAMS”.
Clone this rule to safely work on it.
- Users on Teams could not have ;ext=xxx in the LineURI, so the first change is to remove the * (asterisk) at the end of the first entry
- add/change the second entry this way
Change the Output Filed Type to User Value 2 and Value to sipfed.online.lync.com
Explanation: this rule tell the SBC to set the User Value 2 to
sipfed.online.lync.com IF (mandatory match type) the called number previously set into User Value 1 is found in the msRTCSIP-Line Attribute of a User
3. add a new entry like this one
Explanation: this rule tell the SBC to verify if the
msRTCSIP-DeploymentLocator Value of the previously searched User is equal to sipfed.online.lync.com.
The rule is mandatory so if the User is On-Prem the rule will find a Value equal to SRV: and will fail.
If the User is on Teams, this check will find sipfed.online.lync.com and will continue to the next Transformation Rule Entry
4. Complete the rule with a standard Called number normalization rule to E.164
Change the Call Routing Table
In Settings -> Call Routing -> Call Routing Table place this Transformation Rule above the rule that route calls to SfB.
In this example the rule FROM PSTN TO TEAMS is above FROM PSTN TO UC (Skype for Business)
Test this solution and let me know if you appreciate it!