Chapter 2. Call Routing

CallManager provides an extremely flexible set of tools with which you can control call routing in your enterprise, but this flexibility comes with a price: complexity. This chapter covers routing from the very beginning. It discusses the route pattern, which is CallManager’s central routing concept, and it discusses wildcards, which are the basic building blocks of the route pattern. It discusses how CallManager uses route patterns to select destinations based on the digits that users dial.

From this foundation, the chapter delves further into ever more complex topics. This chapter consists of the following sections:

  • The Three Responsibilities of Call Routing” briefly discusses the tasks that CallManager’s routing logic must accomplish.

  • The Seven Fundamentals of Call Routing” elaborates on the seven basic features—route patterns, route filters, dialing transformations, translation patterns, route lists, calling search spaces, and partitions—that CallManager uses to solve call routing problems.

  • Route Patterns and Route Filters” talks about the route pattern, CallManager’s fundamental call routing concept, by which you can assign addresses to devices in your network.

  • Dialing Transformations” discusses the mechanisms by which you can alter the calling and called numbers as CallManager routes them during calls.

  • Translation Patterns” defines a method by which you can assign aliases to other route patterns. This method is often called on to resolve thorny call routing problems.

  • Call Hunting Constructs” describes two technologies that allow you to configure CallManager to intelligently route a call—route lists and hunt lists. Route lists allow you to organize your gateways into ordered lists so that you can ensure both that your gateways are fully utilized and that you use them in the most cost-efficient manner. Hunt lists allow you to serially or simultaneously offer calls to a group of related phones.

  • Calling Search Spaces and Partitions” defines a method by which you can customize routing on a device-by-device basis to accomplish complex tasks, such as routing calls by the type or the geographic location of the calling user. Partitions can also be associated with time schedules to provide time-of-day routing.

  • Case Studies” provides some extensive examples by which you can see how all the call routing concepts work together to solve complex problems.

  • Miscellaneous Solutions” provides specific solutions for call routing problems that administrators are commonly called on to solve. The solutions in this section often did not fit nicely in other sections of this chapter.

  • International Numbering Plans” covers how CallManager knows how to route calls for which you have selected a numbering plan. This section also describes how you can download additional country-specific numbering plans.

  • Troubleshooting” covers some common problems that administrators encounter when configuring their enterprise dial plans.

Figure 2-1 shows the block structure of CallManager. The shaded parts of Figure 2-1 are covered in this chapter.

CallManager Block Structure Diagram

Figure 2-1. CallManager Block Structure Diagram

This chapter is sprinkled with numerous examples throughout. These examples might be difficult to wade through, but they provide solutions to many common problems. By fully understanding how the examples work, you will be able both to improve on them and to discover solutions to problems that this chapter does not fully address.

The Three Responsibilities of Call Routing

The call routing component of CallManager has three main responsibilities:

  • To determine which endpoint CallManager should ring based on the digits you dial

  • To perform address translation

  • To support individualized routing

The first responsibility is to determine which endpoint CallManager should ring based on the digits you dial. These endpoints are often other IP phones, but they could just as easily be numbers controlled by other systems, such as the Public Switched Telephone Network (PSTN), other Private Branch Exchanges (PBX), or other CallManager clusters. Furthermore, the digits you dial can sometimes not even correspond to a physical destination at all. Numbers such as call park codes, Meet-Me conference codes, and translation patterns (the section “Translation Patterns” describes the way to provide aliases for numbers) do not cause any specific device to ring. Rather, they allow CallManager to treat your call in special ways, depending on the type of number. For example, dialing a call park code allows you to retrieve a party who has been held from another station; dialing a Meet-Me conference code allows you to join a multiparty conversation; dialing a translation pattern can redirect your call to a different destination; and dialing a Computer Telephony Interface (CTI) route point can pass control of your call to an application such as an automated attendant. Call routing concepts, such as route patterns, underlie CallManager’s treatment of all of these virtual endpoints.

The call routing component’s second responsibility is to perform address translation. Address translation allows you to modify the dialed digits and the calling number as the call propagates through a network. Such address translation is important when a network must pass a call from a private network with its private numbering plan to the PSTN with a standardized numbering plan. For example, most PBXs require users to dial an access code to place calls to the PSTN. If CallManager does not first remove the access code before offering the call to the PSTN, the PSTN rejects the call attempt. Imagine what happens if you dial an access code of 9 for calls you make from your home phone; most likely, the PSTN plays an announcement that you have composed your number incorrectly, or worse, it routes your call to a completely different destination. CallManager’s address translation capabilities allow you to enforce a private numbering plan while simultaneously reconciling it against the PSTN’s numbering plan. The section “Dialing Transformations” discusses address translation in more detail.

CallManager’s third responsibility is to support individualized routing, which means that the destination you reach when you dial a number might differ completely from the destination your neighbor reaches when your neighbor dials the same number. This capability is useful to support routing by class of calling user, by organization, or by geographic location. For example, routing by class of calling user permits you to restrict calls made from lobby phones while allowing your executives full access to international numbers. Routing by organization permits you to route calls made by different departments in your enterprise to different locations, so calls from engineers to a technical support organization route to a different place than calls made by marketing executives. Taken to an extreme, routing by organization allows you to control entirely different enterprises using a single CallManager. Routing by geographic location allows you to deploy a single CallManager in one geographic location that controls phones in different geographic locations. Customizing the call routing for users in different geographic locations allows you to deploy multiple sites with an identical number to reach the receptionist: callers in New York reach the New York receptionist when dialing 0; users in Chicago reach the Chicago receptionist when dialing the same number. You can also control costs by routing calls across your IP network instead of the PSTN, a process called toll bypass or toll restriction.

The Seven Fundamentals of Call Routing

Cisco CallManager Administration presents several items in the Route Plan menu related to routing. However, this chapter describes routing concepts, not particular pages in CallManager Administration. By understanding the underlying concepts, you can better develop your enterprise’s call routing infrastructure. For example, the Route Pattern Configuration page (shown in Figure 2-2) incorporates several routing concepts: route patterns, route filters, transformations, route lists, and partitions. This chapter does not directly deal with the Route Pattern Configuration page, but when you understand the components that make up the Route Pattern Configuration page, building an individual route pattern is straightforward. Figure 2-2 demonstrates how an excerpt from a single page—the Route Pattern Configuration page in this case—incorporates several (but not all) routing concepts.

Route Pattern Configuration Page

Figure 2-2. Route Pattern Configuration Page

CallManager uses seven major concepts to fulfill its responsibilities:

  • Route patterns

  • Route filters

  • Dialing transformations

  • Translation patterns

  • Call hunting constructs

  • Calling search spaces

  • Partitions

Route patterns and route filters permit CallManager to fulfill its primary responsibility of locating a destination. Route patterns are the addresses you assign to devices. For instance, associating the route pattern 8XXX with a gateway means that when you dial a number between 8000 and 8999, your call routes out that gateway. Route filters are more esoteric. Used in conjunction with the special route pattern wildcard @, route filters restrict the scope of the @ wildcard.

Dialing transformations, along with several miscellaneous gateway and system settings, permit CallManager to modify dialed digits and calling numbers before the destination receives a call. Also, by modifying dialed digits before passing a call to another network, you can affect which destination the other network ultimately dials.

Translation patterns provide a level of routing indirection that can resolve complicated scenarios. They are another feature that helps the call routing component fulfill its primary responsibility of selecting a destination. You can think of a translation pattern as an alias for another route pattern.

Translation patterns allow you to do the following:

  • Change the called number of a call from what the user dialed to a different number

  • Change the calling number of a call from the original user’s number to another identity

  • Route the resulting call as it is had been dialed with different call routing rules.

Call hunting constructs are mechanisms that allow CallManager to intelligently route a single call to several devices—either simultaneously or serially. CallManager supports two types of hunting constructs:

  • Route lists—Enable CallManager to choose from available gateways when placing a call to another network. Route lists are composed of route groups, which in turn are composed of gateways. When CallManager selects a route list as the destination for a call, it begins searching serially, according to the specified search order, for an available gateway from among the gateways that the route list’s route groups contain. If a gateway is busy, temporarily unreachable, or nonexistent, CallManager chooses another gateway to which to route the call.

  • Hunt lists—Enable CallManager to offer calls to IP phones, either simultaneously or serially. When CallManager selects a hunt list as a destination for a call, it looks at the hunting algorithm associated with the hunt list for an available line from among the lines that the hunt list’s line groups contain. Hunt lists provide a variety of ways to treat calls when a particular line is busy or not available.

Calling search spaces and partitions allow CallManager to provide individualized routing. These features allow you to configure networks to use toll restriction, enforce calling restrictions by user, or configure networks that serve independent organizations with fully or partially segregated routing plans.

Route Patterns and Route Filters

This section introduces the basic building blocks of call routing—route patterns and route filters.

A route pattern is an address, much like your mailing address. When a user dials a number, CallManager tries to figure out to which destination to deliver the call. It performs this function by looking at all the route patterns you have configured and then figuring out which route pattern is the best fit for the number the user has dialed. CallManager then attempts to offer the call to the endpoint that you have associated with the route pattern.

Do not confuse the concept of route pattern that this section discusses with the Route Pattern Configuration page in CallManager Administration. The Route Pattern Configuration page allows you to associate an address with a destination and contains other settings that let you modify the calling and called numbers. One of the fields on the Route Pattern Configuration page takes a route pattern as input; so does one of the fields on the Translation Pattern Configuration page, as does the Hunt Pilot Configuration page. Figure 2-3 shows the field on the Translation Pattern Configuration page that takes a route pattern as input.

Route Pattern Field in the Translation Pattern Configuration Page

Figure 2-3. Route Pattern Field in the Translation Pattern Configuration Page

Many different CallManager Administration pages allow you to enter route patterns. For example, the directory numbers you assign to phones are actually route patterns, as are Meet-Me conference numbers, message waiting on/off numbers, call park numbers, call pickup group numbers, translation patterns, and hunt pilots.

A route pattern is a sequence of digits and other alphanumeric characters. When the digits are all numeric, as is usually the case with directory numbers, CallManager rings the device with which you have associated the route pattern only when a user dials the exact numerical sequence. By including non-numeric characters called wildcards in a route pattern, you tell CallManager to ring the associated device for a range of dialed numbers. For instance, if you assign the route pattern 8XXX to a device, CallManager rings the device when users dial numbers in the range from 8000 to 8999.

Route filters are a special range-refining mechanism. You use route filters with route patterns that contain the special @ wildcard. The @ wildcard allows you to represent the PSTN with a single route pattern. When you must limit the types of PSTN calls (such as emergency, local, long distance, and international) that users can place, route filters limit the scope of the @ wildcard.

This section discusses the following topics:

  • Wildcards” describes the building blocks out of which you build route patterns.

  • Dialing Behavior” describes how CallManager processes digits from a calling user and selects a destination.

  • Dialing Behavior Refinements” elaborates on the basic procedure discussed in the section “Dialing Behavior” by introducing the Urgent Priority check box and explaining the logic that underlies outside dial tone.

  • Other Wildcards (@ and .)” revisits some complex wildcards that the section “Wildcards” introduces but only glosses over.

  • Route Filters” introduces a mechanism by which you can narrow the scope of the @ wildcard.

Wildcards

A house address is a specific sequence of digits and alphabetic characters that allows the postal service to identify a package’s destination. A route pattern is like a house address for a callable endpoint; unlike a house address, however, the addresses that a telephone system uses must provide a means by which the administrator can specify a range of addresses. You can enter individual addresses for every phone your network manages, but if users need to dial out of a gateway to the PSTN, the number of individual addresses becomes too vast to configure. Clearly, requiring the configuration of every single telephone number in the PSTN is not reasonable.

Route patterns use wildcards, which are digit placeholders that permit you to specify quickly a range of matching digits. For example, instead of configuring every individual number from 7000 to 7999 to route a call across a gateway to another network, by configuring 7XXX, you can tell CallManager to send all calls that begin with the digit 7 and are followed by three digits (in the range 0 to 9) to the gateway.

There is more to it, but first look at the basic wildcards, which Table 2-1 summarizes.

Table 2-1. Wildcard Summary

Wildcard

Description

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, *, #

These look like digits, but they are actually simple wildcards. Each matches exactly one occurrence of the corresponding digit in a dialed digit string.

[xyz...]

This notation allows you to specify a set of matching digits. For example, [357] matches one occurrence of either the digit 3, 5, or 7.

[...x-y...]

Placing a hyphen between any two digits within square brackets causes one occurrence of any digits within the range to match, including the digits themselves. You can use range notation along with set notation. For example, [3-69] matches one occurrence of a digit 3, 4, 5, 6, or 9.

[^x-y]

