Not too long ago, optimizing least cost routing was a relatively straight-forward exercise that could be managed part time by an industrious billing or switch technician. This is no longer the case and this article will describes the major developments that have increased the scope and complexity of least cost routing for the North American telephone network.


Routing Table Size
Area Codes were first established in 1947 with a total of seventy-eight area codes nationwide. Over the next 43 years, only thirty-six area codes were added. In the 1990s, the growth in wireless services drove the addition of 109 new area codes so new blocks of 10,000 numbers could be issued to carriers. These number blocks refer to the first six digits of a telephone number, or NPA-NXX where NPA is the area code and NXX is the switch code.


Faced with a dwindling supply of telephone numbers for new carriers to issue to their subscribers, the FCC in 2000 ordered that NPA-NXX number blocks be partitioned into 1000 blocks (NPA-NXX-X). Partitioning of NPA-NXX blocks, also known as number pooling, dramatically increased the supply of new numbers for expanding carriers which is good. But seven digit routing based on 1000 block partitions is more complicated than routing on six digit NPA-NXX blocks. In the Local Exchange Routing Guide (LERG) there are 166,431 six digit NPA-NXX dial codes. In contrast, there are 644,327 dial codes when routing based on seven digit one thousand blocks.


In telephone routing tables, a dial code matched with a destination (IP address or trunk group) is called a translation. Most least cost routing tables have an average of three destinations per dial code. This means that a basic optimized least cost routing tables for domestic US routing can have more than one and half million translations. Some TransNexus customers have 50 million translations in their routing table.

Jurisdictional Routing

Jurisdictional routing is another name for local, intra-state and inter-state routing. Call routing decisions are based on both the calling and called number. How a call gets rated depends on where the calling party is located. Paradoxically intra-state calls cost more than inter-state calls. For a service provider to optimize their least cost routing, they must have two routing tables, one for intra-state calls and a second for inter-state call.


Jurisdictional routing is determined by the ANI (Automatic Number Identification), or telephone number, of the calling party. With VoIP calls, it is common for the ANI to be an invalid value, such as a random number that is not a telephone number or the SIP URI of the calling party. Calls with an invalid ANI are rated at the higher intra-state rate if they are completed. Most major carriers will block calls that do not have a valid ANI. However, some service providers will accept calls with an invalid ANI so this creates an optimization for a third least cost routing table. One for inter-state, one for intra-state and a third for calls with invalid ANIs.


Local routing is another form of jurisdictional call routing which is determined by the NPA-NXX-X of the calling party and the called party. Interconnection of local calls is usually charged at very low rates, much less than intra-state, and offers another least cost routing optimization. A challenge with local call routing for most VoIP providers is the size of the table which defines the source and destination NPA-NXX-X combinations for each local calling area. Unlike Local Exchange Carrier switches that serve limited geographic areas, a VoIP service provider’s softswitch can serve customers anywhere in the US. A table that defines all the local calling areas in the US would have over a billion NPA-NXX-X combinations.


Deciphering Rates by LATA, OCN and Tier
Least cost routing is all about analyzing dial codes and the rates carriers charge to complete calls to those dial codes. Unfortunately, most carriers to not quote rates for US termination by dial code. Instead they quotes rate in terms of OCN, LATA and Tier. So the first step in least cost routing analysis is to normalize carrier rates from OCN, LATA and Tier to E.164 dial codes. OCN stands for Operating Company Number and is a four digit number in the LERG. The LERG lists all the dial codes (NPA-NXX-X) for each of the 3,936 OCNs. LATA stands for Local Access and Transport Area and is a regulatory relic of the AT&T breakup in 1984. The LERG can be used to determine all dial codes for each OCN within each of the 223 different LATAs. Tiers are the last abstraction used by carriers to quote rates. Carriers often have six to eight rate tiers per LATA. Tiers are not standard and every carrier’s tier structure is different. Manually normalizing carrier rates using the LERG is too big a task for even the most industrious technician.


Number Portability Correction
In 1996 the FCC ordered that telephone companies must let subscribers switch service providers and keep their telephone number. When you switch phone companies and keep your telephone number, your number is ported to the new service provider and added to the number portability database. Today, every call in North America starts with a query to the Number Portability Administration Center (NPAC) database to determine if the telephone number has been ported to a different service provider. If the number has been ported, then the NPAC returns the Location Routing Number (LRN) for the ported number. The call is then routed using the LRN, not the dialed telephone number.


Today there are 197 million ported telephone numbers in North America. TransNexus customers report that 40% of their calls are to ported telephone numbers. This development has a dramatic impact on least cost routing. If least cost routing is based on the dialed telephone number then 40% of all calls will not be routed to the lowest cost provider! TransNexus customers have found that number portability correction can decrease their total termination costs by over 15%.