|Summary:||ASTERISK-07326: Regexp for sip addresses containing other characters than digits|
|Reporter:||Mats Karlsson (matsk)||Labels:|
|Date Opened:||2006-07-12 04:47:55||Date Closed:||2011-06-07 14:07:55|
Goal: Pattern matching for sip uri's example: email@example.com
When using direct matching, example:
exten => john.smith,1,Dial(SIP/12345@outbound,,ro)
exten => _.,1,Dial(SIP/12345@outbound,,ro)
exten => _!,1,Dial(SIP/12345@outbound,,ro)
It seems that other characters than digit's doesn't get a match.
And from what I can see in the documentation is it just mentioned characters not digits se ref below.
From the documentation:
. wildcard, matches one or more characters
And I realy hope that the bug correction isn't to change the documentation !
****** ADDITIONAL INFORMATION ******
This is impacting on the usage of sip addresses that looks like email adr.
|Comments:||By: Mats Karlsson (matsk) 2006-07-12 07:06:04|
Hmm, this bug should have been under the dialplan project, but it seems that I cant move it myself.... So could someone with propper rights move it ?
By: Serge Vecher (serge-v) 2006-07-12 08:36:23
I don't believe Asterisk core is designed to support URIs in the Dialplan directly. But I think you can just use dialplan functions for your purpose.
By: Serge Vecher (serge-v) 2006-07-12 09:31:02
how will things work, if the username part does not contain a '.' (dot)?
By: Mats Karlsson (matsk) 2006-07-12 11:12:32
OK, I will try to elaborate.
The thing that doesn't work is when I use "exten => _" and then a regexp like the . or !.
When using "exten => " without regexp WORKS OK, example "exten => john.smith,1,Dial(SIP/12345@outbound,,ro)" or for that matter "exten => john,1,Dial(SIP/12345@outbound,,ro)"
So the problem is to get a match after _ when you have incoming URI's with letters.
By: Serge Vecher (serge-v) 2006-07-12 12:39:38
based on further discussions on #asterisk-bugs, this seems to be more related to extension parsing mechanisms in pbx.c. Matsk will try the rewriten code in trunk and report back here.
By: Mats Karlsson (matsk) 2006-07-20 15:03:33
Hasn't had time to check this with the current svn but got the impression after reading the source that it's the case that it doesn't match other chars than numbers.
By: Tilghman Lesher (tilghman) 2006-07-21 01:04:05
You really should never use _. as an extension, because it literally matches anything -- even special case extensions like i and h.
And . in a dialplan extension is a short-circuit -- if the matcher encounters a period, it short-circuits the matching and returns true.
By: Mats Karlsson (matsk) 2006-07-21 02:39:47
Corydon76, The intention wasn't to use _. but to find out a way to get regular expressions on letters in the diaplan.
Im aware that _. is BAD ! So lets put that aside and focus on the goal instead.
By: Tilghman Lesher (tilghman) 2006-07-23 04:02:53
I think what you mean to say is if you do a pattern match like "_john.", it doesn't work, and you're correct, but for a reason that you don't realize:
The problem is that the letter n, by itself, means the digits 2-9. In order to get the literal letter n in a pattern match, you have to put it in a character class, like this: "_joh[n]."
By: Mats Karlsson (matsk) 2006-07-24 21:45:30
have you tried if [n] works ?
By: Tilghman Lesher (tilghman) 2006-08-08 23:22:22
I haven't tried that case specifically, but I have used the dial expression "_e[x]t.".