CUCM Route Patterns

Route patterns are the fundamental part of the CUCM route plan. They are used to route internal digit patterns inside a CUCM cluster, or external digit patterns to the PSTN. Their equivalent in the Cisco Unified Communications Manager Express world is dial peers.

The dummest explanation of route pattern is the following: to allow CUCM to route calls based on the matched patterns it finds among the route patterns. Think of it like someone talking to you and as soon as you find the right pattern you take action:

Cartoon (C) Julie R. Neidlinger |

A Route Pattern can route or block a pattern. In the case of blocked pattern, we need to specify the cause code. The cause cause can be one of the following values:

  • Out of bandwidth,
  • User busy
  • Unallocated number.

Even if you don’t choose a cause code by yourself, a default one is assigned.

Route patterns point to:

  • a Route List
  • a Route Group
  • a device: a gateway or a trunk

Cisco recommends pointing route patterns to route lists instead of directly pointing them to gateways or trunks.

A route pattern can contain a combination of digits, from 0 to 9, and wildcards. When using all-digits patterns, you can compare route patterns to static routes. However, when you use wildcards, route patterns can be compared to summary routes, where multiple destinations match the same route.

Route patterns and digit analysis

We need to understand that CUCM creates three lists:
CurrentMatches: one or more patterns that currently match the dialed digit string. This list usually includes fixed patterns (such as 7501 and 4144) and patterns with wildcards (such as 45[2-9])
PotentialMatches: all route patterns are initially (before the user dials any digits) part of the PotentialMatches list.
ClosestMatch: This list contains only one element called the Best Match.

Closest Match vs Longest Match with Route Patterns

We must make the distinction between two concepts: Closest Match and Longest Match. Closest Match is the CUCM behaviour: among the potential matches, it seaches for the one match that satisfies two conditions:

  • It has the fewest number of combinations for the equal number of dialed digits,
  • It has the fewest number of combinations for the digits other than the dialed digit length.

In a previous post, We talked about the interdigit timeout and how it forces the CUCM to wait each time you dial a digit. But is it the only condition? when does it stop waiting for more digits?

When your CUCM stops waiting for more digits

There are two conditions after which the call routing component no longer waits for more digit input:
Condition 1: PotentialMatches is empty,
Condition 2: Interdigit timeout expires.

Route Patterns and digit analysis

This is how CUCM uses the three lists I defined earlier:

After CUCM collects the dialed digits, it compares them against all its route patterns. All route patterns that match are grouped into CurrentMatches. The route patterns that can match are left in the PotentialMatches set. This happens while waiting for more digit input.
If one of the mentioned conditions is true, the call routing component checks for the closest match among the CurrentMatches. Once the closest match is found, the call is extended to the destination associated with the closestMatch route pattern.
If more digits are received, the call routing component restarts the process and searches for new current matches.

Overlapping Route Patterns

Let’s assume we have route pattern 1 (RP1) and route pattern 2 (RP2). And let’s assume we have two digit sequences: sequence A and sequence B, where sequence A is the first part of sequence B.

When dialing sequence A, CUCM finds that RP1 and RP2 are in the PotentialMatch list. However, when we continue dialing until we finish sequence B, RP1 is no longer in the PotentialMatch list and RP2 is the ClosestMatch. We say that RP1 and RP2 are overlapping route patterns.

Route pattern configuration

  •  In the Cisco Unified CM Administration menu, go to Call Routing -> Route/Hunt ->Route Pattern


  • click on Add New
  • Here is a sample configuration of the 911 pattern, in a HQ office:


Route pattern configuration on home lab

We will configure route patterns for both HQ and Branch1.

HQ route patterns

class-of-service-partitions-css-2016-05-29 14_56_12

Branch1 route patterns

class-of-service-partitions-css-2016-05-29 14_58_19

Make Your Route Patterns VIP With The Urgent Priority Feature

An urgent route pattern is a pattern that routes/blocks the call as soon as it matches, even if it’s not the best match.

A special attention is needed when the urgent route pattern overlaps with other route patterns. To understand this concept, let’s suppose we have two route patterns:

  • an urgent route pattern A that matches 6 digits, and
  • a route pattern B that matches all 10 digits.

When we dial the first 6 digits, route pattern A matches them. And since it’s an urgent route pattern, it will tell the call routing component to route the call, incorrectly unfortunately. The innocent route pattern B will wait forever. This is an example of unwanted behaviour with urgent route patterns.

Another place where not to configure urgent patterns is with international numbers. In fact, each country’s number format is different in length. Unless you are configuring the exact pattern of each country you will dial into, do not configure urgent route patterns for international calls.


  1. […] But in CUCM, we can associate it with the concept of Interdigit Timeout by configuring the Route Pattern with a pound key “#” at the […]

Leave a Reply

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