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@10.1.1.10"/>

      </condition>

   </extension>

outbound call trace from console

Dialplan: sofia/internal/20001@10.3.3.10 parsing [default->Local_Call] continue=false

Dialplan: sofia/internal/20001@10.3.3.10 Regex (FAIL) [Local_Call] destination_number(10001) =~ /^(20\d\d\d)$/ break=on-false

Dialplan: sofia/internal/20001@10.3.3.10 parsing [default->Dial to BoxA] continue=false

Dialplan: sofia/internal/20001@10.3.3.10 Regex (PASS) [Dial to BoxA] destination_number(10001) =~ /^(10\d\d\d)$/ break=on-false

Dialplan: sofia/internal/20001@10.3.3.10 Action bridge(sofia/internal/10001@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@10.3.3.10"/>

      </condition>

   </extension>

inbound call trace from console

Dialplan: sofia/internal/20001@10.3.3.10 parsing [public->Calls from BoxB] continue=false

Dialplan: sofia/internal/20001@10.3.3.10 Regex (PASS) [Calls from BoxB] destination_number(10001) =~ // break=on-false

Dialplan: sofia/internal/20001@10.3.3.10 Action transfer($1 XML default)

"there are a bunch of state machine messages here"

Dialplan: sofia/internal/20001@10.3.3.10 parsing [default->Local_Call] continue=false

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

Dialplan: sofia/internal/20001@10.3.3.10 parsing [default->Dial to BoxB] continue=false

Dialplan: sofia/internal/20001@10.3.3.10 Regex (FAIL) [Dial to BoxB] destination_number($1) =~ /^(20\d\d\d)$/ break=on-false

Dialplan: sofia/internal/20001@10.3.3.10 parsing [default->outbound] continue=false

Dialplan: sofia/internal/20001@10.3.3.10 Regex (FAIL) [outbound] destination_number($1) =~ /^(\d)(\d{6})$/ break=on-false

Dialplan: sofia/internal/20001@10.3.3.10 parsing [default->pizza_demo] continue=false

Dialplan: sofia/internal/20001@10.3.3.10 Regex (FAIL) [pizza_demo] destination_number($1) =~ /^(pizza|74992)$/ break=on-false

Dialplan: sofia/internal/20001@10.3.3.10 parsing [default->local.example.com] continue=false

Dialplan: sofia/internal/20001@10.3.3.10 Regex (FAIL) [local.example.com] ${toll_allow}() =~ /local/ break=on-false

Dialplan: sofia/internal/20001@10.3.3.10 parsing [default->domestic.example.com] continue=false

Dialplan: sofia/internal/20001@10.3.3.10 Regex (FAIL) [domestic.example.com] ${toll_allow}() =~ /domestic/ break=on-false

Dialplan: sofia/internal/20001@10.3.3.10 parsing [default->international.example.com] continue=false

Dialplan: sofia/internal/20001@10.3.3.10 Regex (FAIL) [international.example.com] ${toll_allow}() =~ /international/ break=on-false

Dialplan: sofia/internal/20001@10.3.3.10 parsing [default->enum] continue=false

Dialplan: sofia/internal/20001@10.3.3.10 Regex (PASS) [enum] ${module_exists(mod_enum)}(true) =~ /true/ break=on-false

Dialplan: sofia/internal/20001@10.3.3.10 Regex (PASS) [enum] destination_number($1) =~ /^(.*)$/ break=on-false

Dialplan: sofia/internal/20001@10.3.3.10 Action transfer($1 enum)


I was expecting

"Dialplan: sofia/internal/20001@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