cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
3833
Views
41
Helpful
12
Replies

Call Routing if potentially matching patterns are the same

istibekesi
Level 1
Level 1

As far as I understood, CUCM uses closest-match logic for call routing.

When a number is dialed, Unified CM uses closest-match logic to select which pattern to match from among all the patterns in its numeric call routing table. In practice, when multiple potentially matching numeric patterns are present, the destination pattern is chosen based on the following criteria:

It matches the dialed string, and

Among all the potentially matching patterns, it matches the fewest strings other than the dialed string.

What if the fewest strings are also the same?

For example, two translation patterns in the same partition: 99[5-6] and 99[6-7]

Dialed number is 996, how the CUCM decides?

12 Replies 12

Rajan
VIP Alumni
VIP Alumni

99[6-7] is matched first with 99[5-6] as the alternate match.

HTH

Rajan

Pls rate all useful posts

But I guess its randomly matching and there is no hard and fast rule for this scenario as both of them are potential matches. I tried configuring 99[7-8] & 99[6-7] and dialed 997 and this time its matching 99[6-7] as the first match.

Seriously? Random factor in the call routing?

For me it seems like a huge design flaw.

Can you confirm this is the official design?

This is how the matching happens in CUCM  at least when I checked in dialed number analyzer for those two scenarios.

As long as the patterns are more specific, this issue can be avoided.

HTH

Rajan

There are scenarios that are not tested because they're not recommended, you'll never find an overlapping scenario in the SRND as the recommendation or the best practice, because overlapping is NEVER considered a good design.

Why would someone configure that scenario in the first place??

HTH

java

if this helps, please rate

Hmm... even the official example is overlapping.

Still, I accept my example configuration is "extreme", but often such particular scenarios help a lot to understand the business logic behind.

And also wondering, if overlapping is so unpredictable, why isn't it restricted at all?

Yes, but only for the purposes of explaining what the logic would be in CUCM when you have that scenario, not as a recommendation for people to configure it that way. Also, to explain that if you have that scenario, IDT will be present, and that is the expected behavior when CUCM doesn't know what you're trying to dial, and there are still other possible matches.

From my POV, there is really nothing else you could do as a programmer, you have absolutely no means to understand from a user or admin perspective what DN/pattern they meant to dial/reach if you have 2 or more that match, so, at that point in time, with the info that is available, all you can do is an educated guess. 

Why can't you remove overlapping?

Because there are some countries that do not have a normalized dial plan, and they do have overlapping, and might require more/less digits to reach a destination, within the same country.

HTH

java

if this helps, please rate

Jitender Bhandari
Cisco Employee
Cisco Employee

Hi 

See below for help

Call Routing in Unified CM

All numeric dialing destinations and directory URIs configured in Unified CM are added to its internal call routing table as patterns. These destinations include IP phone lines, voicemail ports, route patterns, translation patterns, and CTI route points. Unified CM uses two distinct routing tables for numeric dialing destinations and directory URIs.

When a directory URI is dialed, Unified CM uses full-match logic to find a match among the configured directory URIs in the directory URI routing table. The URI Lookup Policy enterprise service parameter setting determines whether the full-match logic for the user portion (left-hand side) of the URI uses case-sensitive or case-insensitive matching. Case-sensitive matching is the default. When a number is dialed, Unified CM uses best-match logic to select which pattern to match from among all the patterns in its numeric call routing table. In practice, when multiple potentially matching numeric patterns are present, the destination pattern is chosen based on the following criteria:

  • It matches the dialed string, and
  • Among all the potentially matching patterns, it matches the fewest strings other than the dialed string.

For example, consider the case shown in Figure 14-12, where the call routing table includes the patterns 1XXX, 12XX, and 1234.

Figure 14-12 Unified CM Call Routing Logic Example

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

When user B dials the string 1212, there are three potentially matching patterns, 1XXX, 12XX and 121X. As mentioned above, 1XXX matches 1000 strings and 12XX matches 100 strings. However, 121X matches only 10 strings; therefore it is selected as the destination of the call.

When user C dials the string 1234, there are three potentially matching patterns, 1XXX, 12XX, and 1234. As mentioned above, 1XXX matches 1000 strings and 12XX matches 100 strings. However, 1234 matches only a single string (the dialed string); therefore it is selected as the destination of this call.

When determining the number of matched strings for a variable-length pattern, Unified CM takes into account only the number of matched strings that are equal in length to the number of digits dialed. Assuming a user dials 1311 and we have patterns 1XXX, 1[2-3]XX, and 13!, the following table shows the number of matched strings of these potentially matching patterns.

 

Pattern
Number of Matched Strings
Possible Strings Matched

1XXX

1000

1000 to 1999

1[2-3]XX

200

1200 to 1299; 1300 to 1399

13!

100

1300 to 1399; only four-digit strings counted, based on the number of digits dialed

In this example the variable-length pattern 13! is selected as the best match.


Note Whenever a directory number (DN) is configured in Cisco Unified CM, it is placed in the call routing table, regardless of whether the respective device (for example, an IP phone) is registered or not. An implication of this behavior is that it is not possible to rely on secondary, identical patterns to provide failover capabilities to applications when the device (and hence the primary pattern) is unregistered. Because the primary pattern is permanently in the call routing table, the secondary pattern will never be matched.

http://www.cisco.com/c/en/us/td/docs/voice_ip_comm/cucm/srnd/collab11/collab11/dialplan.html#90366

(Rate if it helps)

JB

Great informative  post,  just one thing I didn't follow. In the paragarph

"When user B dials the string 1212, there are three potentially matching patterns, 1XXX, 12XX and 121X. As mentioned above, 1XXX matches 1000 strings and 12XX matches 100 strings. However, 121X matches only 10 strings; therefore it is selected as the destination of the call."

I understand potentially matching patterns 1XXX, 12XX  but where did pattern 121X suddenly appear from come from?

Documentation describes 3 scenarios.


For the first scenario, user A dialed "1200", so 121X did not match.
It appears only in the second scenario, when dialed number "1212" is a match.
For the first scenario, user A dialed "1234", so 121X did not match either.

Ah- now I see where the confusion has arisen:-

In the text it mentions only 3 patterns "For example, consider the case shown in Figure 14-12, where the call routing table includes the patterns 1XXX, 12XX, and 1234."

But in figure 14-12, there is a fourth pattern 121X specified. I should have paid closer attention - my bad.

Rich

aalejo
Level 5
Level 5

Unless you route those two route pattern over the same place, does not make sense to assigned them to two different extension/destination  (users). The question goes down to: Can you have two destination with same number if those destinations are different? How system will know where to go? If is an overlapping design then you have to create extra digits to differentiate eliminating the problem... Question is more a design one than a configuration one. The only scenario where this make sense is if both routes route to same destination: then CUCM random choses what to uses but basically call ends in the same destination no mater what CUCM selects. Means , no problem.