[asterisk-bugs] [Asterisk 0012777]: [patch] Pattern matching treats 'x' differently than 'X'

noreply at bugs.digium.com noreply at bugs.digium.com
Tue Jun 3 09:59:42 CDT 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=12777 
====================================================================== 
Reported By:                jsmith
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   12777
Category:                   PBX/pbx_config
Reproducibility:            always
Severity:                   minor
Priority:                   high
Status:                     new
Asterisk Version:           SVN 
SVN Branch (only for SVN checkouts, not tarball releases):  1.4  
SVN Revision (number only!): 117582 
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             06-02-2008 21:50 CDT
Last Modified:              06-03-2008 09:59 CDT
====================================================================== 
Summary:                    [patch] Pattern matching treats 'x' differently than
'X'
Description: 
Steve Edwards reported
[http://lists.digium.com/pipermail/asterisk-users/2008-June/212956.html]
that the pattern _2xxx is evaluated before _2[1-4]00.  I went to reply that
it shouldn't be that way, but in my testing, I found he was right.

I think this is a pretty serious bug in the pattern matching code.

As I understand it, Asterisk should be evaluating the patterns one digit
at a time, from left to right.  Whenever more than one pattern could
possibly match, the *most constrained* digit should match first.  In other
words, given these two patterns, if I dialed 1234, the first one should
match before the second, as it's a more constrained match in the third
digit (it matches two possible values, while the other matches three).

_12[3-4]X
_12[3-5]X

The problem arises in that Asterisk seems to be treating the wildcard 'X'
differently than 'x', and I can't figure out why.  Both of them should mean
"any digit 0 through 9", but apparently they don't.  See below for more
details:
====================================================================== 

---------------------------------------------------------------------- 
 Corydon76 - 06-03-08 09:59  
---------------------------------------------------------------------- 
blitzrage: I think one of us misunderstands how it presently works.  My
understanding is that "_x" does not match a literal "x" character -- it
matches the digits 0-9.  The difference is that it supercedes more specific
matches, kind of an override for the present matching algorithm, making it
match more like the 1.2 algorithm, for people who want that kind of
override. 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
06-03-08 09:59  Corydon76      Note Added: 0087715                          
======================================================================




More information about the asterisk-bugs mailing list