Hello world,
I have two freeswitch servers that I want to interconnect. Each one of them has their own sip domain and we want to enable sip communications between them. All the PC can ping together.
Client #1 ------- Freeswitch #1 --(gateway)--- Freeswitch #2 ------ Client# 2.
We have configured a sip gateway on Freeswitch #1 server with the configuration below:
C:\Program Files\FreeSWITCH\conf\sip_profiles\external\gw.xml
<include>
<gateway
name="gw">
<param name="username" value="3000"/>
<param name="realm" value="192.168.2.10"/>
<param name="from-domain" value="192.168.2.10"/>
<param name="password" value="2009"/>
<param name="expire-seconds" value="3600"/>
<param name="register-transport" value="udp"/>
<param name="retry-seconds" value="30"/>
<param name="ping" value="25"/>
</gateway>
</include>
C:\Program Files\FreeSWITCH\conf\dialplan\default\01_example.com.xml
<include>
<extension
name="gw">
<!--<condition
field="${toll_allow}" expression="gw"/> -->
<condition field="destination_number"
expression="^(30[0-2][0-9])$">
<action
application="bridge" data="sofia/gateway/gw/$1@192.168.2.10"/>
</condition>
</extension>
</include>
In the Freeswitch #2 server, we have configured the 3000 extension:
C:\Program Files\FreeSWITCH\conf\directory\default\3000.xml
<include>
<user id="3000" mailbox="3000">
<params>
<param name="password"
value="1234"/>
<param name="vm-password"
value="1000"/>
</params>
<variables>
<variable name="toll_allow"
value="domestic,international,local"/>
<variable
name="accountcode" value="3000"/>
<variable name="user_context" value="default"/>
<variable name="effective_caller_id_name"
value="Extension 3000"/>
<variable
name="effective_caller_id_number" value="3000"/>
<variable name="outbound_caller_id_name"
value="$${outbound_caller_name}"/>
<variable
name="outbound_caller_id_number"
value="$${outbound_caller_id}"/>
<variable
name="callgroup" value="techsupport"/>
</variables>
</user>
</include>
We have our gateway working.
>>sofia status gateway gw
But we can't do a call between client#1 and client#2.
=================================================================================================
Name gw
Scheme Digest
Realm
10.0.2.10
Username 3000
Password yes
From <sip:3000@192.168.2.10;transport=udp>
Contact <sip:gw+gw@192.168.1.10:5080;transport=udp>
Exten 3000
To sip:3000@192.168.2.10
Proxy sip:192.168.2.10
Context public
Expires 3600
Freq 3600
Ping
1248881849
PingFreq 25
State REGED
Status UP
CallsIN 0
CallsOUT 19
=================================================================================================
We have the following debug when we make a call.
2009-07-29 17:19:52 [DEBUG] sofia_glue.c:2566 sofia_glue_negotiate_sdp() Set 2833 dtmf payload to 101
2009-07-29 17:19:52 [DEBUG] sofia.c:2962 sofia_handle_sip_i_state() (sofia/internal/1311@192.168.1.10) State Change CS_NEW -> CS_INIT
2009-07-29 17:19:52 [DEBUG] switch_core_session.c:868 switch_core_session_signal_state_change() Send signal sofia/internal/1311@192.168.1.10 [BREAK]
2009-07-29 17:19:52 [DEBUG] switch_core_state_machine.c:390 switch_core_session_run() (sofia/internal/1311@192.168.1.10) Running State Change CS_INIT
2009-07-29 17:19:52 [DEBUG] switch_core_state_machine.c:469 switch_core_session_run() (sofia/internal/1311@192.168.1.10) State INIT
2009-07-29 17:19:52 [DEBUG] mod_sofia.c:83 sofia_on_init() sofia/internal/1311@192.168.1.10 SOFIA INIT
2009-07-29 17:19:52 [DEBUG] mod_sofia.c:111 sofia_on_init() (sofia/internal/1311@192.168.1.10) State Change CS_INIT -> CS_ROUTING
2009-07-29 17:19:52 [DEBUG] switch_core_session.c:868 switch_core_session_signal_state_change() Send signal sofia/internal/1311@192.168.1.10 [BREAK]
2009-07-29 17:19:52 [DEBUG] switch_core_state_machine.c:469 switch_core_session_run() (sofia/internal/1311@192.168.1.10) State INIT going to sleep
2009-07-29 17:19:52 [DEBUG] switch_core_state_machine.c:390 switch_core_session_run() (sofia/internal/1311@192.168.1.10) Running State Change CS_ROUTING
2009-07-29 17:19:52 [DEBUG] switch_core_state_machine.c:472 switch_core_session_run() (sofia/internal/1311@192.168.1.10) State ROUTING
2009-07-29 17:19:52 [DEBUG] mod_sofia.c:130 sofia_on_routing() sofia/internal/1311@192.168.1.10 SOFIA ROUTING
2009-07-29 17:19:52 [DEBUG] switch_core_state_machine.c:71 switch_core_standard_on_routing() sofia/internal/1311@192.168.1.10 Standard ROUTING
2009-07-29 17:19:52 [INFO] mod_dialplan_xml.c:252 dialplan_hunt() Processing Chewaka (test)->3021 in context default
Dialplan: sofia/internal/1311@192.168.1.10 parsing [default->unloop] continue=false
Dialplan: sofia/internal/1311@192.168.1.10 Regex (PASS) [unloop] ${unroll_loops}(true) =~ /^true$/ break=on-false
Dialplan: sofia/internal/1311@192.168.1.10 Regex (FAIL) [unloop] ${sip_looped_call}() =~ /^true$/ break=on-false
Dialplan: sofia/internal/1311@192.168.1.10 parsing [default->global] continue=true
Dialplan: sofia/internal/1311@192.168.1.10 Regex (FAIL) [global] ${network_addr}(10.3.1.12) =~ /^$/ break=never
Dialplan: sofia/internal/1311@192.168.1.10 ANTI-Action set(use_profile=${cond(${acl(${network_addr} rfc1918)} == true ? nat : default)})
Dialplan: sofia/internal/1311@192.168.1.10 Regex (PASS) [global] ${numbering_plan}() =~ /^$/ break=never
Dialplan: sofia/internal/1311@192.168.1.10 Action set_user(default@${domain_name})
Dialplan: sofia/internal/1311@192.168.1.10 Regex (FAIL) [global] ${call_debug}(false) =~ /^true$/ break=never
Dialplan: sofia/internal/1311@192.168.1.10 Regex (FAIL) [global] ${sip_has_crypto}() =~ /^(AES_CM_128_HMAC_SHA1_32|AES_CM_128_HMAC_SHA1_80)$/ break=never
Dialplan: sofia/internal/1311@192.168.1.10 Absolute Condition [global]
Dialplan: sofia/internal/1311@192.168.1.10 Action db(insert/${domain_name}-spymap/${caller_id_number}/${uuid})
Dialplan: sofia/internal/1311@192.168.1.10 Action db(insert/${domain_name}-last_dial/${caller_id_number}/${destination_number})
Dialplan: sofia/internal/1311@192.168.1.10 Action db(insert/${domain_name}-last_dial/global/${uuid})
Dialplan: sofia/internal/1311@192.168.1.10 parsing [default->Local_Extension] continue=false
Dialplan: sofia/internal/1311@192.168.1.10 Regex (FAIL) [Local_Extension] destination_number(3021) =~ /^(130[0-8] && 131[0-9])$/ break=on-false
Dialplan: sofia/internal/1311@192.168.1.10 parsing [default->IFAU_global_demonstrator_Conference_Room] continue=false
Dialplan: sofia/internal/1311@192.168.1.10 Regex (FAIL) [IFAU_global_demonstrator_Conference_Room] destination_number(3021) =~ /^1309$/ break=on-false
Dialplan: sofia/internal/1311@192.168.1.10 parsing [default->gw] continue=false
Dialplan: sofia/internal/1311@192.168.1.10 Regex (PASS) [gw] destination_number(3021) =~ /^(30[0-2][0-9])$/ break=on-false
Dialplan: sofia/internal/1311@192.168.1.10 Action bridge(sofia/gateway/gw/3021@192.168.2.10)
2009-07-29 17:19:52 [DEBUG] switch_core_state_machine.c:107 switch_core_standard_on_routing() (sofia/internal/1311@192.168.1.10) State Change CS_ROUTING -> CS_EXEC
UTE
2009-07-29 17:19:52 [DEBUG] switch_core_session.c:868 switch_core_session_signal_state_change() Send signal sofia/internal/1311@192.168.1.10 [BREAK]
2009-07-29 17:19:52 [DEBUG] switch_core_state_machine.c:472 switch_core_session_run() (sofia/internal/1311@192.168.1.10) State ROUTING going to sleep
2009-07-29 17:19:52 [DEBUG] switch_core_state_machine.c:390 switch_core_session_run() (sofia/internal/1311@192.168.1.10) Running State Change CS_EXECUTE
2009-07-29 17:19:52 [DEBUG] switch_core_state_machine.c:479 switch_core_session_run() (sofia/internal/1311@192.168.1.10) State EXECUTE
2009-07-29 17:19:52 [DEBUG] mod_sofia.c:173 sofia_on_execute() sofia/internal/1311@192.168.1.10 SOFIA EXECUTE
2009-07-29 17:19:52 [DEBUG] switch_core_state_machine.c:144 switch_core_standard_on_execute() sofia/internal/1311@192.168.1.10 Standard EXECUTE
EXECUTE sofia/internal/1311@192.168.1.10 set(use_profile=default)
2009-07-29 17:19:52 [DEBUG] mod_dptools.c:747 set_function() sofia/internal/1311@192.168.1.10 SET [use_profile]=[default]
EXECUTE sofia/internal/1311@192.168.1.10 set_user(default@192.168.1.10)
2009-07-29 17:19:52 [WARNING] switch_ivr.c:2042 switch_ivr_set_user() can't find user [default@192.168.1.10]
EXECUTE sofia/internal/1311@192.168.1.10 db(insert/192.168.1.10-spymap/1311/d851bbd1-c09c-474b-b1df-d433420b132b)
EXECUTE sofia/internal/1311@192.168.1.10 db(insert/192.168.1.10-last_dial/1311/3021)
EXECUTE sofia/internal/1311@192.168.1.10 db(insert/192.168.1.10-last_dial/global/d851bbd1-c09c-474b-b1df-d433420b132b)
EXECUTE sofia/internal/1311@192.168.1.10 bridge(sofia/gateway/gw/3021@192.168.2.10)
2009-07-29 17:19:52 [NOTICE] switch_channel.c:592 switch_channel_set_name() New Channel sofia/external/3021@192.168.2.10 [35a85e69-d109-134f-81d3-1d21016f43e5]
2009-07-29 17:19:52 [DEBUG] mod_sofia.c:2567 sofia_outgoing_channel() (sofia/external/3021@192.168.2.10) State Change CS_NEW -> CS_INIT
2009-07-29 17:19:52 [DEBUG] switch_core_session.c:868 switch_core_session_signal_state_change() Send signal sofia/external/3021@192.168.2.10 [BREAK]
2009-07-29 17:19:52 [DEBUG] switch_core_state_machine.c:390 switch_core_session_run() (sofia/external/3021@192.168.2.10) Running State Change CS_INIT
2009-07-29 17:19:52 [DEBUG] switch_core_state_machine.c:469 switch_core_session_run() (sofia/external/3021@192.168.2.10) State INIT
2009-07-29 17:19:52 [DEBUG] mod_sofia.c:83 sofia_on_init() sofia/external/3021@192.168.2.10 SOFIA INIT
2009-07-29 17:20:18 [ERR] sofia_glue.c:568 sofia_glue_ext_address_lookup() STUN Failed! stun.freeswitch.org:3478 [Timeout]
2009-07-29 17:20:18 [NOTICE] mod_sofia.c:103 sofia_on_init() Hangup sofia/external/3021@192.168.2.10 [CS_INIT] [DESTINATION_OUT_OF_ORDER]
2009-07-29 17:20:18 [DEBUG] switch_channel.c:1612 switch_channel_perform_hangup() Send signal sofia/external/3021@192.168.2.10 [KILL]
2009-07-29 17:20:18 [DEBUG] switch_core_session.c:868 switch_core_session_signal_state_change() Send signal sofia/external/3021@192.168.2.10 [BREAK]
With Wireshark, we have seen two sip error frame : "407 Proxy authentication required" and "502 bad gateway".
What I must do to make calls between the two sip domains ?
Best regards.
G.C.