If the first character after the open angle bracket is a carat, the expression matches one occurrence of any digit (including * and #) except those specified. For example, [^1-8] matches one occurrence of a digit 9, 0, *, or #.

wildcard?

A question mark following any wildcard or bracket expression matches zero or more occurrences of any digit that matches the previous wildcard. For example, 9[12]? matches 9, 91, 92, 912, 9122, 92121, and many others.

wildcard+

A plus sign following any wildcard or bracket expression matches one or more occurrences of any digit that matches the previous wildcard. For example, 3[1-4]+ matches 31, 3141, 3333, and many others. Note that the simple digit string 3 would not match this pattern, because the + wildcard requires that at least one digit matching the previous wildcard be consumed.

X

The X wildcard is a convenience wildcard that matches one occurrence of any digit in the range 0 to 9. This wildcard is functionally equivalent to the range expression [0-9].

!

The ! wildcard is a convenience wildcard that matches one or more occurrences of any digit in the range 0 to 9. This wildcard is functionally equivalent to the range expression [0-9]+.

. and @

The section “Other Wildcards (@ and .)” discusses these wildcards.

Dialing Behavior

The call routing component’s behavior is sometimes counterintuitive, so a better understanding of the process it uses to select a destination can allow you to better troubleshoot problems.

In collecting a user’s digits, the call routing component goes through the following steps:

  1. Compare the current sequence of dialed digits against the list of all route patterns and determine which route patterns currently match. Call the set of current matches currentMatches.

    • If currentMatches is empty, the user’s dialed digit string does not currently correspond with a destination.

    • If currentMatches contains one or more members, the call routing component determines the closest match. The closest match is the route pattern in currentMatches that matches the fewest number of route patterns. For example, the dialed digit string 2000 matches both route pattern 2XXX and 20XX. Although there are 1000 different dialed digit strings that match 2XXX, only 100 dialed digit strings match 20XX, and 20XX is therefore the closest match.

  2. Simultaneously, determine whether different route patterns might match if the user were to dial more digits. Call the condition of having potential matches for a dialed digit string potentialMatches.

    • If potentialMatches holds true, the call routing component waits for the user to dial another digit. If the user dials another digit, the sequence of events restarts at step 1 using the new digit string.

    • If potentialMatches no longer holds true or a dialing timeout has elapsed, the call routing component selects a destination.

    • To select a destination, the call routing component looks at the closest match. The section “Example 2: Closest Match Routing” elaborates on closest match routing. If there is no closest match, the user’s dialed digit string does not correspond with a destination. Furthermore, no more digits are forthcoming. CallManager rejects the call attempt.

    • Otherwise, CallManager extends the call to the device associated with the closest match.

Examples can best explain this process. The following sections present three examples:

For purposes of the examples, assume that CallManager has been configured with the route patterns in Table 2-2.

Table 2-2. Basic Dialing Behavior Example Route Patterns

Route Pattern

Description

1100

Matches exactly the dialed digit string 1100

1200

Matches exactly the dialed digit string 1200

120X

Matches dialed digit strings in the range 1200–1209

130

Matches exactly the dialed digit string 130

1300

Matches exactly the dialed digit string 1300

13!

Matches all dialed digit strings of any length that begin with digit sequence 13 followed by at least one more digit in the range 0 through 9

Example 1: Simple Call Routing

In this example, a calling user goes off-hook and dials 1100. On collecting the final digit of the dialed digit string, CallManager selects exactly one route pattern and offers the call to the associated destination.

When the user goes off-hook, CallManager begins its routing process. The current set of dialed digits is empty. The set of current matches, currentMatches, is empty. Every route pattern in the table is a potential match at this point, so the condition of having potential matches, potentialMatches, is true. Table 2-3 shows the current set of potential matches. As long as potentialMatches holds true, CallManager must wait for more digits.

Table 2-3. Patterns That Can Match, Example 1, No Dialed Digits

Currently Dialed Digits: <None>

Current Matches

 

<None>

Patterns That Can Still Match

 

1100

 

1200

 

120X

 

130

 

1300

 

13!

Patterns That Can No Longer Match

 

<None>

When the user dials 1, the state of affairs does not change. No current match exists, and every route pattern in the table is a potential match.

Dialing another 1 eliminates many route patterns as possible matches. The patterns 1200, 120X, 130, 1300, and 13! are no longer potential matches for the dialed digit string. The only route pattern that remains in contention is 1100. However, currentMatches is still empty and potentialMatches still holds true. Even though 1100 is the only route pattern that the user could dial that might result in a match, CallManager must wait until the user does, in fact, dial the full string. Table 2-4 shows the current set of potential matches.

Table 2-4. Patterns That Can Match, Example 1, Dialed Digits 11

Currently Dialed Digits: 11

Current Matches

 

<None>

Patterns That Can Still Match

 

1100

Patterns That Can No Longer Match

 

1200

 

120X

 

130

 

1300

 

13!

The next 0 does not change the situation.

When the user dials the final 0, currentMatches contains route pattern 1100. Furthermore, as further digits would not result in a different route pattern matching, potentialMatches does not hold true. CallManager extends the call to the device associated with route pattern 1100. Table 2-5 shows the final set of potential matches.

Table 2-5. Patterns That Can Match, Example 1, Dialed Digits 1100

Currently Dialed Digits: 1100

Current Matches

 

1100

Patterns That Can Still Match

 

<None>

Patterns That Can No Longer Match

 

1200

 

120X

 

130

 

1300

 

13!

Example 2: Closest Match Routing

In this example, a calling user goes off-hook and dials 1200. On collecting the final digit of the dialed digit string, CallManager determines that two route patterns match the dialed digit string and uses the closest matching routing algorithm to select which route pattern is awarded the call.

The closest match for a dialed digit string is simply the route pattern that matches the fewest number of digit strings of equal length to the dialed digit string. For example, though the route pattern 1000 matches exactly one dialed digit string, the route pattern 1XXX, which matches any dialed digit string in the range 1000 to 1999, matches 1000 possible dialed digit strings. In any comparison between route patterns 1000 and 1XXX, the closest match routing algorithm gives route pattern 1000 precedence.

The qualification “of equal length to the dialed digit string” in the preceding paragraph handles cases in which one or more of the route patterns being examined contains a wildcard that matches multiple dialed digits. For example, route pattern 1! matches any dialed digit string beginning with 1, and route pattern 13! matches any dialed digit string beginning with 13. The ! wildcard in these route patterns might match one, two, or more digits. As a result, the number of dialed digit strings that match either of these route patterns is infinite.

To decide among them, CallManager restricts the calculation of number of potentially matching dialed digit strings to only those of the same length as the dialed digit string itself. For instance, given the route patterns 1! and 13! and a dialed digit string of 13000, CallManager determines how many five-digit dialed digit strings could potentially match both route patterns. Thus, 13!, which matches 1000 five-digit strings, takes precedence over 1!, which matches 10,000 possible five-digit strings.

Returning to the example, when the user goes off-hook, CallManager begins its routing process. The current set of dialed digits is empty. The set of current matches, currentMatches, is empty. Every route pattern in the table is a potential match at this point, so the condition of having potential matches, potentialMatches, is true. As long as potentialMatches holds true, CallManager must wait for more digits. Table 2-6 shows the current set of potential matches.

Table 2-6. Patterns That Can Match, Example 2, No Dialed Digits

Currently Dialed Digits: <None>

Current Matches

 

<None>

Patterns That Can Still Match

 

1100

 

1200

 

120X

 

130

 

1300

 

13!

Patterns That Can No Longer Match

 

<None>

When the user dials 1, the situation does not change. No current match exists, and every route pattern in the table is a potential match.

Dialing 2 eliminates route patterns 1100, 130, 1300, and 13! as possible matches. The patterns 1200 and 120X are the only route patterns that can match. Table 2-7 shows the current set of potential matches.

Table 2-7. Patterns That Can Match, Example 2, Dialed Digits 12

Currently Dialed Digits: 12

Current Matches

 

<None>

Patterns That Can Still Match

 

1200

 

120X

Patterns That Can No Longer Match

 

1100

 

130

 

1300

 

13!

The next 0 does not change the situation.

When the user dials the final 0, currentMatches contains both route pattern 1200 and route pattern 120X. Furthermore, as further digits would not result in a different route pattern matching, potentialMatches does not hold true and CallManager must select a destination. Because 1200 is a closer match than 120X, CallManager extends the call to the device that owns route pattern 1200. Table 2-8 shows the final set of potential matches.

Table 2-8. Patterns That Can Match, Example 2, Dialed Digits 1200

Currently Dialed Digits: 1200

Current Matches

 

1200

Selected: Matches exactly one number

 

120X

Not selected: Matches 10 different numbers

Patterns That Can Still Match

 

<None>

Patterns That Can No Longer Match

 

1100

 

130

 

1300

 

13!

Example 3: Wildcards That Match Multiple Digits

When a route pattern contains a wildcard that matches multiple digits, CallManager often must wait for an interdigit timeout to expire before it can route the call. This situation occurs because even if the route pattern containing the wildcard already matches, the user might intend to dial more digits. The most trivial example of this behavior is the route pattern !, which matches one or more occurrence of any number of digits. If a user dials 123 and matches the route pattern !, CallManager must continue to wait, because it has no assurances that the user is not planning to dial 1234. Routing the call prematurely might cause CallManager to send an incomplete dialed digit string to an adjacent network.

In the following example, a calling user goes off-hook and dials 1300. The route pattern 13! ensures that condition potentialMatches always holds true. Even if CallManager finds that route pattern 13! is the best match out of set currentMatches, CallManager must continue to wait, because it has no way of knowing if the user is really finished dialing.

In this example, when the user goes off-hook, CallManager begins its routing process. The current set of dialed digits is empty. The set of current matches, currentMatches, is empty. Every route pattern in the table is a potential match at this point, so the condition of having potential matches, potentialMatches, is true. As long as potentialMatches holds true, CallManager must wait for more digits. Table 2-9 shows the current set of potential matches.

Table 2-9. Patterns That Can Match, Example 3, No Dialed Digits

Currently Dialed Digits: <None>

Current Matches

 

<None>

Patterns That Can Still Match

 

1100

 

1200

 

120X

 

130

 

1300

 

13!

Patterns That Can No Longer Match

 

<None>

When the user dials 1, the situation does not change. No current match exists, and every route pattern in the table is a potential match.

Dialing 3 eliminates route patterns 1100, 1200, and 120X as possible matches; however, 130, 1300, and 13! are still possible matches. Table 2-10 shows the current set of potential matches.

Table 2-10. Patterns That Can Match, Example 3, Dialed Digits 13

Currently Dialed Digits: 13

Current Matches

 

<None>

Patterns That Can Still Match

 

130

 

1300

 

13!

Patterns That Can No Longer Match

 

1100

 

1200

 

120X

The next 0 causes currentMatches to contain route patterns 130 and 13!. However, potentialMatches holds true, because the user’s next digit might allow the same (13!) or a different (1300) route pattern to match. Table 2-11 shows the current set of potential matches.

Table 2-11. Patterns That Can Match, Example 3, Dialed Digits 130

Currently Dialed Digits: 130

Current Matches

 

130

 

13!

Patterns That Can Still Match

 

1300

 

13!

Patterns That Can No Longer Match

 

1100

 

1200

 

120X

The fact that route pattern 13! shows up in both the list of current matches and the list of potential matches needs explaining. When a route pattern ends with a multiple match wildcard (!, range expressions ending with ? such as [1-5]?, or range expressions ending with + such as [1-5]+), CallManager recognizes that even though the current dialed number matches the route pattern, the user might intend to dial more digits.

The final 0 eliminates route pattern 130 as a possible match. CurrentMatches contains route patterns 1300 and 13!. CallManager cannot attempt a closest match routing determination, however, because route pattern 13! not only matches the current digit string (1300), but also matches a longer digit string (13000). The ! wildcard at the end of a route pattern means that condition potentialMatches always holds true. Table 2-12 shows the current set of potential matches.

Table 2-12. Patterns That Can Match, Example 3, Dialed Digits 1300

Currently Dialed Digits: 1300

Current Matches

 

1300

 

13!

Patterns That Can Still Match

 

13!

Patterns That Can No Longer Match

 

1100

 

1200

 

120X

 

130

In such a case, the only event that allows CallManager to select a destination is an interdigit timeout. On receiving an interdigit timeout, CallManager knows that no more digits are forthcoming and can make a routing selection. In this example, after the timeout, CallManager selects route pattern 1300 using closest match routing rules. Table 2-13 shows the final list of potential matches.

Table 2-13. Patterns That Can Match, Example 3, Dialed Digits 1300 with Timeout

Currently Dialed Digits: 1300

Current Matches

 

1300

Selected: Matches exactly one number

 

13!

Not selected: Matches 100 different four-digit numbers

Patterns That Can Still Match

 

<None>

Interdigit timeout means no further digits are forthcoming

Patterns That Can No Longer Match

 

1100

 

1200

 

120X

 

130

CallManager uses two timers to manage the system interdigit timeout as described in the following paragraphs.

Because users who go off-hook might need to spend extra time to locate the address they want to dial (on a crowded directory lookup web page or in a printed directory), CallManager uses one timer to dictate how long it waits for users to dial an initial digit upon going off-hook. The service parameter Off-hook to First Digit Timer (msec) defines the duration of the initial digit timer in milliseconds. The default for this timer is 15,000 milliseconds.

Subsequent digits are controlled with the CallManager service parameter T302 Timer (msec). T302 Timer (msec) defines the duration of the interdigit timer in milliseconds. The default for this timer is also 15,000 milliseconds.

One feature of CallManager that can be surprising to administrators familiar with other call agents is that CallManager does not assign special significance to the * or # characters. CallManager treats these characters just as any other digit. On other systems, # is sometimes used as an explicit cancellation of the interdigit timeout.

For instance, when users are dialing international numbers, call agents typically cannot detect when the user has fully composed the dialed number, because doing so would require that the call agent have full understanding of every national dial plan in the entire world. When users of these systems (and CallManager) dial the international access code for the country they’re in (011 for the United States, 00 in many European countries), the system generally must rely on an interdigit timer to expire before routing the call.

Some systems treat the # key specifically as an indication from the user that the system should immediately route the call based on the digits the user has already provided.

In contrast, CallManager treats the # just like any other digit. On one hand, doing this permits you to use it at the beginning of dial patterns, to represent special abbreviated dialing sequences or access codes. On the other hand, it means that to replicate the use of # as an interdigit timer you might have to configure additional patterns.

The pattern 9.011! is a very typical pattern that a North American administrator would use to direct international calls to a PSTN gateway. This pattern matches digit strings beginning with 9011 and followed by at least one more digit 0 to 9. Because of the digit analysis rules described in section “Dialing Behavior,” CallManager routes the call only after the interdigit timer expires. CallManager must refresh the timer after each digit, because CallManager doesn’t know whether the user intends to continue dialing.

If the user dials #, according to the dialing rules, CallManager must apply reorder, because the ! wildcard specifically excludes the * and # digits from its list of matched digits. This behavior is similar to the treatment you receive if you define a pattern such as 12[1-4] (which matches the digit strings 121, 122, 123, and 124) and instead dial 125. 125 is not a digit string that is encompassed by 12[1-4], so CallManager rejects the call.

So, if you want to support the ability to use # as an interdigit timer, what can you do? Simply, you take advantage of CallManager’s standard dialing behavior, which treats # just like any other digit. If, in addition to 9011!, you define the pattern 9011!#, you can support not only cases where the user dials 9011+international number and waits for timeout but also cases in which the user terminates the dialed digit string with #.

This works because as long as the user is dialing digits after 9011, both provisioned patterns consist as potential matches. For instance, if the dialed digit string is 9 011 33 12 34 56 78 90, CallManager considers that pattern 9011! matches the currently provided digits but that it must also keep waiting because the user might dial another digit. On the other hand, while pattern 9011!# is not a current match, if the user were to provide another digit, this pattern might match.

If the user provides no further digits before the interdigit timer expires, CallManager routes the call based on pattern 9011!. Instead, if the user dials 9 011 33 12 34 56 78 90 #, the digits the user provides cease to match pattern 9011! (because ! doesn’t include the # character among its matching characters), but pattern 9011!# does match. Furthermore, because all other potential matches are removed from contention and because the final character of the pattern does not leave open the possibility that the user might provide more digits, CallManager routes the call immediately, which is exactly the behavior you desired when you added pattern 9011!#.

Overlapped Sending and Non-North American Numbering Plans

The previous section demonstrates that when you end a route pattern with a wildcard that matches multiple digits (! or range expressions ending in + or ?), CallManager must wait for the system interdigit timeout to expire before it can route the call. So why would you ever end a route pattern with a wildcard that matches multiple digits?

Many countries have variable-length national dialing plans. Unlike North America, in which the length of a public telephone number is fixed at 10 digits, countries with variable-length dial plans require users to dial a varying number of digits to identify a number in the PSTN. For instance, in Finland, a numbering area equivalent to a North American area code is called a telealue (TLA). Some TLAs are a single digit (2, 3, 5, 6, 9), while other TLAs are two digits (13, 14, 15, 16, 17, 18, 19). Within a TLA, different carriers own different number blocks, which range from three to five digits long. For instance, one carrier controls block 422 in TLA 19, while another carrier controls block 4251 in TLA 19. In other words, one carrier handles calls made from within Finland that begin with the six digits 019422; the other handles calls from within Finland that begin with the seven digits 0194251. (Users within Finland dial 0 before dialing the TLA.) Finally, subscriber numbers range from three to five digits long. As a result, the number of a Finnish resident is of an indeterminate length (in practice, eight or nine digits, but this value does not reflect mobile numbers or service numbers).

Because the number of digits in countries with variable-length numbering plans is so dependent on the particular digits dialed, such countries rely on overlapped sending in the PSTN to figure out how many digits to collect and where to route the call.

Overlapped sending is kind of like a bucket brigade. Figure 2-4 shows the principle under which overlapped sending works. Figure 2-4 depicts a network of four nodes (A, B, C, and D) and three users (1, 2, and 3). User 1 wants to call User 3, whose number is 0123333, composed of a one-digit region identifier (0), a three-digit node identifier (123), and a three-digit subscriber number (333). User 2’s number is 01244444, composed of a one-digit region identifier (0), a three-digit node identifier (124), and a four-digit subscriber number (4444).

Overlapped Sending in a Simple Network

Figure 2-4. Overlapped Sending in a Simple Network

In Figure 2-4, no single node in the network understands the complete dialing plan. Node A understands that when a user attached to node A dials 0, it should send the call to node B. When node B receives the call, it recognizes that it needs more digits to determine the final destination and asks node A to pass on any digits that node A receives from User 1.

Node B understands that it must collect three digits before it can route the call further. If the digits are 123, it routes the call to node C. If the digits are 124, it routes the call to node D.

Nodes C and D, in turn, manage their portions of the numbering plan. Node C understands that it must collect three digits to select a subscriber, while node D requires four digits to select a subscriber. When User 1 dials 0123, node B offers the call to node C.

Node C performs the same steps that node B does when it receives a call. Node C recognizes that it requires three digits to make a routing selection and asks node B to pass on any digits that node B receives from node A (which, in turn, receives them from User 1). When node C receives the last three digits, it routes the call to User 3. Thus, in the manner that water buckets pass from hand to hand in a bucket brigade until they reach the fire, digits pass from node to node until they reach the spot that needs them.

Versions of CallManager before release 3.1 do not support overlapped sending, but rather require that you provision knowledge of your entire network’s numbering plan as route patterns. This requirement is acceptable for numbers within your network and for public numbers in a fixed numbering plan (because, for example, you can just configure a pattern like 9.XXXXXXXXXX to handle all patterns in the North American numbering plan). But variable-length numbering plans require the configuration of large numbers of such patterns just to provide network access.

Hence, in CallManager releases 3.0 and earlier, if you were an administrator in a country with variable-length numbering plans, you had three options.

  • Configure very specific route patterns on your trunk interfaces, in effect encoding the national network’s knowledge of the national numbering plan into the database. This option requires a significant knowledge of your country’s numbering plan, the patience to enter all of the route patterns, and constant monitoring of changes to the national numbering plan so that you can update your route patterns.

  • Replace CallManager’s knowledge of the North American numbering plan with your country’s numbering plan. Like the first option, this option requires extensive knowledge of your country’s numbering plan, but it is a better solution because it means you can use the @ wildcard to represent your country’s numbering plan. (For more information about the @ wildcard, see the section “Other Wildcards [@ and .].”) However, the Cisco Technical Assistance Center (TAC) will not support any unofficial changes you make to the way the system uses the “@” route pattern, under CallManager version 3.0 and earlier.

  • Configure gateways with steering codes followed with the ! wildcard (which matches multiple digits). For example, imagine that in the sample network depicted in Figure 2-4, Node A was CallManager, the remaining nodes were the PSTN, and you associated the route pattern 0! with the gateway to node B. When User 1 dials 0, CallManager continues collecting digits from User 1 until the interdigit timeout expires, whereupon CallManager offers the complete number to the PSTN.

At the time of this writing, most administrators choose the third option, but also configure a few specific route patterns to handle numbers that their users often dial, relying on closest match routing to eliminate the interdigit timeout. Users strongly dislike long interdigit timeouts, because while CallManager is waiting for the timeout to expire, users think that something is wrong with the system. One approach to eliminate interdigit timeout is to use # as an interdigit timeout character. For example, assume that your external access code to a variable-length dialing plan is 0. If you configure 0!, when users dial any digit sequence beginning with 0, CallManager waits for interdigit timeout and then ships all dialed digits to the PSTN.

However, if you also configure 0!#, users who have been trained to terminate all external dialed number sequences with # can avoid the interdigit timeout. Because the ! wildcard matches only the digits 0 through 9, dialing # removes the 0! route pattern from contention, leaving only 0!#.

Because 0!# is not terminated with a wildcard that matches multiple dialed digits, condition potentialMatches ceases holding true and CallManager can route the call immediately. Pressing # is analogous to pressing the SEND button on a call made from a cell phone.

The good news is that CallManager release 3.1 and later supports overlapped dialing, rendering much of the advice in this section obsolete. If your PSTN supports overlapped sending, simply configure your route patterns with the steering code alone (without the trailing ! wildcard); when CallManager offers the call to the associated gateway or route list, the PSTN prompts CallManager to pass any further digits along.

The bad news is that CallManager supports overlapped dialing only for gateways with digital interfaces that use the Media Gateway Control Protocol (MGCP) protocol. If your network uses Cisco H.323 gateways for access to the PSTN, and your country uses a variable-length numbering plan, you must still choose from one of the three options this section presents.

Overlapped sending is built in to CallManager, but you must specifically indicate which patterns are candidates for overlapped sending. The route pattern setting Allow Overlap Sending tells CallManager whether it should consider the pattern as overlap-sending-capable.

Pre-4.0 versions of CallManager simply assumed that all patterns were overlap-sending-capable, but, as it turns out, this caused several problems. So long as digits arrived one at a time, it didn’t really matter, because when CallManager matched the locally-configured pattern, it would simply offer the call to the destination gateway. If the destination gateway required more digits, it would simply request them. In the meantime, CallManager would queue up any dialed digits.

But problems arose with creative dial plans. For instance, examine the patterns 1234, as associated with an IP phone and the pattern 1XXXXXX, as associated with a gateway that could support overlapped signaling.

Before CallManager 3.1, if you provided the dial string 1234567 to the call routing component of CallManager, CallManager would match pattern 1XXXXXX instead of pattern 1234, because too many digits had been provided to match 1234.

When CallManager implemented automatic overlap sending, it had to start queuing up any additional digits—just in case the destination happened to ask for more. So, after this automatic overlap sending behavior was implemented, dial plans started to break. When 1234567 was dialed, CallManager would assume that the digits 1234 more closely matched the IP phone and digits 567 should be queued up.

In practice, an IP phone would never ask for more digits to be sent to it for routing purposes. As a result, a series of fixes was phased in over releases to first exclude IP phones from participating in overlapped dialing and, then, because the problem could manifest across different gateways, to require you to specifically configure which gateways might ask for more digits and which ones will never ask for more digits.

Dialing Behavior Refinements

The section “Dialing Behavior,” for purposes of clarity, describes a simplified version of CallManager’s call routing logic. The actual process is more involved. This section discusses six refinements to the basic dialing procedure:

  • Urgent Route Patterns” describes route pattern urgency, which can interrupt interdigit timing when CallManager must route a call immediately.

  • Outside Dial Tone” describes the logic that determines when CallManager applies outside dial tone.

  • Call Classification” talks about categorization of calls as either being OnNet or OffNet.

  • The Route/Block Flag” describes a specific option on route and translation patterns that permits you to block as well as route calls.

  • MLPP Precedence” defines the use of route patterns to classify calls according to call priority.

  • Forced Authorization Codes and Client Matter Codes” describes a feature that can cause callers to enter a second phase of dialing in which they must enter a password or account code in order to proceed with a call.

Urgent Route Patterns

As the preceding section mentions, when CallManager receives digits from the user, it waits to route the call until it is sure that it needs no more digits. A case in point is route patterns that end in a wildcard that matches multiple digits. CallManager must wait for the interdigit timeout to expire before it offers the call to the selected destination.

But if you need a call to route the very moment that a user provides sufficient dialed digits, you can use the Urgent Priority check box on the Route Pattern Configuration page to short-circuit the dialing procedure.

An urgent route pattern only has an observable effect if your dial plan contains overlapping route patterns. Your call routing plan contains overlapping route patterns if it is possible to dial a sequence of digits so that the call routing component can select a current match but must continue to wait for more digits because there are also potential matches. For example, if you assign directory number 99110 to a phone and also configure a gateway with route pattern 9.911 (for emergency services in North America), you create a dial plan with overlapping route patterns.

When a user in an emergency situation dials 9911, CallManager waits for the interdigit timeout to expire before routing the call, because CallManager does not know whether the user intends to dial 0 to complete a call to the station instead of the emergency response center.

You can use the Urgent Priority check box to protect yourself from this sort of configuration. By marking the 9.911 route pattern as urgent, you tell CallManager to route the call to the emergency center the instant that a user dials 9911. (Note, however, that in the example provided, marking the 9.911 route pattern as urgent has the side effect of preventing any user from dialing the phone with directory number 99110.)

Another common usage of the Urgent Priority check box comes into play for administrators in countries with variable-length numbering plans. The simplest configuration for countries with variable-length numbering plans is to configure a gateway with an outside access code (for example, 0) followed by the ! wildcard. However, this configuration introduces interdigit timeout into all external numbers that users dial. By configuring specific route patterns for numbers that their users commonly dial, administrators can eliminate the interdigit timeout for the commonly dialed patterns. Table 2-14 provides a sample configuration and explanation of a U.K. dialing plan.

Table 2-14. Sample U.K. Dialing Plan

Route Pattern

Priority

Description

9.00!

Normal

International calls.

9.0[1-57-9]XXXXXXX

9.0[1-57-9]XXXXXXXX

9.0[1-57-9]XXXXXXXXX

Normal

National calls, which can be 9, 10, or 11 digits (not counting the external access code), depending on the specific digits dialed after the 0[1-57-9] portion of the route pattern.

This kind of overlapping route pattern configuration means that users who dial a national number requiring a lesser number of digits (9 in this example) must wait for the interdigit timer to expire before CallManager routes the call, because CallManager cannot be certain that the user does not intend to dial further digits.

9.037[0485]XXXXXX

9.08[56]0XXXXXXX

9.0802XXXXXXX

Urgent

More specific numbers in the national network. Marking these as urgent means that when CallManager selects these as the best match, it stops the interdigit timer.

For instance, the first of these route patterns, 9.037[0485]XXXXXX, is a 10-digit number (not counting the external access code). The national route pattern 9.0[1-57-9]XXXXXXXX would normally match this route pattern, but the longer route pattern 9.0[1-57-9]XXXXXXXXX causes CallManager to keep the interdigit timer running. Marking 9.037[0485]XXXXXX as urgent causes CallManager to route the more specific route pattern immediately when a user dials it.

Two points about urgent route patterns to note especially:

  • First, an urgent route pattern only takes effect if it is the best match at the time. If you define an urgent route pattern XXXX, a normal route pattern 8XXX, and a normal route pattern 80000, when users dial 8000, CallManager continues to wait for more digits, because the normal route pattern 8XXX is the best match.

  • Second, defining an urgent route pattern limits the total number of route patterns you can usefully assign. If you define the route pattern 999 as an urgent route pattern, users can never dial longer digit sequences that begin with 999, because the urgent route pattern always takes priority.

Outside Dial Tone

Another subject that the call routing procedure described in section “Dialing Behavior” omits is providing outside dial tone. Outside dial tone is an indication that users expect when CallManager routes their calls off of the local network. To apply outside dial tone, check the Provide Outside Dial Tone check box on the Route Pattern or Translation Pattern Configuration pages for each route pattern that you consider to be off-network. For dialed digit strings that can match those patterns, the call routing component then applies outside dial tone at some point during the dial sequence.

Note

Outside dial tone is normally a different cadence from the tone provided when a user goes off-hook. However, by setting the service parameter Always Use Inside Dial Tone to True, you can cause the secondary tone played to sound exactly like the initial dial tone the user hears. This parameter does not otherwise affect CallManager’s application of dial tone; CallManager still applies a secondary tone when its route configuration indicates that only patterns that require outside dial tone are candidate matches.

You cannot explicitly configure the point in the dialing sequence when CallManager applies outside dial tone. In addition, the decision to apply outside dial tone is completely independent of whether or where the route pattern contains a “.” wildcard (described in the section “. Wildcard”). Rather, the call routing component applies outside dial tone at the point when all potential matches for a dialed digit string have had their Provide Outside Dial Tone box checked.

For example, consider the route patterns 9000 and 91XXXXXXX. 91XXXXXXX belongs to a trunk device and has had its Provide Outside Dial Tone box checked. Table 2-15 shows these route patterns.

Table 2-15. Outside Dial Tone Example 1, Configured Route Patterns

Configured Route Patterns

Provide Outside Dial Tone Check Box

9000

Do not apply outside dial tone

91XXXXXXX

Apply outside dial tone

When a user goes off-hook, CallManager applies inside dial tone. Table 2-16 depicts the current dialing state.

Table 2-16. Outside Dial Tone Example 1, Dialed Digits <None>

Currently Dialed Digits: <None>

Current Matches

 

<None>

Patterns That Can Still Match

 

9000

Do not apply outside dial tone

 

91XXXXXXX

Apply outside dial tone

Patterns That Can No Longer Match

 

<None>

Actions Taken: Apply inside dial tone

The user dials 9 and CallManager turns off inside dial tone. At this point, CallManager cannot tell whether the user intends to dial the on-network number 9000 or the off-network number 91XXXXXXX, so it waits for the next digit. Table 2-17 depicts the current dialing state.

Table 2-17. Outside Dial Tone Example 1, Dialed Digits 9

Currently Dialed Digits: 9

Current Matches

 

<None>

Patterns That Can Still Match

 

9000

Do not apply outside dial tone

 

91XXXXXXX

Apply outside dial tone

Patterns That Can No Longer Match

 

<None>

Actions Taken: Turn off inside dial tone

If the user then dials 1, CallManager eliminates the route pattern 9000 from its list of potential matches. At this point, all remaining candidates have had their Provide Outside Dial Tone box checked, and the call routing component chooses this moment to apply outside dial tone (see Table 2-18).

Table 2-18. Outside Dial Tone Example 1, Dialed Digits 91

Currently Dialed Digits: 91

Current Matches

 

<None>

Patterns That Can Still Match

 

91XXXXXXX

Apply outside dial tone

Patterns That Can No Longer Match

 

9000

Do not apply outside dial tone

Actions Taken: All route patterns require outside dial tone. Apply outside dial tone.

Now assume that an additional route pattern, 9124, has been configured. This route pattern could be a station device, call park, or Meet-Me conference code. Table 2-19 depicts this configuration.

Table 2-19. Outside Dial Tone Example 2, Configured Route Patterns

Configured Route Patterns

Provide Outside Dial Tone Check Box

9000

Do not apply outside dial tone

9124

Do not apply outside dial tone

91XXXXXXX

Apply outside dial tone

The steps that CallManager takes when the user goes off-hook and dials 9 are identical to those in Example 1. However, Table 2-20 shows that when the user dials the subsequent 1, CallManager waits, because at least one of the route patterns that can still match does not require outside dial tone.

Table 2-20. Outside Dial Tone Example 2, Dialed Digits 91

Currently Dialed Digits: 91

Current Matches

 

<None>

Patterns That Can Still Match

 

9124

Do not apply outside dial tone

 

91XXXXXXX

Apply outside dial tone

Patterns That Can No Longer Match

 

9000

Do not apply outside dial tone

Actions Taken: <None>

As long as what the user dials keeps the route pattern 9124 in contention as a possible match, CallManager defers applying outside dial tone. For example, if the user continues by dialing 2 (yielding currently dialed digits of 912), CallManager continues to defer application of outside dial tone. However, if instead of dialing 2, the user dials 7 (yielding currently dialed digits of 917), the route pattern 9124 can no longer match, and CallManager applies outside dial tone, because all potentially matching route patterns have had their Provide Outside Dial Tone box checked.

If your system plays outside dial tone later in a dial string than you expect, be sure to look for route patterns that overlap with the route patterns for which you are expecting to hear outside dial tone, but for which you have not checked the Provide Outside Dial Tone box. These conflicting route patterns might be Meet-Me conference or call park ranges, in which case you need to change these ranges so that they do not conflict with the off-network route pattern in question.

On the other hand, if you receive outside dial tone sooner than expected (usually because you want to use access codes that are longer than a single digit), introduce a new route pattern that is identical to your access code, but do not check the Provide Outside Dial Tone box. (You can assign this route pattern to the same gateway or route list to which the full route pattern connects.) CallManager suppresses outside dial tone until the user dials the last digit of the access code. Table 2-21 presents an example in which the access code for external numbers is 999.

Table 2-21. Outside Dial Tone Example 3, Configured Route Patterns

Configured Route Patterns

Provide Outside Dial Tone Check Box

999

Do not apply outside dial tone

999.1XXXXXXX

Apply outside dial tone

Just as in the previous examples, CallManager applies inside dial tone when the user goes off-hook and turns off inside dial tone after the user dials 9. Table 2-22 depicts the dialing state when the user dials 99.

Table 2-22. Outside Dial Tone Example 3, Dialed Digits 99

Currently Dialed Digits: 99

Current Matches

 

<None>

Patterns That Can Still Match

 

999

Do not apply outside dial tone

 

999.1XXXXXXX

Apply outside dial tone

Patterns That Can No Longer Match

 

<None>

Actions Taken: <None>

CallManager continues suppressing outside dial tone because route pattern 999 might still match the user’s dialed digits. Table 2-23 presents the dialing state when the user dials another 9 (yielding dialed digits of 999).

Table 2-23. Outside Dial Tone Example 3, Dialed Digits 999

Currently Dialed Digits: 999

Current Matches

 

999

Patterns That Can Still Match

 

999.1XXXXXXX

Apply outside dial tone

Patterns That Can No Longer Match

 

<None>

Actions Taken: All potential matches require outside dial tone. Apply outside dial tone.

Adding the route pattern 999 thus suppresses outside dial tone until the moment that you want it applied.

Call Classification

While the Provide Outside Dial Tone check box dictates whether a caller hears outside dial tone at some point during dialing, it doesn’t necessarily mean the call is an outside call. To actually classify a call as an outside call, use the Call Classification list box on the Route Pattern Configuration page. OffNet indicates that a given call is leaving your network (and may generate a charge); OnNet indicates that a given call is staying on your network.

The Call Classification list box also exists on CallManager gateway pages as well. It indicates how CallManager should classify calls arriving through the gateway, and it takes on the values OffNet, OnNet, or Use System Default. The Use System Default setting tells CallManager to classify calls according to the service parameter Call Classification.

Call classification works in conjunction with two service parameters (Block OffNet To OffNet Transfer and Drop Ad Hoc Conference) that attempt to control toll fraud. Toll fraud can occur, for instance, if someone within your organization places a call to an international destination, places the answering party on hold, calls another international party, and then transfers the parties together. Voilà! Free international calling—at least for the called parties; unfortunately, you’re paying the bill. A similar scenario is possible using the conference feature.

When you set Block OffNet To OffNet Transfer to False, CallManager permits all transfers. When you set Block OffNet To OffNet Transfer to True, CallManager looks at the call classification of the parties being transferred together before allowing the user to complete the transfer.

Call classification isn’t really call classification; it’s party classification. When a party places a call, he is classified according to the type of device from which he is calling. For instance, Cisco IP Phones are always considered OnNet devices (by the CallManager cluster to which they are registered). On the other hand, some gateways might attach to purely internal destinations (such as a legacy PBX in your network), while others may represent connections to the PSTN. CallManager has no way to tell the difference, so it relies on you to set the Call Classification box to define calls arriving through the gateway as OnNet or OffNet.

The party that receives a call is classified according to the call classification associated with his pattern or directory number. As with placed calls, the directory numbers associated with Cisco IP Phones are automatically classified as OnNet. Calls to gateway destinations must route through a route pattern, and they take their classification from the call classification you specify on the Route Pattern Configuration page.

So when an IP phone calls an IP phone, the calling party is classified as OnNet by virtue of her IP phone’s implicit device setting and the called party is classified as OnNet by virtue of his IP phone’s implicit directory number setting. When an IP phone calls out a gateway, the calling party is classified as OnNet by virtue of her IP phone’s implicit device setting and the called party is classified according to what you’ve set on the Route Pattern Configuration page. For instance, even if the call goes to the PSTN, you might want to classify numbers that terminate within your local calling region as OnNet anyway. When a gateway calls an IP phone, the calling gateway is classified according to what you’ve set on the gateway configuration page and the called party is OnNet by virtue of being an IP phone.

When deciding whether to complete a transfer, the transfer feature looks at the classification of the parties on the call. If both are OffNet and the service parameter Block OffNet to OffNet Transfer is set to True, CallManager denies the transfer attempt and displays a message to the transferring party.

The conference setting works similarly, but instead of preventing the conference, it dictates under what conditions the conference should survive. The Drop Ad Hoc Conference setting takes the following values:

  • Never allows the conference to persist until all parties have dropped out.

  • When Conference Creator Drops Out causes the conference to end when the person who created the conference leaves it. This value setting can be inconvenient if the creator accidentally hangs up on a conference call.

  • When No OnNet Parties Remain in the Conference relies on call classification. If only OffNet parties remain in the conference, CallManager clears the conference if this value is set.

MLPP Precedence

Multilevel Priority and Preemption (MLPP) is a feature primarily used by military installations that want to provide a way for important personnel to be able to preempt lower-priority calls on a given phone.

MLPP relies on a standard form of addressing in which the precedence level of a call is indicated by an initial set of digits (01 to 04) on a dialed digit string. CallManager does not include such hard-coded rules in its call routing component; rather, it simply allows you to associate a precedence level with any matching string. For instance, digit strings beginning with 01 typically denote calls of priority flash override; by defining pattern 01XXXX and associating the Precedence Level Flash Override to it, you can conform to the military specifications. However, this approach also leaves you free to define number formats of your own if, for example, you want to have a number to break into your coworkers’ calls at lunchtime to arrange vital details such as at which local restaurant to eat. Precedence level follows the call, and, if the call encounters an MLPP-enabled phone or gateway, the precedence level affects the how the call is treated. In the case of phones, it prompts the user and requires him to hang up on any lower-priority calls; in the case of gateways, it can force calls to clear if all circuits on the gateway are in use. Appendix A, “Feature List,” provides additional information about MLPP.

The Route Pattern Configuration page and Translation Pattern Configuration page simply allow you to associate priority values with a call when the associated pattern matches. CallManager supports the following values, listed in order from lowest to highest priority:

  1. Default

  2. Routine

  3. Priority

  4. Immediate

  5. Flash

  6. Flash Override

  7. Executive Override

Unlike the other settings, the Default setting simply indicates that CallManager should not modify the precedence of a call when the associated route or translation pattern is selected. For instance, a call might arrive from another system prioritized as Immediate. If the provided digits match a local pattern with a Precedence Level of Default, the call remains Immediate. Setting any other value causes the selected value to overwrite whatever value the call already had.

Tip

Although it might seem a natural fit, Cisco recommends that you not use MLPP as a way to provide emergency calls higher priority than normal calls but rather recommends that you set aside dedicated trunks to the PSTN to be used for emergency calls.

This recommendation exists for a few good reasons. One issue is that emergency response centers often have limited trunk capacity. Certain emergencies might generate a high call volume, and, although using preemption might guarantee that each emergency call routes off your enterprise network, it doesn’t guarantee (past the first few calls) that the emergency response center will receive all these calls. At some point, all the preemption logic accomplishes is the disruption of valid nonemergency calls without allowing redundant emergency callers to reach the emergency response center.

Among the nominally nonemergency calls that might be preempted are calls that, while nominally nonemergency, actually are part of your enterprise’s emergency policies. Even worse, some of these nominally nonemergency calls might be calls from the emergency response center back into your enterprise. Some laws regarding 911 compliance require that the emergency response center be provided a caller ID that can be used by the emergency response center to dial back into the enterprise should an emergency caller somehow be disconnected.

Thus, by simply reserving some facilities specifically for 911 calls, you ensure that enough capacity exists for emergency callers to reach the emergency response center without running the risk of preempting equally vital calls that happen not to be specifically to 911.

The Route/Block Flag

When a given pattern matches, the default behavior that applies is to route the associated call. However, CallManager specifically permits to you block calls when a given pattern is matched. The Route Option field on the Translation Pattern Configuration and Route Pattern Configuration pages permits you to block a call: When you specify Block this pattern, CallManager rejects the call if the blocked pattern happens to be the best match for the dialed string. The rejection of the call is done with the cause value you select from the following list:

  • No Error

  • Unallocated Number

  • Call Rejected

  • Number Changed

  • Invalid Number Format

  • Precedence Level Exceeded

If the call came from a different system, through an ISDN or H.323 trunk, the cause value is returned as the Cause Information Element (IE) in Q.931 signaling. The system where the call originated can then apply different outcomes for the call, based on the cause that is returned. For instance, if you choose “unallocated number” as the cause for a blocked pattern, the calling system will be able to abort any further attempts to reroute the call through a different network, avoiding trying another path to reach a destination that is nonexistent. The section “Miscellaneous Solutions” later in the chapter provides some examples of the use of the Route Option field.

Forced Authorization Codes and Client Matter Codes

Forced Authorization Codes and Client Matter Codes provide a twist to CallManager’s digit collection process or, to be more precise, a postscript. Both of these features kick in after CallManager finds the closest match for a set of dialed digits. They can be thought of as a second phase of digit collection.

You create forced authorization codes (FAC) and client matter codes (CMC) from the Feature menu in CallManager Administration. Forced authorization codes and client matter codes can consist of any string of numeric digits up to 16 digits long. Forced account codes also have an associated authorization level that takes values from 1 to 255. Higher numeric values correspond to higher authorization levels.

The purpose of forced authorization codes is to require users who place calls to certain destinations—most often long distance or international calls—to enter an authorization code to prove to CallManager that it should route the call.

When CallManager matches a pattern for which the Required Forced Authorization Code check box has been checked, instead of immediately routing the call, it plays a tone to the caller. The caller must enter a valid authorization code. Entry of digits is terminated either when the caller dials # or when the interdigit timer expires.

Upon collecting a forced authorization code, CallManager compares the authorization level configured with the code against the authorization level configured on the Route Pattern Configuration page. If the level of the code equals or exceeds the level on the pattern, CallManager proceeds with the call.

The purpose of client matter codes is to require users to enter an account number upon placing a call that CallManager logs into the call detail records (CDR) upon call completion. A reporting tool can later extract the account codes from the CDR database and properly bill clients for the time spent by the caller on the account.

Client matter codes operate nearly identically to forced authorization codes. When CallManager selects as closest match a route pattern with the Require Client Matter Code check box checked, it plays a tone to the caller and requires him to enter digits. Digit entry expires when either the caller presses the # key or the interdigit timer expires.

Route patterns support the simultaneous support of both forced authorization and client matter codes. When both are configured, CallManager first prompts for the forced authorization code and then prompts for the client matter code.

Forced authorization codes and client matter codes are not compatible with the Allow Overlap Sending flag. When either the Require Client Matter Code or Require Forced Authorization Code check boxes are checked, CallManager Administration disables the Allow Overlap Sending check box. Similarly, when the Allow Overlap Sending check box is checked, CallManager Administrator disables the Forced Authorization Code and Client Matter Code fields.

Other Wildcards (@ and .)

The section “Route Patterns and Route Filters” deliberately glosses over some of the most common wildcards you use: the @ and . wildcards.

@ Wildcard

Unlike the convenient wildcards X and ! and the range-matching notations, the @ wildcard does not represent any particular set of matching characters. The @ wildcard causes CallManager to add the set of national route patterns for the numbering plan that you specify in the Numbering Plan drop-down list on the Route Pattern or Translation Pattern Configuration pages. One way to think of the @ pattern is that it matches any number that you can dial from a residential phone in the country associated with the selected numbering plan. For example, specifying the @ pattern along with the North American numbering plan allows users to dial 911 and 555 1212 and 1 800 555 1212 and 011 33 12 34 56 78 90.

The @ pattern is a macro. When you configure it, CallManager looks up a list of route patterns associated with the dialing plan you have specified and adds them individually. This might cause CallManager to appear to violate closest match routing rules.

For instance, different individual route patterns in the North American numbering plan match the four dialing strings 911 and 555 1212 and 1 800 555 1212 and 011 33 12 34 56 78 90. Table 2-24 shows some sample route patterns.

Table 2-24. Sample Route Patterns in the North American Numbering Plan

Dialing String

Matching Route Pattern

Description

911

[2-9]11

Services (311, 411, 611, 911)

555 1212

[2-9]XX XXXX

Seven-digit dialing

1 800 555 1212

1 [2-9]XX [2-9]XX XXXX

11-digit dialing

011 33 12 34 56 78 90

011 3[0-469] !

International calls to the valid two-digit country codes in the range 30–39

Assume that you associate the route pattern @ with a gateway that you want to use for all of your outbound calls. You have another gateway that you prefer to use for seven-digit local calls, so you configure the route pattern XXX XXXX on it. But when you dial 555 1212, your calls route out the first gateway. What is happening?

From your point of view, you configured the route patterns in Table 2-25.

Table 2-25. Closest Matching and the @ Wildcard, User-Configured Patterns

Route Pattern

Selected Destination

@

Gateway 1

XXX XXXX

Gateway 2

The specific route pattern XXX XXXX definitely appears to match fewer route patterns than the @ pattern. However, CallManager interprets @ as a macro expansion and actually treats your configuration as shown in Table 2-26.

Table 2-26. Closest Matching and the @ Wildcard, CallManager-Expanded Patterns

Route Pattern

Selected Destination

[2-9]11

Gateway 1

[2-9]XX XXXX

Gateway 1

1 [2-9]XX [2-9]XX XXXX

Gateway 1

011 3[0-469] !

Gateway 1

XXX XXXX

Gateway 2

When a user dials 555 1212, both [2-9]XX XXXX and XXX XXXX match. [2-9]XX XXXX is the more specific, and thus the call routes to gateway 1.

To avoid this situation, when you configure route patterns that you want to take precedence over the @ pattern, either be as specific as possible in describing your route patterns, or preferably, use route filters (described in the section “Route Filters”).

. Wildcard

The . wildcard is unlike other wildcards in that it does not match digits at all. Rather, the call routing component uses the . wildcard to fulfill its secondary responsibility of address translation.

The . wildcard functions solely as a delimiter. When it appears in a route pattern, it divides the dial string into PreDot and PostDot sections. This has no effect on what digit strings the route pattern matches. Rather, you use the . wildcard in conjunction with digit discarding instructions.

Digit discarding instructions are one way to tell the call routing component which dialed digits should be kept before the call is offered to the selected device. Most digit discarding instructions can be used only in conjunction with route patterns that contain the @ wildcard. However, some digit discarding instructions rely on the PreDot section that the . wildcard defines. Further details about digit discarding instructions (and other transformations) are in the section “Digit Discarding Instructions.”

Route Filters

As described, the @ wildcard is an all-or-nothing affair. When present, it matches all of the valid numbers for the national numbering plan specified, even those you would prefer your users did not dial.

Route filters are the mechanism by which you can cause CallManager to add only a subset of the route patterns for a given numbering plan. For example, using route filters, you can cause an @ pattern to match only the national emergency numbers. You can also use route filters to distinguish local calls from long distance calls or to limit access to toll services.

Route filters are a test that CallManager applies to individual route patterns in a numbering plan included by the @ wildcard. CallManager examines each valid route pattern in the numbering plan and applies the test. If a particular route pattern passes the test, CallManager adds it into its routing tables, and users are able to dial numbers that match the route pattern. If a particular route pattern fails the test, CallManager skips over it, and users are unable to dial numbers that match the route pattern. Route filters work by allowing CallManager to add only the subset of a numbering plan whose tags fulfill the constraints that operators impose.

Tags

Tags are named substrings of individual route patterns for a given national numbering plan.

For instance, the route pattern 1 [2-9]XX [2-9]XX XXXX exists in the North American numbering plan. It is composed of four sections. The first section, 1, denotes the call as a toll call. The second section matches an area code. The office code and the subscriber follow. The numbering plan file for the North American numbering plan encodes this knowledge as the tags LONG-DISTANCE-DIRECT-DIAL, AREA-CODE, OFFICE-CODE, and SUBSCRIBER. In contrast, the route pattern [2-9]XX XXXX contains only the OFFICE-CODE and SUBSCRIBER tags.

Table 2-27 shows the tags that the North American numbering plan contains, and it provides representative digit strings for each tag. Bold type in Table 2-27 indicates the section of the example number that corresponds to the listed tag.

Table 2-27. Tags in the North American Numbering Plan

Tag Name

Example Number

Description

AREA-CODE

1 214 555 1212

The area code in an 11-digit long distance call

COUNTRY-CODE

01 1 33 1234567890 #

The country code in an international call

END-OF-DIALING

01 1 33 1234567890 #

The #, which ends interdigit timeout in international calls

INTERNATIONAL-ACCESS

01 1 33 1234567890 #

The initial 01 of an international call

INTERNATIONAL-OPERATOR

01 0

The digit that denotes the operator component of an international call

LOCAL-AREA-CODE

214 555 1212

The area code in a 10-digit local call

LOCAL-DIRECT-DIAL

1 555 1212

The initial 1 some seven-digit calls require

LOCAL-OPERATOR

0 555 1212

The initial 0 some operator-assisted seven-digit calls require

LONG-DISTANCE-DIRECT-DIAL

1 214 555 1212

The initial 1 required for long distance direct-dial calls

LONG-DISTANCE-OPERATOR

0 214 555 1212

The initial 0 required for operator-assisted long distance calls

NATIONAL-NUMBER

01 1 33 1234567890 #

The national number component of an international call

OFFICE-CODE

1 214 555 1212

The office or exchange code of a North American call

SATELLITE-SERVICE

01 1 881 4 1234 #

A specific value associated with calls to the satellite country code

SERVICE

1 411

Access to local telephony provider services

SUBSCRIBER

1 214 555 1212

A particular extension a given exchange serves

TRANSIT-NETWORK-ESCAPE

101 0321 1 214 555 1212

Long distance carrier code

TRANSIT-NETWORK

101 0321 1 214 555 1212

The escape sequence used for entering a long distance carrier code

Operators

Operators are the functions that determine whether a given route pattern passes the tests you specify.

There are four operators:

  • <tag> EXISTS, whose test is passed if the route pattern under inspection contains the specified tag.

  • <tag> DOES-NOT-EXIST, whose test is passed if the route pattern under inspection does not contain the specified tag.

  • <tag> == <value>, whose test is met if 1) the route pattern under inspection contains the tag and 2) a nonempty intersection exists for the set of route patterns that the pattern expression in <value> matches and the set of route patterns that the pattern expression associated with tag matches.

  • <tag> NOT-SELECTED, whose test is passed under all conditions. The NOT-SELECTED operator is a value that exists only in CallManager Administration to represent that you have not selected an operator for a particular tag. It simply means “none of the above.”

An example might help clarify the tortured description of the == operator. One route pattern defined in the North American numbering plan is [2-9]XX XXXX (see Figure 2-5). This pattern consists of an office code and a subscriber. The first section of the route pattern, [2-9]XX, corresponds to the tag OFFICE-CODE.

Pattern [2-9]XX XXXX in the North American Numbering Plan

Figure 2-5. Pattern [2-9]XX XXXX in the North American Numbering Plan

Assume that you specify OFFICE-CODE == [1-3]XX in a route filter. When determining whether to add the pattern [2-9]XX XXXX into the routing tables, CallManager intersects the route pattern [2-9]XX from the numbering plan with the route pattern [1-3]XX in the route filter. [2-9]XX matches all dialed digit strings in the range 200–999, while route pattern [1-3]XX matches all dialed digit strings in the range 100–399. The intersection of these sets is all dialed digit strings in the range 200–399. As a result, CallManager determines that the route pattern under inspection matches the filter’s test. It inserts into the internal routing tables the route pattern that represents the intersection of the value you specified and the entry in the numbering plan, namely, [23]XX XXXX. Figure 2-6 depicts the application of the route filter.

Intersection of Two Pattern Ranges Because of a Route Filter

Figure 2-6. Intersection of Two Pattern Ranges Because of a Route Filter

You can string operators together with the Boolean operators AND and OR. When you string operators together with OR, CallManager includes a route pattern under inspection if either of the specified conditions exist. When you string operators together with AND, CallManager includes a route pattern under inspection only if both of the specified conditions exist.

For example, the route filter AREA-CODE EXISTS OR SERVICE EXISTS causes CallManager to include both the route pattern [2-9]11, which matches information and emergency services in the North American numbering plan, and the route pattern 1 [2-9]XX [2-9]XX XXXX, which matches long distance toll calls in the North American numbering plan. [2-9]11 contains the SERVICE tag, and 1 [2-9]XX [2-9]XX XXXX contains the AREA-CODE tag.

However, the route filter AREA-CODE EXISTS AND SERVICE EXISTS causes CallManager to include absolutely no route patterns, because no number in the North American numbering plan has both an area code and a service number.

Route Filter Operation

When an @ pattern has an associated filter, the filter affects the macro expansion that takes place. Before adding an individual route pattern from the numbering plan to the system, CallManager checks to see whether that particular route pattern passes the tests specified in the route filter. If the route pattern does not qualify, CallManager will not add it, which means that users cannot dial it.

It is important to note that route filters in themselves do not explicitly block calls. They tell CallManager not which patterns to exclude but which patterns to include. A route filter that specifies AREA-CODE == 900 does not eliminate calls to area code 900 (reserved for toll services in the United States); rather, it tells CallManager to include only those route patterns in the North American numbering plan where the area code is 900. In other words, it configures the system so that toll-number calls are the only destination users can dial. (You can block these numbers. See the section “Routing by Class of Calling User” for details.)

The best way to see how route filters operate is to look at some examples. For instructive purposes, these examples use the North American numbering plan and assume that the @ pattern expands only to the route patterns in Table 2-28.

Table 2-28. Route Patterns Used for Route Filter Example

Route Pattern

Description

Tags

[2-9]11

311, 411, 611, 911

SERVICE

[2-9]XX XXXX

Seven-digit dialing

OFFICE-CODE

SUBSCRIBER

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

10-digit dialing

LOCAL-AREA-CODE

OFFICE-CODE

SUBSCRIBER

1 [2-9]XX [2-9]XX XXXX

11-digit dialing

LONG-DISTANCE-DIRECT-DIAL

AREA-CODE

OFFICE-CODE

SUBSCRIBER

01 1 3[0-469] !

International dialing to valid two-digit country codes in the range 30–39

INTERNATIONAL-ACCESS

INTERNATIONAL-DIRECT-DIAL

COUNTRY-CODE

NATIONAL-NUMBER

If you specify the route pattern 9.@ with no route filter, CallManager indiscriminately adds each route pattern in Table 2-28, preceded by 9. Thus, users can dial 9 911 and 9 555 1212, as well as 9 1 900 555 1212. Table 2-29 lists the route patterns that CallManager adds.

Table 2-29. Route Patterns Added When No Route Filter Is Specified

Added Route Patterns

Tags in the Route Pattern

9 [2-9]11

SERVICE

9 [2-9]XX XXXX

OFFICE-CODE, SUBSCRIBER

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

LOCAL-AREA-CODE, OFFICE-CODE, SUBSCRIBER

9 1 [2-9]XX [2-9]XX XXXX

LONG-DISTANCE-DIRECT-DIAL, AREA-CODE, OFFICE-CODE, SUBSCRIBER

9 011 3[0-469] !

INTERNATIONAL-ACCESS, INTERNATIONAL-DIRECT-DIAL, COUNTRY-CODE, NATIONAL-NUMBER

If instead, you add the same route pattern but use a route filter that specifies SERVICE EXISTS, CallManager adds only those route patterns that contain the SERVICE tag. (In North America, the SERVICE tag matches numbers such as 411 for directory information and 911 for emergency services.) Your users can access network services but no other numbers. Table 2-30 lists the added route patterns.

Table 2-30. Route Patterns Added for the Route Filter SERVICE EXISTS

Accepted Route Patterns (Contain SERVICE Tag)

Tags in the Route Pattern

9 [2-9]11

SERVICE

Rejected Route Patterns

Tags in the Route Pattern

9 [2-9]XX XXXX

OFFICE-CODE, SUBSCRIBER

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

LOCAL-AREA-CODE, OFFICE-CODE, SUBSCRIBER

9 1 [2-9]XX [2-9]XX XXXX

LONG-DISTANCE-DIRECT-DIAL, AREA-CODE, OFFICE-CODE, SUBSCRIBER

9 011 3[0-469] !

INTERNATIONAL-ACCESS, INTERNATIONAL-DIRECT-DIAL, COUNTRY-CODE, NATIONAL-NUMBER

The route filter COUNTRY-CODE DOES-NOT-EXIST eliminates the international dialing route pattern. Users can access network services and local and long distance numbers. Table 2-31 lists the added route patterns.

Table 2-31. Route Patterns Added for the Route Filter COUNTRY-CODE DOES-NOT-EXIST

Accepted Route Patterns (Lack COUNTRY-CODE Tag)

Tags in the Route Pattern

9 [2-9]11

SERVICE

9 [2-9]XX XXXX

OFFICE-CODE, SUBSCRIBER

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

LOCAL-AREA-CODE, OFFICE-CODE, SUBSCRIBER

9 1 [2-9]XX [2-9]XX XXXX

LONG-DISTANCE-DIRECT-DIAL, AREA-CODE, OFFICE-CODE, SUBSCRIBER

Rejected Route Patterns

Tags in the Route Pattern

9 011 3[0-469] !

INTERNATIONAL-ACCESS, INTERNATIONAL-DIRECT-DIAL, COUNTRY-CODE, NATIONAL-NUMBER

The route filter AREA-CODE == [89]00 OR AREA-CODE == 888 OR AREA-CODE == 877 demonstrates the way in which the equal operator can constrain a route pattern. This filter allows users to dial 11-digit numbers to the toll-free ranges 800, 877, or 888 and to the toll-range 900. Table 2-32 lists the added route patterns.

Table 2-32. Route Patterns Added for the Route Filter AREA-CODE == [89]00 OR AREA-CODE == 888 OR AREA-CODE == 877

Added Route Patterns (Contain AREA-CODE Tag, Constrained to Specified Ranges)

Tags in the Route Pattern

9 1 [89]00 [2-9]XX XXXX

LONG-DISTANCE-DIRECT-DIAL, AREA-CODE, OFFICE-CODE, SUBSCRIBER

9 1 888 [2-9]XX XXXX

LONG-DISTANCE-DIRECT-DIAL, AREA-CODE, OFFICE-CODE, SUBSCRIBER

9 1 877 [2-9]XX XXXX

LONG-DISTANCE-DIRECT-DIAL, AREA-CODE, OFFICE-CODE, SUBSCRIBER

Filtered Route Patterns (Lack AREA-CODE Tag)

Tags in the Route Pattern

9 [2-9]11

SERVICE

9 [2-9]XX XXXX

OFFICE-CODE, SUBSCRIBER

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

LOCAL-AREA-CODE, OFFICE-CODE, SUBSCRIBER

9 011 3[0-469] !

INTERNATIONAL-ACCESS, INTERNATIONAL-DIRECT-DIAL, COUNTRY-CODE, NATIONAL-NUMBER

The bold type in the above table shows that the values specified on the equals operator have constrained the area code substring of the North American numbering plan to a particular range. In each case, the generalized substring [2-9]XX, which matches any digit string between 200 and 999, has been modified so that it matches only the intersection between the substring and value specified in the route filter.

Useful Route Filters for the North American Numbering Plan

This section presents some route filter configurations for the North American numbering plan that you might find useful.

It describes how to use route filters to do the following:

  • Block calls where the user has selected a long distance carrier

  • Block international calls

  • Route just local numbers

  • Route just toll-free numbers

  • Eliminate interdigit timing between 7-digit and 10-digit route patterns

  • Block 900 numbers

Block Calls Where the User Has Selected a Long Distance Carrier

In North America, users can select a long distance carrier by dialing at the beginning of their number the digits 101 followed by a four-digit carrier code. CallManager digit discarding instructions (see the section “Digit Discarding Instructions”) call this type of dialing 10-10- Dialing.

On the North American numbering plan Route Filter page, the tag TRANSIT-NETWORK-ESCAPE filters numbers in which the user has included the 101 carrier selection digits. Configuring a route filter with the value TRANSIT-NETWORK-ESCAPE DOES-NOT-EXIST blocks calls that include the carrier selection code.

The difference between configuring a route filter to block long distance carrier selection and using the digit discarding instructions 10-10-Dialing is that the route filter blocks a user’s call attempt if the user dials the carrier selection code, while the digit discarding instructions permit the call to go through but silently strip out the carrier selection portion of the dialed number.

Block International Calls

You can block international calls with the route filter INTERNATIONAL-ACCESS DOES-NOT-EXIST. In the North American numbering plan file, the tag INTERNATIONAL-ACCESS corresponds to the initial 01 of international dialed calls. By specifying a route filter that prevents CallManager from including route patterns beginning with this tag, you prevent CallManager from matching any numbers beginning with 01. You block international calls by never adding them in the first place.

Route Just Local Numbers

Routing just local numbers typically requires stringing together several route filter clauses joined by OR.

Local calls can vary dramatically by geographical region. Some regions have 7-digit local calls, some metropolitan regions have a mixture of 7- and 10-digit local calls, and other regions have 10- digit local calls.

