there is route pattern 9.@ with route filter applied which will send calls to certain area codes to route-list A
then there is another route pattern 9.1[2-9]XX[2-9]XXXXXX with route-list B
my confusion is the second route pattern seems more specific than 9.@ so domestic calls should follow route-list B but testing
shows calls to area codes defined in route-filter are going to route-list A
so what is the digit matching logic here?
The logic is to use the route pattern with the closest match to the number dialed by determining how many possible matches there are for each route pattern. In your case example, assuming one of the area codes in the route filter used by the 9.@ route pattern is 212, and when testing, a number with that area code is dialed. The candidate patterns in this case are:
* 9.@ where AREA-CODE==212
The 9.@, is a macro that includes several individual route patterns that comprise the NANP, so in this case the pattern that is matched is 9.1212[2-9][02-9]XXXXX. So in effect the candidate patterns are:
Using closest match logic, determine how many possible matches there are for each route pattern. The closest match is the pattern that has the fewest possible matches.
* 9.1212[2-9][02-9]XXXXX = 8 x 9 x 10 to the power of 5
* 9.1[2-9]XX[2-9]XXXXXX = 8 x 10 x 10 x 8 x 10 to the power of 6
The 9.@ route pattern is the closest match to the number dialed, and is therefore used.
Hope this helps.
The @ wildcard is actually a representation of many different route patterns in the NANP. In this case, there is actually a pattern within @ that provides a closer match. Take a look at the following link.
Hope this helps.