Call Routing

CUCM automatically "knows" how to route calls to internal destinations within the same cluster, because it is configured with the DNs of its associated devices. This can be compared to directly connected networks at a router in IP routing. Route patterns must be configured to route calls to the PSTN. This is equivalent to static routes in an IP router. The call routing table of CUCM is built on registered devices and statically entered route patterns that point to external destinations.

Figure 11-2 has a basic routing table that consists of the following entries:

■ 2001, 2002, and 2003 are DNs of phones configured in CUCM located at the headquarters.

■ There is a second site, Site 1, with CUCM Express and phones using extensions in the range of 3000 to 3999. To be able to route calls to this external system, CUCM at the headquarters requires an entry in its routing table for destination 3XXX (X is a wildcard digit in route patterns that matches any dialed digit) that refers to the CUCM Express located at Site 1 via an H.225 trunk.

■ At the headquarters, there is a PSTN gateway. To route calls out to the PSTN, a route pattern 9.! is configured in CUCM, which points to the headquarters PSTN gateway. The exclamation point (!) is a wildcard character that matches on one or more digits. Usage of the dot and the ! is explained in more detail later in this chapter.

Figure 11-2 Call Routing

408 555-1053

Figure 11-2 Call Routing

408 555-1053

Route

Destination

2001

HQ - Phonel

2002

HQ - Phone2

2003

HQ - Phone3

3XXX

Site 1

9.!

PSTN

Three calls are placed in the example shown in Figure 11-2:

■ (1) 2001 to 2002: This is an on-net call. The dialed number 2002 is looked up in the call routing table, and the call is sent to the appropriate IP phone.

■ (2) 2003 to 3001: The dialed number 3001 matches the entry that refers to a trunk pointing to CUCM Express at Site 1. A call setup message is sent from CUCM to CUCM Express. This call is classified as on-net because the call is still on the company IP network.

■ (3) 2002 to 9 1 408 555-1053: This call is sent to the PSTN because it matches the route pattern 9.!. CUCM will be configured to strip off the PSTN access code 9 before sending the call out to the PSTN through the headquarters gateway. This call is classified as off-net because it is traversing a PSTN gateway.

Call Routing Table Entries

In the preceding example, the call routing table of CUCM was composed of directory numbers and route patterns. Additional routing components can be configured and are added to the call routing table as possible call routing destinations. Table 11-2 shows a list of possible call routing table entries. All routing components shown in the table are discussed further in this book.

Table 11-2 Call Routing Destinations

Routing Component

Description

Directory numbers

Numbers assigned to endpoints and applications. Used for internal routing within a cluster.

Translation pattern

Used to translate the called-party number to a different number.

Route pattern

Used to route calls to remote destinations (PSTN, remote CUCM cluster, and so on).

Hunt pilot

Used to distribute calls (simplified automatic call distribution functionality).

Call-park numbers

Allows the holding of a call on a number to be retrieved by any other phone in the network.

Meet-me numbers

Allows conference call controller to set up a conference call for multiple parties.

Route Patterns

The CUCM call routing database includes the directory numbers of Cisco IP Phones and computer telephony integration (CTI) ports configured in the system, because these entries are entered in the IBM Informix Database Server (IDS) by CUCM administration. CUCM does not know about any phone numbers that are configured on external systems. Gateway and trunks allow CUCM to communicate with external systems. CUCM is configured with route patterns that will be steered through various gateways and trunks to reach the PSTN, remote clusters, and traditional PBXs. The call routing might require various wildcard parameters to implement robust call-processing logic. Table 11-3 covers the wildcard parameters that route patterns can use in CUCM.

The @ wildcard is a special macro function that expands into a series of patterns representing the entire national numbering plan for a certain country. For example, configuring a single unfiltered route pattern such as [email protected] with the North American Numbering Plan (NANP) really adds more than 100 individual route patterns to the CUCM dial plan database.

Table 11-3 Route-Pattern Wildcards

Wildcard

Description

x

Single digit (0-9, *, #)

@

North American Numbering Plan

!

One or more digits (0-9, *, #)

[x-y]

Generic range notation

[Ax-y]

Exclusion range notation

Terminates access code

<wildcard>?

Terminates interdigit timeout

Matches 0 or more occurrences of any digit that matches the previous wildcard

<wildcard>+

Matches one or more occurrences of any digit that matches the previous wildcard

It is possible to configure CUCM to accept other national numbering plans. When this is done, the @ wildcard can be used for different numbering plans, even within the same CUCM cluster, depending on the value selected in the Numbering Plan field on the Route Pattern Configuration page.

The @ wildcard can be practical in several small and medium deployments, but it can become harder to manage and troubleshoot in large deployments. Certain components of the numbering plan can be matched by the use of route filters.

International destinations are usually configured using the ! wildcard, which represents one or more digits. In North America, the route pattern 9.011! is typically configured for international calls. In most European countries, the same result is accomplished with the 0.00! route pattern.

The ! wildcard is also used for deployments in countries where the dialed numbers can be of varying lengths. In such cases, CUCM does not know when the dialing is complete and waits for 15 seconds (by default) before sending the call. This delay can be reduced in any of the following ways:

■ Reduce the T.302 timer service parameter. It is best practice to set this value to 4 to 5 seconds to prevent premature transmission of the call before the user is finished dialing.

■ Configure a 9.011! second route pattern ending with an interdigit timeout expiration wildcard. (The # symbol is used for this functionality in most systems.) Instruct the users to dial the # at the end of their international calls. This action is analogous to pressing the Send button on a cell phone.

The Urgent Priority check box in the route-pattern configuration is often used to force immediate routing of certain calls as soon as a match is detected, without waiting for additional digits or the T302 timer to expire. In North America, if the patterns 9.911 and 9.[2-9]XXXXXX are configured and a user dials 9911, CUCM usually has to wait for the T302 timer before routing the call because further digits may cause the 9.[2-9]XXXXXX to match (overlapping dial plan). If urgent priority is enabled for the 9.911 route pattern, CUCM makes its routing decision as soon as the user has finished dialing 9911, without waiting for the T302 timer.

If enbloc dialing is used and the provided number is longer than the urgent pattern, the urgent pattern is not considered because all the digits are analyzed as one string.

Translation patterns always have urgent priority enabled. The check box on the configuration page is grayed out. It cannot be disabled. The urgent priority information is displayed so that the call-processing logic of a translation pattern can be understood. This can be best understood through an example. In a dial plan consisting of a translation pattern of 100 and a directory number of 1001, extension 1001 would never receive a call from a Skinny Client Control Protocol (SCCP)-based phone. As soon as CUCM matches on 100, the call-processing logic routes the call. In an overlapping dial plan scenario such as the one mentioned, CUCM normally waits for additional digits or for the T.302 timer to expire. The differentiating quality is that translation patterns have urgent priority checked and the call is translated as soon as the digits match.

Route-Pattern Examples

Table 11-4 includes some route-pattern matching examples using various wildcard parameters. The X wildcard matches on the * and # Dual Tone Multifrequency (DTMF) keys even though these are rarely included in phone numbers. The [X-Y] generic range notation matches only one digit. A range of [13-59] matches exactly one digit (a 1, 3, 4, 5, or 9). This range does not signify 13 to 59. A comma is an illegal character in the regular expression language used in route-pattern processing.

The 13! appears twice in Table 11-4, once with a pound sign (#) and once without it. The ! poses a call routing dilemma. CUCM will never know when the user is dialing digits because the exclamation point can match an infinite number of dialed digits. CUCM routes all calls that include ! when the T.302 interdigit timeout expires. The T.302 timer is 15 seconds by default. To alleviate the post-dial delay incurred by waiting for this timeout to expire, a second route pattern can be provisioned with the # to terminate the interdigit timeout. CUCM does not implicitly know how to process the interdigit timeout unless it's put into a route pattern. If the pound is not in the route pattern, the user cannot dial this digit unless the PreDot IntlAccess IntlDirectDial DDI is used.

Table 11-4 Route-Pattern Matching Using Wildcard Processing

Route Pattern

Result

1234

One exact dialed digit: 1234.

1*1X

Matches dialed digits 1*10 to 1*19, 1*1* and 1*1#.

12XX

Matches dialed digits 1200 to 1299, 12**, 12*#, 12#*, and 12##.

13[25-8]6

Matches dialed digits 1326, 1356, 1366, 1376, and 1386.

13[13-59]X

1310-1319, 1330-9, 1340-9, 1350-9, 1390-9. The * and # have been excluded for brevity.

13[A3-9]6

1306, 1316, 1326, 13*6, 13#6.

13!

13 followed by one or more digits.

13!#

13 followed by one or more digits and then ended with a #.

Digit Analysis

In practice, when multiple potentially matching patterns are possible, the destination pattern is chosen based on the following criteria:

1. When a user dials the string 1200, CUCM compares it to the patterns in its call routing table. In this case, there are two potentially matching patterns, 1XXX and 12XX. Both of them match the dialed string, but 1XXX matches a total of 1000 potential strings (1000 to 1999), whereas 12XX matches only 100 potential strings (1200 to 1299). 12XX is selected as the destination of this call because it is the closest match.

2. When the string 1212 is dialed, there are three potentially matching patterns: 1XXX, 12XX, and 121X. 121X matches only ten strings, whereas the other two route patterns match many more strings (explained in the previous step). 121X is the closest match and is selected as the matching pattern of the call.

When an endpoint goes off-hook, CUCM begins the digit analysis process. Every number in the call routing database is an initial match unless the phone is configured as a private line automatic ringdown (PLAR) line. PLAR is used on a directory number to automatically dial a destination and requires the configuration of a calling search space. This functionality is discussed further in Chapter 13, "Calling Privileges."

SCCP phones send their digits one by one as they are dialed unless the number is dialed without lifting the handset and the Dial softkey is pressed (hotdial). Hotdial functionality sends all dialed digits in one SCCP call setup message (enbloc) and the behavior of the digit analysis will differ. Analog interfaces (FXO, FXS) also send their digits digit by digit, whereas H.323 and ISDN send their digits in one Q.931 setup message (enbloc) by default. The method of forwarding digits is important to understand to determine how digit analysis will match on a route pattern when there is an overlapping dial plan.

As each digit in Figure 11-3 is received, CUCM can reduce the number of potential matches of the dialed digits against the call routing database. As soon as an exact match is found, digit analysis returns a current match, and call routing occurs immediately.

Figure 11-3 Digit-by-Digit Analysis

1000

1000

Dialed Digits

Dialed Digits

Route Patterns

1XXX 10XX

Call Setup

1001

1001

The dial plan in Figure 11-3 includes a directory number of 1001, and two route patterns (1XXX and 10XX). The dialed number is 1001, but CUCM has three matching patterns when the third digit is received. When the final digit is received, there is only one pattern that matches the dialed digits. Because there are no more digits to be collected, the call is routed immediately.

Digit collection is stopped as soon as an entry in the call routing table is matched in its full length and no other (longer) potential matches exist. In Figure 11-4, a user dialed 1111. CUCM interprets the number digit by digit. After the first two digits have been analyzed in

NOTE Session Initiation Protocol (SIP) phones use enbloc dialing in one SIP INVITE message by default. Keypad Markup Language (KPML) can be implemented on Type B SIP phones to emulate SCCP digit-by-digit behavior. If digits are received enbloc, the entire received dial string is checked against the call routing database. This differs greatly from the digit-by-digit analysis used by SCCP-controlled phones.

this example, only one potential match is left (the first entry) because all other entries in the call routing table require a different digit than 1 at the second position. CUCM continues collecting digits until it receives 4 digits (1111); now the first entry is fully matched and used to route the call.

Figure 11-4 Digit Collection Example

User Dial String: 1111

In Figure 11-5, the user dialed 1211. After interpreting these digits, CUCM has two matches: 121X and 1[23]XX and no additional potential matches that are longer (which would require waiting for more digits). Digit collection is stopped, and the closest-match routing logic is applied. Route pattern 121X represents 10 potential matches, and route pattern 1[23]XX represents 100 potential matches that start with 12. The first entry is the closest match and will be used to route the call.

Figure 11-5 Closest-Match Routing Example

Figure 11-5 Closest-Match Routing Example

In Figure 11-6, a user dials 1311—CUCM has three potential matches at this time: 13[0-4]X, 1[23]XX, and 13!. The last entry represents a variable-length route pattern because it can potentially match on more digits. CUCM has to wait because the user might provide additional digits. CUCM will not wait an indefinite time for additional digits, however. After the T.302 interdigit timer expires (15 seconds by default), CUCM attempts to route the call based on the closest-match logic. If there are no other matching patterns at this time, CUCM issues a reorder tone or a recorded annunciator message to the calling party. In this example, there are two matching route patterns, but 13[0-4]X is the closest pattern representing only 10 possible numbers, whereas 1[23]XX has 100 potential matches, and 13! represents an unlimited number of potential matches.

Assume that the user dialed only three digits: 131. CUCM would match all three route patterns at this time, but after the interdigit timeout expired, only one route pattern would match: 13!.

These wildcards can be helpful when creating a PSTN dial plan in North America like that in Table 11-5. Most of the route patterns include a 9 as an access code and a dot (.) used as a delimiter for digit-stripping rules. Later in this chapter, we discuss digit discard instructions (DDI), which allow CUCM to strip digits preceding the dot (access code).

Figure 11-6 Interdigit Timeout

Figure 11-6 Interdigit Timeout

Table 11-5 North America PSTN Dial Plan

Route Pattern

Description

911

Emergency call routing without access code

9.911

Emergency call routing with access code

9.[2-8]11

3-digit service codes (for example, 411 for information)

9.[2-9]XX XXXX

7-digit local dialing

9.[2-9]XX [2-9] XXXX

10-digit local dialing

9.1[2-9]XX [2-9]XX XXXX

11-digit long-distance dialing

9.011!

International dialing (variable-length dialing)

9.011!#

International dialing (variable-length dialing with interdigit termination)

Was this article helpful?

+6 -3

Responses

  • efrem
    How to strip 011 from cucm?
    2 years ago
  • Scott
    Does cucm built with router?
    1 year ago
  • faramir
    How to route pstn call from cisco call manager?
    10 months ago
  • VIRGILIO
    How to check call route from cucm?
    1 month ago

Post a comment