07-06-2017 06:46 AM - edited 03-17-2019 10:43 AM
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?
07-06-2017 06:57 AM
99[6-7] is matched first with 99[5-6] as the alternate match.
HTH
Rajan
Pls rate all useful posts
07-06-2017 07:02 AM
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.
07-10-2017 02:29 AM
Seriously? Random factor in the call routing?
For me it seems like a huge design flaw.
Can you confirm this is the official design?
07-10-2017 07:30 AM
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
07-10-2017 07:56 AM
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??
07-10-2017 08:08 AM
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?
07-10-2017 08:18 AM
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.
07-06-2017 07:07 AM
Hi
See below for help
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:
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.
|
|
|
---|---|---|
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
07-07-2017 02:36 AM
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?
07-10-2017 02:24 AM
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.
07-10-2017 08:02 AM
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
03-06-2022 09:13 AM - edited 03-06-2022 09:28 AM
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.
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide