regex problem

Thomas Balsfulland tbals at ctrl-c.de
Wed Sep 20 16:13:41 CEST 2006


hallo leute,

ich habe ein regex-problem mit dem openser (sip proxy).
in einer bedingung soll geprueft werden, ob:

 - die rufnummer eine deutsche ist (49 am anfang)
 - ein "+" davor ist, oder auch nicht
 - min 9 stellen und max 15 stellen hat.

das mit der 49 und dem "+" ist ja nicht das problem, aber das pruefen
der rufnummernlaenge. so siehts in der config aus:

  if (uri=~"^sip:\+?49[1-9][0-9]*{6,9}@.*") {
     route_call
  } else { 
    print "b-rufnummer falsch"
    exit
  }

aber dabei wird immer "route_call" ausgefuehrt.
wenn ich stattdessen

  if (uri=~"^sip:\+?49[1-9][0-9]*\{6,9\}@.*")

schreibe, wird immer in den else-zweig gesprungen.
hier mal ein paar eingehende URIs, die geprueft werden soll:

INVITE sip:495241335336 at 62.53.239.214
INVITE sip:4952412144911 at 62.53.239.214
INVITE sip:4952419087689 at 62.53.239.214


was mache ich falsch?
in der doku steht:
"openser supports only POSIX regular expression" 

gruss
  thomas

-- 
thomas balsfulland                           tbals at ctrl-c.de
                zwischen mut und dummheit liegt nur ein grat
            der sich durch das vorbereitetsein unterscheidet



More information about the Linux mailing list