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/[EMAIL PROTECTED] 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/[EMAIL PROTECTED] [BREAK] 2008-09-18 02:52:29 [DEBUG] switch_core_state_machine.c:420 switch_core_session_run() (sofia/external/[EMAIL PROTECTED]) State ROUTING going to sleep 2008-09-18 02:52:29 [DEBUG] switch_core_state_machine.c:365 switch_core_session_run() sofia/external/[EMAIL PROTECTED] Running State Change CS_EXECUTE 2008-09-18 02:52:29 [DEBUG] switch_core_state_machine.c:430 switch_core_session_run() (sofia/external/[EMAIL PROTECTED]) State EXECUTE 2008-09-18 02:52:29 [DEBUG] mod_sofia.c:156 sofia_on_execute() sofia/external/[EMAIL PROTECTED] 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/[EMAIL PROTECTED] 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/[EMAIL PROTECTED] 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/[EMAIL PROTECTED] set_user( [EMAIL PROTECTED] <[EMAIL PROTECTED]>}) 2008-09-18 02:52:29 [DEBUG] switch_core_session.c:1059 switch_core_session_execute_application() sofia/external/[EMAIL PROTECTED] Expanded String set_user( [EMAIL PROTECTED]) 2008-09-18 02:52:29 [DEBUG] switch_core_state_machine.c:140 switch_core_standard_on_execute() sofia/external/[EMAIL PROTECTED] 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/[EMAIL PROTECTED] 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/[EMAIL PROTECTED] 2008-09-18 02:52:29 [DEBUG] sofia.c:2183 sofia_handle_sip_i_state() Channel sofia/external/[EMAIL PROTECTED] entering state [terminated] 2008-09-18 02:52:29 [NOTICE] sofia.c:2611 sofia_handle_sip_i_state() Hangup sofia/external/[EMAIL PROTECTED] [CS_EXECUTE] [ORIGINATOR_CANCEL] 2008-09-18 02:52:29 [DEBUG] switch_channel.c:1381 switch_channel_perform_hangup() Kill sofia/external/[EMAIL PROTECTED] 2008-09-18 02:52:29 [DEBUG] switch_core_session.c:727 switch_core_session_signal_state_change() Kill sofia/external/[EMAIL PROTECTED] [BREAK] 2008-09-18 02:52:29 [NOTICE] switch_ivr_originate.c:1321 switch_ivr_originate() Hangup sofia/internal/[EMAIL PROTECTED] [ORIGINATOR_CANCEL] 2008-09-18 02:52:29 [DEBUG] switch_channel.c:1381 switch_channel_perform_hangup() Kill sofia/internal/[EMAIL PROTECTED] [KILL] 2008-09-18 02:52:29 [DEBUG] switch_core_session.c:727 switch_core_session_signal_state_change() Kill sofia/internal/[EMAIL PROTECTED] [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/[EMAIL PROTECTED] 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/[EMAIL PROTECTED] [BREAK] 2008-09-18 03:08:28 [DEBUG] switch_core_state_machine.c:420 switch_core_session_run() (sofia/external/[EMAIL PROTECTED]) State ROUTING going to sleep 2008-09-18 03:08:28 [DEBUG] switch_core_state_machine.c:365 switch_core_session_run() sofia/external/[EMAIL PROTECTED] Running State Change CS_EXECUTE 2008-09-18 03:08:28 [DEBUG] switch_core_state_machine.c:430 switch_core_session_run() (sofia/external/[EMAIL PROTECTED]) State EXECUTE 2008-09-18 03:08:28 [DEBUG] mod_sofia.c:156 sofia_on_execute() sofia/external/[EMAIL PROTECTED] 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/[EMAIL PROTECTED] 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/[EMAIL PROTECTED] 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/[EMAIL PROTECTED] set_user( [EMAIL PROTECTED] <[EMAIL PROTECTED]>}) 2008-09-18 03:08:28 [DEBUG] switch_core_session.c:1059 switch_core_session_execute_application() sofia/external/[EMAIL PROTECTED] Expanded String set_user( [EMAIL PROTECTED]) 2008-09-18 03:08:28 [DEBUG] switch_core_state_machine.c:140 switch_core_standard_on_execute() sofia/external/[EMAIL PROTECTED] 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/[EMAIL PROTECTED] 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/[EMAIL PROTECTED] 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/[EMAIL PROTECTED] 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/[EMAIL PROTECTED] 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/[EMAIL PROTECTED] 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/[EMAIL PROTECTED] transfer(1001 XML default) 2008-09-18 03:08:29 [DEBUG] switch_ivr.c:1092 switch_ivr_session_transfer() sofia/external/[EMAIL PROTECTED] 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/[EMAIL PROTECTED] [BREAK] 2008-09-18 03:08:29 [DEBUG] switch_core_session.c:435 switch_core_session_receive_message() Kill sofia/external/[EMAIL PROTECTED] [BREAK] 2008-09-18 03:08:29 [NOTICE] switch_ivr.c:1098 switch_ivr_session_transfer() Transfer sofia/external/[EMAIL PROTECTED] to [EMAIL PROTECTED] 2008-09-18 03:08:29 [DEBUG] switch_core_state_machine.c:430 switch_core_session_run() (sofia/external/[EMAIL PROTECTED]) State EXECUTE going to sleep 2008-09-18 03:08:29 [DEBUG] switch_core_state_machine.c:365 switch_core_session_run() sofia/external/[EMAIL PROTECTED] Running State Change CS_ROUTING 2008-09-18 03:08:29 [DEBUG] switch_core_state_machine.c:420 switch_core_session_run() (sofia/external/[EMAIL PROTECTED]) State ROUTING 2008-09-18 03:08:29 [DEBUG] mod_sofia.c:119 sofia_on_routing() sofia/external/[EMAIL PROTECTED] SOFIA ROUTING 2008-09-18 03:08:29 [DEBUG] switch_core_state_machine.c:64 switch_core_standard_on_routing() Standard ROUTING sofia/external/[EMAIL PROTECTED] 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?
_______________________________________________ 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