Yeap... Brilliant :) Guys thank you very match. On Fri, Sep 30, 2016 at 3:14 PM Mirko Brankovic <mirkobrankovic@gmail.com> wrote:
great :)
On Fri, Sep 30, 2016 at 1:52 PM, Vladyslav Zakhozhai < v.zakhozhai@gmail.com> wrote:
Yes. Everything goes well.
On Fri, Sep 30, 2016 at 2:15 PM Mirko Brankovic <mirkobrankovic@gmail.com> wrote:
Oh ok, I saw email for spell check, is it ok now after that corrected?
On Fri, Sep 30, 2016 at 12:21 PM, Vladyslav Zakhozhai < v.zakhozhai@gmail.com> wrote:
Mirko, sorry for confusing you.
You are right about pattern and my example phone number. I've just replaced everything with 0 after 093. I have no problems with pcre :) Btw we can even test it with fs_cli, don't we? :)
freeswitch@vzakhozhai> regex 0930000000|^0[1-9][0-9]{8} true freeswitch@vzakhozhai> regex 0930000000|^0[1-9]{9} false
On Fri, Sep 30, 2016 at 10:39 AM Mirko Brankovic < mirkobrankovic@gmail.com> wrote:
Well first point I saw the incorrect xml so that can act strangely, usually you can't even reloadxml correctly.
Next thing is that ^0[1-9]{9}$ shouldn't pass 0930000000, since it is expecting 1-9 digits after 0, so 0931111111 can pass it. You should be able to test it here https://regex101.com/ for pcre.
Also make sure you have all xml tags properlly closed, and try not to use nested conditions, I saw some emails about that not working as expected.
On Thu, Sep 29, 2016 at 4:54 PM, Vladyslav Zakhozhai < v.zakhozhai@gmail.com> wrote:
Mirko, thank you for your answer. Your information is very useful for me (I did not think that I need to close every condition but nevermind).
But it is not actually my problem. Let me put it this way:
<context name="internal"> <extension name="echo_test" continue=true> <condition field="destination_number" expression="^(echo|9999)$"> <action application="log" data="Start echo test."/> <action application="answer"/> <action application="echo" data =""/> </condition> </extension>
<extension name="ua_local" continue=true> <condition field="destination_number" experession="^[2-5][0-9]{6}$"> <action application="log" data="INFO Extension ua_local"/> <action application="bridge" data="sofia/gateway/golden/${destination_number}"/> </condition> </extension>
<extension name="ua_mobile" continue=true> <condition field="destination_number" experession="^0[1-9]{9}$"> <action application="log" data="INFO Extension ua_mobile"/> <action application="bridge" data="sofia/gateway/golden/${destination_number}"/> </condition> </extension> </context>
I've added some verbosity with logging extension name. Logs says that ua_mobile passed pattern check. But ua_local also passed the check. And ua_local is to be executed.
But how 0930000000 can match ^[2-5][0-9]{6}$? And why in logs I see empty pattern against ua_local and ua_mobile:
In case echo_test: destination_number(0930000000) =~ /^(echo|9999)$/ break=on-false In case ua_local and ua_mobile: destination_number(0930000000) =~ // break=on-false
I'm pretty confused :)
And FS log:
2016-09-29 17:45:24.303629 [INFO] mod_dialplan_xml.c:637 Processing vlakas <vlakas>->0930000000 in context internal Dialplan: sofia/internal/vlakas@unitrans.tull.pp.ua parsing [internal->echo_test] continue=false Dialplan: sofia/internal/vlakas@unitrans.tull.pp.ua Regex (FAIL) [echo_test] destination_number(0930000000) =~ /^(echo|9999)$/ break=on-false Dialplan: sofia/internal/vlakas@unitrans.tull.pp.ua parsing [internal->ua_local] continue=true Dialplan: sofia/internal/vlakas@unitrans.tull.pp.ua Regex (PASS) [ua_local] destination_number(0930000000) =~ // break=on-false Dialplan: sofia/internal/vlakas@unitrans.tull.pp.ua Action log(INFO Extension ua_local) Dialplan: sofia/internal/vlakas@unitrans.tull.pp.ua Action bridge(sofia/gateway/golden/${destination_number}) Dialplan: sofia/internal/vlakas@unitrans.tull.pp.ua parsing [internal->ua_mobile] continue=true Dialplan: sofia/internal/vlakas@unitrans.tull.pp.ua Regex (PASS) [ua_mobile] destination_number(0930000000) =~ // break=on-false Dialplan: sofia/internal/vlakas@unitrans.tull.pp.ua Action log(INFO Extension ua_mobile) Dialplan: sofia/internal/vlakas@unitrans.tull.pp.ua Action bridge(sofia/gateway/golden/${destination_number}) 2016-09-29 17:45:24.303629 [DEBUG] switch_core_state_machine.c:286 (sofia/internal/vlakas@unitrans.tull.pp.ua) State Change CS_ROUTING -> CS_EXECUTE 2016-09-29 17:45:24.303629 [DEBUG] switch_core_state_machine.c:602 (sofia/internal/vlakas@unitrans.tull.pp.ua) State ROUTING going to sleep 2016-09-29 17:45:24.303629 [DEBUG] switch_core_state_machine.c:543 (sofia/internal/vlakas@unitrans.tull.pp.ua) Running State Change CS_EXECUTE 2016-09-29 17:45:24.303629 [DEBUG] switch_core_state_machine.c:609 (sofia/internal/vlakas@unitrans.tull.pp.ua) State EXECUTE 2016-09-29 17:45:24.303629 [DEBUG] mod_sofia.c:198 sofia/internal/ vlakas@unitrans.tull.pp.ua SOFIA EXECUTE 2016-09-29 17:45:24.303629 [DEBUG] switch_core_state_machine.c:328 sofia/internal/vlakas@unitrans.tull.pp.ua Standard EXECUTE EXECUTE sofia/internal/vlakas@unitrans.tull.pp.ua log(INFO Extension ua_local) 2016-09-29 17:45:24.303629 [INFO] mod_dptools.c:1713 Extension ua_local EXECUTE sofia/internal/vlakas@unitrans.tull.pp.ua bridge(sofia/gateway/golden/0930000000)
On Thu, Sep 29, 2016 at 4:33 PM Mirko Brankovic < mirkobrankovic@gmail.com> wrote:
> You need to close both conditions. > Correct this one: > <extension name="is_internal_call"> > <condition field="destination_number" expression=".*"/> > <condition field="${sip_h_X-Exten-Type}" > expression="internal"> > Some action > </condition> > </extension> > > with this one/or remove one: > > <extension name="is_internal_call"> > <condition field="destination_number" expression=".*"/> > <condition field="${sip_h_X-Exten-Type}" > expression="internal"> > Some action > </condition> > </condition> > </extension> > > On Thu, Sep 29, 2016 at 3:04 PM, Vladyslav Zakhozhai < > v.zakhozhai@gmail.com> wrote: > >> David, thank you for your answer. >> >> I've mentioned that I have no problems with extension >> is_local_call. It will be matched only if SIP message has custom header >> X-Exten-Type=internal. >> >> If SIP message has no this header and To user is 0930000000 it does >> not match ua_mobile, but ua_local for some reason. >> >> When I'd remove is_local_call all numeric destinations are matched >> against ua_local. >> >> Here is part of FS log: >> >> Dialplan: sofia/internal/vlakas@unitrans.tull.pp.ua parsing >> [internal->echo_test] continue=false >> Dialplan: sofia/internal/vlakas@unitrans.tull.pp.ua Regex (FAIL) >> [echo_test] destination_number(0930000000) =~ /^(echo|9999)$/ break=on-false >> Dialplan: sofia/internal/vlakas@unitrans.tull.pp.ua parsing >> [internal->is_internal_call] continue=false >> Dialplan: sofia/internal/vlakas@unitrans.tull.pp.ua Regex (PASS) >> [is_internal_call] destination_number(0930000000) =~ /.*/ break=on-false >> Dialplan: sofia/internal/vlakas@unitrans.tull.pp.ua Regex (FAIL) >> [is_internal_call] ${sip_h_X-Exten-Type}() =~ /internal/ break=on-false >> Dialplan: sofia/internal/vlakas@unitrans.tull.pp.ua parsing >> [internal->ua_local] continue=false >> Dialplan: sofia/internal/vlakas@unitrans.tull.pp.ua Regex (PASS) >> [ua_local] destination_number(0930000000) =~ // break=on-false >> Dialplan: sofia/internal/vlakas@unitrans.tull.pp.ua Action >> log(sip_h_X-Exten-Type: ${sip_h_X-Exten-Type}.) >> Dialplan: sofia/internal/vlakas@unitrans.tull.pp.ua Action >> bridge(sofia/gateway/golden/${destination_number}) >> >> I've removed extension is_local_call and have: >> Dialplan: sofia/internal/vlakas@unitrans.tull.pp.ua parsing >> [internal->echo_test] continue=false >> Dialplan: sofia/internal/vlakas@unitrans.tull.pp.ua Regex (FAIL) >> [echo_test] destination_number(0930000000) =~ /^(echo|9999)$/ break=on-false >> Dialplan: sofia/internal/vlakas@unitrans.tull.pp.ua parsing >> [internal->ua_local] continue=false >> Dialplan: sofia/internal/vlakas@unitrans.tull.pp.ua Regex (PASS) >> [ua_local] destination_number(0930000000) =~ // break=on-false >> Dialplan: sofia/internal/vlakas@unitrans.tull.pp.ua Action >> log(sip_h_X-Exten-Type: ${sip_h_X-Exten-Type}.) >> Dialplan: sofia/internal/vlakas@unitrans.tull.pp.ua Action >> bridge(sofia/gateway/golden/${destination_number}) >> >> I can't understand why expression in log for ua_local is empty >> >> Regex (PASS) [ua_local] destination_number(0930000000) =~ // >> break=on-false >> >> >> >> On Thu, Sep 29, 2016 at 3:03 PM David Villasmil < >> david.villasmil.work@gmail.com> wrote: >> >>> you're hitting internal before 09 >>> >>> <extension name="is_internal_call"> >>> <condition field="destination_number" expression=".*"/> >>> <condition field="${sip_h_X-Exten-Type}" >>> expression="internal"> >>> Some action >>> </condition> >>> </extension> >>> >>> <extension name="ua_mobile"> >>> <condition field="destination_number" >>> experession="^0[0-9]{9}$"> >>> <action application="bridge" >>> data="sofia/gateway/golden/${destination_number}"/> >>> </condition> >>> </extension> >>> >>> try removing " <condition field="destination_number" >>> expression=".*"/>" >>> >>> On Thu, Sep 29, 2016 at 10:41 AM, Vladyslav Zakhozhai < >>> v.zakhozhai@gmail.com> wrote: >>> >>>> Hi, >>>> >>>> I've mentioned that pattern matching in my dialplan works >>>> incorrectly but I can't figure out the main reason. >>>> >>>> For example I have the following dialplan: >>>> <context name="internal"> >>>> <extension name="echo_test"> >>>> <condition field="destination_number" >>>> expression="^(echo|9999)$"> >>>> Some action >>>> </condition> >>>> </extension> >>>> <extension name="is_internal_call"> >>>> <condition field="destination_number" expression=".*"/> >>>> <condition field="${sip_h_X-Exten-Type}" >>>> expression="internal"> >>>> Some action >>>> </condition> >>>> </extension> >>>> <extension name="ua_local"> >>>> <condition field="destination_number" >>>> experession="^[2-5][0-9]{6}$"> >>>> Some action >>>> </condition >>>> </extension> >>>> <extension name="ua_mobile"> >>>> <condition field="destination_number" >>>> experession="^0[0-9]{9}$"> >>>> <action application="bridge" >>>> data="sofia/gateway/golden/${destination_number}"/> >>>> </condition> >>>> </extension> >>>> </context> >>>> >>>> 1. Call to "echo" - OK (echo_test) >>>> 2. Call to some extension with custom header X-Exten-Type - OK >>>> (is_internal_call) >>>> 3. Call to 5930000 - OK (ua_local) >>>> 4. Call to 0930000000 - FAILED to match ua_mobile extension. >>>> >>>> The last call matches ua_local. But why? >>>> >>>> The result of regex dp_tool >>>> freeswitch@vlakas> regex 5930000|^[2-5][0-9]{6}$ >>>> true >>>> freeswitch@vlakas> regex 0930000000|^[2-5][0-9]{6}$ >>>> false >>>> >>>> So, everything is correct. I can't understand why almost >>>> everyting goes to ua_local extension. >>>> >>>> I appreciate you help. >>>> >>>> >>>> -- >>>> Best regards, >>>> Vladyslav Zakhozhai >>>> email: v.zakhozhai@gmail.com >>>> tel.: +380(93) 757-21-61 >>>> >>>> >>>> _________________________________________________________________________ >>>> Professional FreeSWITCH Consulting Services: >>>> consulting@freeswitch.org >>>> http://www.freeswitchsolutions.com >>>> >>>> Official FreeSWITCH Sites >>>> http://www.freeswitch.org >>>> http://confluence.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 >>> >>> Official FreeSWITCH Sites >>> http://www.freeswitch.org >>> http://confluence.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 >> >> -- >> Best regards, >> Vladyslav Zakhozhai >> email: v.zakhozhai@gmail.com >> tel.: +380(93) 757-21-61 >> >> >> _________________________________________________________________________ >> Professional FreeSWITCH Consulting Services: >> consulting@freeswitch.org >> http://www.freeswitchsolutions.com >> >> Official FreeSWITCH Sites >> http://www.freeswitch.org >> http://confluence.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 >> > > > > -- > Regards, > Mirko > ¯\_(ツ)_/¯ > > > _________________________________________________________________________ > Professional FreeSWITCH Consulting Services: > consulting@freeswitch.org > http://www.freeswitchsolutions.com > > Official FreeSWITCH Sites > http://www.freeswitch.org > http://confluence.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
-- Best regards, Vladyslav Zakhozhai email: v.zakhozhai@gmail.com tel.: +380(93) 757-21-61
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.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
-- Regards, Mirko ¯\_(ツ)_/¯
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.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
-- Best regards, Vladyslav Zakhozhai email: v.zakhozhai@gmail.com tel.: +380(93) 757-21-61
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.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
-- Regards, Mirko ¯\_(ツ)_/¯
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.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
-- Best regards, Vladyslav Zakhozhai email: v.zakhozhai@gmail.com tel.: +380(93) 757-21-61
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.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
-- Regards, Mirko ¯\_(ツ)_/¯
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.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
-- Best regards, Vladyslav Zakhozhai email: v.zakhozhai@gmail.com tel.: +380(93) 757-21-61