Seven-Digit Dialing

If your region has seven-digit dialing and you want to permit users to dial only seven-digit numbers, defining the route filter SERVICE DOES-NOT-EXIST AND LOCAL-AREA-CODE DOES-NOT-EXIST AND AREA-CODE DOES-NOT-EXIST AND INTERNATIONAL-ACCESS DOES-NOT-EXIST should suffice. Filtering against SERVICE DOES-NOT-EXIST blocks calls to information and emergency services, LOCAL-AREA-CODE blocks 10-digit calls, AREA-CODE DOES-NOT-EXIST blocks 11-digit long distance calls, and INTERNATIONAL-ACCESS blocks international calls.

If you want to, say, permit calls to services, long distance calls, or international calls, you simply exclude the appropriate operator expression from the proposed route filter.

The LOCAL-AREA-CODE section of the defined route filter deserves some more explanation. You might have noticed that in some cases, a proposed route filter uses the tag AREA-CODE and in other cases it uses the tag LOCAL-AREA-CODE. The tag LOCAL-AREA-CODE represents the area code as it appears in 10-digit numbers.

Some metropolitan regions of North America require users to dial 10 digits for all of their local calls. This means that CallManager must include both 7-digit patterns and 10-digit patterns in its expansion of the North American numbering plan, because you can deploy CallManager in different geographic regions. Because of CallManager’s analysis process, however, unless you explicitly exclude the 10-digit pattern when you are in a 7-digit dialing region, CallManager will wait for the interdigit timer to expire before offering your 7-digit calls to the PSTN.

On the other hand, the AREA-CODE tag represents the area code as it appears in 11-digit numbers (typically direct-dial and calling-card long distance calls) in the North American numbering plan. Using two different tag names for essentially the same subsection of a North American number assists those administrators in 10-digit dialing regions who want to permit 10-digit local calls while blocking 11-digit toll calls. By specifying the filter AREA-CODE DOES-NOT-EXIST, such administrators can screen out all of the toll calls while leaving the 10-digit calls untouched. The section “Eliminate Interdigit Timing Between 7-Digit and 10-Digit Patterns” expands on this wrinkle of CallManager’s North American numbering plan.

Metro Dialing

Some geographical regions have metro dialing. In metro dialing, a user in a home area code needs to dial only 7 digits, but a few neighboring area codes, also local calls, require the user to dial 10 digits. Metro dialing is typically the most problematic, because some 11-digit calls might actually be local calls, while some 10-digit calls might be toll calls. In such cases, you might need to specify criteria down to the office code level to provide full local access. (Another approach is to define an @ pattern to perform general filtering and to define separate specific patterns, such as 972 813 XXXX, to handle the exceptional cases.)

If your region has metro dialing, define a route filter in which one clause specifies seven-digit dialing and subsequent clauses define the nontoll area codes on an area-code-by-area-code basis. For instance, in the Dallas-Fort Worth area in 1995, the following route filter would provide general metro dialing access from the point of view of a user in the 972 area code:

  • LOCAL-AREA-CODE DOES-NOT-EXIST AND AREA-CODE DOES-NOT-EXIST AND INTERNATIONAL-ACCESS DOES-NOT-EXIST

  • OR

  • LOCAL-AREA-CODE == 214

  • OR

  • LOCAL-AREA-CODE == 817

Because the user in the 972 area code dials seven digits to call other numbers in the 972 area code, the first part of this route filter handles any seven-digit calls that the user in the 972 area code dials. The second part of this route filter handles 10-digit calls starting with 214 that the user dials, and the third part of this route filter handles 10-digit calls starting with 817 that the user dials.

You can add exceptional cases as additional clauses or as separate route patterns.

Note especially the use of the tag LOCAL-AREA-CODE. The LOCAL-AREA-CODE tag represents an area code as dialed as part of a 10-digit North American number (for example, 214 555 1212). The same area code in an 11-digit North American number (0 214 555 1212 and 1 214 555 1212) corresponds to the tag AREA-CODE.

10-Digit Dialing

A 10-digit dialing route filter is like a metro dialing routing filter, but you need not include the route filter for 7-digit dialing. For instance, in the Dallas-Fort Worth area in 2000, the following route filter provides general 10-digit dialing access:

  • LOCAL-AREA-CODE == 214

  • OR

  • LOCAL-AREA-CODE == 817

  • OR

  • LOCAL-AREA-CODE == 972

  • OR

  • LOCAL-AREA-CODE == 940

Again, you can add exceptional cases (11-digit local calls) as additional clauses or as separate route patterns.

Route Toll-Free Numbers

In the North American numbering plan, area codes 800, 866, 877, and 888 are dedicated to toll-free numbers. The following route filter provides access to only these services:

  • AREA-CODE == 800

  • OR

  • AREA-CODE == 877

  • OR

  • AREA-CODE == 888

Eliminate Interdigit Timing Between 7-Digit and 10-Digit Patterns

Because some geographical regions use 7-digit dialing and others use 10-digit dialing, the North American numbering plan shipped with CallManager must accommodate both types of dialing. Furthermore, because the IP network permits stations homed to a particular CallManager to be in different geographical locations, CallManager must be able to support both types of dialing simultaneously.

As a result, the North American numbering plan shipped with CallManager includes both route patterns [2-9]XX XXXX and [2-9]XX [2-9]XX XXXX. The problem that occurs is with the 10- digit route pattern in place, users of the 7-digit pattern must wait for the interdigit timeout to expire before CallManager routes their 7-digit calls.

Eliminating the interdigit timeout means configuring CallManager to eliminate the 10-digit route pattern for users of 7-digit dialing. Configure the route filter LOCAL-AREA-CODE DOES-NOT-EXIST to eliminate the [2-9]XX [2-9]XX XXXX pattern from the list of patterns in the North American numbering plan and associate it with your @ pattern.

Note

Actually, the route pattern set that CallManager uses to implement 7- and 10-digit patterns in the North American numbering plan is rather more complex. CallManager represents 7- and 10- digit patterns using 4 patterns:

  • [2-9][02-9]X XXXX

  • [2-9]X[02-9] XXXX

  • [2-9][02-9]X [2-9]XX XXXX

  • [2-9]X[0-29] [2-9]XX XXXX

The patterns are constructed in this matter in order not to create overlap between service patterns such as [2-9]11. A digit string such as 911 doesn’t match patterns 1 or 3, because the second wildcard in these patterns doesn’t match the second 1 in the digit string, and 911 doesn’t match patterns 2 or 4 because the third wildcard in these patterns doesn’t match the third 1 in the digit string.

But the simpler patterns [2-9]XX XXXX and [2-9]XX XXX XXXX demonstrate the principles that this section is communicating without complicating the issue with the addition of more confusing patterns.

You can discover exactly what patterns CallManager loads for any given dial plan by inspecting the files stored in the dialPlans subdirectory of the CallManager installation directory.

Block 900 Numbers

The previous route filters in this section operate by using inclusion. That is, the clauses provided define a subset of the North American numbering plan that includes only those patterns that you want to be routed and excludes those patterns you want to block.

As long as the restrictions placed use the EXISTS or DOES-NOT-EXIST operators, you can use one route filter to define which patterns should be routed. EXISTS specifies that CallManager should route all valid number ranges for a particular tag, while DOES-NOT-EXIST specifies that CallManager should route no valid number ranges for a particular tag.

When you need to specify only some of the valid number ranges for a particular tag, use the == operator. However, CallManager does not support a != (not-equals) operator. As a result, although you can specify a route filter such as AREA-CODE == 900, rather than blocking 900 numbers, this filter routes 900 numbers and blocks all other types of calls.

However, you can still block 900 numbers with the use of two route patterns. First, configure an @-pattern with the route filter AREA-CODE == 900. On the route pattern, however, click the radio button Block This Pattern. This configuration specifies that CallManager should block all external calls with area code 900.

To make all non-900-numbers route, configure another @-pattern with no route filter at all. Using closest match routing rules (see the section “Example 2: Closest Match Routing”), if a user dials a dialed digit string containing an area code of 900, the route pattern with the route filter AREA-CODE == 900 matches, which causes CallManager to block the call. Because an external call to another area code matches only the unfiltered pattern, CallManager routes the call.

An example can best illustrate the process that occurs. Table 2-33 shows a representative sample of route patterns that CallManager adds when you specify the route pattern 9.@.

Table 2-33. Sample Route Patterns Added By 9.@

Route Pattern

Description

9 [2-9]11

Services (311, 411, 611, 911)

9 [2-9]XX XXXX

Seven-digit dialing

9 1 [2-9]XX [2-9]XX XXXX

11-digit dialing

9 011 3[0-469] !

International calls to the valid two-digit country codes in the range 30–39

When you specify the route filter, AREA-CODE == 900, CallManager includes only those route patterns that have an area code tag. Furthermore, CallManager constrains the route pattern so that the tag can match the number 900 (see Table 2-34).

Table 2-34. Route Pattern Added by 9.@ Where AREA-CODE == 900

Route Pattern

Description

9 1 900 [2-9]XX XXXX

11-digit dialing to the 900 area code

When you add both route patterns and specify that CallManager should route calls to 9.@ but block calls to 9.@ where AREA-CODE == 900, the routing tables appear as displayed in Table 2-35.

Table 2-35. Combined Routing Tables

Route Pattern

Treatment

9 [2-9]11

Route this pattern

9 [2-9]XX XXXX

Route this pattern

9 1 [2-9]XX [2-9]XX XXXX

Route this pattern

9 011 3[0-469] !

Route this pattern

9 1 900 [2-9]XX XXXX

Block this pattern

If a user dials 911 or a seven-digit number, it is evident that CallManager routes the call. When a user dials an 11-digit number, however, closest match routing rules ensure that the user’s call is handled properly. Table 2-36 shows that when a user dials 9 1 214 555 1212, CallManager finds a unique match for the 9.@ route pattern and routes the call.

Table 2-36. Routing Treatment for Number 9 1 214 555 1212

Currently Dialed Digits: 9 1 214 555 1212

Current Matches

 

9 1 [2-9]XX [2-9]XX XXXX

Route this pattern

Patterns That Can Still Match

 

<None>

Patterns That Can No Longer Match

 

9 [2-9]11

 

9 [2-9]XX XXXX

 

9 011 3[0-469].!

 

9 1 900 [2-9]XX XXXX

Actions Taken: <None>

When a user dials 9 1 900 555 1212, on the other hand, CallManager finds two matching route patterns in the routing tables, uses closest match routing rules to select between them, and then applies the appropriate treatment. Table 2-37 shows CallManager selecting the blocked route pattern 9.@ where AREA-CODE == 900 over the more generic route pattern 9.@. As a result, CallManager rejects calls to 900 numbers.

Table 2-37. Routing Treatment for Number 9 1 900 555 1212

Currently Dialed Digits: 9 1 900 555 1212

Current Matches

 

9 1 900 [2-9]XX XXXX

Block this pattern

Selected: Matches 8,000,000 numbers

 

9 1 [2-9]XX [2-9]XX XXXX

Route this pattern

Not selected: Matches 6,400,000,000 numbers

Patterns That Can Still Match

 

<None>

Patterns That Can No Longer Match

 

9 [2-9]11

 

9 [2-9]XX XXXX

 

9 011 3[0-469].!

Actions Taken: <None>

This strategy of configuring a general route pattern to allow most calls through, but then configuring specific route patterns with blocking treatment to screen a very specific small set of calls, recurs often in enterprise deployments.

Dialing Transformations

Dialing transformations allow the call routing component to modify either the calling number or the dialed digits of a call. Transformations that modify the calling number are calling party transformations, while those that modify the dialed digits are called party transformations.

Calling party transformations affect the calling number but not the calling name of a call. For example, when one Cisco IP Phone calls another, normally the called phone sees two pieces of information: the directory number of the calling phone and the any display name that you have entered on the Directory Number Configuration page for the calling phone. Figure 2-7 depicts the display of a Cisco IP Phone that is receiving a call.

Calling Number and Name During Call Presentation

Figure 2-7. Calling Number and Name During Call Presentation

The Display (Internal Caller ID) field in the Directory Number Configuration page has limited scope. When a user places a call, CallManager provides this name to all ringing devices for station-to-station calls within the cluster. While all stations are ringing, CallManager displays the contents of the Alerting Name field on the caller’s station, but when a ringing device answers, CallManager ensures that this name is displayed on the caller’s IP phone.

When a call leaves the private network, there is often no provision in the network protocol to provide calling party name information to the PSTN or alerting and connected name information from the PSTN to the caller. Some protocols, notably QSIG and DMS versions of Primary Rate Interface (PRI), however, do provide for transmission of the calling number, the connected number, the calling name, the alerting name, and the connected name, and CallManager transmits this information whenever the protocol permits.

You usually need calling party transformations only for display purposes. For instance, enterprises very commonly require that the central switchboard number for an organization be provided as the calling number for all external calls. Even when you want to actually transmit the calling party’s direct inward dial (DID) number, however, you still must configure some sort of calling party transformation. The PSTN usually wants to see the number of the calling user’s address from the PSTN’s point of view rather than the internal directory number you have assigned your user; unless the internal directory numbers are fully qualified PSTN numbers, a transformation is needed to adapt to the PSTN’s expected numbering scheme. Calling party transformations are not limited to calls to the PSTN, though. If you so choose, you can apply them to calls between your users.

Called party transformations modify the digits the calling user actually dials. Strictly speaking, they do not affect which destination CallManager selects because the selection is based on the digits that the calling user dials, not the transformed called number; however, the transformed called number is often reanalyzed by translation patterns or by other systems to subsequently route the call.

The transformation just modifies those digits before CallManager sends them to a selected device. However, if the selected device looks at the dialed digits to further route the call, the transformation can indeed affect which device ultimately receives the call. This sort of steering occurs most often when CallManager offers a call with a modified called number to a gateway connected to an adjacent network.

This section discusses the transformations permitted at different stages of the transformation process. It covers the following topics:

  • When CallManager Can Apply Dialing Transformations” discusses five opportunities during the call routing process that CallManager has to apply dialing transformations.

  • About Device Types That CallManager Supports” provides an overview of the types of station and trunk devices that CallManager supports, because routing settings are often particular to only certain types of devices.

  • About Masks” discusses masking, an operation that commonly occurs during many stages of the call routing process.

  • About Name and Line Presentation” discusses the options CallManager provides for keeping the names and numbers of callers and called parties private from each other.

  • Dialing Transformation-Related Service Parameters” discusses some CallManager service parameters that relate to calling and called party transformations. The transformations these settings provide are somewhat inconsistent. Some apply to inbound calls, while others apply to outbound calls. Most settings take effect for only some of the devices that CallManager supports.

  • Transformations on the Originating Device” discusses the first opportunity that CallManager has to transform calling and called numbers, at the point where CallManager first receives a call. These transformations are highly device-dependent.

  • Transformations in Translation Patterns, Route Patterns, and Route Lists” discusses the second, third, and fourth opportunities where CallManager can transform calling and called numbers. These transformations are very regular, and thus, this section can discuss them as a group.

  • Transformations on the Terminating Device” discusses the fifth and final opportunity where CallManager can transform calling and called numbers, just before CallManager offers the call to the destination. Just like the transformation on the originating device, transformations on the terminating device are highly device-dependent.

When CallManager Can Apply Dialing Transformations

Calling and called party transformations can occur in five stages during CallManager’s routing process. These stages occur in order, although not all of them need to occur. For instance, if the number that the user dials does not correspond to a translation pattern or route list, no translation-pattern-based or route-list-based transformations occur. The five stages, in order, are as follows:

  1. At the originating device

  2. As part of translation pattern

  3. As part a route pattern

  4. As part of a route list’s operation

  5. At the terminating device

First, CallManager settings for the originating device can modify the dialed digits before control of the call passes the digits to the call routing component. This process happens, for instance, when a call from the PSTN comes into CallManager. Depending on what digits the PSTN sends, you might find it necessary to convert the address from a PSTN address to a local directory number.

Second, if the destination selected is a translation pattern, CallManager applies the calling and called party transformations associated with the translation pattern to change the calling and called numbers. After CallManager applies the dialing transformation, digit analysis uses the resulting called number to select another destination. Sometimes, the transformed digits cause CallManager to match a new translation pattern. In such a case, CallManager applies the calling and called party transformations of the newly selected translation pattern to select a new destination. CallManager breaks such chains of translation patterns after ten iterations to prevent infinite routing loops. The section “Translation Patterns” contains further information about translation patterns.

The third opportunity that the call routing component has to apply dialing transformations is when the dialed digits match a route pattern or directory number. When the dialed digits select a route pattern, CallManager applies the calling and called party transformations configured on the Route Pattern Configuration page.

Fourth, after any translation patterns have been analyzed, if the destination is a route list (described in the section “Call Hunting Constructs”), CallManager applies any calling and called party transformations specified on the route between the route list and individual route groups within the route list. Unlike other transformations in this sequence, transformations on a route list override the ones that the route pattern or translation pattern applies. In all other cases, the changes that CallManager applies are cumulative. For instance, if CallManager prepends the digit 9 to a dialed number of 1000 at the originating device, and the terminating device subsequently prepends an 8, the resulting called number is 891000. On the other hand, if a called party transformation on the route pattern prepends the digit 9 to the dialed number 1000, but a called party transformation on the route between the route list and an individual route group prepends an 8, the resulting called number is 81000, not 981000. The settings on the route list’s route group details undo the transformations that the route pattern applies. This behavior allows you to define transformations on a route pattern that are correct for most cases, but that you want to supersede for calls out particular route groups.

When you add calling and called party transformations to a route pattern or translation pattern, CallManager logs the transformed numbers in the CDRs and renders the transformed numbers on the display of the calling phone. CallManager does not insert transformations specified on the route list’s route group details (or applied by an individual egress gateway) in the CDRs or render them on the calling device.

Fifth, CallManager can modify the calling and called parties just before handing the call to the associated device (such transformations exist exclusively on trunk devices).

Figure 2-8 shows a picture of the transformation process. A Cisco IP Phone places a call. When CallManager passes the call request to call control, CallManager modifies the digits according to any dialing transformations configured for the phone. If the digits provided match a translation pattern, CallManager applies the dialing transformations configured for the translation pattern. At some point, CallManager selects a destination and applies any dialing transformations configured for the route pattern or directory number selected. If a route list is the target of the call, CallManager applies any dialing transformations on specific routes selected. Finally, CallManager applies any dialing transformations configured on the terminating device. All of these opportunities to transform the calling number and called number means that they can differ quite dramatically by the time CallManager has routed a call.

Locations Where Transformations Occur

Figure 2-8. Locations Where Transformations Occur

About Device Types That CallManager Supports

Although CallManager can transform the calling and called numbers at the originating and terminating devices, the dialing transformations available are often quite protocol-dependent. For instance, the dialing transformations that you can configure for an analog phone connected to the Cisco VG200, which uses the MGCP, are not the same as those that you can configure for the Cisco 2600 router, which uses the H.323 protocol.

Chapter 4, “Trunk Devices,” and Chapter 3, “Station Devices,” go into great detail about the specific gateway and station devices that CallManager supports.

About Masks

CallManager uses a common operation called masking throughout the transformation process, so it is worthwhile to discuss it before continuing.

Mask operations allow you to suppress leading digits, to change existing digits while leaving others unmodified, and to insert leading digits. A mask operation requires two pieces of information, the number to be masked and the mask itself.

In the mask operator, the number is overlaid by the mask, aligned so that the last character of the mask overlays the last digit of the number. Where the mask contains a digit, the mask’s digit supersedes the number’s digit. Where the mask contains an X, the corresponding digit of the number is used. And if the number is longer than the mask, the mask obscures the extra digits, as if the stencil were opaque at that point. Figure 2-9 shows some examples.

Transformation Mask Operation

Figure 2-9. Transformation Mask Operation

About Name and Line Presentation

Grouped among the calling and called party transformation settings are presentation settings. Strictly speaking, presentation settings do not modify the calling or called names or numbers but instead dictate whether the users involved in a call are permitted to view the calling or called name or number. Calling line ID presentation settings control whether the called party can view the caller’s number or name and whether the destination party can view the forwarded party’s numbers or names in call diversions. Connected line ID presentation settings control whether the calling party can view the number or name of the called party while the called party’s phone is ringing or after it has answered.

Calling line ID presentation settings exist not only on route and translation patterns, but also on all trunk devices (including intercluster trunks, H.323 trunks, and SIP trunks), QSIG gateways, and MGCP gateways containing PRI trunks. H.323 gateways include the similar field Calling Party Presentation. Valid values for the Calling line ID, Calling name ID, Connected line ID, and Connected name ID fields are Default, Allowed, and Restricted.

Name and line presentation is cumulative—the last node to apply a presentation setting to a call takes precedence. The settings Allowed and Restricted (whether on translation patterns, route patterns or directly on the gateways themselves) overwrite whatever presentation setting comes in; however, Default simply carries forward the current setting in the call. By default, calls from Cisco IP Phones allow presentation of calling name, calling line ID, connected name, and connected line ID, and the Default setting on a translation or route pattern carries these permissions forward unless you specifically override them (with a Restricted value on a route or translation pattern).

For instance, assume you have three CallManager clusters. A set of IP phones in the numbering range 1000 to 1999 is hosted by cluster 3, and route patterns are set up to route calls from other phones in cluster 1 through cluster 2 to cluster 3.

CallManager cluster 1 sets the following settings for route pattern 1XXX, which directs calls to cluster 3 via cluster 2:

  • Calling name: Allowed

  • Calling line: Allowed

  • Connected name: Restricted

  • Connected line: Restricted

CallManager cluster 2 sets the following settings in route pattern 1XXX, which directs inbound calls from cluster 1 to cluster 3:

  • Calling name: Default

  • Calling line: Default

  • Connected name: Default

  • Connected line: Default

CallManager cluster 3 sets the following settings for translation pattern 1XXX, which directs calls to directory numbers in cluster 3 in the range 1000 to 1999:

  • Calling name: Restricted

  • Calling line: Restricted

  • Connected name: Allowed

  • Connected line: Allowed

The number of the caller is presented to the called party in the initial call offering. As a result, the last calling presentation setting to take effect on the call is the setting in cluster 3. Thus, the caller’s name and number are not presented to any phones in cluster 3 because the calling name and line presentation in cluster 3 is set to Restricted.

The number of the called party is presented to the caller in the initial ringing message and presented again when the called party answers. These messages start from the called party and head towards the caller. As a result, the last connected presentation setting to take effect on the call is the setting in cluster 1. Thus, the connected party’s name and line are not presented to any phones in cluster 1, because the connected name and line presentation in cluster 1 is set to Restricted for calls the caller places in the 1000 to 1999 range.

On the Phone Configuration page, Cisco IP Phones also present a check box called Ignore Presentation Restriction (internal calls only). When checked, Cisco IP Phones always display the name and line, when they are available, of any party they’re conversing with, even if the party has requested that the name or number be restricted. This setting is appropriate for authorized users such as hotel receptionists, because it allows you to otherwise configure calls between rooms as private calls while permitting the receptionist to see the identity of a calling room.

Note

The presentation restriction example in this section uses a multiple-cluster scenario because it most clearly illustrates the way that presentation indicators override each other. However, you can still use presentation indicators within a cluster through the use of translation patterns in conjunction with calling search spaces and partitions.

For example, assume that you’re running a hotel and want prevent the name and number from being displayed on room-to-room calls. Assume that your room numbers consist of four-digit numbers in the range 1000 to 1999.

First, you would assign all room IP phones to a partition such as RoomPhones. In a traditional environment, each phone would include this partition in its own calling search space in order to permit direct calls between phones. However, in this case, you instead want room to room calls to first route through a translation pattern that forces the calling and connected names and line IDs to be restricted.

Therefore, you define pattern 1XXX in partition RoomToRoom and ensure that partition RoomToRoom is in the calling search space of all the room phones. On this translation pattern, you set the presentation indicators to Restricted and specify a calling search space that includes partition RoomPhones. When a room phone dials a number like 1010, CallManager matches the translation pattern 1XXX, marks the call with restriction indicators, and then re-offers the call to the phones in partition RoomPhones. Using the Ignore Presentation Restriction (internal calls only) flag, you could even permit certain phones in the RoomPhones partition to see the name and number of another calling phone, despite the restrictions that the translation pattern applies.

If this seems like gobbledygook, it is probably because this chapter has not yet discussed the calling search spaces and partitions concepts. See the section “Calling Search Spaces and Partitions” for more information.

Dialing Transformation-Related Service Parameters

Numerous CallManager settings related to call routing exist as service parameters.

When service parameters take effect for a particular gateway type, the settings apply to all gateways that your CallManager controls and not individual gateways. For instance, if you configure the Strip # Sign from Called Party Number service parameter, all gateways modify the dialed digits in accordance with the Strip # Sign from Called Party Number service parameter. The service parameter does not permit you to use the Strip # Sign from Called Party Number option for one particular gateway connected to CallManager while other gateways connected to CallManager ignore the service parameter.

Furthermore, CallManager service parameters related to routing do not always apply to all gateway protocols. The section “About Device Types That CallManager Supports” describes the device types that CallManager supports.

Service parameters are a vestige of the call routing settings that existed in the scm.ini file before release 3.0. Although CallManager 3.1 and later provides alternative ways to achieve the functions that most of these settings provide, these settings still are effective. Table 2-38 shows the list of routing-related service parameters and a checklist of which protocols for which the settings take effect.

Table 2-38. Supported Service Parameter Dialing Transformations by Device Type

Service Parameter Dialing Transformation

SCCP Station Devices

MGCP Station Devices

H.323 Station Devices

SCCP Trunk Devices

MGCP Trunk Devices

H.323 and SIP Trunk Devices

Calling Party Number Screening Indicator

   

Supported Service Parameter Dialing Transformations by Device Type

  

Matching Calling Party Number With Attendant Flag

   

Supported Service Parameter Dialing Transformations by Device Type[2]

Supported Service Parameter Dialing Transformations by Device Type[2]

 

Overlap Receiving Flag For PRI

    

Supported Service Parameter Dialing Transformations by Device Type[1]

 

Strip # From Called Party Number

   

Supported Service Parameter Dialing Transformations by Device Type

Supported Service Parameter Dialing Transformations by Device Type

Supported Service Parameter Dialing Transformations by Device Type

Unknown Caller ID

   

Supported Service Parameter Dialing Transformations by Device Type

Supported Service Parameter Dialing Transformations by Device Type

Supported Service Parameter Dialing Transformations by Device Type

Unknown Caller ID Flag

   

Supported Service Parameter Dialing Transformations by Device Type

Supported Service Parameter Dialing Transformations by Device Type

Supported Service Parameter Dialing Transformations by Device Type

Unknown Caller ID Text

   

Supported Service Parameter Dialing Transformations by Device Type

Supported Service Parameter Dialing Transformations by Device Type

Supported Service Parameter Dialing Transformations by Device Type

Numbering Plan Info

    

Supported Service Parameter Dialing Transformations by Device Type[1]

 

National Number Prefix

    

Supported Service Parameter Dialing Transformations by Device Type[1]

 

International Number Prefix

    

Supported Service Parameter Dialing Transformations by Device Type[1]

 

Subscriber Number Prefix

    

Supported Service Parameter Dialing Transformations by Device Type[1]

 

Unknown Number Prefix

    

Supported Service Parameter Dialing Transformations by Device Type[1]

 

[2] FXO interfaces only

[1] T1-PRI and E1-PRI interfaces only

Calling Party Number Screening Indicator

Calling Party Number Screening Indicator affects calls that CallManager routes out MGCP digital gateways. The setting allows you to specify the value of the screening indicator field in the calling party number information element of the Integrated Services Digital Network (ISDN) protocol. This element indicates to the attached ISDN network whether CallManager scrutinized the calling number it provides. Note that CallManager never actually screens the number. When calls are placed from Cisco IP Phones, CallManager always provides the calling number configured for the phone. When calls arrive at CallManager via trunk interfaces, these interfaces might provide a calling number. Setting the Calling Party Number Screening Indicator service parameter does not actually cause CallManager to compare such calling numbers against any of CallManager’s configured destinations, but rather simply allows CallManager to spoof an appropriate setting for an attached network that might otherwise have a problem with an unscreened number.

Table 2-39 shows the values the setting takes, along with a description of the meaning that the ISDN protocol assigns to these settings.

Table 2-39. Values of Calling Party Number Screening Indicator

Value

Description

Calling number not screened

User provided, not screened: The user device provides the value in the calling number. The setting indicates that CallManager did not scrutinize it.

Calling number screened and passed

User provided, verified, and passed: The user device provides the value in the calling number. The setting indicates that CallManager has checked it against a list of acceptable numbers and declared it acceptable, although CallManager performs no such screening.

Calling number screened and failed

User provided, verified, and failed: The calling user device provides the value in the calling number. The setting indicates that CallManager has checked it against a list of acceptable numbers and that it is not valid. Again, CallManager doesn’t actually perform screening; this setting simply affects what CallManager reports to the attached network.

CallManager provides calling number

Network provided: CallManager provides the calling number.

Default setting

Default: CallManager sets up its default value for the screening indicator—user provided, not screened.

Only change this setting if the attached ISDN network rejects your outbound calls because it finds the value of the screening indicator unacceptable. (Determining this fact requires detailed debugging of the trace file.) However, the value you set has no effect on the tasks CallManager actually performs in relation to the calling number. In other words, CallManager performs no actual screening and verification of the calling number. Rather, it simply changes the value of the ISDN field it provides to the ISDN network to provide flexibility in interworking with different varieties of ISDN.

Matching Calling Party Number With Attendant Flag

This setting provides a simple way to emulate the functionality of a small PBX or key system. Small PBXs typically associate inbound analog trunks on a one-for-one basis with user stations. The PBX offers incoming calls over an analog trunk to the corresponding station, and conversely, outbound calls from the station select the corresponding analog trunk. This allows a small business to provide internal users with unique external directory numbers but still to use low-cost analog loop start trunks.

An analog loop start trunk is just like the analog phone line that most people have at home. Analog loop start trunks have limited ability to communicate calling and called party information. When a user places a call from a private network to the PSTN, no way exists for the private network to indicate to the PSTN the public phone number of the calling user. Rather, the PSTN uses the number assigned to the loop start trunk as the calling number. Similarly, when the PSTN offers the call to the private network, the PSTN has no way to provide the actual digits the calling user dialed; rather, it assumes that the inbound call directly terminates on the appropriate phone.

This setting works with analog gateways running the Skinny Gateway Control Protocol and with Cisco MGCP gateways. The gateway setting Attendant DN described in the section “Attendant DN” automatically routes incoming calls from an analog trunk to the specified directory number. This behavior is exactly what is required to handle the trunk-to-station behavior of a small PBX.

The setting Matching Calling Party Number With Attendant Flag handles the station-to-trunk calls. When this value is set to True, CallManager makes sure that the trunk selected for a station’s outbound call is the same as that it uses to handle the station’s inbound calls. To perform this function, it routes the outbound call out the trunk whose Attendant DN is the directory number of the calling station.

This setting works best if you have a single gateway for external calls, because you can assign a single route pattern such as 9.@ to the gateway and ensure that CallManager presents all users’ external calls to this gateway. If you have several gateways, to ensure that CallManager presents a given user’s external call to the associated gateway, you need either to place all of your gateways in a route list (see the section “Call Hunting Constructs” for more information) or to use calling search spaces and partitions to route the calling user to the appropriate gateway (see the section “Calling Search Spaces and Partitions”).

Overlap Receiving Flag for PRI

This value enables overlapped receiving. Many countries implement national numbering plans that use variable-length subscriber numbers. Complicated tables of area codes or city codes determine the actual length of a subscriber. Unless a telephone system intimately understands the country’s numbering plan, efficiently giving calls to and receiving calls from such networks requires providing or receiving digits one at a time. Receiving digits one at a time from the network is called overlapped receiving. By default, overlapped receiving is enabled and the sending complete indicator is disabled.

If your route plan contains route patterns that begin with similar digit strings (for instance, 9XXX and 9XXXX), leaving overlapped receiving enabled can cause routing delays when CallManager receives calls over trunks that use these settings. Disable this capability by changing the Overlap Receiving Flag For PRI to False.

Strip # from Called Party Number

