Hi Ying,

650555 was just the prefix, my numbers were 650555XXXX, and yes, they route 
correctly to [email protected]<mailto:[email protected]>, when 
received as +1650555XXXX.  I also experimented with some numbers that go off 
the core via the BGCF and IBCF, and their format correctly removed the +1 as 
well.

Once again, thank you very much for getting me on the correct troubleshooting 
path!

Best regards,

Roger

From: Clearwater [mailto:[email protected]] On 
Behalf Of Ying Huang
Sent: Friday, November 10, 2017 7:55 AM
To: [email protected]
Subject: Re: [Project Clearwater] enum.json for +1 numbers

[External Email]
Hi Roger,

Wow this is new information for me, thanks for writing up the details. In 
common regex usage only one backslash is required to escape a special 
character, so the usage is slightly different here. I will update the docs. Did 
the number in your example become updated to sip:[email protected] then?

Thanks,
Ying

From: Clearwater [mailto:[email protected]] On 
Behalf Of Roger Case
Sent: 09 November 2017 22:47
To: 
[email protected]<mailto:[email protected]>
Subject: Re: [Project Clearwater] enum.json for +1 numbers

Hi Ying,

Mystery is solved.

The problem with the enum.json regex expression to remove part of a telephone 
prefix is that “+” is a regular expression special character.   Any other 
digits may be removed just like shown in the ENUM documentation.  In order to 
remove the +1 from a number like +16505551234, the expression must be entered 
into the enum.json file as :

{   "name" : "Clearwater internal numbers dialed with +1 prefix",
            "prefix" : "+1650555",
           "regex" : "!^\\+1(.*$)!sip:\\[email protected]!"
        }

The TWO backslashes prior to the + make it interpreted not as a special 
character, but as part of the telephone prefix.

When Sprout loads the file he displays just one backslash in the result:

09-11-2017 22:11:31.887 UTC Status enumservice.cpp:200:   Adding number prefix 
+1650555, regex=!^\+1(.*$)!sip:\[email protected]!


Thanks for helping me on to the correct troubleshooting path for this problem.

Best regards,

Roger Case
GCI Alaska

From: Roger Case
Sent: Wednesday, November 08, 2017 3:58 PM
To: 
[email protected]<mailto:[email protected]>
Subject: RE: enum.json for +1 numbers

Hi Ying,

Thanks very much for answering.

With the extra \ in the expression the whole load of the enum.json file fails:

08-11-2017 23:38:07.350 UTC Error enumservice.cpp:167: Failed to read ENUM 
configuration data: {
    "number_blocks" : [
{   "name" : "+1907-644 internal",
            "prefix" : "+1907644",
            "regex" : "!^\+1(.*$)!sip:\\[email protected]!"
        }    ]
}

Error: Invalid escape character in string.

--------------------------------------------------------------------------------------------------------

Without the \, as written in the enum.json docs, the entry is not matched at 
all, as Clearwater declares the expression “badly formed”.

09-11-2017 00:40:50.419 UTC Debug enumservice.cpp:192: Found valid number 
prefix block +1907644
09-11-2017 00:40:50.419 UTC Debug enumservice.cpp:99: Split regex into 
match=^+1(.*$), replace=sip:\[email protected]
09-11-2017 00:40:50.419 UTC Warning enumservice.cpp:205: Badly formed regular 
expression in ENUM number block !^+1(.*$)!sip:\[email protected]!

This is for:

{   "name" : "+1907-644 internal",
            "prefix" : "+1907644",
            "regex" : "!^+1(.*$)!sip:\\[email protected]!"
        }    ]


I’m confused!

Thanks,

Roger



From: Clearwater [mailto:[email protected]] On 
Behalf Of Ying Huang
Sent: Wednesday, November 08, 2017 1:03 PM
To: 
[email protected]<mailto:[email protected]>
Subject: Re: [Project Clearwater] enum.json for +1 numbers

[External Email]
Hi Roger,

Both regex should work fine, while the second expression with extra \ is more 
correct and I suggest you use that. To turn on debug logging for Sprout, writie 
log_level=5 to /etc/clearwater/user_settings (creating it if it doesn’t exist 
already), then restart Sprout (by running sudo service sprout stop - it will be 
restarted by monit). Then you can check /var/log/sprout/sprout_current.txt 
while performing the operations. For more suggestions, see 
http://clearwater.readthedocs.io/en/stable/Troubleshooting_and_Recovery.html?highlight=debug

The regex is doing what you expect – it matches on the entire number but takes 
out the bit in (.*$) to put it in the \\1<file:///\\1> part. So +1333666 will 
be replaced by sip:[email protected], where the +1 has been stripped off. You can 
modify the second part of the regex to be how you want the number to be sent to 
the internal domain.

If anything unclear you can come back to this thread.


Thanks,
Ying

From: Clearwater [mailto:[email protected]] On 
Behalf Of Roger Case
Sent: 07 November 2017 01:53
To: 
[email protected]<mailto:[email protected]>
Subject: [Project Clearwater] enum.json for +1 numbers

Dear Clearwater,

The ENUM DOCS show an entry in enum.json for +1 dialed internal numbers of:

{   "name" : "Clearwater internal numbers dialled with +1 prefix",
            "prefix" : "+1650555",
           "regex" : "!^+1(.*$)!sip:\\[email protected]!"
        }

This underlined piece of the expression is shown later in the document, inside 
a NAPTR record, as:


naptr-record=5.5.5.0.5.6.1.e164.arpa,1,1,U,E2U+SIP,!^\+1(.*$)!sip:\[email protected]!








The second expression contains an extra \ before the +1.

Which is correct, or are both correct?

I ask because neither seem to work in my enum.json file.

Also, is there a way in the enum.json file expressions to remove the + or 1+, 
before sending the Invite to the internal or IBCF domain?



Thanks very much,

Roger Case
GCI, Alaska

(old telephone guy trying to understand new telephone technology)
_______________________________________________
Clearwater mailing list
[email protected]
http://lists.projectclearwater.org/mailman/listinfo/clearwater_lists.projectclearwater.org

Reply via email to