?: means "match but don't save it", for when [] just isn't flexible enough. -Avi On Thu, Jan 10, 2013 at 12:53 AM, Sean Devoy <sdevoy@bizfocused.com> wrote:
Hey Avi,****
** **
Using your regex: ^(?:1|\+1|001)?([2-9]\d\d[2-9]\d{6})$****
Doesn’t $1 match the stuff in the first set of () and $2 match my needed 10 digits?****
** **
Thanks,****
Sean****
** **
*From:* freeswitch-users-bounces@lists.freeswitch.org [mailto: freeswitch-users-bounces@lists.freeswitch.org] *On Behalf Of *Avi Marcus *Sent:* Wednesday, January 09, 2013 3:02 PM
*To:* FreeSWITCH Users Help *Subject:* Re: [Freeswitch-users] xml dialplan - regurlar expression question / Sanity Check!****
** **
Ha, that was a tricky one!****
** **
Here's the issue - he dialed: 1-800-336-940 -- that's too few digits!****
So your optional one made it match anyway.****
** **
Your matching is too allowing - here's the regex I use:****
** **
^(?:1|\+1|001)?([2-9]\d\d[2-9]\d{6})$****
** **
That matches [nothing, 1, +1 or 001] prefix for USA. Then, bridge like now to "1$1".****
** **
btw, if you want a separate match for USA toll-free it's: ^(?:1|\+1|001)?(8(00|55|66|77|88)[2-9]\d{6})$****
** **
There's also some good example on this page, the link goes directly to USA: http://wiki.freeswitch.org/wiki/Regular_Expression#NANPA_.2B1NxxNxxXXXX_E.16... ****
****
-Avi Marcus BestFone****
** **
On Wed, Jan 9, 2013 at 9:48 PM, Sean Devoy <sdevoy@bizfocused.com> wrote:* ***
HI,****
****
I really hope this question is not as dumb as some of my recent questions (Anybody else wiped out you O/S lately?)!****
****
Anyway, I have an xml dial plan:****
<extension name="ten_or eleven_digiti_dial" >****
<condition field="destination_number" expression="^1?(\d{10})$">****
<action application="set" data="ringback=${us-ring}"/>****
<action application="set" data=" effective_caller_id_number=${outbound_caller_id_number}"/>****
<action application="set" data="ani=${outbound_caller_id_number}"/>* ***
<action application="set" data=" effective_caller_id_name=${outbound_caller_id_name}"/>****
<action application="set" data="hangup_after_bridge=true"/>****
<action application="bridge" data=" sofia/gateway/vitelity-inbound/1$1"/>****
</condition>****
</extension>****
****
I thought that would accept either 10 or 11 digit numbers starting with 1 and bridge to the gateway always using 1 plus the 10 digits.****
****
In fact in my log I can see:****
Dialplan: sofia/external/220@fs_bfis.bizfocused.com Regex *(PASS)*[ten_or eleven_digiti_dial] destination_number *(14104207777*) =~ /^1?(\d{10})$/ break=on-false****
Dialplan: sofia/external/220@fs_bfis.bizfocused.com Action set(ringback=${us-ring}) ****
Dialplan: sofia/external/220@fs_bfis.bizfocused.com Action set(effective_caller_id_number=${outbound_caller_id_number}) ****
Dialplan: sofia/external/220@fs_bfis.bizfocused.com Action set(ani=${outbound_caller_id_number}) ****
Dialplan: sofia/external/220@fs_bfis.bizfocused.com Action set(effective_caller_id_name=${outbound_caller_id_name}) ****
Dialplan: sofia/external/220@fs_bfis.bizfocused.com Action set(hangup_after_bridge=true) ****
Dialplan: sofia/external/220@fs_bfis.bizfocused.com Action bridge* (sofia/gateway/vitelity-inbound/14104207777*)****
****
*BUT*****
It does not work for my customer :****
Dialplan: sofia/external/101@fs_alst.bizfocused.com Regex *(PASS*) [ten_or_eleven_digiti_dial] destination_number(*1800336940*) =~ /^1?(\d{10})$/ break=on-false****
Dialplan: sofia/external/101@fs_alst.bizfocused.com Action set(ringback=${us-ring}) ****
Dialplan: sofia/external/101@fs_alst.bizfocused.com Action set(effective_caller_id_number=${outbound_caller_id_number}) ****
Dialplan: sofia/external/101@fs_alst.bizfocused.com Action set(ani=${outbound_caller_id_number}) ****
Dialplan: sofia/external/101@fs_alst.bizfocused.com Action set(effective_caller_id_name=${outbound_caller_id_name}) ****
Dialplan: sofia/external/220@fs_bfis.bizfocused.com Action set(hangup_after_bridge=true) ****
Dialplan: sofia/external/101@fs_alst.bizfocused.com Action bridge* (sofia/gateway/vitelity-inbound/11800336940*) NOTE THE EXTRA LEADING 1*** *
****
So, what am I missing?****
****
Thanks,****
Sean****
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org****
** **
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org