Administrators who manage call routing for countries with variable-length numbering plans for which CallManager support does not yet exist must configure route patterns such as 0! to get CallManager to provide the proper number of digits to the PSTN. Because route patterns ending in the ! wildcard introduce interdigit timing on all calls, such administrators often also configure equivalent route patterns (in this case, 0!#) so that knowledgeable users who terminate their outbound calls with a # need not wait for the interdigit timeout to expire.

Before such calls enter the PSTN, the dialed # must be stripped. This setting is enabled by default. When set to True, CallManager strips the final # (if it exists) of a dialed digit string before CallManager routes the call out the gateway.

Unknown Caller ID, UnknownCallerIDFlag, and UnknownCallerIDText

Unknown Caller ID, Unknown Caller ID Flag, and Unknown Caller ID Text affect calls that originate from a gateway. When calls arrive from the PSTN, often caller ID is not available. Setting the Unknown Caller ID Flag to True tells CallManager to provide a calling number and name for inbound calls that do not contain such information. The contents of Unknown Caller ID Text become the calling name, and the contents of Unknown Caller ID become the calling number.

Numbering Plan Info

Calls to ISDN and H.323 networks include information that attempts to classify the number dialed. The section “Called Party IE Number Type” discusses this information in more detail. This information, however, tends to be rather troublesome in practice, because many networks are particular about the manner in which the information is encoded. The Numbering Plan Info service parameter provides a way to tweak this information if your system is having difficulty communicating with a connected system. The Numbering Plan Info service parameter takes the following values:

  • 0 disables the setting, which causes CallManager to format the numbering plan information according to the call routing component’s best judgment and the settings on the terminating device.

  • 1 causes CallManager to encode the numbering plan field of the called party information element to Unknown, if the type of number field of the called party information element, as determined by CallManager, is also Unknown.

  • 2 causes CallManager to encode the numbering plan field of the called party information element as Private, and the type of number field of the called party information element as Unknown.

If the system you have connected CallManager to is complaining about the encoding of the called number—a fact you can determine only through detailed analysis of the call rejection messages the connected system returns—changing this setting might resolve the problem.

Transformations on the Originating Device

This section describes the first opportunity CallManager has to transform the calling or called numbers—when the component that controls the caller’s device offers the call to the call control component. These dialing transformations vary from device type to device type. The section “About Device Types That CallManager Supports” describes the device types that CallManager supports.

Table 2-40 provides an overview of the different kinds of originating device dialing transformations, along with a checklist of which protocols support which transformations.

Table 2-40. Supported Originating Device Dialing Transformation by Device Type

Originating Device Dialing Transformation

SCCP Station Devices

MGCP Station Devices

H.323 Station Devices

SCCP Trunk Devices

MGCP Trunk Devices

H.323 and SIP Trunk Devices

External Phone Number Mask

Supported Originating Device Dialing Transformation by Device Type

Supported Originating Device Dialing Transformation by Device Type

Supported Originating Device Dialing Transformation by Device Type

   

Prefix Digits

 

Supported Originating Device Dialing Transformation by Device Type[1]

  

Supported Originating Device Dialing Transformation by Device Type[2]

Supported Originating Device Dialing Transformation by Device Type[1]

Num Digits

 

Supported Originating Device Dialing Transformation by Device Type

  

Supported Originating Device Dialing Transformation by Device Type[5]

Supported Originating Device Dialing Transformation by Device Type[5]

Expected Digits

 

Supported Originating Device Dialing Transformation by Device Type

  

Supported Originating Device Dialing Transformation by Device Type[5]

Supported Originating Device Dialing Transformation by Device Type[5]

Attendant DN

    

Supported Originating Device Dialing Transformation by Device Type[4]

 

Significant Digits

    

Supported Originating Device Dialing Transformation by Device Type[3]

Supported Originating Device Dialing Transformation by Device Type

Redirecting Number IE Delivery—Inbound

    

Supported Originating Device Dialing Transformation by Device Type[3]

Supported Originating Device Dialing Transformation by Device Type

[1] Called Prefix DN

[2] On T1-PRI and E1-PRI interfaces, it is called Prefix DN; on T1-CAS, Prefix Digits; not supported on other interfaces

[5] On T1-CAS only

[4] On FXO interfaces only

[3] On T1-PRI and E1-PRI interfaces only

External Phone Number Mask

All station devices use the Directory Number Configuration page. This page contains a field that is important in transformations, the External Phone Number Mask. Although the external phone number mask does not, in itself, effect any transformations, it allows you to configure a line’s number from the PSTN’s point of view—the line’s external number. When you configure a value in this field, the value also shows up in the top line of the Cisco IP Phones 7905, 7912, 7940, 7941, 7960, 7961, 7970, and 7971 as the phone’s external phone number.

For station-to-station calls, the calling line’s directory number shows up as the calling number. However, for station-to-trunk calls, you can configure the destination route pattern so that it instead uses the line’s external number as the calling number.

The external phone number mask is truly a mask (see the section “About Masks”). If you are fortunate enough to be able to map the final digits of a phone’s external number directly to its internal extension, and if you are using auto-registration, you can use a mask value in this field instead of an individual number, and it saves you some data entry. (For information about auto-registration, see Chapter 3.)

For example, assume your system uses four-digit directory numbers. Furthermore, your site does not require overlapping dial plans (as might be required for multiple tenants) and it is small enough that it is served by a single area code and office code (say, 214 and 555, respectively). When you specify the mask 214555XXXX under the Auto-registration Information section on the Cisco CallManager Configuration page, when a new device registers, CallManager automatically assigns it the external phone number mask 214555XXXX. When it receives its directory number (say, 1212), this configuration tells CallManager that the newly registered line’s external phone number is 2145551212. If you also check the Use External Phone Number Mask check box for the route pattern that routes calls to the PSTN, CallManager presents your users’ full external numbers to the PSTN when they place calls.

The external phone number mask also provides you with a means by which you can hide the external phone number of your users when they place external phone calls. If you set a phone’s external phone number mask to your switchboard number and then check the Use External Phone Number Mask check box on the route pattern you use for routing external calls, CallManager presents the switchboard number as the calling phone’s calling number.

Prefix Digits

These fields crop up under slightly different names in many of the devices. You can usually find these fields by clicking specific ports in the gateway configuration page.

Prefix Digits can contain a sequence of digits (*, #, 0 through 9). CallManager Administration also calls this field Prefix DN. Prefix Digits can contain a sequence of digits (*, #, 0 through 9). When a gateway configured with prefix digits receives a call from an associated gateway, CallManager modifies the dialed digits by prepending the digits you specify to the dialed number. For example, if a gateway provides the dialed digits 1000 and you specify prefix digits of 3, CallManager modifies the dialed digits to 31000.

Some subtleties exist about how prefix digits operate with different types of gateways. When CallManager connects to a gateway using a digital telephony protocol such as H.323 or ISDN, inbound calls from these gateways usually provide all the digits the calling user dialed in the call setup attempt. This type of dialing is called enbloc dialing.

When CallManager connects to a gateway using an analog protocol or by a digital protocol such as MGCP, particularly when a POTS phone is connected to the gateway, the digits the user dials arrive from the gateway one by one. This type of digit collection is called overlapped dialing. When you configure prefix digits in conjunction with a gateway controlling a POTS station, CallManager immediately attempts to route the call based on the configured prefix digits. In the usual case, the prefix digits you specify are not sufficient for CallManager to select a destination, and CallManager waits for more digits from the calling user.

However, you can implement a hotline or Private Line Automatic Ringdown (PLAR) function with POTS phones by relying on CallManager’s treatment of Prefix Digits. PLAR is a feature whereby CallManager can ring a specified extension the moment that a user places a call from a particular station.

PLAR works when the Prefix Digits you specify are sufficient to permit CallManager to immediately select a destination. In this case, CallManager immediately offers the call to the specified destination. For instance, if your enterprise has a security desk with number 61111, by configuring prefix digits of 61111 for an analog gateway with an attached analog phone, you cause CallManager to immediately ring the security desk when a user picks up the POTS phone.

Tip

The section “Hotline Functionality” describes a different way that you can configure PLAR, one that works with all devices but which requires a slightly more complicated configuration.

Expected Digits and Num Digits

The gateway settings Expected Digits and Num Digits work in tandem. Expected Digits tells CallManager how many digits you expect the calling user to be dialing. Num Digits tells CallManager how many of those digits are significant to selecting a destination.

Num Digits is the easier of these settings to explain. Its heritage is the trunk interfaces, where you can often predict which digits a connected network sends. On a trunk interface, these settings tell CallManager to expect to receive n digits, the last m of which are significant for routing purposes. For instance, the central office might provide seven digits as the called number, but because the first three digits are always the office code, you just want to use the last four digits to route the call. Configuring 7 for Expected Digits and 4 for Num Digits causes CallManager to ignore the first three digits sent by the central office. If your dial plan is reasonably simple, as is often the case if your enterprise is smaller than 1000 users, using Num Digits provides you a simple way to maintain a four- or five-digit dial plan for your internal phones. (If your enterprise needs to support a large number of users whose external numbers are connected to a large number of telephone exchanges, Num Digits is often not powerful enough to handle the routing of your inbound calls. The section “Extension Mapping from the Public to the Private Network” describes how you can use translation patterns to route your inbound calls.)

Although the Num Digits setting tells CallManager how many digits you want to keep, the Expected Digits setting tells CallManager how many digits the PSTN is going to send. When the gateway to which CallManager is connected uses enbloc dialing, the Expected Digits setting is superfluous; because the call setup attempt contains all of the digits the calling user dialed, CallManager can immediately use the Num Digits setting to extract the digits that you want to route with. Expected Digits is a setting applicable to gateways connected to CallManager by protocols that use overlapped dialing. In such instances, CallManager needs to know how many digits to collect before using the Num Digits setting to extract the digits you want to route with.

When you configure these settings for a station device, they behave identically to this setting on a trunk device. CallManager ignores the first few digits that the user dials and uses subsequent digits to route the call.

Attendant DN

Analog trunks are just like the analog phone lines that run into most people’s houses. On an analog phone line, when a user goes off-hook, the phone closes the circuit from the central office to permit current to flow, and the central office prepares to place a call. In the case of tone dialing, the central office connects your line to a tone detector, which listens to the stream of tones that emanate as you dial your phone and converts them to dialed digits.

When you configure an analog gateway as an FXO analog port, CallManager plays the part of the central office. As a result, when CallManager detects that the trunk has been taken off-hook, it must dial a preconfigured number. This number is the Attendant DN. Attendant DN is a setting that is much like Prefix Digits, which is described in the section “Prefix Digits”; when a call comes in over the gateway, CallManager automatically provides the specified digits to the call routing component. If you do not provide such a number, Cisco IOS gateways play a dial tone for the caller so that the user can provide digits.

Significant Digits

Digital trunk devices support variants of the ISDN signaling protocol. ISDN differs from analog protocols in that ISDN endpoints interpret the voltage levels on the trunk as either on or off values. This interpretation allows CallManager to assign meanings to particular patterns of on and off values and receive information, such as the calling and called party, directly in the call attempt. Unlike the analog gateways, which must dial a preconfigured number, digital gateways receive called party information directly in the call setup message. CallManager can transform this information by using settings on the Gateway Configuration page for circuit-switched gateways and the Trunk Configuration page for IP trunk interfaces.

PRIs have no setting that corresponds to the Expected Digits settings because the call setup request usually encodes all the digits of the called number.

For PRI interfaces, the Num Digits setting (see the section “Expected Digits and Num Digits” earlier in the chapter) is actually configured using the Significant Digits field. The Significant Digits field presents you with options to select any number from 0 to 32 as well as the setting All. If you select All, CallManager processes all digits of the called number. However, if you specify any other setting, the number in the Significant Digits setting indicates how many of the final digits of the dialed number that CallManager should use to route the call. For example, if the Significant Digits is set to 4, when CallManager receives a call for 9725551212, CallManager truncates all but the last four digits and routes using the digits 1212.

When used in conjunction with overlapped receiving (see the section “SendingCompleteIndicator and OverlapReceivingForPriFlag”), the Significant Digits field might not operate as you expect. The Significant Digits setting operates only on the first batch of digits the calling gateway provides to CallManager. In overlapped receiving, the gateway does not provide all of the digits at once. In fact, the first message that the gateway sends to CallManager often contains no digits at all. As a result, CallManager probably will not suppress any of the digits coming in from the gateway.

For example, assume you have set Significant Digits to 4 and the gateway provides the digits 9725551212 one digit at a time. The first digit (9) arrives and CallManager applies the Significant Digits setting to it. Because the Significant Digits setting specifies to keep four of the initial digits, CallManager keeps the first digit. Then CallManager passes through all of the subsequent digits without complaint. Had all of the digits arrived in the call setup, CallManager would have truncated 9725551212 to 1212. When using overlapped receiving, unless you know that the initial setup that the gateway sends to CallManager contains more digits than the Significant Digits setting, do not use the Significant Digits setting.

Transformations in Translation Patterns, Route Patterns, and Route Lists

This section describes the second through fourth opportunities during which CallManager can apply transformations as part of the routing process. The second opportunity occurs if the dialed digits match a translation pattern, the third occurs when a route pattern is ultimately selected, and the fourth occurs if the selected destination is a route list.

The section “Translation Patterns” describes translation patterns, and the section “Call Hunting Constructs” describes route lists. However, it is worth noting here that the transformations associated with a route list override those that the route pattern applies. That is, although other dialing transformations you apply have a cumulative effect, the transformations you specify on a route between a route list and a route group undo any transformations that the Route Pattern Configuration page applies. This capability allows you to define default dialing transformations on the route pattern, which you selectively override if a call goes out a particular set of gateways. For instance, in North America, long distance carriers expect to receive ten digits for calls to the PSTN. However, local carriers expect the digit 1 to precede long distance calls. Typically, to save costs, enterprises prefer their long distance calls to route directly to a long distance carrier. However, if all gateways to the long distance carrier are busy, by using a route list, you can route the call to a gateway connected to a local carrier as an alternate choice. In such a case, you could define dialing transformations on the route pattern to throw away the access code and long distance 1 that the user dials so that calls to the long distance carrier consist only of 10 digits. If the route list determines that all gateways to the long distance carrier are busy, however, by setting different dialing transformations on the route group containing gateways to the local carrier, you can cause CallManager to discard only the access code and keep the initial 1 on the long distance call.

To prevent a particular route group from overriding the transformations you associate with a route pattern, leave the transformation mask fields of the route group empty and be sure to select <None> rather than NoDigits for digit discarding instructions.

Called Party Transformations

Three types of called party transformations can be configured in the call routing component and on route lists. They are as follows:

  • Digit discarding instructions, which you use primarily with the @ wildcard and allow you to discard meaningful subsections of numbers in the national network. They are critical for implementing toll-bypass solutions, where the long distance number that the calling user has dialed must be converted into a local number from which CallManager passes the digits to the PSTN.

  • Called party transformation mask, which allows you to suppress leading digits, change existing digits while leaving others unmodified, and insert leading digits.

  • Prefix digits, which allow you to prepend one or more digits to the called number.

CallManager applies the transformations in the order listed.

Digit Discarding Instructions

Digit discarding instructions allow you perform conversions of a dialed number specific to a national numbering plan. For the North American numbering plan, you can strip access codes, suppress long distance carrier selection, convert numbers to achieve toll-bypass operations, and strip trailing # from international number sequences. Because digit discarding instructions are dial-plan specific, this section describes only those digit discarding instructions that apply to the North American numbering plan.

In general, digit discarding instructions apply only to route patterns that contain the @ wildcard. However, you can use the digit discarding instruction PreDot with route patterns that use the . wildcard even if they do not contain the @ wildcard.

Digit discarding instructions consist of one or more of the following identifiers grouped into three sections. The access code section lets you remove initial digits from a dialed string. The toll- bypass section allows you to turn dial strings that represent long distance calls into dial strings that represent local calls. Finally, the trailing-# instruction lets you strip a dialed end-of-dialing terminator from international calls to prevent it from going to an adjacent network (which might have trouble processing it).

Digit discarding instruction identifiers are additive, so the digit discarding instruction PreDot 10- 10-Dialing combines the effects of each individual identifier. If you do not want to discard any digits, select NoDigits.

Table 2-41 describes the groups and identifiers and provides sample dialed digit strings. Substrings in bold denote which digits CallManager discards.

Table 2-41. Digit Discarding Instructions Groups and Identifiers

Instructions

Discarded Digits (for Route Pattern 9.8@)

Used For

Access Code

  

PreDot

98 1 214 555 1212

Stripping access codes

PreAt

98 1 214 555 1212

Stripping access codes

Toll Bypass

  

11/10D->7D

98 1010321 1 214 555 1212

Toll bypass to a seven-digit dialing region

11D->10D

98 1010321 1 214 555 1212

Toll bypass to a 10-digit dialing region

IntlAccess IntlDirect Dial

98 011 33 0123456789 #

Removal of international access codes for routing by globally significant number

IntlTollBypass

98 011 33 0123456789#

Toll bypass from country to country

10-10-Dialing

98 1010321 1 214 555 1212

Long distance carrier code suppression

Trailing-#

  

Trailing-#

98 011 33 0123456789 #

Suppression of end-of-dialing character

Called Party Transformation Mask

Values in this field can truncate or expand the dialed digit string and change individual digits before CallManager sends the digits to a connected network or device. The section “About Masks” discusses mask operation.

Prefix Digits

This field can contain *, #, or digits 0 through 9. CallManager prepends this field to the called number before it is sent to the next stage of the routing process.

Calling Party Transformations

Three types of calling party transformations can be configured in the call routing component and on route lists:

  • Use External Phone Number Mask check box, which instructs the call routing component to use a calling station’s external phone number rather than its directory number as the calling number

  • Calling party transformation mask, which allows you to suppress leading digits, change existing digits, leave other digits unmodified, and insert leading digits

  • Prefix digits, which allow you to prepend the specified digits to the calling number

CallManager applies the transformations in the order listed.

Use External Phone Number Mask Check Box

Setting this flag sets the calling number to the external phone number mask configured on the calling line, rather than the directory number of a calling line. See the section “About Masks” for details about the ways that masks work and the section “External Phone Number Mask” for more details about the external phone number mask.

If no external phone number mask is configured on the calling line, or if the call originates from a device that does not have an external phone number mask setting, the call routing component uses the directory number (in the case of calling user devices) or the provided calling number (in the case of calling trunk devices) instead.

Calling Party Transformation Mask

Values in this field can truncate or expand the calling number and change individual digits before CallManager sends the calling number to a connected switch or device. The section “About Masks” discusses mask operation.

The section “External Phone Number Mask” describes one method by which you can cause PSTN users to see your company switchboard’s number as the calling number, rather than the direct number of your users when they place calls to the PSTN. Calling party transformation masks provide another method. By specifying your switchboard’s number as a calling party transformation mask in the Route Pattern Configuration page, you cause CallManager to replace the calling user’s calling number with that of the company switchboard. Alternatively, providing a mask value such as 972813XXXX can permit you to present a fully qualified national number (such as 9728131000) to the PSTN when a directory number (such as 1000) places a call.

Prefix Digits

This field can contain *, #, or digits 0 through 9. CallManager prepends this field to the calling number before sending it to the next stage of the routing process. Prepending digits can permit you to fully qualify the calling numbers CallManager presents to the PSTN or add access codes to calls you present to connected PBXs.

Transformations on the Terminating Device

Trunk devices have settings that relate to the calling and called numbers. The settings described in this section correspond to the fifth and final place in CallManager where transformations can occur in the call routing process. Table 2-42 describes the dialing transformations and provides a checklist of which settings affect which gateways.

Table 2-42. Supported Terminating Device Dialing Transformations by Device Type

Terminating Device Dialing Transformation

SCCP Station Devices

MGCP Station Devices

H.323 Station Devices

SCCP Trunk Devices

MGCP Trunk Devices

H.323 Trunk Devices

Caller ID DN

    

Supported Terminating Device Dialing Transformations by Device Type[1]

Supported Terminating Device Dialing Transformations by Device Type

Calling Party Selection

    

Supported Terminating Device Dialing Transformations by Device Type[1]

Supported Terminating Device Dialing Transformations by Device Type

Calling Line ID Presentation

    

Supported Terminating Device Dialing Transformations by Device Type[1]

Supported Terminating Device Dialing Transformations by Device Type

Called Party IE Number Type

    

Supported Terminating Device Dialing Transformations by Device Type[1]

Supported Terminating Device Dialing Transformations by Device Type

Calling Party IE Number Type

    

Supported Terminating Device Dialing Transformations by Device Type[1]

Supported Terminating Device Dialing Transformations by Device Type

Called Numbering Plan

    

Supported Terminating Device Dialing Transformations by Device Type[1]

Supported Terminating Device Dialing Transformations by Device Type

Calling Numbering Plan

    

Supported Terminating Device Dialing Transformations by Device Type[1]

Supported Terminating Device Dialing Transformations by Device Type

Number of Digits to Strip

    

Supported Terminating Device Dialing Transformations by Device Type[1]

 

Display IE Delivery

    

Supported Terminating Device Dialing Transformations by Device Type[1]

Supported Terminating Device Dialing Transformations by Device Type

Redirecting Number IE Delivery –Outbound

    

Supported Terminating Device Dialing Transformations by Device Type[1]

Supported Terminating Device Dialing Transformations by Device Type

Send Calling Name in Facility IE

    

Supported Terminating Device Dialing Transformations by Device Type[2]

 

Connected Line ID Presentation

    

Supported Terminating Device Dialing Transformations by Device Type[1]

 

[1] T1-PRI and E1-PRI interfaces only

[2] T1-PRI interfaces only

Caller ID DN

Caller ID DN provides a mechanism to set the calling number of calls that CallManager extends to a gateway. It is a mask value (see the section “About Masks”). Values set in this field operate on the calling number that previous transformation steps generate.

Calling Party Selection

Calling Party Selection has one of three values:

  • Originator

  • First Redirect Number

  • Last Redirect Number

This setting determines what number is presented as the calling number when call forwarding occurs.

If no forwarding at all has occurred, all three values contain the calling number of the originator. If CallManager has forwarded the call once, both the first redirect number and last redirect number are the calling number of the forwarding phone, while the originator is the calling number of the originator. If CallManager has forwarded the call twice, the originator is the calling number of the calling user, the first redirect number is the calling number of the first forwarding phone, and the last redirect number is the calling number of the last forwarding phone. If the call forwards more than once, the last redirect number reflects the calling number of the last device to forward the call.

Why would you set this field? If the system that the gateway is connected to is in charge of maintaining the billing records for calls from CallManager, you might want to bill not the actual originator of a call, but the party that caused the call to forward out the gateway. If the adjacent system uses the calling number to determine who to bill, this setting effectively allows you to control the billing.

Calling Line ID Presentation

This setting has values of None, Allowed, and Restricted. If set to None or Allowed (either value has the same effect), this setting indicates to the attached network that the called party is allowed to see the calling number. If this field is set to Restricted, the called party is prohibited from seeing the calling number.

Called Party IE Number Type

This setting has values of Cisco CallManager, Unknown, National, International, and Subscriber. The setting dictates how CallManager represents the called number to the network to which the gateway provides access.

Calls to ISDN networks include not only the dialed digits but also an indication of what the calling system believes the numbers represent. The Type of number field indicates to the system that receives the call whether the digits provided represent a national number, an international number, or whether the calling system even knows what the nature of the dialed number is. Although this setting was a nice idea on the part of the architects of ISDN, in practice, it (and its brethren, Calling Party IE Number Type, Called Party Numbering Plan, and Calling Party Numbering Plan) usually just causes problems. For example, one setting that the ISDN messages permit is Private, which represents to the called system that the calling system believes the provided digits are a number on a privately owned network. PSTN systems may decide that they do not want to route calls tagged with the type of number Private, even if the actual digits contained in the call setup represent an actual PSTN number. Conversely, if the PSTN is providing you with a Centrex service (in which the PSTN operates as a PBX so that you can network remote offices), the PSTN might require the type of number be encoded as Private for an interoffice call, even if the provided digits are sufficient to allow the PSTN to route the call to a remote office. In summary, even if the digits you provide are correct, the system to which you offer the call might reject the call if the Type of number field is not what it expects. Therefore, CallManager provides settings to permit you to control the Type of number and Numbering plan fields in case the network to which you connect your gateway is particular about the encoding of these fields.

By default, this value is set to Cisco CallManager, which means CallManager fills in this number as best it can. This setting usually works fine. If the pattern the calling user dials matches an @ pattern, CallManager fills in the number as national or international based on the numbering plan (see the section “The North American Numbering Plan”). For non-@ patterns, CallManager punts and encodes the number as Unknown.

If an attached network has problems with the number type that CallManager encodes, changing this setting may resolve the problem. Particularly if you live in a country that does not use the North American numbering plan and you have configured specific route patterns to route calls out gateways, you might find that the PSTN balks at CallManager’s encoding of the number type as Unknown. Changing this setting to National can resolve the problem.

Calling Party IE Number Type

This setting has values of Cisco CallManager, Unknown, National, International, and Subscriber. The setting dictates how CallManager represents the calling number to the network to which the gateway provides access.

By default, CallManager encodes the number as Unknown, and this setting works in most cases. If an attached network has problems with the number type that CallManager encodes, changing this setting may resolve the problem.

Called Numbering Plan

ISDN networks expect telephone systems to provide not only the number type of a called number, but also the numbering plan it believes the number applies. This setting has values of Cisco CallManager, ISDN, National Standard, Private, and Unknown.

By default, CallManager encodes the number as ISDN. If an attached network has problems with the default numbering plan that CallManager encodes, changing this setting can resolve the problem.

Calling Numbering Plan

This setting has values of Cisco CallManager, ISDN, National Standard, Private, and Unknown.

By default, CallManager encodes the number as ISDN. If an attached network has problems with the default numbering plan that CallManager encodes, changing this setting can resolve the problem.

Number of Digits to Strip

Setting this value instructs CallManager to strip the specified number of digits from the beginning of all called numbers before passing the call to an adjacent network. If you administer a network in a country with a variable-length dialing plan, you might find this setting useful, because the discarding mechanisms that digit discarding instructions (see the section “Digit Discarding Instructions”) provide are not available, and because called party transform masks enable you only to truncate a number to a fixed number of final digits.

Display IE Delivery

This setting controls the delivery of the display information element (IE). The display information element permits a telephone system to ask another system to display the contained information. Many telephone systems use it to communicate the display name of the calling user. When you enable this option for a particular gateway, CallManager places the contents of the Display field (on the Directory Number Configuration page) into the display information element before CallManager extends a call to the attached gateway.

Redirecting Number IE Delivery

This setting controls the delivery of the redirecting number information element. Suppose that a phone on a telephone system calls another phone on the same telephone system, and the call forwards to different telephone system that manages the voice messaging system for the enterprise. The new telephone system needs to know what directory number the caller originally dialed so that the voice messaging system can deliver the caller’s voice message to the correct voice messaging box number. The redirecting number information element permits one telephone system to communicate this information to another. Enabling this flag permits CallManager to communicate the original dialed number to the connected network.

Translation Patterns

Translation patterns are a mechanism that allows you to introduce a level of routing indirection into the call routing process. They allow you to define aliases for the endpoints in your network.

Why do you need to define such aliases? This section discusses a few reasons:

  • Security desk and operator functionality

  • Hotline functionality

  • Extension mapping from the public to your private network

  • Insertion of access codes in the Received Calls and Missed Calls menus of Cisco IP Phones

  • Multiple-tenant applications

You configure translation patterns almost exactly like route patterns. They have the same calling and called party transformations, and they use the same wildcard notation.

Unlike route patterns, translation patterns do not correspond to a physical or logical destination. Instead, a translation pattern relies on the calling and called party transformations to perform its function. Although route patterns use transformations simply a way to change the presentation of the calling or called parties, translation patterns use the results of called party transformations as a set of digits for a new analysis attempt. CallManager then uses the results of the second analysis attempt to determine which destination to ring.

The second analysis attempt might itself match a translation pattern. In this case, CallManager applies the calling and called party transformations of the matching translation pattern and uses the results as the input for another analysis attempt. To prevent routing loops, CallManager breaks chains of translation patterns after ten iterations.

An example might help to explain. Imagine that you have the translation patterns and route patterns listed in Table 2-43.

Table 2-43. Translation Pattern Example

Configured Translation and Route Patterns

Translation Pattern: 1XXX

Called Party Transformation Mask: 2XXX

Translation Pattern: 2XXX

Prefix Digits: 8

Route pattern: 8.XXXX

Gateway: Gateway A

When a user dials the number 1000, this configuration causes CallManager to offer the user’s call to Gateway A with a called number of 82000. This process consists of the following steps:

  1. The dialed digits 1000 match the translation pattern 1XXX. CallManager applies the called party transformation mask 2XXX to the dialed digits 1000, yielding 2000.

  2. CallManager uses the resulting number, 2000, as the input for another analysis attempt. This attempt matches the translation pattern 2XXX. CallManager applies the prefix digit 8 to the digits 2000, yielding 82000.

  3. CallManager uses the resulting number, 82000, as the input for another analysis attempt. This attempt matches the route pattern 8.XXXX. CallManager offers the call to Gateway A, the gateway associated with the route pattern.

One configuration field that appears for translation patterns, but which does not appear for route patterns, is calling search space. When the new analysis is attempted, the analysis is attempted using the calling search space configured for the translation pattern, rather than the calling search space of the originating device. This behavior can allow a user to call a number in a partition that the user’s calling search space would not normally permit the user to dial. The section “Calling Search Spaces and Partitions” describes calling search spaces and partitions.

Translation patterns, therefore, differ from route patterns; when route patterns match, CallManager always extends the call to the destination associated with the route pattern. The dialing transformations that CallManager applies have a purely cosmetic effect in that they change the calling number and called number, but do not cause CallManager to select a different destination. (However, if the destination to which CallManager offers the call is a gateway or other CallManager cluster, the gateway or CallManager cluster can use the transformed called number to decide where to route the call.)

On the other hand, translation patterns have no associated destination. The called party number transformations that CallManager applies do directly affect which destination CallManager selects, because CallManager uses the results of the transformation to select a new destination. The new analysis attempt might match a route pattern or directory number, or the attempt may match another translation pattern, in which case CallManager attempts another analysis. Figure 2-10 presents a flowchart of this process.

Translation Pattern Flowchart

Figure 2-10. Translation Pattern Flowchart

The rest of this section describes different translation pattern configurations:

  • Security Desk and Operator Functionality” discusses a mechanism by which you can associate an easily remembered directory number with an emergency service, while maintaining a fixed-length directory number plan.

  • Hotline Functionality” discusses a mechanism by which you can automatically ring a particular extension when a phone goes off-hook.

  • Extension Mapping from the Public to the Private Network” describes how you can map the discontinuous number ranges that the telephone company might assign you to a contiguous range for internal extensions.

  • Insertion of Access Codes in the Received Calls and Missed Calls Menus of Cisco IP Phones” describes how you can use translation patterns to insert outside access codes for calls that your users receive. Inserting the access codes allows your users to use the Dial softkey on the Received Calls and Missed Calls menus of their IP Phones. Normally, users must use the EditDial softkey to modify the number of a received or missed call in order to return a received or missed call.

  • Multiple-Tenant Applications” discusses a few strategies that use translation patterns to deal with the problems that arise when different organizations with independent dial plans share a single CallManager.

Security Desk and Operator Functionality

The operator or security desk is often just a phone in your network with a standard four- or five- digit extension. However, for the desk to be useful with the least amount of hassle for your users, it is desirable to be able to assign these special extensions a directory number that is out of the ordinary (such as 0) and thus easier for your users to remember in an emergency.

One way to accomplish this task is, of course, to assign unusual directory numbers directly to these stations. However, having unusual directory numbers in a particular number block makes configuration of inbound routing more complex. Inbound calls often route based on the last four or five digits of an externally published number. If you want these special stations to receive inbound calls for other networks, you have to configure special routing to convert very specific extension numbers to your unusual numbers.

Translation patterns allow you to give numbers that are compatible with the rest of your numbering plan to these special stations, but to assign them aliases in the cluster. This allows your users to have easy-to-remember emergency numbers without the pain of configuring all ingresses to the cluster with special routing instructions.

To configure a dialing alias, specify the alias as a translation pattern and make sure that calling users include the partition that contains the translation pattern in their calling search spaces. In the called party transformation mask, enter the extension that you want to be called. In the translation calling search space, enter a calling search space that contains the partition associated with the destination extension. Figure 2-11 shows a security desk example.

Security Desk Example

Figure 2-11. Security Desk Example

The example relies on the provision of the translation and route patterns in Table 2-44.

Table 2-44. Security Desk Example Patterns

Configured Route and Translation Patterns

Comments

Partition: CompanyABC

Translation pattern: 0

Translation calling search space: CompanyABC

Called party transformation mask: 5123

Translation calling search space CompanyABC contains partition CompanyABC.

Partition: CompanyABC

Route pattern: 5123

5123 is a phone with directory number 5123. CallManager considers directory numbers as route patterns, and these can be the destination that a translation pattern selects.

When the calling user dials 0, CallManager performs the following steps:

  1. The dialed digit 0 matches the translation pattern 0. CallManager applies the called party transformation mask 5123 to convert the called number to 5123.

  2. CallManager uses the resulting number, 5123, as the input for another analysis attempt. This attempt matches the security phone’s directory number. CallManager offers the call to the security phone with dialed digits of 5123.

Hotline Functionality

A hotline or private line automatic ringdown (PLAR) configuration causes a specified destination to ring immediately when the hotline extension goes off-hook. It is simply a special case of an operator configuration.

In an operator configuration, translation patterns cause the operator extension to ring when a single digit is dialed. In a hotline configuration, the specified destination rings before a user dials any digits. By specifying a translation pattern containing no digits, you can cause the transformation and reanalysis to occur immediately after the user takes the phone off-hook.

The only wrinkle is that of interdigit timing. Translation patterns always have urgent priority, which means that as soon as the user enters a digit sequence for which a translation pattern is the best match, the call routing component applies the translation immediately, even if subsequent digits would cause a different route pattern to match. This behavior means that if you configure a hotline translation pattern and group it in the same route partition as all of your other route patterns and directory numbers, whenever any device goes off-hook for any reason, the hotline extension rings. Users never have the opportunity to dial any digits.

To prevent this behavior from occurring, you must put the hotline translation pattern in its own partition and configure the hotline extension’s calling search space so that it looks in the hotline partition to resolve its analysis requests. The section “Calling Search Spaces and Partitions” discusses calling search spaces and partitions. Figure 2-12 shows an example of hotline configuration.

Hotline Configuration

Figure 2-12. Hotline Configuration

The example relies on the provision of the translation and route patterns in Table 2-45.

Table 2-45. Hotline Configuration Example Route Patterns

Configured Route and Translation Patterns

Comments

Partition: Hotline

Translation pattern: <Empty>

Translation calling search space: CompanyABC

Called party transformation mask: 5123

Translation calling search space CompanyABC contains partition CompanyABC.

Partition: CompanyABC

Route pattern: 5123

5123 is a phone with directory number 5123. CallManager considers directory numbers as route patterns, and these can be the destination that a translation pattern selects.

When the calling user whose calling search space includes the Hotline partition goes off-hook, CallManager performs the following steps:

  1. When the user goes off-hook, this provides CallManager with an empty set of dialed digits, which match the translation pattern <Empty> in the Hotline partition. CallManager applies the called party transformation mask 5123 to convert the called number to 5123.

  2. CallManager uses the resulting number, 5123, as the input for another analysis attempt. The calling search space that CallManager uses for the analysis attempt is the calling search space of the translation pattern, Company ABC. This attempt matches the hotline’s directory number. CallManager offers the call to the hotline phone with dialed digits of 5123.

Extension Mapping from the Public to the Private Network

If your campus grows past 1000 users, you might need to use translation patterns to preserve your internal extension numbering scheme. Local phone carriers often sell numbers in blocks of 1000. For example, if a single exchange serves your campus, the phone company might lease you the block of 1000 numbers from 813 5000 to 813 5999.

So long as you do not exceed 1000 users, it is possible to use gateway settings to map the block of 1000 users that the phone company assigns you to your internal numbering scheme. For example, if you prefer your users to be in the numbering range 8000 to 8999, when the PSTN provides 813 5XXX as the called number, you can use dialing transformations on the Gateway Configuration page to strip all but the final three digits and prepend an 8 (see the section “Transformations on the Originating Device”).

However, if your network grows past 1000 users, there is no guarantee that the next block of 1000 numbers that the phone company assigns you will be contiguous with your previous range. In fact, even if the same central office serves you, the phone company might assign you a different exchange number. At this point, performing a transformation in the gateway does not work.

For instance, suppose that the phone company has given you two ranges, 555 5XXX and 555 9XXX. You can no longer just keep the last three digits and prepend 8 in the Gateway Configuration page, because a call to 555 5000 and a call to 555 9000 both get transformed to the directory number 8000.

However, if you choose to keep the final four instead of the final three digits, the discontinuity of the numbering range affects your internal numbering plan. A call to 555 5000 is transformed to 5000, while a call to 828 9000 is transformed to 9000. Setting aside for a moment that your existing users (who were in the range 8000 to 8999) can no longer receive calls until you renumber them to the 5000 range, the split numbering range at the central office is now visible to your internal network. If you have previously set up an initial steering digit of 5 for features such as call park or for intercluster calls, the split numbering range might force you to reorganize your numbering plan, probably to the frustration of your users.

On the other hand, anticipating that your campus might grow to beyond 1000 users, if you keep the 7000 to 7999 range open (or better yet, assign users five-digit directory numbers), by using translation patterns, you can map inbound calls in the 555 5XXX range to the internal 8XXX range while directing inbound calls in the 555 9XXX range to the internal 7XXX range.

To configure this setup, perform no transformations at the inbound gateway. Instead, set up two translation patterns in a partition visible only to your inbound gateways (see the section “Calling Search Spaces and Partitions”). Set one translation pattern to 555 5XXX with a called party transformation mask of 8XXX, and set the other translation pattern to 555 9XXX with a called party transformation mask of 7XXX.

When an inbound call arrives in the 555 5XXX range, the corresponding translation pattern matches, and CallManager transforms the called number to 8XXX. Then, because translation patterns cause reanalysis to occur, CallManager uses the transformed digits to select the actual destination to ring. Figure 2-13 shows the behavior that occurs when a call comes in for 555XXXX.

Transforming Inbound Calls to Deal with a Discontinuous Numbering Range

Figure 2-13. Transforming Inbound Calls to Deal with a Discontinuous Numbering Range

The example relies on the provision of the translation and route patterns in Table 2-46.

Table 2-46. Patterns for Transforming Inbound Calls to Deal with a Discontinuous Numbering Range

Configured Route and Translation Patterns

Comments

Partition: InboundTranslations

Translation pattern: 5555XXX

Translation calling search space: CompanyABC

Called party transformation mask: 8XXX

Translation calling search space CompanyABC contains partition CompanyABC.

Partition: CompanyABC

Route pattern: 8123

8123 is a phone with directory number 8123. CallManager considers directory numbers as route patterns, and these can be the destination that a translation pattern selects.

When the PSTN sends a call through the gateway to 5558123, CallManager performs the following steps:

  1. The gateway provides CallManager with the digits 5558123, which matches the translation pattern 8135XXX in the InboundTranslations partition. CallManager applies the called party transformation mask 8XXX to convert the called number to 8123.

  2. CallManager uses the resulting number, 8123, as the input for another analysis attempt. The calling search space that CallManager uses for the analysis attempt is the calling search space of the translation pattern, Company ABC. This attempt matches the phone with directory number 8123. CallManager offers the call to the phone with dialed digits of 8123.

The preceding translation patterns suffice for a company of up to 1000 users. If your network grows past 1000 users and the phone company gives you numbers in the 828 9XXX range, by adding the following translation patterns, you can map the 9XXX range (which probably overlaps with your outside access code) to 7XXX. Table 2-47 shows the translation pattern that maps the new range.

Table 2-47. Translation Pattern for Transforming Inbound Calls to Deal with a Discontinuous Numbering Range

Configured Route and Translation Patterns

Comments

Partition: InboundTranslations

Translation pattern: 5559XXX

Translation calling search space: CompanyABC

Called party transformation mask: 7XXX

Translation calling search space CompanyABC contains partition CompanyABC.

Insertion of Access Codes in the Received Calls and Missed Calls Menus of Cisco IP Phones

Cisco IP Phones 7905, 7912, 7920, 7940, 7941, 7960, 7961, 7970, and 7971 provide users a directories button with several menu items, among them Missed Calls and Received Calls. When a user receives a call, the phone places the calling number in the Missed Calls menu if the user does not answer the call, and the Received Calls menu if the user does answer the call.

These menus also provide two softkeys: Dial and EditDial. Figure 2-14 shows a representation of the Missed Calls menu.

Missed Calls Menu of Cisco IP Phone

Figure 2-14. Missed Calls Menu of Cisco IP Phone

Pressing the Dial softkey causes the phone to place a new call by dialing the digits of the selected missed call entry. Unfortunately, in many cases, CallManager rejects calls placed using the Dial softkey, because a user’s calling number is not always the same set of digits that a user must dial to return the call.

For instance, if a phone in the PSTN with number 408 555 1212 calls a phone controlled by CallManager in the Dallas area, the calling number that the Dallas phone receives is 408 555 1212, and thus the Dallas phone records 408 555 1212 in its Missed Calls or Received Calls menu. However, practically every enterprise requires an external access code such as 9 to provide access to an external line. Furthermore, in this example, the Dallas’s phone return call is a long distance call, which the North American PSTN requires also to start with a 1. So although the phone receives 408 555 1212 as the calling number, to return the call, the Dallas phone must dial 9 1 408 555 1212.

This situation is complicated by the fact that for other types of calls, the return number needs to have just the access code without the 1. For instance, if phone connected to the Dallas PSTN with number 214 555 1212 calls a Dallas phone controlled by CallManager, to return the call, the Dallas phone must use an access code but omit the 1: 9 214 555 1212.

Finally some calls need neither an access code nor PSTN digits added. For instance, if phone 55123 in the Dallas enterprise calls phone 55004 in the Dallas enterprise, 55123 shows up as the calling number in the Missed Calls or Received Calls menu, and phone 55004 does not need to modify the stored digits at all to return the call.

The IP Phone has no way to predict which digits need to be added for which types of calls, and thus provides an EditDial softkey. When a user presses the EditDial softkey, the Cisco IP Phone allows the user to edit the stored number before it places the call. This permits the user to insert any necessary access codes and PSTN digits before placing the call. Unfortunately, it requires several additional button presses, which users find quite cumbersome.

CallManager provides two ways to deal with this problem. One way is via inbound transformations that always prepend a specific set of prefix digits (such as 91) and a set of outbound translations that strip these digits on a context-sensitive basis (such as rewriting these digits as 9 when the area code of the caller does not require an initial 1, but leaving both 9 and 1 when the area code of the caller must be dialed with a preceding 1). Another, clearly superior way if you can use it is via the following service parameters:

  • National Number Prefix

  • International Number Prefix

  • Subscriber Number Prefix

  • Unknown Number Prefix

These service parameters rely on the Type of Number field in the Calling Party Number information element supported by the PRI protocol. Service providers, particularly in Europe, might carefully classify the calling numbers of calls they offer to your enterprise. The following list summarizes the types of numbers:

  • National numbers reflect addresses available in the host country’s numbering plan.

  • International numbers reflect addresses available in other countries’ numbering plans.

  • Subscriber numbers, in a called number, can represent other extensions served by the same exchange as your enterprise, but might also be used by service providers to indicate calls offered by branch offices connected via tie lines if you’ve subscribed to a Centrex service.

  • Unknown numbers are otherwise unclassified numbers.

The service parameters specified in the preceding list enable you to define type-of-number- specific transformations of a calling party number. For instance, you could define International Number Prefix as 9011 and National Number Prefix as 91, in order to automatically prepend a 9011 to calls from outside of North America and 01 to calls from within the North American numbering plan. Because long distance direct dial digits are sometimes needed and sometimes not and because 10- versus 7-digit dialing can vary from North American city to North American city, this approach might not completely solve the problem, but for the variable-length numbering plans used by many European countries, this approach works fine.

Unfortunately, the only real good way to find out how your service provider is classifying calling numbers is to look at decoded traces. CallManager’s CCM trace prints out decoded ISDN messages.

If your service provider isn’t consistently classifying calling party numbers, your only recourse for permitting the one-touch redials from the Missed and Received Calls directory is to use a less optimal approach. Translation patterns can allow you to permit one-touch redials from the Missed and Received Calls directory because they give you an opportunity to modify the calling number before CallManager presents a call to an IP Phone. By modifying the calling number, you can insert the appropriate access codes and PSTN digits for calls to IP Phones in your enterprise.

Modifying the calling number does have consequences, though. Modifying the calling number means that when an IP Phone receives an external call, the displayed calling number will contain any access codes and PSTN digits. This solution permits you either to display the pure calling number and require the user to press the EditDial softkey for many calls, or to display a modified calling number and allow the user to press the Dial softkey for calls. Currently, you cannot have it both ways.

Configuring translations on inbound calls requires two separate steps.

First, you must modify the calling number for calls from the PSTN to CallManager, which causes CallManager to insert the appropriate access codes and PSTN digits.

Second, you must modify the called number for calls from CallManager to the PSTN. This step properly handles the insertion of PSTN digits. In the example above, calls from the PSTN come from both 408 555 1212 and 214 555 1212. The PSTN expects that calls dialed to the 408 area require a leading 1, while calls to the 214 area code require no leading digits at all. CallManager requires a leading 9 to distinguish calls to internal destinations from calls to external destinations. Therefore, for calls to the 408 area code, CallManager needs to prefix 91 for the IP Phone to return the call, and for calls to the 214 area code, CallManager needs to prefix just 9 for the IP Phone to return the call. However, both calls come in over the same gateway, and CallManager cannot look at the calling number to decide which digits to prefix. If CallManager prefixes just 9, the return call to 9 1 408 555 1212 fails because of lack of a required PSTN digit. If CallManager prefixes 91, the return call to 9 214 555 1212 fails because of an excess PSTN digit.

Configuring a translation for calls from CallManager to the PSTN permits you to indiscriminately prefix 91 for calls to CallManager. Then, for calls to the PSTN, you can eliminate the extraneous digits when needed for calls that do not require them.

The following example describes this procedure. Figure 2-15 shows the network that this section has already described, with two phones connected to a CallManager in Dallas, one phone connected to the Dallas PSTN, and one phone connected to the San Jose PSTN.

Sample Network for Access Code Insertion

Figure 2-15. Sample Network for Access Code Insertion

Handling the translations for calls to a Dallas phone relies on the provision of the translation and route patterns in Table 2-48.

Table 2-48. Patterns for Inserting Access Codes for Calls to a CallManager Phone

Configured Route and Translation Patterns

Comments

Partition: InboundTranslations

Translation pattern: 55XXX

Translation calling search space: CompanyABC

Calling party prefix digits: 91

CallManager inserts 91 before the calling number of calls from the PSTN. The translation calling search space CompanyABC contains the partition CompanyABC.

Partition: CompanyABC

Route pattern: 55004

55004 is a phone with directory number 55004. This phone has a calling search space that contains partitions CompanyABC, OutboundTranslations, and PSTNGateways.

Partition: CompanyABC

Route pattern: 55123

55123 is a phone with directory number 55123. This phone has a calling search space that contains partitions CompanyABC, OutboundTranslations, and PSTNGateways.

Partition: PSTNGateways

Route pattern: 9.@

The gateway to the PSTN is in its own partition, to which phones do not have direct access. The gateway’s calling search space contains the partition InboundTranslations.

Assume for simplicity that the gateway throws away all but the final 5 digits of the called number that the PSTN provides for calls to CallManager.

When IP Phone 55004 dials 55123, CallManager performs the following step:

  • The digits 55123 match the directory number 55123 in the CompanyABC partition. CallManager delivers the call directly to IP Phone 55123 with 55004 as the calling number.

When San Jose phone 408 555 1212 dials 214 555 5123, CallManager performs the following steps:

  1. The PSTN gateway throws away all but the last five digits of the number the San Jose user dialed, yielding 55123. The calling number that the PSTN provides is 408 555 1212.

  2. CallManager uses the calling search space of the gateway to analyze the dialed digits. The digits 55123 match the route pattern 55XXX in the InboundTranslations partition. CallManager applies the calling party prefix digits of 91 to convert the calling number from 408 555 1212 to 9 1 408 555 1212. CallManager does not change the called number at all, because no called party transformations are configured for the translation pattern.

  3. CallManager uses the unchanged called number, 55123, for another analysis attempt. This time CallManager uses the calling search space of the translation pattern—Company ABC—to perform the analysis. The digits 55123 match the directory number 55123 in the CompanyABC partition. CallManager delivers the call to IP Phone 55123 with 9 1 408 555 1212 as the calling number.

When Dallas phone 214 555 1212 dials 214 555 5123, CallManager performs the following steps:

  1. The PSTN gateway throws away all but the last five digits of the number that the San Jose user dialed, yielding 55123. The calling number that the PSTN provides is 214 555 1212.

  2. CallManager uses the calling search space of the gateway to analyze the dialed digits. The digits 55123 match the route pattern 55XXX in the InboundTranslations partition. CallManager applies the calling party prefix digits of 91 to convert the calling number from 214 555 1212 to 9 1 214 555 1212. CallManager does not change the called number at all, because no called party transformations are configured for the translation pattern.

  3. CallManager uses the unchanged called number, 55123, for another analysis attempt. This time, CallManager uses the calling search space of the translation pattern—CompanyABC—to perform the analysis. The digits 55123 match the directory number 55123 in the CompanyABC partition. CallManager delivers the call to IP Phone 55123 with 9 1 214 555 1212 as the calling number.

Using the preceding approach to translate outbound calls also enables you to use a hybrid approach for managing the Missed and Received Calls menus. This approach uses the numbering- plan-specific service parameters to translate the calling numbers of inbound calls but uses translation patterns to translate outbound calls. For instance, you could prepend 9011 to international calls and 91 to national calls, even if the return call might not necessarily require the long digit direct dial digit. Configuring outbound translations as in Table 2-49 could permit you to strip the superfluous digit while saving you from having to configure the inbound translations.

Table 2-49. Translation Patterns Used to Remove Excess PSTN Digits for Calls to the PSTN

Configured Route and Translation Patterns

Comments

Partition: OutboundTranslations

Translation pattern: 91.214XXXXXXX

CallManager strips the preceding 91 for calls to the 214 area code and then uses the access code 9.

Translation calling search space: PSTNGateways

DigitDiscardingInstructions: PreDot

Called Party Prefix Digits: 9

Another way to configure this translation pattern uses route pattern 9.@ and a route filter with clause AREA-CODE == 214. The translation pattern then specifies the digit discarding instruction 11D->10D, which throws away the PSTN digit 1 while retaining the access code 9.

Figure 2-16 shows the Missed Calls menu that results from IP Phone 55123 receiving the three calls just described.

Missed Calls Menu Showing Transformed Numbers

Figure 2-16. Missed Calls Menu Showing Transformed Numbers

Note that the call from IP Phone 55004 has no prefix digits added, although both of the calls from the PSTN have access code 9 and PSTN digit 1 added. In the case of the call from San Jose, the modified number is identical to the number that the user dials to call the San Jose phone. But in the case of the call from Dallas, the modified number includes PSTN digit 1. If the user dials the number as shown, the Dallas PSTN rejects the call because of the extra digits. Configuring an outbound translation eliminates this problem. Table 2-49 shows the translation pattern required to strip the excess PSTN digit from the local call.

When IP Phone 55123 presses the Dial softkey for the call with digits 9 1 408 555 1212, CallManager uses the calling search space of the IP Phone to analyze the dialed digits 9 1 408 555 1212. These digits match the route pattern 9.@ in partition PSTNGateways. CallManager delivers the call to the PSTN gateway with called number 9 1 408 555 1212.

However, when IP Phone presses the Dial softkey for the call with digits 9 1 214 555 1212, CallManager performs the following steps, which remove the extra PSTN digit:

  1. CallManager uses the calling search space of the IP Phone to analyze the dialed digits 9 1 214 555 1212. These digits match both the route pattern 9.@ in partition PSTNGateways and the translation pattern 91.214XXXXXXX in partition OutboundTranslations. CallManager applies the digit discarding instructions of PreDot to convert the number from 9 1 214 555 1212 to 214 555 1212, and then CallManager applies the called party prefix digit of 9, yielding 9 214 555 1212.

  2. CallManager uses the modified called number, 9 214 555 1212, for another analysis attempt. This time, CallManager uses the calling search space of the translation pattern—PSTNGateways—to perform the analysis. The digits 9 214 555 1212 match route pattern 9.@ in the PSTNGateways partition. CallManager delivers the call to the PSTN gateway with called number 9 214 555 1212.

Multiple-Tenant Applications

In a multiple-tenant environment, one CallManager or CallManager cluster serves two or more independent organizations, each with its own numbering plan. The scope of responsibility of the person or organization managing the CallManager cluster can vary dramatically. At the small end of the scale is the landlord who provides the phone service for the tenants in the building (either commercial or residential). This type of deployment is termed multitenant. At the large end of the scale is the Internet service provider (ISP) or telephone service provider that manages a network of CallManagers and resells phone services to many companies with separate facilities, who may or may not have PBXs of their own. This type of deployment is called IP Centrex. The difference from a routing point of view is simply in amount of configuration; the basic call routing mechanisms used for both types of deployments are essentially the same. This book uses the term multitenant rather than IP Centrex when describing such deployments, and service provider when referring to the person or organization that provides multitenant services.

In a multitenant deployment, the numbering ranges for each organization might be completely isolated from each other, or they might have numbers in common, such as a security desk. Particularly because gateways are simply resources for placing calls to and receiving calls from other networks, two tenants can share gateways.

Extension Mapping for Multiple Tenants

Everything that applies to extension mapping for a single tenant applies for multiple tenants. If an inbound call arrives over a gateway, you must map the full externally published number to the proper internal extension number. Setting a calling search space on the translation pattern is extremely important here, because identical directory numbers that different tenants own must be treated as separate extensions instead of as a shared line appearance.

For example, assume there is a multiple-tenant environment in which a service provider uses one CallManager to route calls for company ABC and XYZ. Company ABC has an appearance of line 1000 registered in partition ABC, and company XYZ has an appearance of line 1000 in partition XYZ.

Company ABC’s line 1000 is reachable from the PSTN as 828 8000, while company XYZ’s line 1000 is reachable from the PSTN as 813 5000. The similar configuration to the one described in the previous section allows inbound calls to reach the appropriate station, though the calling search space must be set appropriately.

For example, assume that company ABC’s external numbers are all in the 828 8XXX range, while company XYZ’s are all in the 813 5XXX range. By eschewing any transformations in the gateways themselves, you can configure two translation patterns in a partition that only the gateway can see.

The first route pattern, 828 8XXX, uses a called party transformation mask of 1XXX. Furthermore, the translation calling search space for the translation pattern must be set to a calling search space that contains partition ABC but not XYZ.

The second route pattern, 813 5XXX, has an associated called party transformation mask of 1XXX. Its translation calling search space is set to a calling search space that contains partition XYZ but not partition ABC.

Figure 2-17 shows this configuration.

Extension Mapping for a Multitenant Configuration

Figure 2-17. Extension Mapping for a Multitenant Configuration

Calls Between Tenants

A wrinkle of multitenant configurations that is not present for single-tenant configurations is that of calling between tenants. Independent tenants do not call each other using their internal directory numbers. To each tenant, the other tenant should be indistinguishable from a company that the PSTN serves.

This requirement means that not only the called party must be transformed for intertenant calls, but also the calling party must be transformed. Suppose user A at extension 1000 in company ABC calls user B extension 2000 in company XYZ. If the called party’s missed calls display shows the call as coming from calling number 1000, when user B tries to call user A back by dialing 1000, user B instead reaches extension 1000 in user B’s own company.

One way to handle this issue is not to handle it at all. When user A dials user B, user A dials user B’s external number. If user A is allowed to make outbound calls, this call routes out a gateway to the PSTN, which in turn routes the call right back into the CallManager cluster as an external call. If you have configured extension mapping, user B’s display reflects the correct information.

Unfortunately, this configuration wastes gateway resources. Furthermore, the PSTN charges you for a call that the CallManager cluster can connect on its own.

Translation patterns can resolve this problem. For calls among tenants of a cluster, one can define for each tenant translation patterns that transform the calling and called numbers appropriately and extend the call directly to the called party.

For example, assume user B’s external phone number is 828 2000. User A probably dials this number after first dialing an access code, such as 9. The following steps allow user A’s calls to route directly to user B:

  1. Define the translation pattern 9 828 2XXX in a partition that is in user A’s calling search space.

  2. Set the called party transform mask to 2XXX.

  3. Set the translation pattern calling search space to a calling search space containing partition XYZ but not ABC.

  4. If you have defined external phone number masks for all of your station devices, check the Use External Phone Number Mask check box for the translation pattern; otherwise, set a calling party transformation mask of 813 XXXX.

When user A dials user B’s external number, the dialed number gets transformed to user B’s extension in company XYZ’s partition. CallManager uses the results of this transformation for the reanalysis and extends the call directly to user B. The calling party transformation ensures that user B’s display reflects user A’s external rather than internal number.

User B should have a corresponding translation pattern for calls to company ABC. Figure 2-18 shows this configuration.

Calls Between Tenants

Figure 2-18. Calls Between Tenants

Call Hunting Constructs

Call hunting constructs is a somewhat awkward name that attempts to indicate that the function of these constructs is to serially or simultaneously offer calls not to a single device but to a set of devices. CallManager supports two integrated call hunting constructs.

Hunt lists allow you to serially offer calls to groups of IP phones placed in line groups. Line groups, in turn, permit you to simultaneously or serially offer calls to lines that they contain. Hunt lists and line groups provide you a fairly rich toolset for disposing of calls; in addition to provisioning different hunt algorithms, you can instruct CallManager how to treat calls when an endpoint in a line group doesn’t answer or is busy. The section “Hunt Lists and Line Groups” covers hunt lists.

Route lists allow you to serially offer calls to groups of gateways or IP trunks placed in route groups. Route lists provide a couple of search algorithms and support number transformation capabilities. The section “Route Lists and Route Groups” covers route lists.

Hunt Lists and Line Groups

Although the capability to offer a call directly from one user to another is a beautiful thing, often users are closely tied together into groups. For instance, you might have a group of receptionists who handle inbound calls to a particular department or even a particular store, whose job it is to route callers to an appropriate person to answer their questions. Or you might have a phone at a main desk that should accept all inbound calls but which you would like to ring in a back room after a short delay if the front desk cannot take the call because the receptionist had to step away for a moment.

Hunt lists and line groups provide you a way to associate a group identity with a set of phones, and they allow you to set up some fairly complex criteria for the routing of inbound calls.

Hunt lists and line groups work together to handle an inbound call, and they provide slightly different algorithms for treating a call. The basic workflow for setting up call hunting is as follows:

  1. Identify sets of closely related directory numbers to which you desire calls to be offered.

  2. Assign the directory numbers into line groups. If you’d like all the phones in the set to ring simultaneously, then these phones must be in the same line group. When CallManager offers a call to a given line group, it offers the call to the phones in the group according to the distribution algorithm you specify on the group.

  3. Construct a hunt list by placing one or more line groups in order. When CallManager offers a call to a given hunt list, it offers calls in top-down order to each line group that the list contains.

  4. Associate one or more addresses called hunt pilots to your hunt list. The hunt pilot is the number that callers dial to start the call distribution and its number is distinct from that of any of the directory numbers in the line groups that the hunt list contains. Hunt pilots provide ways to dispose of the call if the call is not accepted by any of the line groups in the hunt list.

Put simply, a hunt pilot is an address that points to a hunt list. A hunt list contains a list of line groups. Line groups contain a list of directory numbers. When a caller dials digits that match the hunt pilot, the routing algorithms on the hunt list and line groups determine the order in which CallManager offers the call to destinations. Figure 2-19 illustrates the relationships between hunt pilots, hunt lists, and line groups.

Hunt List Composition

Figure 2-19. Hunt List Composition

Figure 2-19 depicts three pairs of phones. Each pair belongs to a single line group. Each line group uses a different hunting algorithm. Line group 1 searches in a top-down order, line group 2 searches in a circular order, and line group 3 uses a broadcast search. (The section “Line Groups” provides specific information about the line group distribution algorithms.)

Each line group is contained in either one or two hunt lists. Hunt list 1 contains line groups 1, 2, and 3. Hunt list 2 contains line groups 2 and 3. Hunt lists always distribute calls in top-down order to the line groups that they contain.

Each hunt list is assigned its own hunt pilot. (You can assign multiple pilots to a single hunt list.) Hunt pilot 8888 points to hunt list 1, and the final disposition for hunt list 1, if no one in the hunt answers the call is to forward to hunt pilot 8889. Hunt pilot 8889 points to hunt list 2, and its final disposition is to forward the call according to personal call coverage settings. (The section “Hunt Pilots” discusses hunt pilot specific settings in more detail.)

Each line group in the hunt list contains the default Hunt Option Try next member; then try next group in hunt list for the No Answer, Busy, and Not Available conditions. Other options permit the following:

  • To continue searching within the line group but not to proceed to the next line group within the list

  • To immediately skip to the next line group within the list

  • To stop hunting entirely

When a caller dials 8888, CallManager performs the following steps:

  1. Hunt pilot 8888 offers the call to hunt list 1.

  2. Hunt list 1 offers the call to the first group in its list, line group 1.

  3. Line group 1 offers the call to the phones in its group using a top-down algorithm.

  4. If no device in line group 1 accepts the call, hunt list 1 offers the call to the second group in its list, line group 2.

  5. Line group 2 offers the call to the phones in its group using a circular algorithm.

  6. If no device in line group 2 accepts the call, hunt list 1 offers the call to the third group in its list, line group 3.

  7. Line group 3 rings all phones in its group simultaneously.

  8. If no device in line group 3 accepts the call, hunt list 1 follows its final disposition rules, which, in this case, sends the call to hunt list 2.

  9. Hunt list 2 offers the call to the first group in its list, line group 2.

  10. Line group 2 offers the call to the phones in its group using a circular algorithm.

  11. If no device in line group 2 accepts the call, hunt list 2 offers the call to the second group in its list, line group 3.

  12. Line group 3 rings all phones in its group simultaneously.

  13. If no device in line group 3 accepts the call, hunt list 1 follows its final disposition rules, which, in this case, sends the call to the personal final destination.

The following sections discuss the options for line groups, hunt lists, and hunt pilots in more detail.

Line Groups

Line groups permit you to set the following options:

  • A distribution algorithm, which allows you to dictate the order in which CallManager rings the phones in the line group. Line groups support the following four distribution algorithms:

    • —Top Down, which causes CallManager to always ring available phones within the groups in strict list order, starting with the first directory number contained in the line group and ending with the last directory number contained in the line group.

    • — Circular, which causes CallManager to, on successive calls to the line group, start the hunt with successive lines within the group. For instance, in a line group with the circular distribution algorithm, the first call handled by the line group begins by ringing the first directory number within the line group and ending with the last directory number contained in the line group. The next call handled by the line group begins by ringing the second directory number within the line group and proceeding to the last number in the line group, whereupon the hunting returns to the first directory number in the line group and continues hunting until all available lines have been offered the call.

    • — Longest Idle, which causes CallManager to monitor the status of directory numbers within the group and order them based on how recently they were active on a call. CallManager offers calls to available lines within the group starting with the least recently used directory numbers and proceeding to the most recently used.

    • — Broadcast, which causes CallManager to offer the call simultaneously to all available directory numbers within the line group.

  • Hunt options, which work along with the RNA (Ring no answer) Reversion Timeout. Hunt options allow you to specify the treatment of calls when CallManager offers the call to a directory number within the group but that directory number does not answer, is busy, or is unavailable (possibly unregistered).

The following list describes these conditions in more detail:

  • The Not Available condition describes how the line group should treat the call when it encounters an endpoint that is not in service or whose status is unknown. The Not Available setting takes effect only when the distribution algorithm you’ve selected is Circular or Top Down. If you select the Longest Idle or Broadcast algorithms, the line group always uses the hunt option associated with the No Answer condition to treat the call.

  • The Busy condition describes how the line group should treat the call when it encounters an endpoint that is actively engaged in another call. The Busy setting takes effect only when the distribution algorithm you’ve selected is Circular or Top Down. If you select the Longest Idle or Broadcast algorithms, the line group always uses the hunt option associated with the No Answer condition to treat the call.

  • The No Answer condition describes how the line group should treat the call when it encounters an endpoint that does not answer the call. The line group rings a non- responsive phone until either the T301 service parameter (which defines the maximum call alerting time) for the system expires or until the RNA Reversion Timeout on the line group expires. The No Answer setting takes effect for all distribution algorithms.

The preceding list describes the conditions for which a hunt list option can be set. The following list describes the available options:

  • — Try next member; then, try next group in Hunt List is the standard distribution command. When the hunt list encounters the appropriate condition on one of its members, it simply proceeds to the next member within the group. If all members within the group have been offered the call, then the hunt continues to the next line group within the hunt list. When the Broadcast algorithm is selected, the line group has no next member to select, so setting this value tells the hunt list to simply proceed to the next line group in the hunt list.

  • — Try next member, but do not go to next group causes the line group to proceed to the next member within the group. However, if all members within the group have been offered the call, then the hunt list ceases hunting and disposes of the call as if the hunt list were exhausted. When the Broadcast algorithm is selected, the line group has no next member to select, so setting this value tells the hunt list to simply provide a busy signal to the caller.

  • — Skip remaining members, and go directly to next group causes the hunt to immediately proceed to the next line group in the hunt list, even if the current line group has not offered the calls to all of its members. When the Broadcast algorithm is selected, the line group has no next member to select, so setting this value tells the hunt list simply to proceed to the next line group in the hunt list. Why would you use this option? Because the line group can respond to multiple conditions. For instance, you might want to fully search through a group when a given directory number is busy. But if one or more group members are away from the phone, you might not want a caller to have to wait for the RNA Reversion Timeout to expire for each member in the group. By setting the Skip remaining members, and go directly to next group for the No Answer condition, you can direct the caller to a voice mail system using the forwarding options on the hunt list.

  • — Stop hunting causes CallManager immediately to stop hunting. When set on the busy condition, CallManager disposes of the call as if the hunt list had been exhausted; when set on the not available option, the caller hears the reorder signaling; and when set on the no answer condition, the call rings on the selected directory number (or directory numbers in the case of the Broadcast distribution algorithm) until the T301 service parameter expires.

In addition to the call treatment options, line groups allow you to temporarily bring members in and out of service by administratively moving them from the Selected DN/Route Partition list box to the Removed DN/Route Partition list box, and vice versa.

Hunt Lists

Hunt lists themselves offer no meaningful call distribution algorithms. Hunt lists always offer calls to line groups in sequential order, starting from the first line group listed in the Selected Groups list box and proceeding to the final line group listed.

You can administratively move line groups in and out of service within the displayed hunt list by moving them from the Selected Groups list box to the Removed Groups list box, and vice versa.

Furthermore, you can temporarily enable or disable an entire hunt list by using the Enable this Hunt List check box.

Hunt Pilots

Hunt pilots are really just fancy route patterns (and you thought they couldn’t get any fancier!) As such, they exhibit most of the same characteristics of route patterns. For instance, they

  • Belong in partitions

  • Support pattern notation

  • Support route filters

  • Belong in numbering plans

  • Allow the setting of MLPP precedence

  • Support routing or blocking or calls

  • Can provide outside dial tone to the caller

  • Can bypass the interdigit timer (by setting the Urgent Priority flag)

  • Support transformations of the calling and called parties

  • Support presentation settings for the calling and called parties

Hunt pilots differ from route patterns in that they support forwarding options, which enable you to specify a final disposition for a call handled by a hunt list. You can also use this disposition to route calls to other hunt lists, phones, gateways, and so on—basically anywhere you could forward a call.

Hunt pilots support the following forwarding options:

  • The Forward Hunt Busy option enables you to specify where the call should route when all endpoints within the line groups that the associated hunt list contains were unable to take the call because they were busy.

  • The Forward Hunt No Answer option enables you to specify where the call should route when at least one endpoint within the line groups that the associated hunt list contains was offered the call. Forward Hunt No Answer triggers either when the associated hunt list is completely exhausted or when the Maximum Hunt Timer, which you configure on the hunt list, expires without one of the endpoints in the hunt list having answered the call.

Hunt lists allow you to set up two types of forwarding options.

  • You can forward calls that exhaust the list to a fixed destination by setting a specific Destination and Calling Search Space in the appropriate field.

  • You can forward the list to a destination associated with the previous target of the call who has forwarded the call to the hunt list by checking the Use Personal Preferences check box.

When you select the Use Personal Preferences check box, CallManager treats the call based on the Forward No Coverage settings that you configure on the original destination for the call.

For instance, hunt lists can be provisioned to provide some “backup” for an individual user. Suppose that you are a member of a particular highly regarded team. If a caller attempts to reach you, you could set your forwarding options to send the call to voice mail—but this approach means that a caller, who might have had an urgent question or one that could be quickly answered by your team, must wait for you to check your voice messages before receiving help. By setting the forward no answer on your phone and creating a hunt list that contains the other members of your group, you can direct the caller to your group.

The possibility exists, however, that none of your group is currently available to take your call. In this case, you’d like to be able to direct the call to voice mail or perhaps to your personal cell phone. Simply using the static Destination in the hunt list doesn’t quite suffice. If all members of your team wanted to treat calls the same way, you’d have to set up one hunt list per team member, which would be administratively painful. By specifying a Forward No Coverage destination on your phone and selecting the Use Personal Preferences check box, when the hunt list is exhausted it forwards to your personally selected destination, not to a general, fixed destination.

A personal destination takes effect only if the call was originally placed to a destination (currently, an IP phone) that has a Forward No Coverage setting. If the call is directly to a hunt list with Use Personal Preferences set, the caller hears reorder—for such hunt lists, a static destination generally suffices.

For a different example, assume phone 2000 has Call Forward All set to hunt pilot 8000, and that hunt pilot 8000 has none of its optional forwarding fields set. When another phone (say, phone 1000) dials 2000, CallManager immediately forwards the call to hunt pilot 8000, and a hunt begins. If no hunt parties answer, then a reorder tone will be played to the caller because no other final disposition was configured.

Now assume hunt pilot 8000 has its Forward Hunt No Answer destination set to 9 1 303 499 7111. Repeating the call this time results in a final disposition. When hunting exhausts, the forward settings on the hunt list apply and CallManager redirects the call OffNet to 9 1 303 499 7111, in this case, the atomic time at the National Institute of Standards and Technology (NIST).

Finally, assume that, in addition to having a Forward Hunt No Answer setting, hunt pilot 8000 has its Forward Hunt No Answer Use Personal Preference check box checked. Even though the destination field is still set to 9 1 303 499 7111, the user preference check box now takes priority.

Direct calls to the hunt pilot still result in the call being forwarded to NIST, but callers who first dial another number that is forwarded to the hunt pilot receive call treatment based on the settings of the forwarded phone.

If the forwarded phone has no Forward No Coverage fields set, then the caller hears reorder. If the caller is classified as an external caller and the Forward No Coverage External field on the forwarding party is set, then when the hunt list associated with the pilot is exhausted, CallManager redirects the call to the Forward No Coverage External destination. If, instead, the caller is classified as an internal caller and the Forward No Coverage Internal field on the forwarding party is set, then when the hunt list is exhausted, CallManager redirects the call to the Forward No Coverage Internal destination.

Route Lists and Route Groups

Life is sweet when you have only one gateway for calls to the PSTN. You configure the gateway with the route pattern you want to use for external calls, and as long as the gateway has an available trunk, it can route calls to the PSTN. But when your network grows beyond the capacity of a single gateway, you are posed with a problem: How do you configure CallManager so external calls can use both gateways, and how can you make CallManager choose the correct gateway when only one gateway has trunks available?

Route lists and route groups are the answer. This section contains the following subsections:

Route List and Group Operation

The behavior of route lists and route groups is straightforward.

A route group represents several individual trunks and gateways to CallManager as a single high- capacity gateway. A route group is little more than a list. When a route group receives a call, it offers the call to the devices in its list according to its distribution algorithm. Route groups support both Top Down and Circular distribution algorithms; these algorithms work as described in the section “Hunt Lists and Line Groups.”

If the device can accept the call, the route group’s job is done. If the device rejects the call (because it is being fully utilized or is out of service), however, the route group then offers the call to the next device in its list. Only when all devices have rejected the call does the route group reject the call.

Route lists take the abstraction that route groups provide one step further. Although a route group is an ordered list of gateways, a route list is an ordered list of route groups. Where a route group sequentially offers calls to devices in its list, a route list sequentially offers calls to route groups in its list. A route list rejects an outgoing call only when no route groups in its list can accept a call.

Together, route lists and route groups allow you to control which gateways route outgoing calls. They also allow you to order your gateways so that you can route calls over gateways connected to less-expensive service providers before routing calls over gateways to more expensive service providers.

Finally, route lists provide you with additional routing control. The calling and called party transformations on route lists allow you to override, on a route-by-route basis, the calling and called party transformations that you assigned to the route pattern that selected the route list. You might need to override transformations on a particular route basis to properly format a number for the gateway that receives a call. Figure 2-20 demonstrates these features of a route list.

Route List and Route Group Operation

Figure 2-20. Route List and Route Group Operation

Figure 2-20 depicts a CallManager that controls two gateways in San Jose and a gateway in Dallas. For routing purposes, the two gateways in San Jose are equivalent—that is, it does not matter which gateway handles a particular call—and they belong to the same route group. The gateway in Dallas belongs in a separate route group.

Both route groups belong to a route list that handles calls from Dallas to San Jose. The route list attempts to provide toll restriction by trying to route the call to the San Jose gateways before the Dallas gateway. The route pattern 9.@ with route filter AREA-CODE == 408 is associated with the route list so that it handles calls to the 408 area code. Furthermore, dialing transformations on the route list convert the 12-digit number that the user dials into a 7-digit number for routing on the San Jose PSTN.

When a user in Dallas dials 9 1 408 555 1212, the route list performs the following steps:

  1. First, it attempts to offer the call to the first gateway listed in the San Jose gateways route group. This gateway is an MGCP gateway connected to the San Jose PSTN. Because CallManager manages the state of the trunk interfaces of MGCP gateways, the gateway component can immediately reject the call attempt.

  2. Second, it attempts to offer the call to the second gateway listed in the San Jose gateways route group. This gateway is an H.323 gateway, which manages the state of its own trunk interfaces. CallManager offers the call to the gateway, but the gateway rejects the call.

  3. The San Jose route group rejects the call that the DallasToSanJose route list extended, so the DallasToSanJose attempts to route the call over the PSTN. It extends the call to the Dallas gateways route group. The transformations that the route pattern applied to the called number to convert it to 555 1212, however, would prevent the call from routing from Dallas, so dialing transformations on the route override the called party transformations the route pattern applied. The route converts the number to 1 408 555 1212 and then offers the call to the Dallas gateway.

  4. The Dallas gateway is available and routes the call over the PSTN.

Assigning Gateways to Route Groups and Route Groups to Route Lists

Route lists are composed of route groups, which, in turn, are composed of gateways. This section describes the process of building the route group and route list structure. It consists of two subsections:

The order of these sections is representative of the way in which you should build your route list structure. First, you start by configuring gateways, which you then place into route groups. When the route groups are organized, you place them in route lists. Finally, you control routing to these route lists by assigning route patterns.

Assigning Gateways to Route Groups

Each gateway endpoint a CallManager can route to can exist in, at most, one route group. The term gateway endpoint is deliberately a bit vague. For purposes of discussing route groups, a gateway endpoint is not necessarily a gateway, nor is it a particular span or channel on the gateway. Rather, an endpoint differs based on the type of gateway.

For example, CallManager has no control over which interface an H.323 gateway, such as the Cisco 2600, routes outbound calls; the H.323 protocol contains no provision for specific interface selection on an H.323 gateway. Rather, the configuration of the Cisco 2600 router determines which interface routes the call. As a result, even if an H.323 gateway contains several individual spans, these spans cannot be added on a span-by-span basis to different route groups. The finest routing granularity that CallManager has for H.323 gateways is the gateway level.

In contrast, CallManager can select individual spans on MGCP gateways with analog interfaces, and as a result, you can place individual spans in different route groups.

Channels of an ISDN or T1 span differ. T1s and E1s are single digital spans that are divided into 23 or 30 logical channels. Although CallManager can route calls to particular channels, it cannot include individual channels in different route groups. You must assign digital interfaces to route groups on a span-by-span basis.

Table 2-50 presents the level of routing granularity CallManager has for each general type of gateway. See Chapter 4 for more information about gateway types.

Table 2-50. Routing Granularity by Gateway Type

Gateway Type

Granularity

MGCP gateway analog interfaces

Span

MGCP gateway digital interfaces

Span (but not channel, except for T1-CAS)

H.323 gateways

Gateway

How should you assign interfaces to route groups? The most flexible way is to assign one interface per route group; however, even though the External Route Plan Wizard takes this approach, it is by far the most unwieldy. As a guideline, assuming you do not need to reserve certain interfaces for privileged users, you should place all interfaces that route to the same type of carrier in the same routing area in the same route group.

For instance, assume you have three gateways. Gateway 1 provides access to a PBX. Gateway 2 is hooked up to a local carrier in the PSTN. Gateway 3 is hooked directly to a long distance carrier.

Gateway 1 probably provides access to extensions that the PBX manages. Even if it provides outside access (through trunk interfaces that the PBX manages), it cannot share route group membership with either Gateway 2 or Gateway 3. Because neither Gateway 2 nor Gateway 3 provides access to the PBX extensions, they are not equivalent for routing purposes.

Gateway 2 and Gateway 3 also probably should not share route groups, even though they nominally provide access to the same place.

One reason is that calls to a long distance carrier require only ten digits for long distance calls; long distance carriers that see the initial long distance direct-dial digit reject the call.

In addition, Gateway 3 provides you with less-expensive access for long distance calls, while Gateway 2 provides you with inexpensive local calls. This situation means that you prefer local calls to route first out Gateway 2 and then out Gateway 3 as a last resort, while long distance calls route out Gateway 3 and then Gateway 2 as a last resort. As a route group can list its gateways in only one order, the gateways must be in different route groups to provide you with the behavior you want.

As a result, Gateway 2 and Gateway 3 are not equivalent for routing purposes, and each must be in its own route group.

If you add a Gateway 4, connected to the PBX, add it to the same route group as Gateway 1, because the gateways are completely equivalent from a routing standpoint.

Assigning Route Groups to Route Lists

Route lists are ordered lists of route groups. Although a given gateway endpoint can exist in at most one route group, a route group can exist in any number of route lists. Figure 2-21 presents a logical view of route lists, route groups, and gateways.

Route Lists, Route Groups, and Gateways

Figure 2-21. Route Lists, Route Groups, and Gateways

A route list is simply a gateway search pattern. For every unique order in which you want to attempt to route calls to gateways, you need one route list.

The purpose of a route list is wholly determined by the route pattern you assign to it and the route groups it contains. The External Route Plan Wizard relies heavily on route lists to provide a fine granularity of permission levels for external dialing, and to implement a variety of fallback strategies when gateways are busy or not available. The section “Routing by Geographic Location (or What the External Route Plan Wizard Builds)” describes in detail the way that the External Route Plan Wizard uses route lists for this task.

However, you can use route lists for purposes other than routing based on geographical location. You can use route lists to select outbound gateways based on anticipated cost. For instance, if you have one route group for gateways connected directly to a long distance carrier and another route group for gateways connected to a local carrier, you can define two route lists to route outbound calls accordingly. Figure 2-22 demonstrates such a configuration.

Route Lists Used for Carrier Selection

Figure 2-22. Route Lists Used for Carrier Selection

On the first route list, you define a route pattern and route filter that routes local calls. Although the way in which one dials local calls varies among geographical regions in North America, the route pattern 9.@ with route filter AREA-CODE DOES-NOT-EXIST AND LOCAL-AREA-CODE DOES-NOT-EXIST AND INTERNATIONAL-ACCESS DOES-NOT-EXIST AND SERVICE DOES-NOT-EXIST selects all seven-digit calls that a user dials.

For this first route list, you assign as the higher-priority route group the one that contains gateways connected to the local carrier. The lower-priority route group is the one that contains gateways connected to the long distance carrier.

When users dial a number that matches a seven-digit route pattern, CallManager offers the call to the local carrier gateways before trying the long distance carrier gateways.

On the second route list, you define a route pattern and route filter that routes long distance calls, such as 9.@ with route filter AREA-CODE EXISTS OR INTERNATIONAL-ACCESS EXISTS. For this route list, you assign as the higher-priority route group the one that contains gateways connected to the long distance carrier. The lower-priority route group is the one that contains gateways connected to the local carrier.

When users dial a dialed digit string that includes an area code or international access code, CallManager offers the call to the long distance carrier gateways before trying the local carrier gateways.

Route-Based Calling and Called Party Transformations

The association between a route list and one of its route groups is called a route. The example in the section “Assigning Route Groups to Route Lists” glosses over a detail about the dialed digits when offering a call to a local carrier versus a long distance carrier. Elaborating on this detail can demonstrate the way that called party transformations work with routes.

When CallManager offers a long distance call to a local carrier in North America, often the area code must be preceded with a 0 for operator access for a 1 for a direct-dialed call. This is usually not a problem, because users expect to dial these extra digits. On the other hand, when CallManager offers a call to a long distance carrier, any leading 0 or 1 causes the long distance carrier to reject the call.

Also, when CallManager offers a local call to a local carrier, the call is likely to route properly, but when offering a call to a long distance carrier, CallManager must explicitly include the area code as part of the dialed number. In geographical regions with seven-digit dialing, the caller does not dial any area code for calls to local numbers.

When route lists contain route groups that have different requirements for the dialed digits, the calling and called party transformations on the route pattern do not suffice. Instead, CallManager must transform the calling and called parties on a route-by-route basis. When you select a route group from the Route List Configuration page, CallManager Administration opens the Route Details Configuration page, where you can customize the dialing transformations that CallManager applies when it offers a call to the selected route group from the current route list.

Each route contains the same calling and called party transformations that exist on the route pattern itself. The calling party transformations are the Prefix Digits, Calling Party Transformation Mask, and the Use External Phone Number Mask check box. The called party transformations are the Digit Discarding Instructions, Called Party Transformation Mask, and Prefix Digits.

If all the calling party transformations in the route group details for a specific route group are assigned the default values, the calling party transformations of the route pattern take effect. However, if one of the calling party transformations on the route is set, the calling party transformations on the route group details take effect, instead of the ones on the route pattern.

Similarly, if all the called party transformations for the route group details for a specific route group are assigned the default values, the route pattern’s transformations apply. But if any of the called party transformations are specified on the route group details, these settings take effect instead. To prevent digit discarding instructions from taking effect, the value on the route must be <None>, not NoDigits, which causes the full dialing string to be restored.

Note that when you specify transformations on a translation pattern or route pattern, these transformations manifest both on the display of the calling IP phone and in the CDRs. Transformations in the route group details, however, do not reflect themselves on the caller’s phone or in the CDRs.

Therefore, completing the example begun in the section “Assigning Route Groups to Route Lists” requires specifying, on a route-by-route basis, the called party transformations to apply to the dialed digits.

When a user dials a local call, the user provides a seven-digit number. For the route from the route list to the route group containing gateways to the local carrier, the only transformation that CallManager needs to apply is to discard the PreDot section of the dialed number. However, for the route from the route list to the route group containing long distance gateways, CallManager must not only discard the PreDot section of the dialed number, but also prepend the local area code (for example, 972). (If different calling users can make local calls from different area codes, you must use several route lists.)

When a user dials a long distance call, the user provides an 11-digit number. For the route from the route list to the route group containing gateways to the local carrier, CallManager needs only to discard the PreDot section of the dialed number. However, for the route from the route list to the route group containing long distance gateways, CallManager must discard any leading 0 or 1, as well as the PreDot section of the dialed number. The digit discarding instruction PreDot 11D->10D accomplishes this task. Figure 2-23 presents this configuration.

Local and Long Distance Route Lists

Figure 2-23. Local and Long Distance Route Lists

QSIG and Non-QSIG Route Lists

Since the release of CallManager 3.3, CallManager has been incorporating the QSIG protocol to foster feature interoperability with other PBXs and clusters. QSIG, described more thoroughly in Chapter 4, is a framework that allows PBXs to send feature-related messages to each other, as opposed to the traditional basic call protocols that existed prior to QSIG.

Prior to CallManager 4.0, route lists could be composed of any combination of gateway protocols. However, the QSIG protocol imposes some requirements that have made the rules for intermixing gateways in route lists more complicated.

When a feature in one PBX issues a feature message such as “invoke call transfer” to another, QSIG takes into account that the message might encounter non-QSIG trunks along the signaling path. Because non-QSIG trunks don’t have the capability to carry the feature message, if the receiving PBX were to try to force the message to cross the non-QSIG span, the feature request would be lost, which would leave the issuing PBX hanging, waiting for a response.

Therefore, QSIG permits a method of operation that allows a PBX to act as a “gateway” PBX. Essentially, the receiving PBX acts as a proxy for the true recipient of the message, which is isolated behind a non-QSIG trunk.

Sometimes, important QSIG messages take place over an actual call SETUP message. SETUP messages contain the digits that enable PBXs to locate a final destination. PBXs are expected to look at the target of the SETUP and determine whether the SETUP is targeted at something local, such as a phone, or if the SETUP is supposed to transit to another PBX. If the SETUP needs to transit, the action of the receiving PBX depends on whether the transit link is QSIG or non-QSIG. If the transit link is QSIG, the PBX simply forwards the QSIG message, but if the transit link is non-QSIG, the PBX needs to operate in “gateway” mode.

Route lists pose a problem for this QSIG behavior. The function of a route list is to find an available gateway, but route lists do this by actually offering the call to the gateway. This puts CallManager in a Catch-22. If the gateway that is to be selected turns out to not be QSIG-capable, CallManager should have operated in gateway mode, but, because the call has been offered, it’s too late to do so. If, instead, CallManager arbitrarily decides to operate in gateway mode, some feature transparency will be lost any time a SETUP ends up selecting a route list.

Because this limitation was fairly severe, the CallManager team worked hard to figure out a way to relax the restriction. Some complex internal code permits CallManager to mix certain types of QSIG and non-QSIG gateways—namely, QSIG gateways can be freely intermingled with non- QSIG SCCP and MGCP gateways. However, QSIG gateways cannot be intermingled with H.323 gateways.

With MGCP and SCCP gateways, CallManager understands much more clearly what the state of the calls are on those gateways. As a result, when receiving a QSIG message in a SETUP, CallManager can scout ahead to determine whether a QSIG or a non-QSIG span will actually select the call. Using this information, CallManager can decide whether to act as a gateway PBX for the message. Unfortunately, H.323 gateways are more self-contained—CallManager cannot even see what circuit-switched interfaces are hooked up to them, much less whether any resources are left on those gateways. Therefore, when deploying QSIG in your network, limiting your gateway deployments to MGCP or SCCP gateways can help ensure that you get the routing flexibility of route lists and the feature transparency of QSIG.

Calling Search Spaces and Partitions

This section discusses calling search spaces and partitions, a powerful but complex pair of mechanisms by which you can customize dialing restrictions for individual users. Calling search spaces and partitions allow you to administer such policies as routing by geographic location, routing for multiple tenants, and routing by security level of calling user.

The need to configure routing by geographic location occurs because of the nature of VoIP telephony. In an IP network, the location of the endpoints is largely irrelevant. A computer in a cubicle in the United States can connect to a computer in the United Kingdom as easily as it can connect to the computer in the neighboring cubicle. Furthermore, large enterprises can and do interconnect all of their geographically distributed sites so that everyone can access the same data applications. As a result, CallManager must take into account the fact that two phones controlled by one CallManager may reside in different locations. When one user dials an emergency number, the emergency call may need to route to a different gateway than when a different user dials the same emergency number. In addition, having IP connectivity among all of your enterprise’s sites permits you to take advantage of toll restriction. Toll restriction is a process by which your enterprise can save money by avoiding routing calls over the PSTN when the endpoints involved in the call are connected by your private data network.

The need to configure routing by organization occurs because you can control devices owned by different companies or departments within a single company using a single CallManager. Perhaps you are an engineer, and your neighbor is in marketing. Because an engineer is likely to require complex computer software packages on the computer, and a marketer is more likely to run standard software, different IS departments might maintain your computers. Customizing call routing by the organization to which a user belongs allows you to set up a common help desk number that users can call when they encounter computer difficulties, but to route those calls to different departments. Taken to an extreme, one CallManager could serve members of completely different companies with completely independent route plans, a configuration termed multitenant or IP Centrex.

The need to configure routing by security level of calling user occurs because you need to prevent unauthorized users from placing calls that cost your enterprise money. For example, executives within your enterprise might need to make international calls, while office personnel within your enterprise need to be limited to only national numbers, and lobby phones need to be limited to emergency services and internal extensions.

This section contains the following subsections:

Calling Search Space and Partitions Analogy

Calling search spaces and partitions allow you to configure individualized call routing, because they restrict the route patterns that CallManager can access on behalf of a calling user. When seeking a match for a calling user’s dialed number, CallManager restricts its search to only those route patterns that reside in the partitions that are listed in the calling user’s calling search space. The following example serves as an analogy that might help explain calling search spaces and partitions.

Figure 2-24 depicts two people, Rita and Dave. Rita wants to call Dave.

Calling Search Space and Partition Analogy

Figure 2-24. Calling Search Space and Partition Analogy

For Dave to be called, he must have a phone number. Furthermore, if he wants people to call him, he needs to list his number in a directory. Assume Dave lists his number in the local white pages. (Although in real life, Dave could list his number in multiple directories, for purposes of this analogy, he can choose only one directory in which to list his number.) To call Dave, Rita needs to know his number. Rita looks for Dave’s number by searching through any directories to which she has access.

If she owns the local yellow pages, her little black book, and a copy of the local white pages, when she looks for Dave’s number, she finds it in the local white pages. Knowing it, she can dial it, and Dave’s phone rings. Lacking the white pages, however, she is unable to call Dave, because none of the directories she owns lists his number.

The directory in which Dave lists his number is equivalent to the partition in which you list a route pattern, while the list of directories that Rita looks through to find Dave’s number is equivalent to the calling search space you assign to calling devices.

Using calling search spaces and partitions allows you to give each device in your network a different picture of the routing landscape. As a result, you can configure your network so that when different users dial the same digit string, CallManager selects different destinations. This ability allows you to solve problems when your users are geographically dispersed, have different calling privileges, and belong to different organizations with independent dial plans. The section “Case Studies” discusses some complex configurations that use calling search spaces and partitions, but first, the section “Calling Search Space and Partition Operation” describes the basics.

Calling Search Space and Partition Operation

Partitions divide the set of all route patterns into subsets of equally reachable destinations. Equally reachable means that a user who can call any single member of the subset can call all members of the subset.

A partition is simply a name you choose to identify a subset. For example, if you need a subset to contain the directory numbers of all user devices in your company (for example, Company ABC), you can create a partition named after your company (“ABC”) and then assign the partition to all directory numbers in your system. Any user who can call one of the stations in partition “ABC” can call any of the stations in partition “ABC.”

Devices to which you do not assign a partition belong to the <None> or null partition. Assigning a route pattern to the null partition makes its address visible to every device in the system.

A partition is an attribute of an address. It belongs to called entities; it has no bearing on who a device can call. Membership in a partition does not automatically mean that a device can call other devices in the partition. The list of partitions in a device’s calling search space is the sole dictator of who it can call.

Partition assignment exists virtually everywhere in CallManager where you assign an address: route patterns, translation patterns, directory numbers, in addition to Meet-Me conference numbers, call park numbers, and so on.

Assigning partitions to addresses is not sufficient in itself to allow you to impose dialing restrictions. Partitions merely divide the global address space into meaningful subsets. After assigning partitions, you must assign calling search spaces to your calling users.

A calling search space is nothing more than an ordered list of partitions. A device’s calling search space determines the partitions in which it is allowed to look when resolving dialed digit strings to called destinations. Calling search spaces implicitly include the null partition as the last (and thus lowest priority) partition in the list.

Calling search spaces belong to calling entities. Naturally, this includes stations and gateways. However, it also includes the CTI interface, which can redirect incoming calls, and call forward, which originates new calls on behalf of a called destination.

Calling search spaces are ordered. However, when analyzing a dialed digit string, the call routing component looks through every partition in the calling search space (including the null partition). Even if the call routing component finds a match in the middle of the routing analysis, closest match routing rules (see the section “Example 2—Closest Match Routing”) apply. CallManager seeks the closest match among all the partitions listed, even if the closest match exists in the last partition in a calling search space.

For example, assume that route pattern 1XXX exists in partition A, and the route pattern 1000 exists in partition B. A device with a calling search space that starts with partition A and ends with partition B dials 1000. CallManager extends the call to the device with route pattern 1000, even though 1XXX both matches the dialed number and precedes partition B in the device’s calling search space.

Calling search space order comes into play only if two or more partitions contain addresses that match equally closely. In such a case, the call routing component selects the destination from the first partition among the partitions containing a match for the dialed digit string. To put it another way, CallManager uses the order of partitions in a calling search space only to break ties.

The rest of this subsection covers the following topics:

Calling Search Space and Partitions Example

A multiple-tenant installation provides the clearest illustration of how calling search spaces and partitions work. In a multiple-tenant environment, one CallManager or CallManager cluster that a single service provider administers serves two independent organizations, each with its own numbering plan. The numbering ranges for each organization may be completely isolated from each other.

Figure 2-25 presents a simple multiple-tenant configuration that demonstrates two calls, one that succeeds and one that fails. Company ABC has a station with directory number 1000 and a station with directory number 2000. Company XYZ has a station with directory number 1000 and a station with directory number 3000. Users in Company ABC can call each other but not the users in Company XYZ and vice versa.

Multiple-Tenant Example

Figure 2-25. Multiple-Tenant Example

In CallManager, no address is complete unless it consists of both a route pattern and a partition. (Keep in mind that all destinations—directory numbers, call park numbers, Meet-Me conference numbers—are route patterns.) The previous paragraph, therefore, commits an egregious error in omitting that the partition is associated with the directory numbers. If the partition is equivalent to the directory in which one lists a number, it seems reasonable to list Company ABC’s directory numbers in partition ABC and Company XYZ’s directory numbers in partition XYZ. Above all, the stations with directory number 1000 must be listed in different partitions. If you list them in the same directory, they represent a shared line appearance.

Simply setting up the partitions is not enough to complete the routing setup. You must assign each station a calling search space. Because the stations in Company ABC must be able to call other stations in Company ABC, assign them a calling search space that includes partition ABC but not partition XYZ. Assign stations in Company XYZ a calling search space that includes partition XYZ but not ABC.

When the user at directory number 2000 dials 1000, the call routing component looks through the partitions listed in the calling search space to find a match. Because directory number 2000’s calling search space contains only partition ABC, the call routing component finds the directory number 1000 in Company ABC. If, on the other hand, the user dials 3000, the call routing component does not find it, and the caller hears reorder tone.

Figure 2-26 presents a modification of the multiple-tenant example. Once again, it shows two calls. In this example, users in Company ABC can call not only other Company ABC users, but also Company XYZ users. Users in Company XYZ can still call only Company XYZ users.

Revised Multiple-Tenant Example

Figure 2-26. Revised Multiple-Tenant Example

To accomplish this task, the calling search space that users in Company ABC use includes both partition ABC and XYZ. Assume partition ABC is first in the calling search space.

Now, when the user at directory number 2000 dials 1000, the call routing component finds matching route patterns in both partition ABC and XYZ. Because the matches are equal, CallManager still routes the call to the user at directory number 1000 in Company ABC. However, if the user at directory number 2000 dials 3000, the call routing component finds the matching route pattern in partition XYZ and offers a call to the associated destination.

Figure 2-27 revises the example yet again to illustrate closest match routing. Again, the example shows two calls. Assume that the route pattern 3XXX provides Company ABC users access to a PBX through a voice gateway. Because only Company ABC users can dial to the PBX, the route pattern 3XXX is listed in partition ABC.

Revised Multiple-Tenant Example

Figure 2-27. Revised Multiple-Tenant Example

When the user dials directory number 3001, CallManager extends the call to the voice gateway. However, when the user at directory number 2000 dials 3000, the call routes to the user in Company XYZ instead of routing to the PBX, even though the caller’s calling search space lists partition ABC before partition XYZ. This behavior occurs because CallManager searches through every listed partition when analyzing dialed digits. Regardless of the order of the partitions in a calling search space, CallManager always delivers a call to the device with the closest matching route pattern.

Calling Search Spaces on Line and on Station

A common question is “Why does a calling search space exist on both the Directory Number Configuration page and the Phone Configuration page, and which one should I configure?”

A calling search space exists on the Phone Configuration page so that different stations with the same line appearance can route differently. Because CallManager servers can serve stations that are in different Local Access and Transport Areas (LATA), CallManager must provide a mechanism for routing each station’s calls differently. For example, emergency calls from a station in San Jose must route to the San Jose PSTN, even if the San Jose station shares a line appearance with a Dallas station (whose emergency calls must route to the Dallas PSTN).

A calling search space exists on the Directory Number Configuration page so that different line appearances on a station can route differently. The justification for this configuration is a little more strained. One application is for a security guard desk in a multiple-tenant installation. Because different tenants might have phones with identical directory numbers, the security desk needs to be able to place calls to any tenant. As the example in the section “Calling Search Space and Partitions Example” illustrates, calling search space order causes the call routing component to choose from among equal matches to a dialed digit string.

One approach for dealing with the problem is to give the security guard’s phone multiple line appearances. When calling one tenant, the guard uses one line appearance; when calling the other, the guard uses the other. If the guard’s calling search space was associated solely with the station, such a configuration still would not work. As a result, to have calls from a single station route differently, calling search spaces must also be associated with a line appearance.

If you configure calling search spaces for both a station and a line, CallManager uses both calling search spaces to analyze a dialed digit string. The calling search space associated with the line takes priority when equal matches exist in the station and line calling search spaces.

Call Forwarding Calling Search Spaces

The call forwarding search spaces defined on the Directory Number Configuration page have some interesting effects. The Directory Number Configuration page defines seven fields that let you set calling search spaces associated with call forwarding:

  • Call Forward All Calling Search Space

  • Call Forward Busy Calling Search Space (internal and external)

  • Call Forward No Answer Calling Search Space (internal and external)

  • Call Forward No Coverage Calling Search Space (internal and external)

Using these fields, you can forward a user’s calls to destinations the user could not normally call directly. Conversely, you can prevent the user from forwarding calls to certain destinations, even if the user could normally dial such destinations directly. For instance, using call forwarding search spaces, you can prevent a user from forwarding a phone to long distance or international destinations. This sort of configuration prevents a toll-fraud scenario, by which a user call forwards a phone to an international destination and then calls the office phone from home to make a free (to the user but not to your enterprise) long distance call.

The call forward busy and call forward no answer calling search spaces you define always take effect. In particular, when you set the call forward busy or call forward no answer calling search space to <None>, CallManager grants the forwarding phone access to only the null partition. The call forward all calling search space operates differently.

If you define a call forward all calling search space other than <None>, it always takes effect. However, if you leave the call forward all calling search space set to <None>, when the user forwards the phone from the phone itself or from the user configuration pages, the calling search space that CallManager uses for the call forward is the calling search space that the user uses when placing direct calls.

This behavior allows a user who shares line appearances in different geographical locations (perhaps because the user travels regularly from one location to the other) to forward the phone according to the appropriate geographic location.

While the calling search spaces associated with the seven different call forwarding settings define which partitions CallManager should use to resolve the forward destination, you can specify the actual forward destination in one of two fields:

  • The Coverage/Destination field is the more straightforward. If you enter digit strings in these fields and do not check the associated Voice Mail check box, CallManager resolves these digits against the corresponding call forward calling search space to determine which destination to route the call to.

  • CallManager, however, also allows you to specifically forward the call to voice mail by checking the Voice Mail check box for a particular forwarding type. The following section, which discusses CallManager’s treatment of voice mail, provides more information about this setting.

Calling Search Spaces Interaction with Unified Messaging Systems

Unified messaging systems provide a place where you can centralize your enterprise’s data communications. At a minimum, such systems handle the integration of voice mail, e-mail, and fax information. CallManager’s direct interaction with such systems is in the voice mail domain. CallManager interacts with unified messaging systems using the following types of interfaces:

  • SCCP—Used by unified messaging systems such as Cisco Unity

  • Analog gateways managed through a Simple Message Desk Interface (SMDI)—Used by most legacy voice mail systems

  • QSIG—Used by PBXs or other CallManagers that host a voice mail system and that connect to CallManager over a QSIG digital interface

  • JTAPI—Used by voice mail systems that connect to CallManager using an application interface

All types of unified messaging systems interact with CallManager in essentially the same manner. That is, the nature of the communication between the systems can be boiled down to the following dialog:

  • When CallManager offers a call to a unified messaging system, the unified messaging system needs to know to which voice mailbox to redirect the call.

  • When a caller has left a message in a voice mailbox, or when a voice mail user deletes all pending messages, CallManager needs to receive a notification from the unified messaging system about which device to notify about the status of pending messages.

The lingua franca of this communication is through directory numbers (from CallManager’s point of view) or mailbox numbers (from the unified messaging system’s point of view). That is, CallManager delivers a call to a unified messaging system, CallManager provides a mailbox number, and when the unified messaging system delivers a voice mail notification message, the unified messaging system delivers the directory number of the device that should be notified of pending messages. Whether you call it a directory number or a mailbox number, the information the two systems share is simply a number.

CallManager, however, does not deal in bare numbers. Every route pattern and directory number in CallManager’s configuration resides in a partition (even if that partition is set to <None>), and when routing calls, CallManager uses the calling search space of the calling device.

Unified messaging systems do not understand calling search spaces and partitions, so CallManager must maintain a calling search space on behalf of the unified messaging system to properly route the message waiting indication. Furthermore, when CallManager has overlapping extensions, as in the case of multitenant installations, it is sometimes necessary to perform number translation to ensure both that messages from two different users do not end up in the same voice mailbox, and that CallManager delivers message waiting notifications to the correct users.

This section covers the following topics:

About Cisco Messaging Interface (CMI)

Many traditional unified messaging systems connect to CallManager by SMDI. SMDI is a standard protocol specifically designed to permit different telephone systems to integrate with voice mail systems. It uses an RS-232 interface between a telephone system and a voice mail system to communicate information between the systems.

SMDI provides three types of messages:

  • Messages about calls from the telephone system to the voice mail system. These messages include the voice messaging box number, whether the call is direct or forwarded, and trunk interface over which the telephone system presents the call.

  • Message waiting indications from the voice mail system to the telephone system.

  • Error messages between the systems.

CallManager connects to voice messaging systems with the help of the CMI service. The CMI service observes calls from CallManager to a voice mail system and manages the RS-232 SMDI interface between CallManager and the legacy voice mail system.

Figure 2-28 presents a typical connection between CMI and CallManager. When CallManager offers a call to the gateway to the voice mail system, CMI sends an SMDI message to the voice mail system that tells the voice mail system to associate the incoming call with a particular voice messaging box. When the calling user leaves a voice message, the voice mail system, in turn, sends an SMDI message to CMI, which tells CallManager to set the message waiting indicator on the appropriate phone.

SMDI Interaction Between CallManager and a Legacy Voice Mail System

Figure 2-28. SMDI Interaction Between CallManager and a Legacy Voice Mail System

CMI has several service parameters that must be set properly in order to function. CallManager user documentation describes these parameters, but Table 2-51 summarizes the ones that are inextricably intertwined with CallManager call routing settings.

Table 2-51. CMI Service Parameters Related to CallManager Routing Settings

CMI Service Parameter

Description

Message Waiting Indicator Calling Search Space

The calling search space that CMI should use when telling CallManager to set a phone’s message waiting indicator

Voice Mail DN

The directory number (or route pattern) associated with the voice mail system

Voice Mail Partition

The partition associated with the voice mail system

About Non-SMDI-Based Unified Messaging Systems

Unified messaging systems that use SCCP or H.323 interact directly with CallManager. They do not rely on the CMI service or an RS-232 connection. Rather, when CallManager offers a call to these systems, the call setup message directly provides them with the information that they need to deliver the voice message.

When non-RS-232-based voice messaging systems need to set a message waiting indicator for a particular phone, they do it in a rather unusual manner. CallManager includes a message waiting feature that unified message systems can access by dialing numbers you configure in CallManager Administration (Feature > Voice Mail > Message Waiting).

When a voice messaging system needs to set a message waiting indicator, it calls either the message waiting on or message waiting off directory number and provides the directory number of the phone whose message waiting indicator should change as the calling number.

Message waiting numbers are patterns like other dialable addresses and thus belong in partitions. When configuring a message waiting number, the calling search space of the calling voice mail system needs to contain the partition of the message waiting on or message waiting off number.

Message waiting numbers have their own search spaces. CallManager uses the calling search space that you associate with the message waiting numbers to locate the Cisco IP Phones for which you want to leave a message waiting indicator; therefore, the calling search space for the message waiting number should contain the partition of your IP Phones (or of a translation pattern that selects your IP Phones—see the section “Message Waiting Indicator”).

CallManager service parameters control several settings related to voice messaging. Table 2-52 lists these settings.

Table 2-52. CallManager Service Parameters Related to Voice Messaging

CallManager Service Parameter

Description

Multiple Tenant MWI Modes

When set to True, this setting permits you to use translation patterns to convert voice messaging box numbers back into directory numbers when a voice mail system issues a command to set a message waiting indicator. It defaults to False. The section “Message waiting Indicator” explains this function in more detail.

Delivering the Correct Mailbox Number to Unified Messaging

In CallManager 4.1, you configure voice mail information for an endpoint by building a voice mail profile (Feature > Voice Mail > Voice Mail Profile) and associating it with the endpoint on the Directory Number Configuration page.

Voice mail profiles consist of several pieces of information:

  • A voice mail pilot describes the primary address to which you have associated voice mail. Voice mail pilots contain two primary pieces of information, a voice mail pilot number and a calling search space. The voice mail pilot number represents the pattern that you have assigned to the voice mail system, and the calling search space includes the partition that you have assigned to the pattern that includes the voice mail system.

    The voice mail pilot can represent a variety of destinations. For instance, with QSIG-based voice mail, the pilot number can represent but a single gateway. With SCCP-based voice mail systems such as Cisco Unity, this pilot number can represent a hunt list containing the individual Unity voice mail ports. With legacy voice mail systems connected via Cisco MGCP gateways, this pilot number can point to a route list that selects one or more MGCP gateways that connect to the voice mail system.

    When you configure a voice mail pilot, you are not actually defining the routing construct needed to route the call to the actual voice mail system. For example, if you have Cisco Unity voice mail, you must still configure a hunt list containing individual voice mail ports.

    Instead, consider the voice mail pilot as a call forwarding destination; when CallManager determines that the call must go to voice mail, it directs the call to the number you configure using the associated calling search space. For the call to be processed properly, you must configure the destination (a hunt pilot or route pattern) that will handle the call).

    In fact, the voice mail pilot is very much like a forwarding destination. When you check the Voice Mail check box by the Forward All, Forward No Answer Internal, Forward No Answer External, Forward Busy Internal, Forward Busy External, Forward No Coverage Internal, and Forward No Coverage External settings, the destination to which CallManager forwards the call and the calling search space that CallManager uses to forward the call is not that on the Directory Number Configuration page. Instead, the destination is the voice mail pilot and voice mail calling search space you configure in the voice mail profile assigned to the line.

    CallManager also uses the voice mail pilot as the target called when IP Phone users press their messages button.

  • A voice mailbox mask, which CallManager combines with the directory number with which you have associated the voice mail profile. For instance, if you configure a voice mailbox mask of 972813XXXX in a profile, when you associate the voice mail profile with directory number 5123, CallManager provides the voice mailbox number 9728135123 to the voice mail system. If you do not specify a voice mailbox mask, CallManager simply provides the directory number as the voice mailbox number.

Not all unified messaging systems handle the voice message box number. The following list describes how CallManager manages the voice message box for different types of unified messaging systems:

  • SCCP—Cisco Unity connects to CallManager using the Skinny Client Control Protocol (SCCP). When CallManager delivers a call to Cisco Unity, it provides both the directory number and voice message box of the phone that received the call. Currently, Cisco Unity determines in which voice message box to leave the caller’s message based on the directory number that CallManager provides.

  • H.323—H.323 provides information about the destination into which a unified messaging system should leave voice mail using the redirecting number information element.

    Incidentally, CallManager sets up the redirecting number information element for calls across digital gateways using the same logic. If you connect CallManager to another telephone system with a digital interface, and the other system manages the unified messaging for your enterprise, this behavior can affect the voice message box that the unified messaging receives.

    For instance, if phone 1000 calls phone 2000 controlled by CallManager, and CallManager subsequently forwards the call to the unified messaging system on the other telephone system, the redirecting number information element tells the other system that the call has previously been forwarded so that the voice messaging system can deliver any voice message to the correct voice message box. For the redirecting number, CallManager uses the voice messaging box you have configured for phone 2000, or 2000 if you have not configured a voice message box.

  • Analog gateways connected with CMI and SMDI—CMI always uses the masked voice mailbox you configure when informing a voice messaging system about a call.

  • Voice mail systems hosted by other PBXs that support QSIG interfaces—CallManager, as part of call forwarding or call transfers, communicates any configured voice mailbox to an attached PBX using application protocol data units (APDU) when forwarding takes effect. If you have not configured any voice mailbox for the forwarded phone, CallManager instead communicates the directory number of the forwarded phone.

Voice mail profiles allow you to deal with multiple-tenant configurations, because voice messaging systems do not understand calling search spaces or partitions. Without the voice message box information, CallManager can provide only the directory number of a called phone to a voice messaging system.

In a multiple-tenant configuration, two users may have the same directory number. CallManager does not provide partition information to voice messaging systems, so how can these systems decide which voice message box to deliver the voice mail message to?

They cannot. Therefore, by providing voice mail profiles, CallManager permits you to map duplicate directory numbers to unique ones (for example, the external numbers by which users in the PSTN call your enterprise).

Message Waiting Indicator

When a message is left for a user in a voice messaging system, the system tells CallManager to turn on the message waiting indicator for the user by one of the following methods:

  • The voice messaging system sends an SMDI command to CMI containing the voice message box that received a voice message to CMI.

  • The voice messaging system calls CallManager’s message waiting on and off numbers and provides as the calling number the voice message box of the phone whose message waiting indicator must be changed.

  • The voice messaging system, hosted on another PBX or CallManager, delivers a message waiting indicator to the attached PBX or CallManager, which forwards a QSIG mwActivate APDU to the CallManager node that actually hosts the phone whose indicator must be lit.

CallManager uses the number that the voice message box provides and the calling search space parameter associated with the voice mail system to locate the phone whose message waiting indicator must be changed.

For the message waiting on and off numbers, configuration requires two steps. On the voice mail port that you have configured to handle the message waiting indicator command from the voice mail system, you must configure a calling search space that contains the partition that contains the Message Waiting On and Message Waiting Off numbers. The calling search space CallManager uses for this lookup is the calling search space you configure on the voice mail port or, for CMI, the CMI service parameter Message Waiting Indicator Calling Search Space.

Upon receiving the command to light or extinguish the message waiting lamp, the Message Waiting feature needs to locate the directory number whose lamp needs to be lit or extinguished. The calling search space CallManager uses for this lookup is the calling search space you configure under the Message Waiting Configuration page.

When the voice message box and directory number are the same, this lookup locates the number of the appropriate phone. But when the voice message boxes and the directory numbers of your phones differ, as is usually the case in multitenant installations, you must use translation patterns to direct the message waiting indicator to the correct phone. Using translation patterns for this purpose requires that you set the CallManager service parameter Multiple Tenant MWI Modes to True. Figure 2-29 shows the behavior that occurs when a voice messaging system attempts to set the message waiting indicator for the phone with voice message box 9725551212. It depicts a scenario that uses the message waiting on number. The same configuration works for the SMDI method of setting the message waiting indicator.

Transforming Voice Messaging Box Numbers to Set Message Waiting Indicators

Figure 2-29. Transforming Voice Messaging Box Numbers to Set Message Waiting Indicators

The example relies on the provision of the route and translation patterns in Table 2-53.

Table 2-53. Patterns for Transforming Voice Messaging Box Numbers to Set Message Waiting Indicators

Configured Route and Translation Patterns

Comments

Partition: MessageWaiting

Translation pattern: 972813XXXX

Translation calling search space: CompanyABC

Called party transformation mask: XXXX

Translation calling search space CompanyABC contains partition CompanyABC.

Partition: CompanyABC

Route pattern: 1212

1212 is a phone with directory number 1212.

When a voice messaging system calls the message waiting on number, CallManager performs the following steps:

  1. The voice messaging system calls CallManager’s message waiting on directory number (8000) and specifies as the calling number 9725551212: the voice message box of the phone whose message waiting indicator CallManager must set.

  2. The message waiting feature takes the information about the calling device (the calling search space and calling party number) and asks the call routing component of CallManager to look up the device. You can think of this process as the message waiting feature placing a special message-waiting- indicator call in which the calling party information that the voice messaging system provides becomes the called party information for setting the message waiting indicator.

  3. The lookup matches the translation pattern 972555XXXX, because the calling party number—9725551212—becomes the called party number for the message-waiting-indicator call. CallManager applies the called party transformation mask XXXX to the number 972555XXXX to convert the called number to 1212.

  4. CallManager uses the resulting number, 1212, as the input for another analysis attempt. The calling search space CallManager uses for the analysis attempt is the calling search space of the translation pattern, Company ABC. This attempt matches the phone with directory number 1212. CallManager sets the message waiting indicator of the phone with dialed digits of 1212.

Time-of-Day Routing

CallManager 4.1 allows you to associate schedules with partitions. These schedules describe when a partition is active. Patterns that you place in active partitions can be routed to by CallManager, but when a partition becomes inactive, the patterns in that partition become “invisible,” and calls no longer route to those partitions.

Setting up time-of-day routing is a three-step process:

  1. Define a set of time periods. A time period is simply a persistent or recurring time duration. You configure time periods in the Time Period Configuration page (Route Plan > Class Of Control > Time Period).

    Time periods consist of three fields: a start time, an end time, and a repetition indicator that allows you either to specify a ranges of days of the week (such as Monday to Friday) or a specific date (such as June 25).

  2. Arrange time periods into a time schedule. A time schedule is a more complex arrangement of time periods. For instance you might arrange a time schedule that includes the following:

    • Every Monday through Friday from 08:00 to 17:00

    • December 25, all day (which you specify by indicating No Office Hours for the start and end times on that day)

    • January 1, all day

    You configure time schedules in the Time Schedule Configuration page (Route Plan > Class Of Control > Time Schedule).

  3. Associate a time schedule with a partition (Route Plan > Class Of Control > Partition). When you assign a time schedule, you have two options:

    • Allow CallManager to apply the time schedule according to the time zone of the calling device. For instance, if a given partition is active from 08:00 to 17:00 and the caller is in New York, New York callers can only reach patterns defined in the partition from 08:00 to 17:00 eastern time (GMT –05:00). However at 18:00 eastern time, the same partition would be available to callers in San Jose (GMT –08:00). You configure the time zone of the calling device in its device pool.

      You should use the time zone of the caller to control time-of-day routing when you don’t want a caller to place calls to certain destinations outside of certain specific time periods. For instance, you might not want New York callers to place calls outside of office hours.

    • Allow CallManager to apply the time schedule according to a fixed time zone. You should use a fixed time zone when you don’t want patterns to receive calls outside of certain specific time periods. For instance, if you don’t want New York phones to receive calls after office hours, you can associate a weekly time schedule of 08:00 to 17:00 and place it in the fixed time zone of GMT –05:00.

When a partition becomes unavailable due to a time zone transition, the call routing component of CallManager routes the call as if the patterns in the partition didn’t even exist. This means that unless you configure some alternate route, callers hear reorder.

Sometimes, instead of blocking the call, you might want to route the call differently. For instance, you might want to explicitly permit all outside calls during the hours of 08:00 to 17:00, but prompt users for a forced authorization code after normal working hours.

In this case, you must configure two patterns, in different partitions, with different time schedules attached. For instance, to prompt for a forced account code after normal working hours, you configure the following:

  • One time period called Workdays defining Mondays through Fridays, 08:00 to 17:00.

  • One time schedule called WorkHours containing time period Workdays.

  • One time period called BeforeHours defining Mondays through Fridays, 00:00 to 08:00.

  • One time period called AfterHours defining Mondays through Fridays 17:00 to 24:00.

  • One time period called Weekends defining Saturdays and Sundays, all day.

  • One time schedule called NonWorkHours containing time periods BeforeHours, AfterHours, and Weekends.

  • One partition called DuringHoursOutsideCalls containing the patterns that your enterprise uses to reach PSTN gateways. With this partition, you associate the caller-based time schedule WorkHours.

  • Another partition called NotDuringHoursOutsideCalls containing copies of the patterns that your enterprise uses to reach PSTN gateways. Unlike the standard route patterns, however, check the Requires Forced Authorization Code check box. (See “Forced Authorization Codes and Client Matter Codes” for more information about configuring Forced Authorization Codes.)

During work hours, partition DuringHoursOutsideCalls will be active. If a caller were to dial an outside number such as 9 1 214 555 1212, it would find its match in partition DuringHoursOutsideCalls and route to your enterprise’s PSTN gateways.

At 17:00 based on the caller’s time zone, partition DuringHoursOutsideCalls becomes inactive, but, simultaneously, partition NotDuringHoursOutsideCalls becomes active. Now number 9 1 214 555 1212 matches the pattern in the latter partition, and CallManager prompts for an account code.

QSIG Calling Search Spaces

QSIG is a protocol designed to foster feature transparency between PBXs. Chapter 4 discusses QSIG in more detail, but certain QSIG features have call routing implications.

Traditional telephony features operate via the progressive extension of call legs. For instance, if a phone on PBX 1 calls a forwarded phone on PBX 2, PBX 2 traditionally affects the call forward by simply further extending the call in the forward direction. If, say, the forward destination is an extension on PBX 1, this approach creates a hairpin. Traditional call forwarding generates one call leg from PBX 1 to PBX 2 for the original call, which turns around and heads back to PBX 1 to reach the call forwarding target.

QSIG changes this dynamic by allowing PBX 2 to issue a command to PBX 1 to cause the call forwarding to be effected from PBX 1’s point of view. This approach eliminates the hairpin, but it has call routing effects—CallManager’s call routing constructs are always concerned about routing calls forward. How do backward routing messages such as QSIG impact it?

The following subsections discuss QSIG features that perform routing-related activities.

  • Call Forward by Rerouting” discusses the QSIG forward by rerouting feature, which allows you to prevent signaling hairpins from occurring when calls forward from one PBX to another.

  • Path Replacement” discusses the QSIG path replacement feature, which allows you to remove hairpins after they develop.

Call Forward by Rerouting

Call forward by rerouting is a QSIG feature that allows you to optimize the call signaling path when a call from CallManager to a PBX forwards to some other destination or when a call from a PBX to CallManager forwards somewhere, as long as CallManager and the PBX are connected via a QSIG gateway.

By default, CallManager operates according to the QSIG forward switch model. The QSIG forward switch model is nothing other than just a traditional telephony call forwarding model where the forwarding PBX extends new call legs toward the call forward destination. The QSIG forward switch model defines QSIG messages that can allow the caller to see the identity of the new ringing destination and the called party to see that the call has been forwarded.

The forward switch model is reliable and trustworthy, but it has the drawback of creating nonoptimized signaling paths. This can most easily be seen when considering the case where a call from one PBX crosses a circuit to another PBX, which forwards the callback to the first PBX. This model creates a signaling hairpin and consumes two circuits between the PBX, even though the final call between caller and forward target need not use any circuits at all. (When the connection between the PBX and CallManager is via an IP trunk, the consequences of call hairpinning are much less, because only the call signaling hairpins—VoIP media is always directly from calling endpoint to called endpoint.)

The forward by rerouting model changes the operation of the call forwarding feature so that rather than the forwarding PBX extending a call in the forward direction, call forward sends a message along the original circuit to the calling PBX and asks it just to call the call forward target directly.

In uniform enterprise numbering plans, this doesn’t cause a problem. If you are using route codes to get from PBX to PBX, however, forwarded calls might fail. This failure can occur when the number that the forward target uses to reach the forward destination differs from the number that the caller uses to reach the forward destination.

An example that can demonstrate this problem follows. Alice is at 1000 and is served by PBX 1. Bob is at 2000 and is served by PBX 2. Carol is at 3000 also is at PBX 2. Assume that the enterprise route plan is set up so that when PBX 1 calls PBX 2, users at PBX 1 must prefix the called extension number with 888.

When Bob forwards his phone to Carol, Bob naturally enters the number that he would use to dial Carol—3000. However, if QSIG forward by rerouting triggers, then when Bob’s phone forwards, the numbering plan that the forward destination (3000) is resolved against isn’t that of PBX 2. It’s that of PBX 1, because the forward by rerouting feature is requesting PBX 1 to dial the destination. PBX 1 doesn’t have access to the numbering plan of PBX 2.

However, PBX 1 can’t reach Carol’s phone using the digits 3000—PBX 1 reaches Carol’s phone using the digits 8883000. A call that would route via forward switch is dropped when forwarding by rerouting.

The previous example, although a good demonstration of the core problem, doesn’t specifically affect CallManager. Before CallManager requests a calling PBX to attempt call forward by rerouting, it screens the forward destination that is configured. If CallManager decides that the forward destination is managed locally, CallManager uses the switch model for call forwarding, because any reroute request wouldn’t optimize the path anyway—it would just route back to CallManager.

Although CallManager is safe from the preceding example, it’s not hard to construct cases where CallManager would not be able to detect, much less prevent, the problem. The core problem occurs any time the forwarding party points to a destination that the calling party would reach with a different dial string.

This chapter has stated several times that CallManager can’t process dialed digits without having a calling search space against which to resolve the digits. When call forward by rerouting occurs, what calling search space does CallManager use?

CallManager’s standard call forwarding uses the specific calling search space that is associated with the forwarding settings for the forwarded phone. Associating a specific call forwarding search space allows you to configure phones to permit a caller to directly dial outside destinations (using the line’s and/or the device’s calling search spaces) but not to forward calls to outside destinations (because of restrictions built in to the call forwarding calling search space). This configuration can prevent a toll-fraud scenario where users forward their phones to international destinations and then call their phones from home to get free (for them) international calling.

When different users in your organization have different permissions, call forwarding by rerouting can encounter problems. For instance, assume a lobby phone served by PBX 1 only has permissions to dial internal destinations. Your phone on PBX 2 has permissions to call internal and external destinations and, furthermore, can forward to external destinations. You step away from your desk and forward incoming calls to your cell phone.

If a client attempts to reach your desk phone from the lobby, normally CallManager uses your phone’s calling search space to resolve the address and forwards the call to your cell phone. However, the QSIG protocol provides no way for PBX 2 to indicate calling search space information to PBX 1 and, furthermore, even if such a field existed, the calling search spaces of PBX 2 probably wouldn’t make any sense to PBX 1. In short, when the user in PBX 2 forwarded the call, he implicitly did so under the assumption that the routing rules of PBX 2 applied. When rerouting occurs, the call operates using PBX 1’s dial plan, which is clearly not the intent of the user served by PBX 2.

When CallManager receives a request to reroute a call, rather than use any of the permissions associated with the forwarded phone, CallManager simply uses the basic calling search space of the caller to resolve the forward target. In a dial plan with unified dialing and a standard permissions structure, using the basic calling search space of the caller can work; if your enterprise call routing plan is tricky, however, it’s probably best to ensure that the service parameter Forward By Reroute Enabled is False (which, by default, it is).

Path Replacement

While call forward by rerouting is a feature that operates specifically for the call forwarding and that prevents hairpins from forming, path replacement is a feature that operates for call forwarding and transfer and that repairs signaling hairpins after they have already formed.

Path replacement allows you to specify a time delay using the service parameters Start Path Replacement Minimum Delay Time (sec) and Start Path Replacement Maximum Delay Time (sec). After either call forwarding or call transfer is invoked and completed and if QSIG path replacement is enabled (via the Path Replacement Enabled service parameter), CallManager waits for the minimum delay time to expire and then attempts to optimize the signaling path. If one of the endpoints involved in the transfer or call forward is served by a different PBX connected to CallManager by a QSIG trunk, this request can result in a call rerouting message being sent to that PBX (or CallManager, if QSIG tunneling over H.323 is being used).

Similarly, a transfer or call forwarding attempt on a different PBX connected via a QSIG trunk might result in CallManager receiving a path replacement request from the PBX.

The same issues that plague call forwarding by rerouting when the numbering plan isn’t transparent also pose a problem for path replacement.

Path replacement takes a different tack on the problem. Because path replacement is just attempting to optimize the path from node to node after a connection has already been established, CallManager’s implementation of path replacement requires that you assign each CallManager cluster its own unique identifier (configured using the Path Replacement PINX Id service parameter). When providing another system with a number to reroute to in order to replace the path, rather than provide the address of one of the endpoints, which could be subject to dial-plan transparency issues, CallManager provides the Path Replacement PINX Id instead. When issuing the replacement call, an attached PBX will puts, as the called address, the Path Replacement PINX Id.

In turn, however, you have to make sure that the PINX Id is a valid routable number, which might require you to provision some route patterns. For instance, imagine a configuration where CallManager cluster 1 is connected to CallManager cluster 2 over a QSIG gateway and where CallManager cluster 2 is connected to a PBX over a QSIG gateway. A call exists from CallManager cluster 1 to the PBX and the PBX asks for path replacement.

In response to the request, CallManager cluster 2 must provide a routable number to the PBX. For this purpose, CallManager uses the Path Replacement PINX Id. In CallManager cluster 2, by virtue of configuring the service parameter, you define the pattern, but it’s possible that the replacement call will also route through Call Manager cluster 1. Unless you configure a specific route pattern on the cluster 1-to-cluster 2 link, the replacement call won’t be able to reach cluster 1.

Typically, the worst thing that can happen when the routing for path replacement isn’t completely configured is simply that the path won’t be replaced. The endpoints will still converse via the unoptimized path and the call won’t drop.

Case Studies

This section of the document describes how all the components described in this chapter—route patterns, route filters, calling and called party transformations, translation patterns, calling search spaces, and partitions—work together to allow you to configure complex routing.

This section covers the following topics:

  • Routing by Class of Calling User” discusses routing by class of calling user. This section shows you how to define three different degrees of external access so that your most trusted users can place all classes of calls, your average users can place a more restrictive class of calls, and your untrusted users can place only the most restrictive calls.

  • Routing by Geographic Location (or What the External Route Plan Wizard Builds)” discusses routing by geographic location in a geographically distributed area. It describes both toll restriction and scenarios where toll-restriction calls must fall back to the PSTN because of fully utilized or nonfunctional gateways.

Routing by Class of Calling User

A common requirement in telephone networks is to be able to restrict the types of calls that users can make. For example, a company executive might have unrestricted dialing privileges: emergency, local, long distance, and international calls are equally accessible. On the other hand, a phone in a lobby might be able to call only internal extensions and emergency numbers. In between these extremes are those phones that you want to prevent from accessing Caribbean area codes and toll services (such as 900 services).

Configuring calling user restrictions uses several of the concepts this chapter introduces:

  • Naturally, user restrictions require route patterns.

  • Typically, the numbers that you want to restrict are those in the PSTN. This requirement means that the call routing component must be able to distinguish between types of calls to the PSTN, which, in turn, indicates the use of route filters.

  • If you want to apply different restrictions to different users, you must use calling search spaces and partitions.

Figure 2-30 provides a representative example that you can refer to when configuring your dial plan to deny certain types of calls to certain users. It concerns itself solely with calls to the PSTN.

User Restrictions

Figure 2-30. User Restrictions

Company ABC requires three levels of outside calling privileges. Executives have no restrictions on calls they can place. Office personnel can place calls to emergency numbers, local numbers, and long distance numbers, but they cannot place international calls or calls to 900 numbers. Lobby phones can place calls only to emergency numbers.

Company ABC also has a single gateway, which employees of all levels use for outside calls. This gateway is not in a route list. The access code for calls to the PSTN is 9, and CallManager strips this access code before offering the call to the PSTN.

User-Restriction Configuration Process

The first step in configuring the user restrictions is to define route pattern and filter combinations for the different levels of PSTN access.

Executives have the simplest route pattern configuration, because they can call all PSTN numbers. The route pattern is 9.@ (which matches 9 followed by any valid number in the North American numbering plan). You must strip the initial 9 before CallManager offers the call to the gateway, so associate digit discarding instructions of PreDot with the route pattern. Assign this route pattern to partition Executives. Table 2-54 shows the route pattern configuration information for an executive’s PSTN access.

Table 2-54. Executive Access Route Pattern Information

Field

Value

Partition

Executives

Route pattern

9.@

Route filter

<None>

Digit discarding instructions

PreDot

Route This Pattern

 

Office personnel have a more complex route pattern configuration. Office personnel can call some but not all PSTN numbers. This restriction requires the use of route filters.

Office personnel cannot dial two types of numbers. The first type, international numbers, is easy to deal with. Defining the route filter NonInternationalCalls with value INTERNATIONAL-ACCESS DOES-NOT-EXIST and associating it with route pattern 9.@ instructs CallManager to route all PSTN calls that do not contain the North American international access code of 011. This route pattern is assigned to partition OfficePersonnel.

Preventing office personnel from dialing numbers with the area code 900 is trickier. Defining a route filter with value AREA-CODE == 900 does the exact opposite of what is intended: Users can dial only those PSTN numbers where the area code is 900. But there is no not-equals operator, so how does one block 900 numbers?

The solution lies in closest match routing. Rather than attempting to configure a single route pattern and filter that accomplishes all of the restrictions, you can define an additional route pattern and route filter to give restricted numbers special treatment. In this case, if you define the route filter 900Numbers with value AREA-CODE == 9XX, associate it with route pattern 9.@ in partition OfficePersonnel, and then check the Block This Pattern check box, when an office member dials a number with an area code of 900, closest match routing will cause the restrictive route pattern (9.@ where AREA-CODE == 900) to match in preference to the more general route pattern (which does not constrain AREA-CODE at all). As a result, CallManager applies the blocked treatment. Calls to other area codes, however, do not match the restrictive route pattern at all, so those calls go through just fine. Table 2-55 shows the route pattern configuration information for an office member’s PSTN access.

Table 2-55. Office Personnel Access Route Pattern Information

Field

Value

Partition

OfficePersonnel

Route pattern

9.@

Route filter

InternationalCalls (INTERNATIONAL-ACCESS DOES-NOT-EXIST)

Digit discarding instructions

PreDot

Route This Pattern

 

Partition

OfficePersonnel

Route pattern

9.@

Route filter

900Numbers (AREA-CODE == 900)

Digit discarding instructions

PreDot

Block This Pattern

 

Lobby phones have the most restrictive routing restrictions of all; they can call only 911. Defining the route filter 911Calls with value SERVICE == 911 and associating it with route pattern 9.@ instructs CallManager to route all PSTN calls that are specifically intended for 911. You must strip the initial 9 before CallManager offers the call to the gateway, so associate digit discarding instructions of PreDot with the route pattern. Assign the route pattern to partition LobbyPhones. Table 2-56 shows the route pattern configuration information for a lobby phone’s public access.

Table 2-56. Lobby Phone Access Route Pattern Information

Field

Value

Partition

LobbyPhones

Route pattern

9.@

Route filter

911Calls (SERVICE == 911)

Digit discarding instructions

PreDot

Route This Pattern

 

The configuration is not completed. Although the route patterns on the gateway have been configured properly, the calling users have not. You must define calling search spaces for the calling users. Furthermore, it is a good idea to put your phones’ extensions within their own partition. For this purpose, define partition ABC for the phones within the enterprise. Table 2-57 lists all defined partitions and a short description of the types of route patterns each contains.

Table 2-57. Partitions for User-Restriction Example

Partition Name

Description

ABC

Contains all phones within the enterprise

LobbyPhones

Contains gateway route patterns that provide access solely to emergency services

OfficePersonnel

Contains gateway route patterns that provide access to noninternational and non-900-number calls

Executive

Contains gateway route patterns that provide access to all external numbers

To complete the configuration, you must define the calling search spaces defined in Table 2-58.

Table 2-58. Calling Search Spaces for User-Restriction Example

Calling Search Space

Partitions Contained Within

Executives

ABC, Executives

OfficePersonnel

ABC, OfficePersonnel

LobbyPhones

ABC, LobbyPhones

Gateway

ABC

Calling search space Executives contains partitions ABC and Executives, which permit executive phones to call internal extensions and all PSTN numbers; calling search space OfficePersonnel contains partitions ABC and OfficePersonnel, which permits access to internal extensions and noninternational, nontoll PSTN numbers; calling search space LobbyPhones contains partitions ABC and LobbyPhones, which permits access to internal extensions and emergency PSTN numbers. Finally, it is important not to forget the gateway, which needs to be able to offer PSTN calls to the users. Calling search space Gateway provides access to internal extensions. Assigning the appropriate partition and calling search space to each phone and to the gateway completes the configuration and provides each user with the appropriate level of PSTN access. Figure 2-31 presents a representation of the final configuration.

User Restriction Configuration Diagram

Figure 2-31. User Restriction Configuration Diagram

For explanatory purposes, this section uses a naming convention for the gateway partitions designed to indicate which users can call which route patterns. The section “Routing by Geographic Location (or What the External Route Plan Wizard Builds)” presents a different naming convention that indicates type of call permitted that is more flexible in the long run.

Routing by Geographic Location (or What the External Route Plan Wizard Builds)

A major advantage of routing voice over an IP network is that it allows users served by one Local Access and Transport Area (LATA) to access gateways in a different LATA without actually having to make a call through the PSTN. This can allow you to manage the costs of your telephone network by bypassing the PSTN when possible.

The External Route Plan Wizard is an automated tool that allows you to set up a toll-bypass configuration in North America more easily. It is ideal if you have a distributed enterprise connected by a very high bandwidth, very redundant data network with gateways in different call routing areas.

The External Route Plan Wizard asks you about the locations in which your gateways reside and asks you to describe what area codes are local to each gateway. It also asks you general questions about how you want calls to be routed. Given this information, it organizes your gateways into route groups and puts the route groups into many different route lists. With each route list, the External Route Plan Wizard associates a narrow range of calls, for instance, emergency calls or international calls. Then, the External Route Plan Wizard sets up six levels of user access per routing area in your enterprise: emergency calls only; emergency and internal calls only; emergency, internal, and local calls only; emergency, internal, local and toll-bypass calls only; emergency, internal, local, and long distance calls only; all calls, including international. Once the External Route Plan Wizard finishes, you can browse to each phone in your enterprise, assign the appropriate calling search space, and expect calls from your phones to route appropriately.

The chief drawback of the External Route Plan Wizard is that it generates immense amounts of data. Each gateway in your organization gets its own route group, each location generates six route lists, and each location generates seven partitions and six calling search spaces.

This section simply describes what the External Route Plan Wizard does to set up a toll-bypass configuration. If you are unable to use the External Route Plan Wizard because you run a non-North American site, if you simply want to create a leaner, meaner version of a geographically aware routing plan, if you run a site that manages multiple tenants, or if you simply want an explanation of the prodigious output that the External Route Plan Wizard generates, then keep reading.

A toll-bypass configuration draws on almost every one of the components described in this chapter:

  • Naturally, a toll-bypass configuration requires route patterns.

  • A toll-bypass configuration requires the dial plan to be able to distinguish types of outside calling. For instance, emergency calls must route out only those gateways local to the calling user. Local calls should preferentially route out gateways local to the calling user. On the other hand, calls to other LATAs where you manage gateways need to route preferentially to those remote gateways. Finally, long distance and international calls can route out any gateway in the network. The need to distinguish between types of PSTN call requires the use of route filters.

  • When a user dials a long distance number that routes to a remote gateway, usually the number the user dialed is not a valid number when dialed from the remote gateway itself. From the user’s point of view, the number is a long distance number, so CallManager should accommodate a long distance numbering format. For instance, North American users typically dial 11 digits when dialing another geographic region. But the same destination as dialed by a user in the remote location is either seven or ten digits. Allowing the call to route properly once it reaches a remote location requires using called party transformations.

  • Calling number is also an issue when a call crosses LATA boundaries. If a user in Boston places a toll-bypass call through a gateway in Orlando, how should CallManager represent the calling number? If it presents a Boston calling number, the Orlando central office may complain, because it does not recognize the number of the caller. It is often necessary either to transform the calling number to an attendant number in the remote location or to alias the calling number to a number that is valid in the remote location. These modifications require the use of calling party transformations.

  • If locations contain more than one gateway, route lists provide a way to maximize gateway usage.

  • Users in different locations need to reach different locations, even if they dial the same digit strings. For instance, a user in Dallas who dials 911 needs to reach Dallas emergency services, while a Boston user needs to reach Boston emergency services. Giving different users different views of the same network requires the use of calling search spaces and partitions.

Geographical Routing Problem Description

Figure 2-32 provides a representative example that you can refer to when configuring your dial plan to handle geographical routing configurations.

Geographical Routing Example

Figure 2-32. Geographical Routing Example

Company ABC has two locations, one in Dallas and one in San Jose. A high-bandwidth, highly redundant IP network connects the sites. Each site runs CallManager. CallManagers are clustered. Where the devices register is not relevant for routing purposes; a San Jose phone registered to the Dallas CallManager still physically resides in San Jose and routes as a San Jose phone.

There are three levels of PSTN access. Lobby phones can dial only internal extensions and emergency numbers. Office personnel can dial local and long distance calls, in addition to internal extensions and emergency numbers. Executives can dial all of the aforementioned types of calls, plus international calls.

The San Jose site has many phones, but this example concentrates on just four phones. 30000 is the attendant (who has office member access privileges), 31000 is a lobby phone, 31100 is a office member phone, and 31200 is an executive phone. One gateway in San Jose provides access to the PSTN. The gateway is connected to the 555 exchange in the 408 area code. The PSTN has assigned a range of 5000 to 5999 to the San Jose site. For purposes of this example, users in San Jose dial seven digits to make local calls.

The Dallas site also has many phones, but this example only needs to describe four of them. 40000 is the attendant (who has office personnel access privileges), 41050 is a lobby phone, 41150 is an office member’s phone, and 41250 is an executive phone. A gateway in Dallas provides access to the PSTN. The gateway is connected to the 555 exchange in the 972 area code. The PSTN has assigned a range of 2000 to 2999 to the Dallas site. Users in Dallas dial 10 digits to make local calls.

Outbound calls route according to Table 2-59.

Table 2-59. Routing Preferences for Geographical Routing Example

Calls from San Jose...

 

...to a San Jose extension...

...route directly to the extension

...to a Dallas extension...

...route directly to the extension

...to emergency numbers...

...route out the San Jose gateway only

...to local numbers...

...route out the San Jose gateway only

...to Dallas local numbers...

...route out the Dallas gateway, but fall back to the San Jose gateway as a long distance call if the Dallas gateway is busy or not available

...to long distance numbers...

...route out the San Jose gateway, but fall back to the Dallas gateway if the San Jose gateway is busy or not available

...to international numbers...

...route out the San Jose gateway, but fall back to the Dallas gateway if the San Jose gateway is busy or not available

Calls from Dallas...

 

...to a San Jose extension...

...route directly to the extension

...to a Dallas extension...

...route directly to the extension

...to emergency numbers...

...route out the Dallas gateway only

...to local numbers...

...route out the Dallas gateway only

...to San Jose local numbers...

...route out the San Jose gateway, but fall back to the Dallas gateway as a long distance call if the San Jose gateway is busy or not available

Calls from Dallas...

 

...to long distance numbers...

...route out the Dallas gateway, but fall back to the San Jose gateway if the Dallas gateway is busy or not available

...to international numbers...

...route out the Dallas gateway, but fall back to the San Jose gateway if the Dallas gateway is busy or not available

Building a toll-bypass configuration occurs in two phases:

  • The section “Outbound Dialing” describes how to build the route groups and route lists for external access, how to create route filters for different levels of user access and routing by geographical region, how to transform the calling and called parties, and how to assign calling search spaces.

  • The section “Inbound Dialing” describes how to build translation patterns to map external phone numbers to internal extensions and how to assign calling search spaces to control the destinations inbound gateway calls can reach.

Outbound dialing

Configuring outbound dialing consists of the following steps:

Route Group and Route List Creation

This subsection describes the first step in creating a toll-bypass network: creation of the route groups and route lists that the toll-bypass network uses.

Defining the route groups is simple. One gateway provides access to the San Jose PSTN; the other provides access to the Dallas PSTN. Each needs its own route group. Assign the San Jose gateway to route group SanJoseGateways and the Dallas gateway to route group DallasGateways.

Before defining the route lists, a concept introduced in Table 2-59 must be discussed. Table 2-59 introduces a concept that the External Route Plan Wizard uses, fallback. Fallback is the process of offering a call to a less desirable gateway after all desirable gateways have been exhausted.

The External Route Plan Wizard uses three types of fallback:

  • Local call fallback is the strangest of the bunch. The External Route Plan Wizard prefers to route local calls from a given location only out gateways that reside in that location. If local call fallback is enabled, after all local gateways have been tried, CallManager routes local calls to gateways in different geographic locations. This process transforms a local call into a long distance call, potentially an expensive proposition.

  • Toll-bypass fallback is more straightforward. If a caller makes a call to a remote geographic location and CallManager can determine that a gateway in the IP network resides in that location, CallManager prefers to route calls over the IP network to the remote gateway, rather than routing calls to a local gateway that must route them through the PSTN. This process is called toll bypass, and it requires turning a long distance call into a local call. But if all remote gateways are busy or not available, toll-bypass fallback tells CallManager to go ahead and route the call out a local gateway.

  • Long distance and international fallback extends the External Route Plan Wizard’s default option for routing long distance and international calls. The External Route Plan Wizard prefers to route long distance and international calls out a gateway that is local to the calling user. Long distance and international fallback allows CallManager to try gateways in remote locations if the local gateways are busy or not available.

Table 2-59 describes toll-bypass fallback and long distance and international fallback, but not local fallback. Some calls fall back from Dallas gateways to San Jose gateways, while others fall back from San Jose gateways to Dallas gateways. Other types of calls do not fall back at all.

Each type of fallback selects route groups somewhat differently. Every time that route group selection order must vary, one must create a route list. If different routes need different transformations, more route lists may be required. Table 2-60 shows which route lists need to be created as a result of the fallback strategy.

Table 2-60. Route List Requirements

Calls from San Jose...

Description

...to emergency numbers route out the San Jose route group only

...to local numbers route out the San Jose route group only

These calls require no route-specific transformations.

Action: Create route list SanJoseLocal, which contains only the San Jose route group.

...to Dallas local numbers route out the Dallas route group, but fall back to the San Jose route group as a long distance call if the Dallas route group is busy or not available

This call requires route-specific transformations. When a user dials an 11-digit Dallas number, the call must be converted to a local call before it routes out the Dallas gateway, but if it falls back to the San Jose gateway, all 11 digits must be sent.

In addition, if a toll bypass call from a San Jose calling number routes out a Dallas gateway, it is sometimes necessary to provide a Dallas calling number so that the local carrier does not reject the call. The Dallas attendant number can serve this purpose.

Action: Create route list TollBypassToDallas, which contains the Dallas route group followed by the San Jose route group.

...to long distance numbers route out the San Jose route group, but fall back to the Dallas route group if the San Jose route group is busy or not available

...to international numbers route out the San Jose route group, but fall back to the Dallas route group if the San Jose route group is busy or not available

These calls require route-specific transformations. If a long distance call from a San Jose calling number routes out a Dallas gateway, it is sometimes necessary to provide a Dallas calling number so that the local carrier does not reject the call. The Dallas attendant number can serve this purpose.

Action: Create route list SanJoseLongDistance, which contains the San Jose route group followed by the Dallas route group.

Calls from Dallas...

Description

...to emergency numbers route out the Dallas route group only

...to local numbers route out the Dallas route group only

These calls require no route-specific transformations.

Action: Create route list DallasLocal, which contains only the Dallas route group.

...to San Jose local numbers route out the San Jose route group, but fall back to the Dallas route group as a long distance call if the San Jose route group is busy or not available

This call requires route-specific transformations. When a user dials a seven-digit San Jose number, the call must be converted to a local call before it routes out the San Jose gateway, but if it falls back to the Dallas gateway, CallManager must convert the dialed number to 11 digits to route the call across the PSTN.

In addition, if a toll bypass call from a Dallas calling number routes out a San Jose gateway, it is sometimes necessary to provide a San Jose calling number so that the local carrier does not reject the call. The San Jose attendant number can serve this purpose.

Action: Create route list TollBypassToSanJose, which contains the San Jose route group followed by the Dallas route group.

...to long distance numbers route out the Dallas route group, but fall back to the San Jose route group if the Dallas route group is busy or not available

...to international numbers route out the Dallas route group, but fall back to the San Jose route group if the Dallas route group is busy or not available

These calls require route-specific transformations. If a long distance call from a Dallas calling number routes out a San Jose gateway, it is sometimes necessary to provide a San Jose calling number so that the San Jose local carrier does not reject the call. The San Jose attendant number can serve this purpose.

Action: Create route list DallasLongDistance, which contains the Dallas route group followed by the San Jose route group.

Route Filter Creation and Route Pattern Assignment

The enterprise rules listed in Table 2-59 describe seven types of calls:

  • Emergency calls—. These are the same whether dialed from San Jose or Dallas.

  • Local calls in San Jose—. These consist of seven-digit calls to the San Jose PSTN.

  • Local calls in Dallas—. These consist of 10-digit calls to the Dallas PSTN.

  • Toll-bypass calls to Dallas—. These consist of 11-digit calls from San Jose to the Dallas area codes.

  • Toll-bypass calls to San Jose—. These consist of 11-digit calls from Dallas to the San Jose area code.

  • Long distance calls—. These are the same whether dialed from San Jose or Dallas.

  • International calls—. These are the same whether dialed from San Jose or Dallas.

Table 2-61 presents the list of route filters to create, their values, and a description of their purposes.

Table 2-61. Route Filters for Geographical Routing Example

Route Filter

Value

Description

Emergency

SERVICE EXISTS

Network services such as information (411) and emergency services (911)

SanJoseLocal

OFFICE-CODE EXISTS AND LOCAL-AREA-CODE-DOES-NOT-EXIST AND AREA-CODE DOES-NOT-EXIST

Seven-digit calls, which represent local calls in the San Jose area

DallasLocal

LOCAL-AREA-CODE == 972 OR LOCAL-AREA-CODE == 214

10-digit calls to area codes 214 and 972, which are local calls in the Dallas area

TollBypassToDallas

AREA-CODE == 972 OR AREA-CODE == 214

Long distance calls to area codes 214 and 972

TollBypassToSanJose

AREA-CODE == 408

Long distance calls to area code 408

LongDistance

AREA-CODE EXISTS

Long distance calls to area codes that no gateways in the enterprise network serve

International

INTERNATIONAL-ACCESS EXISTS

Calls to international destinations

In all cases, the route pattern is 9.@. The enterprise rules define two locations and three levels of outside calling. This argues for six different partitions for outside dialing. An additional partition can handle calls between extensions. Create the following partitions in Table 2-62.

Table 2-62. Partitions for Geographical Routing Example

Partition

Description

ABC

This partition contains the directory numbers of internal extensions.

SanJoseEmergency

This partition contains the route pattern that San Jose users access for their emergency calls.

SanJoseLocalAndLongDistance

This partition contains the route patterns that San Jose users access for local, toll-bypass, and long distance calls.

SanJoseInternational

This partition contains the route patterns that San Jose users access for international calls.

DallasEmergency

This partition contains the route pattern that Dallas users access for their emergency calls.

DallasLocalAndLongDistance

This partition contains the route patterns that Dallas users access for local, toll-bypass, and long distance calls.

DallasInternational

This partition contains the route patterns that Dallas users access for international calls.

Having created the route filters and partitions, assign the partitions, route patterns, and filters according to Table 2-63. Remember that the route lists control the gateway access order. For example, route list SanJoseLocal selects only those gateways connected directly to the San Jose PSTN, while route list DallasInternational first selects gateways connected to the Dallas PSTN, but then uses gateways connected to the San Jose PSTN if the Dallas gateways are busy or unavailable.

Table 2-63. Route Pattern and Filter to Route Lists for Geographical Routing Example

Partition

Pattern

Filter

Route List

SanJoseEmergency

9.@

Emergency

SanJoseLocal

SanJoseLocalAndLongDistance

9.@

SanJoseLocal

SanJoseLocal

SanJoseLocalAndLongDistance

9.@

TollBypassToDallas

TollBypassToDallas

SanJoseLocalAndLongDistance

9.@

LongDistance

SanJoseLongDistance

SanJoseInternational

9.@

International

SanJoseInternational

DallasEmergency

9.@

Emergency

DallasLocal

DallasLocalAndLongDistance

9.@

DallasLocal

DallasLocal

DallasLocalAndLongDistance

9.@

TollBypassToSanJose

TollBypassToSanJose

DallasLocalAndLongDistance

9.@

LongDistance

DallasLongDistance

DallasInternational

9.@

International

DallasInternational

Applying Calling and Called Party Transformations

Having defined the route lists and assigned the route patterns and filters, you must handle route-specific and non-route-specific transformations. Table 2-60 describes which routes require route-specific transformations.

Assign non-route-specific digit discarding instructions according to Table 2-64. Non-route-specific digit discarding instructions belong directly on the route pattern.

Table 2-64. Non-Route-Specific Transformations

Partition

Route Pattern

Route Filter

Digit Discarding Instruction

SanJoseEmergency

9.@

SERVICE EXISTS

PreDot

SanJoseLocal

9.@

OFFICE-CODE EXISTS AND LOCAL-AREA-CODE-DOES-NOT-EXIST AND AREA-CODE DOES-NOT-EXIST

PreDot

DallasEmergency

9.@

SERVICE EXISTS

PreDot

DallasLocal

9.@

AREA-CODE == 972 OR AREA-CODE ==214

PreDot

Assign route-specific called party transformations according to Table 2-65. To assign route-specific called party transformations, click specific route groups within the context of a given route list.

Table 2-65. Route-Specific Transformations

Route List

Route Group

Digit Discarding Instructions

Calling Party Transform Mask

Use External Phone Number Mask

TollBypassToDallas

DallasGateways

PreDot 11D->10D

972 555 0000

No

TollBypassToDallas

SanJoseGateways

PreDot

 

Yes

TollBypassToSanJose

SanJoseGateways

PreDot 11D->7D

408 555 0000

No

TollBypassToSanJose

DallasGateways

PreDot

 

Yes

SanJoseLongDistance

SanJoseGateways

PreDot

 

Yes

SanJoseLongDistance

DallasGateways

PreDot

972 555 0000

No

DallasLongDistance

DallasGateways

PreDot

 

Yes

DallasLongDistance

SanJoseGateways

PreDot

408 555 0000

No

Calling Search Space Creation, Calling Search Space Assignment, and Phone Configuration

This final stage is simple. You must create the calling search spaces and then assign them to the calling devices. With two locations and three levels of external access, you require six calling search spaces. Create calling search spaces according to Table 2-66.

Table 2-66. Outbound Calling Search Spaces for Geographical Routing Example

Calling Search Space

Contains Partitions

Description

SanJoseLobbyPhone

ABC, SanJoseEmergency

Provides access to internal extensions and PSTN services only

SanJoseOfficePersonnel

ABC, SanJoseEmergency, SanJoseLocalAndLongDistance

Provides access to internal extensions, PSTN services, and local, toll-bypass, and long distance calls

SanJoseManager

ABC, SanJoseEmergency, SanJoseLocalAndLongDistance, SanJoseInternational

Provides access to internal extensions and all PSTN numbers

DallasLobbyPhone

ABC, DallasEmergency

Provides access to internal extensions and PSTN services only

DallasOfficePersonnel

ABC, DallasEmergency, DallasLocalAndLongDistance

Provides access to internal extensions, PSTN services, and local, toll-bypass, and long distance calls

DallasManager

ABC, DallasEmergency, DallasLocalAndLongDistance, DallasInternational

Provides access to internal extensions and all PSTN numbers

After defining the calling search spaces, assign them according to Table 2-67. External phone number masks result from the exchange number and phone number range the phone company has assigned Company ABC in San Jose and Dallas. Finally, assign directory numbers for all phones to partition ABC.

Table 2-67. Assignment of Calling Search Spaces

Extension

Calling Search Space

External Phone Number Mask

San Jose Phones

  

30000

SanJoseOfficePersonnel

408 555 5XXX

31000

SanJoseLobbyPhone

408 555 5XXX

31100

SanJoseOfficePersonnel

408 555 5XXX

31200

SanJoseManager

408 555 5XXX

Dallas Phones

  

40000

DallasOfficePersonnel

972 555 2XXX

41050

DallasLobbyPhone

972 555 2XXX

41150

DallasOfficePersonnel

972 555 2XXX

41250

DallasManager

972 555 2XXX

Inbound Dialing

For inbound dialing in a toll-bypass scenario, it is theoretically possible to have a phone be reachable by inbound dialing from any gateway in any geographical location. Such a configuration means that every internal number would have several external phone numbers. For example, if station 41050 were dialable from the San Jose gateway, in addition to 41050’s Dallas address of 972 555 2050, 41050 would also have a San Jose external address of 408 555 5050. This type of configuration would very quickly consume any spare numbers you bought from the PSTN, and would be rather cumbersome to implement.

As a result, this example concerns itself with making Dallas extensions available from Dallas gateways and San Jose extensions available from San Jose gateways. This problem is therefore not truly related to a toll-bypass configuration, but it does provide some guidance for inbound dialing.

Inbound dialing configuration consists of performing the tasks in the following sections:

Define Translation Patterns

Although this example permits the use of gateway called party transformations to convert an inbound phone number to an extension number, configuring the map using translation patterns saves some reconfiguration effort if you ever purchase another phone number range from the phone company.

San Jose gateways and Dallas gateways need individualized translation patterns. Define the translation patterns defined in Table 2-68.

Table 2-68. Translation Patterns

Partition

Translation Pattern

Translation Partition

Called Party Transformation Mask

SanJoseTranslations

408 555 5XXX

ABC

31XXX

DallasTranslations

972 555 2XXX

ABC

41XXX

Define and Assign Inbound Calling Search Spaces

After defining the translation patterns, you must create calling search spaces and assign them to the gateways. Create the calling search spaces Table 2-69.

Table 2-69. Inbound Calling Search Spaces for Geographical Routing Example

Calling Search Space

Contains Partitions

Description

SanJoseTranslations

SanJoseTranslations

Provides access to the extension mapping tables when the PSTN offers calls to CallManager over San Jose gateways

DallasTranslations

DallasTranslations

Provides access to the extension mapping tables when the PSTN offers calls to CallManager over Dallas gateways

Assign calling search space SanJoseTranslations to the San Jose gateway and calling search space DallasTranslations to the Dallas gateway.

Note that calling search spaces and partitions, when assigned this way, prevent tandem calls from one gateway to another. However, users can transfer or forward (unless you are also using call forward calling search spaces) inbound calls out gateways.

Geographical Routing Summary

Although configuring CallManager for geographical routing requires a complex configuration, the complexity stems from the fact that the call routing tasks CallManager must perform are themselves complex.

Configuring geographical routing requires the following steps:

  1. Think about the users in your network and how you want CallManager to treat their calls. What types of calls are permitted? Do you want toll restriction? What types of fallback routing do you want to permit?

  2. Configure your outbound dialing:

    • Provision your gateways.

    • Define route groups to contain gateways that connect to the same network.

    • Create one route list for each unique route group search pattern that your network needs. Assign route groups to each route list appropriately.

    • Define route filters that properly describe the levels of external access you want to permit. Provide outside access by narrowly tailoring these route lists to permit just one class of external call. For instance, if your network provides two levels of outside access, national numbers and unlimited access, define one route filter that defines access to national numbers only and another that defines access to international numbers only. By providing your most privileged users access to route patterns with both route filters, you give them unlimited access.

    • Define partitions for each unique level of external access you want to provide. Define a partition for internal extensions.

    • Assign partitions, route patterns, and route filters with the appropriate route lists.

    • Set up the appropriate dialing transformations. This means using a combination of dialing transformations on the route pattern and dialing transformations on the routes themselves, when fallback or toll restriction means that certain route groups must receive a specific set of called digits.

    • Build calling search spaces for each level of external access and assign them to the phones in your enterprise.

  3. Configure your inbound dialing:

    • Define translation patterns that map the external number ranges that the PSTN assigns you to the internal ranges that your network requires.

    • Define calling search spaces for the gateways in each of your geographic locations and assign them to the gateways in these locations.

Miscellaneous Solutions

This section contains some miscellaneous solutions that did not fit well in any other section of this chapter. The solutions discussed here are as follows:

  • Insertion of Access Codes in the Placed Calls menu of Cisco IP Phones” describes how to keep a user’s dialed digit string intact so that the user can use the Dial softkey to redial previously placed calls.

  • “Automatic Rerouting of Calls when Call Admission Control Fails: describes the use of Automated Alternate Routing (AAR) to direct a caller to a different destination when there’s no bandwidth available to place a call to a branch office served by a Centralized CallManager deployment model.

  • One-to-One Station-to-Trunk Mapping” describes a common small PBX requirement, mapping calling users to specific outbound analog trunks, and vice versa.

  • Fallback Routing to Another PBX” describes a way to ease migration of users from an existing phone system to CallManager.

  • Multiple Call Appearances” describes how you can emulate a traditional PBX feature in which the same directory number appears on multiple lines.

  • Enhanced 911 Support” describes considerations for providing the proper calling number for emergency services in North America.

Insertion of Access Codes in the Placed Calls Menu of Cisco IP Phones

The Placed Calls menu of Cisco IP Phones such as 7905, 7912, 7920, 7940, 7941, 7960, 7961, 7970, and 7971 permits a user to quickly redial numbers that the user has previously dialed from the phone. However, the number that the phone stores is not always exactly the number that the user has dialed, because the phone stores the number after the call routing component has applied dialing transformations.

Typically, this means that the numbers in the Placed Calls menu lack any enterprise outside access code that you have provisioned, because the called party transformations on the route pattern usually strip off outside access codes.

Users who employ the Placed Calls menu can use the Edit Dial softkey to edit the stored number before placing the call, but users find this process cumbersome.

You can retain the access code for placed calls, however, by deferring your application of called party transformations until later in the call routing process. Instead of applying called party transformations in the Route Pattern Configuration page, assign your outbound gateways to a route group and perform the called party transformations there. This configuration hides the called party transformations from the calling phone and ensures that the Placed Calls menu contains the untransformed number. (Note, however, that the CDRs that CallManager logs will contain the access code, as well.)

Automatic Rerouting of Calls when Call Admission Control Fails

The centralized CallManager deployment model offers administrators significant benefits in that it allows them to administer branch offices of an enterprise from a single IP-PBX. This model relies on hosting all CallManagers in a central campus site and hosting only phones and local access gateways in the branch office. Through IP, the remote devices receive the call signaling and media control they need from the centralized CallManagers. Cisco Survivable Remote Site Telephony (SRST) can take control of the phones should the IP WAN fail.

Often, branch offices don’t have extraordinarily high-speed links to the main campus. As a result, the IP WAN is sometimes able to accommodate only a limited number of calls. When this is the case, the use of CallManager locations-based call admission control can ensure that you don’t oversaturate the bandwidth and degrade the voice quality of all calls traversing the link.

However, when call admission control denies a call, it’s a shame to give the caller a reorder signal when the call could potentially reach the called party via the gateway in the branch office. The Automated Alternate Routing (AAR) feature solves this problem.

AAR essentially does what a normal user might try to do upon getting a reorder signal from a call to a branch office. If a user were to hear reorder from dialing an internal directory number, the user might instead try to dial the full external number for the extension in the branch office, thus routing the call though a PSTN gateway near the caller, through the PSTN, and into a PSTN gateway near the called party. This manual dialing bypasses the network congestion.

While a user probably knows what to dial if the call to the directory number is denied—the user can look up the remote number in a directory for instance—CallManager doesn’t know unless you tell it. Therefore, the AAR feature allows you to configure a set of transformation rules that convert the internal extension number into a full E.164 number.

Configuring AAR relies upon four steps:

  1. Configuring the external phone number mask for phones in your enterprise. The external phone number mask essentially defines the raw public network number for a phone. For instance, in North America, a phone might have the number 214 555 1212 on the public network.

  2. Enterprises most often rely on external access codes to route calls to the PSTN (for example, 9 is used to route a call throughout the PSTN in most North American PBXs). As a result, prefix digits often need to be added to route the caller’s automated redial attempt out to the public network. Therefore, you must define AAR groups to define these transformation rules.

    AAR groups operate as a matrix. When a reroute is required, CallManager looks at the AAR group associated with the caller and the AAR group associated with the called party. For each unique ordered pair of groups, you define which digits must be prepended for CallManager to modify the number to something that routes to the public network. For instance, in a country with a completely uniform numbering plan, you might put all your phones and gateways in a single AAR group with the single prefix digit 9, to allow the redial call to prepend your PSTN access digit. All phones are deemed to be part of the same dialing domain when they all are addressed with the same structure on the PSTN (for example, NPA NXX XXXX in North America).

    Note

    The combination of the external phone number mask with the AAR group normalizes all AAR calls within North America to a structure of 9 1 NPA NXX XXXX, and relies on the locally significant AAR calling search spaces to adapt the string in cases where the destination is reachable using a 7-digit or 10-digit local dialing pattern. Local variations can be accommodated by the AAR calling search space of the calling device. For instance, a New York number may be called by dialing 9 1 212 555 1234 from California (in fact, from probably anywhere in North America except New York), but if the same destination is called from a phone within the same seven-digit local calling area in New York, only 9 555 1234 is required. The solution is to insert a translation pattern in the AAR calling search space of all phones within the same local seven-digit calling area: The translation pattern would need to be 91212.555XXXX, and would strip digits PreDot, followed by the prepending of 9.

    If phones are situated in different dialing domains, you must configure different AAR groups. For instance, if an enterprise has phones from the same cluster in both North America and England, a New York number might be reachable from another North American site by prepending 91 to the number contained in the external phone number mask (212 555 1234), but you might need 001 prepended to call this same number from the site in England. AAR groups allow you to define unique prepending rules for each pair of source-destination dialing domains.

  3. After you’ve configured the AAR group matrix under Route Plan > AAR Group, assign the AAR groups to the appropriate devices. Assignment of AAR groups is always on the respective device page.

  4. Because the AAR calling search space is invoked only when a call to an on-net destination has been denied by call admission control, it is okay to include toll-call route patterns even if the regular calling search space of the calling phone is not allowed toll calls. Remember that the AAR calling search space is invoked only if the original call is to an OnNet destination and that destination is part of the calling phone’s permitted destinations. A very permissive AAR calling search space does not allow for calls to unauthorized destinations resulting in toll fraud.

One-to-One Station-to-Trunk Mapping

Small PBXs associate calling stations to specific analog trunks, and vice versa. The service parameter Matching Calling Party With Attendant Flag (see the section “Dialing Transformations”) provides a quick way to ensure that a given calling station’s external calls route over a specific analog trunk.

However, if you have several analog gateways, to ensure that the calling user’s call is presented to the correct gateway, you must put all of your analog gateways in a route list to successfully use the Matching Calling Party With Attendant Flag. If you have more than a few gateways, this configuration is not efficient, because CallManager attempts to offer external calls to each analog interface one at a time until CallManager finds the analog interface with an Attendant DN that matches the calling number.

Calling search spaces and partitions offer a solution, if a cumbersome one. For inbound calls, you can use the same field as the gateways with analog interfaces do: configure the associated phone’s directory number as the Attendant DN setting for the analog port.

For external dialing, however, provision each external trunk with its own @ pattern (or other external dialing pattern) and then assign each route pattern a unique partition. A calling user includes one of the unique partitions in the calling search space, which causes the calling user’s outbound calls always to route to one specific trunk.

For example, assume you have two users, Alice, with directory number 1000, and Bill, with directory number 2000. In addition, you have an MGCP gateway with two loop start trunks. Inbound calls from the first trunk route to Alice, and Alice’s outbound calls route out the first trunk. Inbound calls from the second trunk route to Bill, and Bill’s outbound calls route out the second trunk.

To route the inbound calls correctly, you must simply assign Alice’s directory number (1000) as the Attendant DN of the first port and Bill’s directory number (2000) as the Attendant DN of the second port.

Routing outbound calls requires that you use calling search spaces and partitions. Create two partitions, CallsFromAlice and CallsFromBill. Create the route pattern 9.@ in partition CallsFromAlice and associate it with the first trunk. Then create the route pattern 9.@ in partition CallsFromBill and associate it with the second trunk. Finally, assign Alice a calling search space that includes partition CallsFromAlice and assign Bill a calling search space that includes partition CallsFromBill.

When Alice dials an external number such as 9 1 408 555 1212, her dialed digit string matches the 9.@ pattern associated with the first trunk, because her analysis request can only see the route patterns defined in partition CallsFromAlice. On the other hand, when Bill dials an external number, his dialed digit string matches the 9.@ pattern associated with the second trunk. Figure 2-33 presents this behavior.

One-to-One Trunk-to-Station Mapping

Figure 2-33. One-to-One Trunk-to-Station Mapping

Fallback Routing to Another PBX

If you migrate users from another telephone system to CallManager, which is connected to the other telephone system by a gateway, you might want to maintain the directory numbers of those users who have moved.

When you migrate users from one system to another, directory numbers within a directory number range are often spread between both systems. For example, if your directory number range is 8000 to 8999, CallManager might serve directory numbers 8101, 8301, and 8425, while the other telephone system serves all other extensions in the range.

Maintaining the routing between the two systems would be a very difficult task if you had to enter all of the extensions that the other phone system manages into the CallManager database one by one.

Using closest match routing, you can define a pattern, such as 8XXX, on the gateway to the other system. When a user that CallManager serves dials an extension that CallManager also serves, closest match routing causes specific pattern to match; however, if a user dials a number that CallManager does not control, route pattern XXXX sends the call to the other system.

For example, assume CallManager serves directory numbers 8101, 8301, and 8425. Route pattern XXXX corresponds to the gateway to the other phone system. If a user dials 8101, CallManager offers the call to the phone it controls, but if a user dials 8500, CallManager routes the call to the gateway to the other phone system.

If that was all there was to it, this configuration would not deserve its own section. However, what if the other phone system does not control any phone with directory number 8500? If the other phone system is configured to route unknown directory numbers to CallManager, the two systems will play table tennis with the call. The call forwards from system to system until it consumes all trunk resources between the systems. The call clears at that point, but the situation ties up all of the trunks temporarily. If the systems are connected by nonphysical resources such as intercluster trunks, CallManager bounces the calls between the systems indefinitely.

Calling search spaces and partitions allow you to break the routing loop. If you put the fallback pattern XXXX in a partition that is not included in the gateway’s calling search space, when the other telephone system routes the outgoing call to 8500 back into CallManager, CallManager does not find any matches for the dialed number and rejects the call before the routing loop consumes all the gateway resources.

Multiple Call Appearances

Traditional PBX phones provide users with a one- or two-line display and rows of buttons next to LEDs. The limited user interface means that providing complex user features is quite a challenge.

Users of PBX phones, especially administrative assistants, require the ability to take numerous calls at a single number. In addition, users need to be able to transfer individual calls to other destinations, no matter how many calls currently terminate on the line. Traditional PBX phones accomplish this by permitting multiple appearances of the same directory number to appear on a single phone. These multiple appearances are termed call appearances. As new calls arrive at a phone with multiple call appearances, traditional PBXs offer them to unoccupied call appearances. By selecting different call appearances, a user at a phone can move from call to call and transfer individual users.

CallManager does not support multiple call appearances. If you assign a particular directory number to a line on a particular IP phone, CallManager Administration will not allow you to assign it to another line on that phone. However, using calling search spaces and partitions, you can emulate traditional call appearances very closely. Figure 2-34 shows an IP phone configured with multiple call appearances.

Multiple Call Appearances on an IP Phone

Figure 2-34. Multiple Call Appearances on an IP Phone

This functionality relies on the fact that, to CallManager, identical directory numbers in different partitions are different destinations. Because partition names do not show up on IP phone displays, to the user at 5000, it appears that there are three call appearances of directory number 5000.

Assume that you want to configure a phone with directory number 5000 with three line appearances. Create the partitions in Table 2-70.

Table 2-70. Partitions for Multiple Call Appearances

Partition

Description

Standard

Assigned to the first call appearance of the IP phone, this partition represents the partition to which you normally assign your phone users

Line2

Assigned to the second call appearance of the IP phone

Line3

Assigned to the third call appearance of the IP phone

When a call arrives for directory number 5000, if the first call appearance is busy, you want CallManager to forward the call to the second call appearance; likewise, if the second call appearance is busy, you want CallManager to forward the call to the third line appearance. Finally, if the third call appearance is busy, CallManager forwards the call to voice mail. Assume that the voice mail pilot number is 5050.

If the user is not present at the phone, CallManager rings the phone until the call forward no answer timer expires. Whether the call is ringing at the first, second, or third call appearance, if the user does not answer, CallManager should forward the call to voice mail.

Making the call forward from line appearance to line appearance means using some call forward calling search spaces. Configure the calling search spaces in Table 2-71.

Table 2-71. Calling Search Spaces for Multiple Call Appearances

Calling Search Spaces

Partitions

Description

Standard

Varies

This calling search space includes whatever partitions the users need to place their day-to-day calls. At the very least, this calling search space typically includes the ability to call other internal extensions, emergency services, and voice mail.

Line2

Line2

This calling search space permits a user to call any call appearance assigned to the Line2 partition.

Line3

Line3

This calling search space permits a user to call any call appearance assigned to the Line3 partition.

Given these calling search spaces and partitions, you can configure phone 5000 according to Table 2-72.

Table 2-72. Directory Number Configuration Pages for Multiple Call Appearances

First Call Appearance

Setting

Value

Description

Directory Number

5000

 

Partition

Line1

 

Calling Search Space

Standard

Provides access to all numbers the user is permitted to dial

Call Forward Busy

Destination

Calling Search Space

Forwards the call to line 2 when line 1 is busy

 

5000

Line2

 

Call Forward No Answer

Destination

Calling Search Space

Forwards the call to voice mail when line 1 does not answer

 

5050

Standard

 

Second Call Appearance

Setting

Value

Description

Directory Number

5000

 

Partition

Line2

 

Calling Search Space

Standard

Provides access to all numbers the user is permitted to dial

Call Forward Busy

Destination

Calling Search Space

Forwards the call to line 3 when line 2 is busy

 

5000

Line3

 

Call Forward No Answer

Destination

Calling Search Space

Forwards the call to voice mail when line 2 does not answer

 

5050

Standard

 

Third Call Appearance

Setting

Value

Description

Directory Number

5000

 

Partition

Line3

 

Calling Search Space

Standard

Provides access to all numbers the user is permitted to dial

Call Forward Busy

Destination

Calling Search Space

Forwards the call to voice mail when line 3 is busy

 

5050

Standard

 

Call Forward No Answer

Destination

Calling Search Space

Forwards the call to voice mail when line 3 does not answer

 

5050

Standard

 

Enhanced 911 Support

This section describes some aspects of emergency call handling in North America, but it is by no means a complete treatise on the subject. Rather, it informs you of some of the issues you may need to consider when configuring emergency call routing for your enterprise. Furthermore, legal requirements for emergency calls differ from state to state, so the information and example configuration that this section presents may not be valid in your enterprise’s locale. At the time of this writing, at least seven states have legal requirements relating to emergency calls: Kentucky, Illinois, Mississippi, Tennessee, Texas, Vermont, and Washington.

In North America, the number for emergency services is 911. Local carriers route 911 calls to Public Safety Answering Points (PSAP). PSAPs are staffed with trained personnel and equipment that can properly handle emergency calls.

The North American PSTN treats calls to 911 very specially. Unlike other calls to the PSTN, after a call reaches the switches owned by the local carrier, calls to 911 usually route over an independent telephone network. Unlike a traditional call, the PSTN routes 911 calls based on the number of the caller, not the dialed digits. Note that different trunk interfaces deliver the calling number in different ways, and some trunk interfaces cannot deliver a calling number at all. For these latter trunk interfaces, the PSTN manages the calling number.

Users directly connected to the PSTN who dial 911 cause the local carrier to perform several database lookups when it handles the call. The piece of information that starts the lookups is the calling number of the user. Using this calling number, the local carrier looks in several databases to find the emergency service number (ESN), which indicates which PSAP needs to handle the call, and the automatic location identification (ALI), which provides a street address associated with the calling user. The PSAP informs the authorities of this address when dispatching medical, police, or fire-safety personnel to aid the caller.

Clearly, it is important to ensure that this address enables officials to actually locate the person in trouble. If your enterprise serves more than a few users, you should take special pains to ensure that the calling number you provide allows the local carrier to return an ALI that locates the caller’s position accurately; one approach is to reserve some enterprise numbers specifically for the purpose of providing a calling number for 911 calls that can identify a caller’s area to within a few thousand square feet, including building and floor number. (Having such a number is essential for extensions in your enterprise, such as lobby phones, that may not have external phone numbers.) Customizing the ALI database entry for a particular calling number typically requires that you contact the local carrier and public safety authorities.

Complicating the problem is that if the local carrier routes an emergency call to the incorrect PSAP because of incorrect calling number information, the PSAP is usually unable to redirect the call to the appropriate PSAP, because the tandem trunk networks over which 911 calls typically do not directly connect one PSAP to another.

CallManager supports basically two approaches to handling emergency calls:

  • First, you can route emergency calls to a dedicated attendant station, along with the extension number of the calling user. In turn, the attendant contacts emergency personnel, usually remaining conferenced in on the call to assist if necessary.

  • Second, you can route emergency calls directly to the local carrier by routing the call to a gateway connected to the local carrier and providing the digits 911. You must provide the appropriate calling number to the local carrier so that the carrier can route the call to the correct PSAP and provide the required ALI.

Figure 2-35 presents a small example network that demonstrates a 911 configuration. It depicts a distributed enterprise. One CallManager serves users in Dallas and in Richardson (a Dallas suburb). The enterprise has gateways connected to both the Dallas and the Richardson PSTN. Both the Dallas and the Richardson offices have an attendant whose directory number provides a good calling number to present to the PSTN for 911 calls; the attendant’s location is reasonably close to the locations of users in the branch office.

Example Network for 911 Routing

Figure 2-35. Example Network for 911 Routing

The configuration supports three types of calls to the PSTN:

  • 911 calls from Richardson users route to the gateway connected to the Richardson PSTN with the calling number of the Richardson attendant.

  • 911 calls from Dallas users route to the gateway connected to the Dallas PSTN with the calling number of the Dallas attendant.

  • All other calls route to the Dallas gateway first and to the Richardson gateway if the Dallas gateway is unavailable. (Note that despite this example to the contrary, it is an excellent idea to reserve a gateway or at least an interface on a gateway specifically for 911 calls. This way, you can guarantee that a caller in trouble can reach the PSTN.)

The configuration defines three different gateway access methods, which calls for the use of a route list. Assuming that you have already provisioned the gateways, you need to create the route groups in Table 2-73.

Table 2-73. Route Groups for 911 Routing

Route Group Name

Gateways Contained

DallasGateways

DallasGateway

RichardsonGateways

RichardsonGateway

You have three different search algorithms. The first, used for 911 calls from Richardson, selects just the gateways connected to the Richardson PSTN. The second, used for 911 calls from Dallas, selects just the gateways connected to the Dallas PSTN. The last, used for all other external calls, selects the Dallas gateways first and the Richardson gateways next. Three search algorithms require three route lists, which Table 2-74 lists.

Table 2-74. Route Lists for 911 Routing

Route List Name

Route Groups Contained

Richardson911Calls

RichardsonGateways

Dallas911Calls

DallasGateways

PSTNCalls

DallasGateways, RichardsonGateways

Distinguishing 911 calls from other calls requires using a route filter. The route filter that Table 2-75 lists selects only 911 calls from the North American numbering plan.

Table 2-75. Route Filter for 911 Routing

Route Filter Name

Value

911Calls

SERVICE == 911

The sample configuration requires individualized routing. CallManager routes calls from Dallas users who dial 911 differently from calls from Richardson users who dial 911. Individualized routing requires the creation of partitions and calling search spaces. Table 2-76 contains the partitions that this example requires, and Table 2-77 contains the calling search spaces that this example requires.

Table 2-76. Partitions for 911 Routing

Partition Name

Description

PSTNCalls

Contains route patterns that grant PSTN access to all enterprise users

Dallas911

Contains the route pattern that grants 911 access to Dallas users

Richardson911

Contains the route pattern that grants 911 access to Richardson users

Table 2-77. Calling Search Spaces for 911 Routing

Calling Search Space

Contains Partitions

Description

DallasUsers

Dallas911, PSTNCalls

Provides customized PSTN access for Dallas users

RichardsonUsers

Richardson911, PSTNCalls

Provides customized PSTN access for Richardson users

Then, assign route patterns to the route lists. Table 2-78 lists the route patterns to define.

Table 2-78. Route Patterns for 911 Routing

Route Pattern

Description

Partition: PSTNCalls

Route Pattern: 9.@

Route List: PSTNCalls

Use External Phone Number Mask: Yes

Digit Discarding Instructions: PreDot

Provides general access to the PSTN. CallManager strips the 9 from the called number before extending the call to the PSTN. CallManager uses the external phone number mask that you configure on the calling user’s Directory Number Configuration page as the calling number.

Partition: PSTNCalls

Route Pattern: 9.@

Route Filter: 911Calls

Route List: Richardson911Calls

Use External Phone Number Mask: No

Calling Party Transformation Mask: 9725551212

Digit Discarding Instructions: PreDot

Contains the route pattern that grants 911 access to Richardson users. Closest match routing rules ensure CallManager selects this route pattern when a Richardson user dials 911. CallManager strips the 9 from the called number and substitutes the Richardson attendant’s number for that of the caller.

Partition: PSTNCalls

Route Pattern: 9.@

Route Filter: 911Calls

Route List: Dallas911Calls

Use External Phone Number Mask: No

Calling Party Transformation Mask: 2145551212

Digit Discarding Instructions: PreDot

Contains the route pattern that grants 911 access to Dallas users. Closest match routing rules ensure CallManager selects this route pattern when a Dallas user dials 911. CallManager strips the 9 from the called number and substitutes the Dallas attendant’s number for that of the caller.

Finally, make sure that you assign the calling search space DallasUsers to phones in Dallas and RichardsonUsers to phones in Richardson, and set up the external phone number mask for each phone.

International Numbering Plans

The call routing component of CallManager is extensible. In previous sections, the @ wildcard has always been described in the context of the North American numbering plan. As described in the section “@ Wildcard,” the @ wildcard is a macro that, based on the numbering plan you select, adds many route patterns on your behalf. By default, CallManager Administration permits you to select only North American Numbering Plan from the Numbering Plan drop-down list.

The list of route patterns that CallManager adds is available in an administrator-accessible file. In the installation directory of CallManager is a subdirectory called dialPlan. (The CallManager service parameter DialPlanPath tells CallManager where to look for the numbering plan file.) When CallManager initializes, it looks in this subdirectory for information about the supported numbering plans. When you configure an @ pattern from the Route Pattern Configuration or Translation Pattern Configuration pages, you are instructing CallManager to expand the @ wildcard according to one of the files in this subdirectory.

You can modify how CallManager interprets the @ pattern by modifying the dial plan file; however, Cisco TAC does not support such modifications of the dial plan file. Furthermore, while changing the file does affect how CallManager expands the @ pattern, it does not affect how CallManager Administration presents other dial plan-related settings, such as digit discarding instructions or route filters. Rather, the administration pages derive this information from tables that exist in the CallManager database schema. Nevertheless, examining the files in the dialPlans subdirectory, you can see exactly how CallManager interprets the @ pattern on a dial-plan-by-dial-plan basis.

File Format

The file is a little more complex than just a list of route patterns, however, because for CallManager to correctly apply digit discarding instructions and route filters, you need to tell it what substrings of a given number are meaningful for routing purposes. For example, the seven-digit North American numbering plan route pattern [2-9]XX XXXX contains two meaningful substrings, an office code and a subscriber.

As described in the section “Tags,” these meaningful substrings are called tags. The tags defined for a given numbering plan dictate which tags are available on the Route Filter Configuration page and which parts of a dialed number can be discarded using digit discarding instructions.

The following is a short excerpt from the NANP file, which defines the North American numbering plan, that describes a long distance number preceded by a request for a particular long distance carrier:

     # 101 XXXX 1 [2-9]XX [2-9]XX [2-9]XX
     P: 101       TRANSIT-NETWORK-ESCAPE
     P: XXXX      TRANSIT-NETWORK
     P: 1         LONG-DISTANCE-DIRECT-DIAL
     P: [2-9]XX   AREA-CODE
     P: [2-9]XX   OFFICE-CODE
     P: XXXX      SUBSCRIBER
     T: N

Each route pattern in a numbering plan is represented as several lines of text followed by a blank line. The first character on each line of text defines one of five types of records:

  • #—. A line beginning with # is treated as a comment line. The call routing component ignores these lines when expanding an @ wildcard.

  • P—. This type of line is by far the most important. In this line, you describe a substring for a particular route pattern. This type of line has one mandatory argument and an optional argument. The first argument is a description of the substring itself, in pattern notation (see the section “Route Patterns and Route Filters”). The second argument, if present, describes the tag name you want to associate with this substring. The tag name can be anything you want, though it can contain only alphabetic characters and hyphens. Most route patterns consist of several P lines that together define the entire route pattern.

  • T—. A line beginning with T: specifies whether the type of number represents an international number or a national number. When followed by an N, the route pattern is considered national; when followed by an I, it is considered international. Digital signaling interfaces such as PRI require CallManager to characterize a dialed number when it offers a call to the PSTN for the call to route correctly. When you set the Called Party IE Number Type option to Cisco CallManager on any digital gateway configuration page, you tell CallManager to set up the called number based on this value in the numbering plan file.

  • U—. A line beginning with U: specifies that a route pattern is urgent. When a route pattern is urgent, if the user dials a string that matches the route pattern, all interdigit timing is circumvented. When followed by a Y (for yes), the route pattern is considered urgent; when followed by an N or if the line is not present at all, it is considered normal. The NANP file characterizes the information and emergency services as urgent route patterns so that you do not accidentally hamper access to emergency services by creating an extension such as 9110.

  • W—. A line beginning with W: specifies associated information. This line is not currently used, but it should be used for setup of the network-specific facilities information element in ISDN. CallManager associates any information following the tag with the route pattern, and the destination device can use this information to make decisions. In the case of the current NANP file, operator calls are followed with a W: line that specifies OP or OP/P so that PRI code can configure the outbound called number information as an operator call. CallManager currently ignores this line.

International Dial Plans

Cisco makes dial plans for other countries available at Cisco.com (http://www.cisco.com/pcgibin/tablebuild.pl/IDP). Users with a Cisco Service Agreement can access these dial plans and install them on CallManager. Following the link grants you access to a tool from which you can download an installer (.exe) for currently supported dial plan files.

Currently, Cisco provides dial plans for Japan, Netherlands, Portugal, Singapore, Australia, Russia, New Zealand, Great Britain, Belgium, and Greece.

Troubleshooting

This section describes the Cisco CallManager Dialed Number Analyzer tool, which can help you debug problems with your dial plan, and covers some common problems relating to call routing in CallManager.

Cisco CallManager Dialed Number Analyzer

Cisco CallManager Dialed Number Analyzer is a CallManager add-in that enables you to enter in calling and called numbers and receive a report that describes the following:

  • How CallManager intends to route the call

  • How CallManager changes the calling party number

  • How CallManager changes the called party number

The Dialed Number Analyzer allows you either to originate the call as if from a configured CallManager device (such as an IP phone or trunk) or simply to provide a set of dialed digits along with a calling search space that the Dialed Number Analyzer should use to resolve the dialed digits. Dialed Number Analyzer also supports time-of-day routing and permits you to simulate how the call would route depending on the time of day it was placed.

Figure 2-36 presents the output generated from a sample CallManager system, in which the provided called number was 9 1 800 555 1212. The figure displays the initial result set that Dialed Number Analyzer provides.

CallManager Dialed Number Analyzer Summary Results

Figure 2-36. CallManager Dialed Number Analyzer Summary Results

At the top level, among other information, the tool reports on the digits that were dialed (Dialed Digits), whether the call routes or is blocked, the transformed called party number (Called Party Number), and the top-level device that CallManager offers the call to (CCM-RTP-01_Cluster). The figure also has expanded the Outside Dial Tone item and the Matched Pattern Information item to indicate exactly which pattern CallManager matched and at what point in the dial string that CallManager would play outside dial tone.

Other menu items reveal more information. For example, expanding the Call Flow menu item displays a more detailed picture of how CallManager routes the call. Figure 2-37 displays these details.

CallManager Dialed Number Analyzer Summary Results

Figure 2-37. CallManager Dialed Number Analyzer Summary Results

Figure 2-37 indicates that CCM-RTP-01_Cluster corresponded to a route list. This route list contained route group CCM-RTP-01 Cluster (an intercluster trunk) and route group CCM-RTP-01 Cluster PRI (a Catalyst 6000 gateway with a T1 network module). The device information for the network module has been expanded to expose some relevant routing fields.

Also of interest, but not expanded in Figure 2-37, is the Route Pattern item, which demonstrates exactly how the call routing component of CallManager parses the number, and the Alternate Matches item, which upon expansion reveals the full set of candidate patterns that CallManager considered. Looking at the details for this latter item can reveal configured overlapping patterns that may have crept into your configuration.

Note that the Dialed Number Analyzer has some limitations:

  • It operates by analyzing a copy of the CallManager database’s routing configuration. You must specifically import your current routing configuration into the Dialed Number Analyzer before performing any analysis. If you add or remove patterns or directory numbers from CallManager Administration, you must re-import the routing information.

  • It provides information only about how the call routes through a single CallManager cluster. Other CallManager servers (via intercluster trunks) or Cisco IOS gateways (which have their own powerful routing capabilities) or PBXs might take the routing information that CallManager provides and use it as input into their own routing logic.

Nevertheless, CallManager Dialed Number Analyzer can be a powerful tool for detecting and discovering the root cause of routing problems.

CallManager Applies Outside Dial Tone Too Late

This problem always occurs because a pattern exists that overlaps with the route pattern to which you want CallManager to apply outside dial tone. Usually, through inspection, you can discover another route pattern, directory number, translation pattern, or feature-related number that begins with the same sequence of digits as the route pattern in question.

Check all other route patterns in the system to see whether any of them begin with the same digit sequence as the pattern for which you expect outside dial tone. CallManager only applies outside dial tone when all possible matching route patterns have had their Provide Outside Dial Tone box checked. Patterns such as directory numbers and features cause the suppression of outside dial tone when their range overlaps with that of a route pattern. See the section “Outside Dial Tone” for more details.

CallManager Applies Outside Dial Tone Too Early

This problem occurs when you are using outside access codes that are longer than a single digit. Because of the way that CallManager’s outside dial tone logic works, you must configure a separate route pattern that specifically suppresses outside dial tone until the digit that you want. Note particularly that the location of the . wildcard in a route pattern has no effect on when CallManager applies outside dial tone.

To delay the application of outside dial tone, add a route pattern that represents just your outside access code, but leave the Provide Outside Dial Tone check box unchecked. This configuration will cause CallManager to suppress outside dial tone until all digits of the access code have been dialed, because the access code itself, for which outside dial tone is not applied, suppresses the application of outside dial tone. See the section “Outside Dial Tone” for details about outside dial tone.

Seven-Digit Calls to the North American PSTN Wait 10 Seconds Before Routing

Because some geographical regions use 7-digit dialing and others use 10-digit dialing, the North American numbering plan that ships with CallManager must accommodate both types of dialing. Furthermore, because the IP network allows stations in different geographical locations to register with the same CallManager, CallManager must support both types of dialing simultaneously.

Defining a route filter of LOCAL-AREA-CODE DOES-NOT-EXIST and associating this route filter with your @ pattern prevents CallManager from adding the numbering plan record in the North American numbering plan that routes 10-digit local calls.

Phone A Can Call Phone B, but Not Vice Versa

This problem usually, but not always, is related to calling search spaces and partitions. In the most common scenario, the partition in which station B is listed is in station A’s calling search space, but not vice versa. You might be encountering this problem if CallManager applies reorder while phone B is dialing phone A, or if CallManager applies reorder immediately on collecting all the digits of phone A.

See the section “Calling Search Spaces and Partitions” for more information about calling search spaces and partitions.

Route Pattern 9 XXX XXXX and Route Pattern 9.@ Are Defined, but CallManager Never Selects Route Pattern 9 XXX XXXX

The @ pattern causes CallManager to add many specific patterns, some of which may match a dialed digit string more closely than the ones you configure.

You can either more narrowly tailor the route pattern you add or use route filters on the @ pattern to eliminate the more closely matching route pattern. See the section “@ Wildcard” for more information about how closest match routing and the @ wildcard interact.

Digit Discarding Instructions on a Route Pattern Are Defined, but the Digit Discarding Instructions Are Not Taking Effect

There are two common causes of this problem.

The first main cause is that digit discarding instructions generally apply only to @ patterns. It is particularly tempting for users who configure patterns such as 0!# to attempt to configure the digit discarding instruction trailing-#. Unfortunately, this digit discarding instruction simply removes the END-OF-DIALING terminator as specified in the North American numbering plan. To discard trailing-# from a non-@ pattern, configure the Strip # Sign From Called Party Number service parameter.

The second main cause occurs when route lists are in operation. If you configure the digit discarding instructions NoDigits instead of <None> on a particular route, you instruct CallManager to ignore the digit discarding instructions defined on the route pattern and instead apply the ones defined on the route. In this case, the digit discarding instruction NoDigits tells CallManager to restore the original dialed digit string.

CPU Usage on a CallManager Server Rises to 100 Percent, Memory Usage Escalates, and Ultimately CallManager Restarts

If you can trace this problem to a particular phone call that a user makes, it might be due to a call routing loop. A convenient configuration pattern is to direct all calls to unknown extensions out a trunk to another system. For example, you might configure pattern XXXX to route all unknown four-digit extension numbers to an adjacent PBX.

If the other system also has such a generic route pattern, when CallManager routes the call to it, the other system does not find any phone to which to extend the call. As a result, its logic sends the callback to CallManager, which again forwards the call to the other system. The call loops indefinitely, consuming CPU and memory until CallManager cannot cope anymore. (In traditional circuit-switched systems, this problem can occur but is less serious, because at some point, all of the circuits between the systems are exhausted and the call tears down.)

Eliminating this problem means making sure that when a call arrives from another system, CallManager cannot immediately forward that call out another gateway connection. To accomplish this task, give the gateway from the other system a calling search space that does not include the partition in which the gateway itself resides. See the section “Calling Search Spaces and Partitions” for more information.

Summary

This chapter has covered all aspects of call routing in CallManager. It has discussed route patterns and route filters, CallManager’s fundamental call routing concept.

From discussing route patterns, it moved on to dialing transformations, the means by which you effect the calling and called numbers that CallManager presents as part of offering calls.

Translation patterns provide a way to alias other route patterns. This powerful tool provides you with the opportunity to modify the calling and called numbers and select new destinations based on the resulting digits.

Route lists and route groups allow you to set up search patterns across your enterprise’s gateways to ensure that you fully utilize the most cost-efficient gateways in your enterprise.

The sections about calling search spaces and partitions discussed a mechanism by which you can customize routing on a user-by-user basis. Using calling search spaces and partitions, you can route calls by the type or geographic location of the calling user.

Several case studies and miscellaneous examples described how all of the call routing fundamental concepts work together to solve complex problems. Although none of the case studies represents a complete solution to the most complex enterprises, by studying the approaches these examples described, you can apply the proposed solutions to your enterprise’s specific problems.

One section of this chapter discussed CallManager’s treatment of the North American numbering plan and described how you can replace it if you so choose, although this task is not for the meek.

Finally, a troubleshooting section summarized common problems that administrators encounter with CallManager’s call routing capabilities and proposed solutions.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset