An Option for Voice Migration to Microsoft Teams – Direct Routing: Alternative Routing on the AudioCodes SBC

I found the Alternative Routing feature on the AudioCodes SBC really useful to accelerate the migration from a legacy PBX to Teams (with Direct Routing) in some scenarios.

Typically we have a legacy PBX that has to live side-by-side with Teams Direct Routing for a period of time.

Let’s say that the DDI numbers ranges in the legacy PBX change often and are not easy to define or that the DDIs are being migrated to Teams not in groups.

In both the above situations, a large number of routing rules could be required to define where a telephone number is located (for a example, if it is in the legacy PBX or if it is a PSTN number).

A possible solution is using Alternative Routing.

What you will have is the main route (called “Route Row“) and one or more Alternative Routes that will be used in case the first route returns an error (like “404 – not found”).

The whole process of trying a route, failing and moving to the next one usually does not add a perceptible delay and is transparent to the user.

Let’s quickly depict an example scenario:

  • The legacy system is a CUCM (IP Group “CUCM“) with the Teams Direct Routing trunk connected to the IP Group “Teams
  • Every time we make a phone call to a DDI we want to check if it located on the CUCM. If not, we want to route the call to the PSTN

The first step is to define two routes in IP-To-IP Routing (SETUP -> SIGNALING & MEDIA -> SBC -> ROUTING -> IP-to-IP ROUTING)

The first one must be the main route (in our case, the one that goes to the CUCM). The second route will be the one that goes to the PSTN.

Note: it is mandatory that the main Route (Route Row) and the alternative route(s) are in order in the routing list. Main Route must be immediately followed by the Alternative Route.

I have the main one (Teams_to_CUCM) as index number 3 and the alternative (FromTeamsToPSTN) as index number 4 (shown in the screenshot below

The first route must have the Alternative Route Options value set to Route Row (it is the default setting). See the screenshot below

The second route could be set to Alternative Route Ignore Inputs or to Alternative Route Consider Inputs. Both the options set this route as an alternative to the previous one but the second option (Consider Inputs) looks at the actual SIP message before taking a routing decision.

What we need to do now is to define SBC Alternative Routing Reasons (up to five different call release reasons.

If a call is released as a result of one of these reasons the device attempts to locate an alternative route.

I have a new Alternative Reason Set (CUCM_Fail) containing three different options (SIP 404, 408 and 480)


Now, the last step is to set the Alternative Routing Reason Set in the IP Group of the main route (in my scenario CUCM)


Next call outgoing from Teams will be connected to the CUCM and then, eventually, to the PSTN