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}truefreeswitch@vzakhozhai> regex 0930000000|^0[1-9]{9}falseOn 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-falseIn case ua_local and ua_mobile: destination_number(0930000000) =~ // break=on-falseI'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 internalDialplan: sofia/internal/vlakas@unitrans.tull.pp.ua parsing [internal->echo_test] continue=falseDialplan: sofia/internal/vlakas@unitrans.tull.pp.ua Regex (FAIL) [echo_test] destination_number(0930000000) =~ /^(echo|9999)$/ break=on-falseDialplan: sofia/internal/vlakas@unitrans.tull.pp.ua parsing [internal->ua_local] continue=trueDialplan: sofia/internal/vlakas@unitrans.tull.pp.ua Regex (PASS) [ua_local] destination_number(0930000000) =~ // break=on-falseDialplan: 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=trueDialplan: sofia/internal/vlakas@unitrans.tull.pp.ua Regex (PASS) [ua_mobile] destination_number(0930000000) =~ // break=on-falseDialplan: 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_EXECUTE2016-09-29 17:45:24.303629 [DEBUG] switch_core_state_machine.c:602 (sofia/internal/vlakas@ unitrans.tull.pp.ua ) State ROUTING going to sleep2016-09-29 17:45:24.303629 [DEBUG] switch_core_state_machine.c:543 (sofia/internal/vlakas@ unitrans.tull.pp.ua ) Running State Change CS_EXECUTE2016-09-29 17:45:24.303629 [DEBUG] switch_core_state_machine.c:609 (sofia/internal/vlakas@ unitrans.tull.pp.ua ) State EXECUTE2016-09-29 17:45:24.303629 [DEBUG] mod_sofia.c:198 sofia/internal/vlakas@unitrans.tull.pp.ua SOFIA EXECUTE2016-09-29 17:45:24.303629 [DEBUG] switch_core_state_machine.c:328 sofia/internal/vlakas@ unitrans.tull.pp.ua Standard EXECUTEEXECUTE 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_localEXECUTE 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=falseDialplan: sofia/internal/vlakas@unitrans.tull.pp.ua Regex (FAIL) [echo_test] destination_number(0930000000) =~ /^(echo|9999)$/ break=on-falseDialplan: sofia/internal/vlakas@unitrans.tull.pp.ua parsing [internal->is_internal_call] continue=falseDialplan: sofia/internal/vlakas@unitrans.tull.pp.ua Regex (PASS) [is_internal_call] destination_number(0930000000) =~ /.*/ break=on-falseDialplan: sofia/internal/vlakas@unitrans.tull.pp.ua Regex (FAIL) [is_internal_call] ${sip_h_X-Exten-Type}() =~ /internal/ break=on-falseDialplan: sofia/internal/vlakas@unitrans.tull.pp.ua parsing [internal->ua_local] continue=falseDialplan: sofia/internal/vlakas@unitrans.tull.pp.ua Regex (PASS) [ua_local] destination_number(0930000000) =~ // break=on-falseDialplan: 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=falseDialplan: sofia/internal/vlakas@unitrans.tull.pp.ua Regex (FAIL) [echo_test] destination_number(0930000000) =~ /^(echo|9999)$/ break=on-falseDialplan: sofia/internal/vlakas@unitrans.tull.pp.ua parsing [internal->ua_local] continue=falseDialplan: sofia/internal/vlakas@unitrans.tull.pp.ua Regex (PASS) [ua_local] destination_number(0930000000) =~ // break=on-falseDialplan: 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 emptyRegex (PASS) [ua_local] destination_number(0930000000) =~ // break=on-falseOn 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_toolfreeswitch@vlakas> regex 5930000|^[2-5][0-9]{6}$truefreeswitch@vlakas> regex 0930000000|^[2-5][0-9]{6}$falseSo, everything is correct. I can't understand why almost everyting goes to ua_local extension.I appreciate you help.--__________________________________________________________________________________________ _____________
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--
____________________________________________________________ _____________
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--
____________________________________________________________ _____________
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--
____________________________________________________________ _____________
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