I would guess there is an error in public on A, but you didn’t
include all of that context so I can’t say for sure. Note that it matches
10001 in public, but when it gets to Local_Call, it just sees $1, not 10001.
That s why the match is failing.
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
From:
freeswitch-users-bounces@lists.freeswitch.org
[mailto:freeswitch-users-bounces@lists.freeswitch.org] On Behalf Of Kane,
Michael (mkane02)
Sent: Tuesday, June 29, 2010 9:41 AM
To: freeswitch-users@lists.freeswitch.org
Subject: [Freeswitch-users] Connect two FreeSWITCH Boxes
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