Author Image

By: Aivis Olsteins

In News


VoIP Routing Part 2: Priority based Routing

Continuing discussion on inner workings of routing mechanisms in VoIP, let's discuss Priority based routing

Least Cost Routing or LCR discussed in previous post is not the only method of routing in telecom and VoIP in particular. There are cases when other routing methods can be more appropriate. Let's discuss another popular routing method: Priority Routing.

In the priority routing specific destination or breakout is explicitly routed to one or more carriers, regardless of the cost considerations. That might be due to many reasons, including contractual, legal, regulatory etc. In this case the routes are defined in fixed order, like in example below:


Destination Provider Priority number
UK Mobile Provider 2 1
Provider 3 2
Provider 1 3
UK Provider 3 1
Provider 4 2


In the table above we assume smaller number of priority means highest choice, i. e. “first priority” is higher than “second priority” etc. So in case the call is being made to “UK mobile” numbers, the routing will return the providers in the following order:

Provider 2, Provider 3, Provider 1

What happens if for some reason call is unable to be established via any of the three choices? We know, that UK Mobile codes (447) are a subset of entire UK number range (44). Should we also include routes to UK itself? There is a chance that Provider 4 might deliver a call, but since it is not listed in UK Mobile destinations, we are not looking anywhere outside this destination.


The setting which controls whether routing engine should look further, to the less specific code or not, is sometimes called hunt-stop (in some systems it is named “No Jump”). Setting it to “YES” will prevent routing engine from returning choices with less specific codes. Lets see table below:


Destination Hunt-stop Provider Priority number
UK Mobile No Provider 2 1
Provider 3 2
Provider 1 3
UK Yes Provider 3 1
Provider 4 2

The example above shows the scenario where hunt-stop is disabled for UK Mobile. Therefore the routing engine will also return choices for UK, i. e. less specific code. Note, that Provider 3 appears twice: in UK Mobile and UK. To avoid redundancy, the routing engine should not return that choice twice. The expected result for UK Mobile would be:

Provider 2, Provider 3, Provider 1, Provider 4

Equal Priority and Weights.

In some cases in priority routing we have two or more providers which we want to put on say priority. That is perfectly possible, and the routing engine would ideally return choices in the round robin fashion. In real life, however, routing engines are mostly stateless and weighted random is acceptable choice, given that number of calls usually is high enough for random choice to be accurate enough.

That also helps with the case where some of the same priority choices can accept more calls than other. In this cases we assign relative weights to the choices, like in table below:


Destination Hunt-stop Provider Priority number Weight
UK Mobile No Provider 2 1 1
Provider 3 1 3
Provider 1 2 N/A
UK Yes Provider 3 1 N/A
Provider 4 2 N/A


So in case of call to UK Mobile, we would want to see approx 75% of calls going to Provider 3 as the first choice and 25% to the Provider 2 as the first choice.

To sum up, the choices would be:

  • In 75% of all requests: Provider 3, Provider 2, Provider 1, Provider 4
  • In 25% of all requests: Provider 2, Provider 3, Provider 1, Provider 4

Next we will discuss quality based routing.


Leave a comment
About Author
Author Image
My name is Aivis Olsteins and I am owner of DataTechLabs. My experience in Telecoms started in early 1990's and I have worked in multiple technical positions in mobile, messaging and data networks. My expertise lies in telecom networks, database systems, distributed processing and large data analysis. These posts are my attempt to share my knowledge with everyone who might find it useful.

Get in Touch

If you have something to say, please use the contact form below to get in touch with us. We will get back to you as soon as possible.

Mail Us

DataTechLabs SIA, Muzikas str 12A
Jurmala, LV-2008, Latvia.

Call Us

+371 67 66 09 01
+ 1 202 499 1550

E-mail Us