[Freeswitch-dev] Dialplan Defaults
Hi everyone, I am in the process of doing something very straightforward - hooking up a DID from Link2Voip into my FS instance (built from SVN Curent on Debian) In an effort to only change as little as possible to get this baby to respond to a phone call, I have simply added my provider into the /conf/sip_profiles/external and also added in the extension file into /conf/dialplan/extensions I am able to get the system to Register and I am also able to get an incoming call - however that is where the fun stops. I hit F8 on my console and this is what I got: 2008-09-18 02:11:38 [INFO] mod_dialplan_xml.c:228 dialplan_hunt() Processing 6044880583->18665780244 in context public 2008-09-18 02:11:38 [DEBUG] mod_dialplan_xml.c:113 parse_exten() test conditions ${unroll_loops}(true) =~ /^true$/ 2008-09-18 02:11:38 [DEBUG] mod_dialplan_xml.c:113 parse_exten() test conditions ${sip_looped_call}() =~ /^true$/ 2008-09-18 02:11:38 [DEBUG] mod_dialplan_xml.c:115 parse_exten() Regex mismatch 2008-09-18 02:11:38 [DEBUG] mod_dialplan_xml.c:113 parse_exten() test conditions destination_number(18665780244) =~ /^(10[01][0-9])$/ 2008-09-18 02:11:38 [DEBUG] mod_dialplan_xml.c:115 parse_exten() Regex mismatch 2008-09-18 02:11:38 [DEBUG] mod_dialplan_xml.c:113 parse_exten() test conditions destination_number(18665780244) =~ /^(5551212)$/ 2008-09-18 02:11:38 [DEBUG] mod_dialplan_xml.c:115 parse_exten() Regex mismatch 2008-09-18 02:11:38 [INFO] switch_core_state_machine.c:114 switch_core_standard_on_routing() No Route, Aborting I *think* I understand what is going on here - but I *disagree* with defaults. For most users, I would expect them to do exactly what I just did - try to change as little as possble and only add files as needed. So finding that the initial root of the dialplan matching happens within public.xml, I attempted to see if there was a better regex match (better than the 5551212 :) and tried ^\d{10,15}$ - basically any number between 10 and 15 digits, good for most of the planet generically. I got no matches, so I though maybe the syntax was strange and went for something simpler - ^[0-9]{10,15}$ - still no matches. Then I brute forced it - ^(18665780244)$ - got a match! yay! - Fun stops again :( Just to be sure my custom extension matcher in the /conf/dialplan/extensions did not interfere with anything, I renamed it to get it from loading. here is the other fun stopper: My default context starts to be processed and here is the end of it.... 2008-09-18 02:52:29 [DEBUG] mod_dialplan_xml.c:113 parse_exten() test conditions destination_number(18665780244) =~ /^9997$/ 2008-09-18 02:52:29 [DEBUG] mod_dialplan_xml.c:115 parse_exten() Regex mismatch 2008-09-18 02:52:29 [DEBUG] mod_dialplan_xml.c:113 parse_exten() test conditions destination_number(18665780244) =~ /^9998$/ 2008-09-18 02:52:29 [DEBUG] mod_dialplan_xml.c:115 parse_exten() Regex mismatch 2008-09-18 02:52:29 [DEBUG] mod_dialplan_xml.c:113 parse_exten() test conditions destination_number(18665780244) =~ /^9999$/ 2008-09-18 02:52:29 [DEBUG] mod_dialplan_xml.c:115 parse_exten() Regex mismatch 2008-09-18 02:52:29 [DEBUG] mod_dialplan_xml.c:113 parse_exten() test conditions destination_number(18665780244) =~ /^(pizza|74992)$/ 2008-09-18 02:52:29 [DEBUG] mod_dialplan_xml.c:115 parse_exten() Regex mismatch 2008-09-18 02:52:29 [DEBUG] mod_dialplan_xml.c:113 parse_exten() test conditions ${module_exists(mod_enum)}(true) =~ /true/ 2008-09-18 02:52:29 [DEBUG] mod_dialplan_xml.c:113 parse_exten() test conditions destination_number(18665780244) =~ /^(.*)$/ 2008-09-18 02:52:29 [DEBUG] switch_core_state_machine.c:97 switch_core_standard_on_routing() sofia/external/6045151148@66.51.127.163State Change CS_ROUTING -> CS_EXECUTE 2008-09-18 02:52:29 [DEBUG] switch_core_session.c:727 switch_core_session_signal_state_change() Kill sofia/external/6045151148@66.51.127.163 [BREAK] 2008-09-18 02:52:29 [DEBUG] switch_core_state_machine.c:420 switch_core_session_run() (sofia/external/6045151148@66.51.127.163) State ROUTING going to sleep 2008-09-18 02:52:29 [DEBUG] switch_core_state_machine.c:365 switch_core_session_run() sofia/external/6045151148@66.51.127.163 Running State Change CS_EXECUTE 2008-09-18 02:52:29 [DEBUG] switch_core_state_machine.c:430 switch_core_session_run() (sofia/external/6045151148@66.51.127.163) State EXECUTE 2008-09-18 02:52:29 [DEBUG] mod_sofia.c:156 sofia_on_execute() sofia/external/6045151148@66.51.127.163 SOFIA EXECUTE 2008-09-18 02:52:29 [DEBUG] switch_core_state_machine.c:129 switch_core_standard_on_execute() Standard EXECUTE 2008-09-18 02:52:29 [DEBUG] switch_core_state_machine.c:140 switch_core_standard_on_execute() sofia/external/6045151148@66.51.127.163Execute set(use_profile=${cond(${acl(${network_addr} rfc1918)} == true ? nat : default)}) 2008-09-18 02:52:29 [DEBUG] switch_core_session.c:1059 switch_core_session_execute_application() sofia/external/6045151148@66.51.127.163 Expanded String set(use_profile=default) 2008-09-18 02:52:29 [DEBUG] mod_dptools.c:703 set_function() SET [use_profile]=[default] 2008-09-18 02:52:29 [DEBUG] switch_core_state_machine.c:140 switch_core_standard_on_execute() sofia/external/6045151148@66.51.127.163Execute set_user( default@${domain <default@$%7Bdomain>}) 2008-09-18 02:52:29 [DEBUG] switch_core_session.c:1059 switch_core_session_execute_application() sofia/external/6045151148@66.51.127.163 Expanded String set_user( default@192.168.1.66) 2008-09-18 02:52:29 [DEBUG] switch_core_state_machine.c:140 switch_core_standard_on_execute() sofia/external/6045151148@66.51.127.163Execute db(insert/spymap/${caller_id_number}/${uuid}) 2008-09-18 02:52:29 [DEBUG] switch_core_session.c:1059 switch_core_session_execute_application() sofia/external/6045151148@66.51.127.163 Expanded String db(insert/spymap/6045151148/81684762-8567-11dd-967a-a76d8ceadf4f) 2008-09-18 02:52:29 [DEBUG] sofia.c:332 sofia_event_callback() nua_r_cancel: unknown event 32: 200 canceling 2008-09-18 02:52:29 [DEBUG] sofia.c:200 sofia_event_callback() event [nua_r_invite] status [500][Server error occurred (1/SL)] session: n/a 2008-09-18 02:52:29 [DEBUG] sofia.c:200 sofia_event_callback() event [nua_i_state] status [487][Request Terminated] session: sofia/external/6045151148@66.51.127.163 2008-09-18 02:52:29 [DEBUG] sofia.c:2183 sofia_handle_sip_i_state() Channel sofia/external/6045151148@66.51.127.163 entering state [terminated] 2008-09-18 02:52:29 [NOTICE] sofia.c:2611 sofia_handle_sip_i_state() Hangup sofia/external/6045151148@66.51.127.163 [CS_EXECUTE] [ORIGINATOR_CANCEL] 2008-09-18 02:52:29 [DEBUG] switch_channel.c:1381 switch_channel_perform_hangup() Kill sofia/external/6045151148@66.51.127.163[KILL] 2008-09-18 02:52:29 [DEBUG] switch_core_session.c:727 switch_core_session_signal_state_change() Kill sofia/external/6045151148@66.51.127.163 [BREAK] 2008-09-18 02:52:29 [NOTICE] switch_ivr_originate.c:1321 switch_ivr_originate() Hangup sofia/internal/18665780244@vgw1.link2voip.com[CS_CONSUME_MEDIA] [ORIGINATOR_CANCEL] 2008-09-18 02:52:29 [DEBUG] switch_channel.c:1381 switch_channel_perform_hangup() Kill sofia/internal/18665780244@vgw1.link2voip.com [KILL] 2008-09-18 02:52:29 [DEBUG] switch_core_session.c:727 switch_core_session_signal_state_change() Kill sofia/internal/18665780244@vgw1.link2voip.com [BREAK] 2008-09-18 02:52:29 [DEBUG] switch_ivr_originate.c:1444 switch_ivr_originate() Originate Cancelled by originator termination Cause: 487 [ORIGINATOR_CANCEL] 2008-09-18 02:52:29 [INFO] mod_dptools.c:1814 audio_bridge_function() Originate Failed. Cause: ORIGINATOR_CANCEL Notice the ultra generic destination number matcher getting matched? At this point it seems there is some sort of infinite loop that would keep going until I hung up the phone. I hunt down where the matcher is getting matched and find that it is in the same folder as my custom matcher inside 99999_enum.xml So at this point, I go ahead and add back in my custom extension file - I get the same result - what the hell? why is my matcher not getting fired? - because its name is "link2voip.xml" which comes AFTER 99999: -rw-r--r-- 1 root root 373 2008-09-18 01:27 00_pizza_demo.xml -rw-r--r-- 1 root root 266 2008-09-18 01:27 99999_enum.xml -rw-r--r-- 1 root root 177 2008-09-18 03:01 link2voip.xml I then rename it so it comes up sooner: -rw-r--r-- 1 root root 177 2008-09-18 03:01 00_link2voip.xml -rw-r--r-- 1 root root 373 2008-09-18 01:27 00_pizza_demo.xml -rw-r--r-- 1 root root 266 2008-09-18 01:27 99999_enum.xml server-06:/usr/local/freeswitch/conf/dialplan/extensions# Tada! I get my wish and I can now route to where I want to! Now if I can only get the voice mail app to think I am actually saying something - I think I need to route to the echo app to see what I am saying :) 2008-09-18 03:08:28 [DEBUG] mod_dialplan_xml.c:113 parse_exten() test conditions destination_number(18665780244) =~ /^9996$/ 2008-09-18 03:08:28 [DEBUG] mod_dialplan_xml.c:115 parse_exten() Regex mismatch 2008-09-18 03:08:28 [DEBUG] mod_dialplan_xml.c:113 parse_exten() test conditions destination_number(18665780244) =~ /^9997$/ 2008-09-18 03:08:28 [DEBUG] mod_dialplan_xml.c:115 parse_exten() Regex mismatch 2008-09-18 03:08:28 [DEBUG] mod_dialplan_xml.c:113 parse_exten() test conditions destination_number(18665780244) =~ /^9998$/ 2008-09-18 03:08:28 [DEBUG] mod_dialplan_xml.c:115 parse_exten() Regex mismatch 2008-09-18 03:08:28 [DEBUG] mod_dialplan_xml.c:113 parse_exten() test conditions destination_number(18665780244) =~ /^9999$/ 2008-09-18 03:08:28 [DEBUG] mod_dialplan_xml.c:115 parse_exten() Regex mismatch 2008-09-18 03:08:28 [DEBUG] mod_dialplan_xml.c:113 parse_exten() test conditions destination_number(18665780244) =~ /18665780244/ 2008-09-18 03:08:28 [DEBUG] switch_core_state_machine.c:97 switch_core_standard_on_routing() sofia/external/6045151148@66.51.127.163State Change CS_ROUTING -> CS_EXECUTE 2008-09-18 03:08:28 [DEBUG] switch_core_session.c:727 switch_core_session_signal_state_change() Kill sofia/external/6045151148@66.51.127.163 [BREAK] 2008-09-18 03:08:28 [DEBUG] switch_core_state_machine.c:420 switch_core_session_run() (sofia/external/6045151148@66.51.127.163) State ROUTING going to sleep 2008-09-18 03:08:28 [DEBUG] switch_core_state_machine.c:365 switch_core_session_run() sofia/external/6045151148@66.51.127.163 Running State Change CS_EXECUTE 2008-09-18 03:08:28 [DEBUG] switch_core_state_machine.c:430 switch_core_session_run() (sofia/external/6045151148@66.51.127.163) State EXECUTE 2008-09-18 03:08:28 [DEBUG] mod_sofia.c:156 sofia_on_execute() sofia/external/6045151148@66.51.127.163 SOFIA EXECUTE 2008-09-18 03:08:28 [DEBUG] switch_core_state_machine.c:129 switch_core_standard_on_execute() Standard EXECUTE 2008-09-18 03:08:28 [DEBUG] switch_core_state_machine.c:140 switch_core_standard_on_execute() sofia/external/6045151148@66.51.127.163Execute set(use_profile=${cond(${acl(${network_addr} rfc1918)} == true ? nat : default)}) 2008-09-18 03:08:28 [DEBUG] switch_core_session.c:1059 switch_core_session_execute_application() sofia/external/6045151148@66.51.127.163 Expanded String set(use_profile=default) 2008-09-18 03:08:28 [DEBUG] mod_dptools.c:703 set_function() SET [use_profile]=[default] 2008-09-18 03:08:28 [DEBUG] switch_core_state_machine.c:140 switch_core_standard_on_execute() sofia/external/6045151148@66.51.127.163Execute set_user( default@${domain <default@$%7Bdomain>}) 2008-09-18 03:08:28 [DEBUG] switch_core_session.c:1059 switch_core_session_execute_application() sofia/external/6045151148@66.51.127.163 Expanded String set_user( default@192.168.1.66) 2008-09-18 03:08:28 [DEBUG] switch_core_state_machine.c:140 switch_core_standard_on_execute() sofia/external/6045151148@66.51.127.163Execute db(insert/spymap/${caller_id_number}/${uuid}) 2008-09-18 03:08:28 [DEBUG] switch_core_session.c:1059 switch_core_session_execute_application() sofia/external/6045151148@66.51.127.163 Expanded String db(insert/spymap/6045151148/bd8aaddc-8569-11dd-bca0-bfa449b5017d) 2008-09-18 03:08:28 [DEBUG] switch_core_state_machine.c:140 switch_core_standard_on_execute() sofia/external/6045151148@66.51.127.163Execute db(insert/last_dial/${caller_id_number}/${destination_number}) 2008-09-18 03:08:28 [DEBUG] switch_core_session.c:1059 switch_core_session_execute_application() sofia/external/6045151148@66.51.127.163 Expanded String db(insert/last_dial/6045151148/18665780244) 2008-09-18 03:08:29 [DEBUG] switch_core_state_machine.c:140 switch_core_standard_on_execute() sofia/external/6045151148@66.51.127.163Execute db(insert/last_dial/global/${uuid}) 2008-09-18 03:08:29 [DEBUG] switch_core_session.c:1059 switch_core_session_execute_application() sofia/external/6045151148@66.51.127.163 Expanded String db(insert/last_dial/global/bd8aaddc-8569-11dd-bca0-bfa449b5017d) 2008-09-18 03:08:29 [DEBUG] switch_core_state_machine.c:140 switch_core_standard_on_execute() sofia/external/6045151148@66.51.127.163Execute transfer(1001 XML default) 2008-09-18 03:08:29 [DEBUG] switch_ivr.c:1092 switch_ivr_session_transfer() sofia/external/6045151148@66.51.127.163 State Change CS_EXECUTE -> CS_ROUTING 2008-09-18 03:08:29 [DEBUG] switch_core_session.c:727 switch_core_session_signal_state_change() Kill sofia/external/6045151148@66.51.127.163 [BREAK] 2008-09-18 03:08:29 [DEBUG] switch_core_session.c:435 switch_core_session_receive_message() Kill sofia/external/6045151148@66.51.127.163 [BREAK] 2008-09-18 03:08:29 [NOTICE] switch_ivr.c:1098 switch_ivr_session_transfer() Transfer sofia/external/6045151148@66.51.127.163 to XML[1001@default] 2008-09-18 03:08:29 [DEBUG] switch_core_state_machine.c:430 switch_core_session_run() (sofia/external/6045151148@66.51.127.163) State EXECUTE going to sleep 2008-09-18 03:08:29 [DEBUG] switch_core_state_machine.c:365 switch_core_session_run() sofia/external/6045151148@66.51.127.163 Running State Change CS_ROUTING 2008-09-18 03:08:29 [DEBUG] switch_core_state_machine.c:420 switch_core_session_run() (sofia/external/6045151148@66.51.127.163) State ROUTING 2008-09-18 03:08:29 [DEBUG] mod_sofia.c:119 sofia_on_routing() sofia/external/6045151148@66.51.127.163 SOFIA ROUTING 2008-09-18 03:08:29 [DEBUG] switch_core_state_machine.c:64 switch_core_standard_on_routing() Standard ROUTING sofia/external/6045151148@66.51.127.163 2008-09-18 03:08:29 [INFO] mod_dialplan_xml.c:228 dialplan_hunt() Processing 6045151148->1001 in context default So as a Recap, here is what I would like to have changed if possible: 1. A better regex for the default DID install 2. Fix the regex on the enum extension OR remove it OR Better documentation surrounding the name of a file for custom extensions 3. It would be awesome to see the dialplan hunt debugs indicate the name of the extension of the match it is currently looking at, for example - 2008-09-18 03:08:28 [DEBUG] mod_dialplan_xml.c:113 parse_exten() test conditions destination_number(18665780244) =~ /^9998$/ - would become: - 2008-09-18 03:08:28 [DEBUG] mod_dialplan_xml.c:113 parse_exten() * {tone_stream}* test conditions destination_number(18665780244) =~ /^9998$/ 4. Fix the infinite loop on the enum extension Thanks for listening! Christian P.S. I originally tried this out on Windows and instead of my destination number getting set correctly, the destination number kept coming back as the username I used to log in with. Is this a known issue or shall I debug?
On Sep 18, 2008, at 5:24 AM, Christian Jensen wrote:
Hi everyone,
I am in the process of doing something very straightforward - hooking up a DID from Link2Voip into my FS instance (built from SVN Curent on Debian)
In an effort to only change as little as possible to get this baby to respond to a phone call, I have simply added my provider into the /conf/sip_profiles/external and also added in the extension file into /conf/dialplan/extensions
I am able to get the system to Register and I am also able to get an incoming call - however that is where the fun stops.
I hit F8 on my console and this is what I got:
2008-09-18 02:11:38 [INFO] mod_dialplan_xml.c:228 dialplan_hunt() Processing 6044880583->18665780244 in context public 2008-09-18 02:11:38 [DEBUG] mod_dialplan_xml.c:113 parse_exten() test conditions ${unroll_loops}(true) =~ /^true$/ 2008-09-18 02:11:38 [DEBUG] mod_dialplan_xml.c:113 parse_exten() test conditions ${sip_looped_call}() =~ /^true$/ 2008-09-18 02:11:38 [DEBUG] mod_dialplan_xml.c:115 parse_exten() Regex mismatch 2008-09-18 02:11:38 [DEBUG] mod_dialplan_xml.c:113 parse_exten() test conditions destination_number(18665780244) =~ /^(10[01][0-9])$/ 2008-09-18 02:11:38 [DEBUG] mod_dialplan_xml.c:115 parse_exten() Regex mismatch 2008-09-18 02:11:38 [DEBUG] mod_dialplan_xml.c:113 parse_exten() test conditions destination_number(18665780244) =~ /^(5551212)$/ 2008-09-18 02:11:38 [DEBUG] mod_dialplan_xml.c:115 parse_exten() Regex mismatch 2008-09-18 02:11:38 [INFO] switch_core_state_machine.c:114 switch_core_standard_on_routing() No Route, Aborting I think I understand what is going on here - but I disagree with defaults.
This is because the inbound call hits the public context NOT default. It wouldn't be wise to open up your default context to the world for anyone to hit. If you add your extension to dialplan/public.xml and transfer it into the default context this would work perfectly. We have a diagram on the wiki that explains the security model. If you notice it says clearly in the line "Processing 6044880583->18665780244 in context public". Everything you put in the extensions folder is processed and added to the default context.
For most users, I would expect them to do exactly what I just did - try to change as little as possble and only add files as needed.
That is inbound vs outbound and the way its setup by default so you don't open your dialplan to toll fraud.
So finding that the initial root of the dialplan matching happens within public.xml, I attempted to see if there was a better regex match (better than the 5551212 :) and tried ^\d{10,15}$ - basically any number between 10 and 15 digits, good for most of the planet generically. I got no matches, so I though maybe the syntax was strange and went for something simpler - ^[0-9]{10,15}$ - still no matches. Then I brute forced it - ^(18665780244)$ - got a match! yay! - Fun stops again :(
You need to understand that inbound calls should NEVER hit default. You should always have inbound and outbound in different context's. Think of it as a sandbox so you can control security.
So as a Recap, here is what I would like to have changed if possible: A better regex for the default DID install Fix the regex on the enum extension OR remove it OR Better documentation surrounding the name of a file for custom extensions It would be awesome to see the dialplan hunt debugs indicate the name of the extension of the match it is currently looking at, for example 2008-09-18 03:08:28 [DEBUG] mod_dialplan_xml.c:113 parse_exten() test conditions destination_number(18665780244) =~ /^9998$/ would become: 2008-09-18 03:08:28 [DEBUG] mod_dialplan_xml.c:113 parse_exten() {tone_stream} test conditions destination_number(18665780244) =~ / ^9998$/ Fix the infinite loop on the enum extension Thanks for listening! Christian
P.S. I originally tried this out on Windows and instead of my destination number getting set correctly, the destination number kept coming back as the username I used to log in with. Is this a known issue or shall I debug?
_______________________________________________ Freeswitch-dev mailing list Freeswitch-dev@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev http://www.freeswitch.org
So, is it fair then to make the definition that the default context is best for calls that are considered outbound and that public is best for inbound? If that is the case, then can I lobby to have the public.xml also include a line maybe like: <X-PRE-PROCESS cmd="include" data="public/*.xml"/> and then I would drop in my provider DID stuff in there? Secondly, can I get the additional logging element (bullet point #3)? Lastly, regarding the windows build, is that a known issue or should I hunt it down? Thanks! Christian On Thu, Sep 18, 2008 at 9:09 AM, Brian West <brian@freeswitch.org> wrote:
On Sep 18, 2008, at 5:24 AM, Christian Jensen wrote:
Hi everyone,
I am in the process of doing something very straightforward - hooking up a DID from Link2Voip into my FS instance (built from SVN Curent on Debian)
In an effort to only change as little as possible to get this baby to respond to a phone call, I have simply added my provider into the /conf/sip_profiles/external and also added in the extension file into /conf/dialplan/extensions
I am able to get the system to Register and I am also able to get an incoming call - however that is where the fun stops.
I hit F8 on my console and this is what I got:
2008-09-18 02:11:38 [INFO] mod_dialplan_xml.c:228 dialplan_hunt() Processing 6044880583->18665780244 in context public 2008-09-18 02:11:38 [DEBUG] mod_dialplan_xml.c:113 parse_exten() test conditions ${unroll_loops}(true) =~ /^true$/ 2008-09-18 02:11:38 [DEBUG] mod_dialplan_xml.c:113 parse_exten() test conditions ${sip_looped_call}() =~ /^true$/ 2008-09-18 02:11:38 [DEBUG] mod_dialplan_xml.c:115 parse_exten() Regex mismatch 2008-09-18 02:11:38 [DEBUG] mod_dialplan_xml.c:113 parse_exten() test conditions destination_number(18665780244) =~ /^(10[01][0-9])$/ 2008-09-18 02:11:38 [DEBUG] mod_dialplan_xml.c:115 parse_exten() Regex mismatch 2008-09-18 02:11:38 [DEBUG] mod_dialplan_xml.c:113 parse_exten() test conditions destination_number(18665780244) =~ /^(5551212)$/ 2008-09-18 02:11:38 [DEBUG] mod_dialplan_xml.c:115 parse_exten() Regex mismatch 2008-09-18 02:11:38 [INFO] switch_core_state_machine.c:114 switch_core_standard_on_routing() No Route, Aborting I *think* I understand what is going on here - but I *disagree* with defaults.
This is because the inbound call hits the public context NOT default. It wouldn't be wise to open up your default context to the world for anyone to hit. If you add your extension to dialplan/public.xml and transfer it into the default context this would work perfectly. We have a diagram on the wiki that explains the security model. If you notice it says clearly in the line "Processing 6044880583->18665780244 in context public". Everything you put in the extensions folder is processed and added to the default context.
For most users, I would expect them to do exactly what I just did - try to change as little as possble and only add files as needed.
That is inbound vs outbound and the way its setup by default so you don't open your dialplan to toll fraud.
So finding that the initial root of the dialplan matching happens within public.xml, I attempted to see if there was a better regex match (better than the 5551212 :) and tried ^\d{10,15}$ - basically any number between 10 and 15 digits, good for most of the planet generically. I got no matches, so I though maybe the syntax was strange and went for something simpler - ^[0-9]{10,15}$ - still no matches. Then I brute forced it - ^(18665780244)$ - got a match! yay! - Fun stops again :(
You need to understand that inbound calls should NEVER hit default. You should always have inbound and outbound in different context's. Think of it as a sandbox so you can control security.
So as a Recap, here is what I would like to have changed if possible:
1. A better regex for the default DID install 2. Fix the regex on the enum extension OR remove it OR Better documentation surrounding the name of a file for custom extensions 3. It would be awesome to see the dialplan hunt debugs indicate the name of the extension of the match it is currently looking at, for example - 2008-09-18 03:08:28 [DEBUG] mod_dialplan_xml.c:113 parse_exten() test conditions destination_number(18665780244) =~ /^9998$/ - would become: - 2008-09-18 03:08:28 [DEBUG] mod_dialplan_xml.c:113 parse_exten() * {tone_stream}* test conditions destination_number(18665780244) =~ /^9998$/ 4. Fix the infinite loop on the enum extension
Thanks for listening! Christian
P.S. I originally tried this out on Windows and instead of my destination number getting set correctly, the destination number kept coming back as the username I used to log in with. Is this a known issue or shall I debug?
_______________________________________________ Freeswitch-dev mailing list Freeswitch-dev@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev http://www.freeswitch.org
_______________________________________________ Freeswitch-dev mailing list Freeswitch-dev@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev http://www.freeswitch.org
Not sure exactly what you're getting at on bullet point #3... I think at this stage you are better off going on IRC where you can get a realtime response... #freeswitch @ irc.freenode.net /b On Sep 18, 2008, at 2:56 PM, Christian Jensen wrote:
So, is it fair then to make the definition that the default context is best for calls that are considered outbound and that public is best for inbound?
If that is the case, then can I lobby to have the public.xml also include a line maybe like:
<X-PRE-PROCESS cmd="include" data="public/*.xml"/> and then I would drop in my provider DID stuff in there?
Secondly, can I get the additional logging element (bullet point #3)?
Lastly, regarding the windows build, is that a known issue or should I hunt it down?
Thanks! Christian
On Sep 18, 2008, at 4:13 PM, Brian West wrote:
Not sure exactly what you're getting at on bullet point #3... I think at this stage you are better off going on IRC where you can get a realtime response...
#freeswitch @ irc.freenode.net
/b
On Sep 18, 2008, at 2:56 PM, Christian Jensen wrote:
So, is it fair then to make the definition that the default context is best for calls that are considered outbound and that public is best for inbound?
If that is the case, then can I lobby to have the public.xml also include a line maybe like:
<X-PRE-PROCESS cmd="include" data="public/*.xml"/> and then I would drop in my provider DID stuff in there?
Secondly, can I get the additional logging element (bullet point #3)?
Lastly, regarding the windows build, is that a known issue or should I hunt it down?
Thanks! Christian
In regards to the windows issue, can you explain a bit more the problem you are having. There should be no real behavior differences in the windows build, with the exception of some slightly different behavior to address file path and dso loading differences on the platform, and there are still a few modules that have not been added to the windows build system. Mike
participants (3)
-
Brian West
-
Christian Jensen
-
Michael Jerris