[Freeswitch-users] Connect two FreeSWITCH Boxes

Kane, Michael (mkane02) mkane02 at harris.com
Tue Jun 29 07:40:32 PDT 2010


Hello newbie here.  I'm having difficulty routing calls between 2
FreeSWITCH servers.  I'm following the instructions on the Wiki titled
"Connect Two FreeSWITCH Boxes" and I'm taking the IP authentication
approach.  When I originate a call from server "B" the Regex matches and
forwards the call onto Server "A".  Server "A" isn't matching in
dialplan/default.xml (Local_Call) for some reason.  Public.xml
successfully transfers the call into the default context, but for some
reason it skips over the Local_Call Regex.  Anyone's guidance would be
greatly appreciated.


Server "B" (call origination dialing 10001 from 20001)
10.3.3.10

dialplan/default.xml

   <extension name="Dial to BoxA">
      <condition field="destination_number" expression="^(10\d\d\d)$">
        <action application="bridge"
data="sofia/internal/$1 at 10.1.1.10"/>
      </condition>
   </extension>

outbound call trace from console

Dialplan: sofia/internal/20001 at 10.3.3.10 parsing [default->Local_Call]
continue=false
Dialplan: sofia/internal/20001 at 10.3.3.10 Regex (FAIL) [Local_Call]
destination_number(10001) =~ /^(20\d\d\d)$/ break=on-false
Dialplan: sofia/internal/20001 at 10.3.3.10 parsing [default->Dial to BoxA]
continue=false
Dialplan: sofia/internal/20001 at 10.3.3.10 Regex (PASS) [Dial to BoxA]
destination_number(10001) =~ /^(10\d\d\d)$/ break=on-false
Dialplan: sofia/internal/20001 at 10.3.3.10 Action
bridge(sofia/internal/10001 at 10.1.1.10)



dialplan/public.xml

 <extension name="Calls from BoxA">
      <condition field="destination_number" expression=^(10\d\d\d)$">
        <action application="transfer" data="$1 XML default"/>
      </condition>
    </extension>

************************************************************************
**

Server "A" (Call termination)
10.1.1.10

dialplan/default.xml

<extension name="Local_Call">
     <condition field="destination_number" expression="^(10\d\d\d)$">
       <action application="set" data="dialed_extension=$1"/>
       <action application="bridge"
data="user/${dialed_extension}@${domain_name}"/>
       <action application="answer"/>
       <action application="hangup"/>
     </condition>
   </extension>

dialplan/public.xml

   <extension name="Dial to BoxB">
      <condition field="destination_number" expression="^(20\d\d\d)$">
        <action application="bridge"
data="sofia/internal/$1 at 10.3.3.10"/>
      </condition>
   </extension>

inbound call trace from console

Dialplan: sofia/internal/20001 at 10.3.3.10 parsing [public->Calls from
BoxB] continue=false
Dialplan: sofia/internal/20001 at 10.3.3.10 Regex (PASS) [Calls from BoxB]
destination_number(10001) =~ // break=on-false
Dialplan: sofia/internal/20001 at 10.3.3.10 Action transfer($1 XML default)

"there are a bunch of state machine messages here"

Dialplan: sofia/internal/20001 at 10.3.3.10 parsing [default->Local_Call]
continue=false
Dialplan: sofia/internal/20001 at 10.3.3.10 Regex (FAIL) [Local_Call]
destination_number($1) =~ /^(10\d\d\d)$/ break=on-false
Dialplan: sofia/internal/20001 at 10.3.3.10 parsing [default->Dial to BoxB]
continue=false
Dialplan: sofia/internal/20001 at 10.3.3.10 Regex (FAIL) [Dial to BoxB]
destination_number($1) =~ /^(20\d\d\d)$/ break=on-false
Dialplan: sofia/internal/20001 at 10.3.3.10 parsing [default->outbound]
continue=false
Dialplan: sofia/internal/20001 at 10.3.3.10 Regex (FAIL) [outbound]
destination_number($1) =~ /^(\d)(\d{6})$/ break=on-false
Dialplan: sofia/internal/20001 at 10.3.3.10 parsing [default->pizza_demo]
continue=false
Dialplan: sofia/internal/20001 at 10.3.3.10 Regex (FAIL) [pizza_demo]
destination_number($1) =~ /^(pizza|74992)$/ break=on-false
Dialplan: sofia/internal/20001 at 10.3.3.10 parsing
[default->local.example.com] continue=false
Dialplan: sofia/internal/20001 at 10.3.3.10 Regex (FAIL)
[local.example.com] ${toll_allow}() =~ /local/ break=on-false
Dialplan: sofia/internal/20001 at 10.3.3.10 parsing
[default->domestic.example.com] continue=false
Dialplan: sofia/internal/20001 at 10.3.3.10 Regex (FAIL)
[domestic.example.com] ${toll_allow}() =~ /domestic/ break=on-false
Dialplan: sofia/internal/20001 at 10.3.3.10 parsing
[default->international.example.com] continue=false
Dialplan: sofia/internal/20001 at 10.3.3.10 Regex (FAIL)
[international.example.com] ${toll_allow}() =~ /international/
break=on-false
Dialplan: sofia/internal/20001 at 10.3.3.10 parsing [default->enum]
continue=false
Dialplan: sofia/internal/20001 at 10.3.3.10 Regex (PASS) [enum]
${module_exists(mod_enum)}(true) =~ /true/ break=on-false
Dialplan: sofia/internal/20001 at 10.3.3.10 Regex (PASS) [enum]
destination_number($1) =~ /^(.*)$/ break=on-false
Dialplan: sofia/internal/20001 at 10.3.3.10 Action transfer($1 enum)


I was expecting 

"Dialplan: sofia/internal/20001 at 10.3.3.10 Regex (FAIL) [Local_Call]
destination_number($1) =~ /^(10\d\d\d)$/ break=on-false"

to match the dialed number for which it would route the call to 10001.
By the way 10001, 10002 and 20001, 20002 have sucessfully registered
with
their respective servers and can place calls internally to the switch.
Also when I run tcpdump on Server "B" I'm getting 404 Not Found, which
indicates
either the endpoint is not registered or properly configured.  



Mike
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20100629/797e2b29/attachment-0001.html 


More information about the FreeSWITCH-users mailing list