<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Hi,<br>
<br>
I just installed Freeswitch and my intention to use fs to route calls
between gateways but am still stuck with the proper configuration.<br>
The simple diagram is like this :<br>
<br>
<br>
<i>subscriber A------> SIP Server A ------>Freeswitch----->SIP
Server B-----> subscriber B</i><br>
voip prefix <big> </big> ip a.b.c.d ip
1.2.3.4 ip w.x.y.z voip prefix <br>
777888x
999111x <br>
<br>
I tried to call subscriber B from subscriber A but getting this error :<br>
<br>
2007-09-20 10:40:24 [NOTICE] sofia.c:1171 sofia_handle_sip_i_state()
Hangup sofia//777888888@<i>a.b.c.d</i>:5060 [CS_NEW]
[INCOMPATIBLE_DESTINATION]<br>
2007-09-20 10:40:24 [DEBUG] switch_channel.c:1076
switch_channel_perform_hangup() Kill sofia//777888888@<i>a.b.c.d:</i>5060
[KILL]<br>
2007-09-20 10:40:24 [DEBUG] switch_core_session.c:638
switch_core_session_signal_state_change() Kill sofia//777888888@<i>a.b.c.d</i>:5060
[BREAK]<br>
2007-09-20 10:40:24 [DEBUG] sofia.c:71 sofia_event_callback() event
[nua_i_state] status [488][Not Acceptable Here] session:
sofia//777888888@<i>a.b.c.d</i>:5060<br>
2007-09-20 10:40:24 [DEBUG] sofia.c:1032 sofia_handle_sip_i_state()
Channel sofia//777888888@<i>a.b.c.d:</i>5060 entering state [terminated]<br>
2007-09-20 10:40:24 [DEBUG] switch_core_state_machine.c:347
switch_core_session_run() (sofia//777888888@<i>a.b.c.d</i>:5060) State
HANGUP<br>
2007-09-20 10:40:24 [DEBUG] mod_sofia.c:217 sofia_on_hangup() Channel
sofia//777888888@<i>a.b.c.d</i>:5060 hanging up, cause:
INCOMPATIBLE_DESTINATION<br>
2007-09-20 10:40:24 [DEBUG] switch_core_state_machine.c:45
switch_core_standard_on_hangup() Standard HANGUP sofia//777888888@<i>a.b.c.d</i>:5060,
cause: INCOMPATIBLE_DESTINATION<br>
2007-09-20 10:40:24 [DEBUG] switch_core_session.c:697
switch_core_session_thread() Session 1 (sofia//777888888@<i>a.b.c.d</i>:5060)
Locked, Waiting on external entities<br>
2007-09-20 10:40:24 [INFO] switch_core_session.c:703
switch_core_session_thread() Session 1 (sofia//777888888@<i>a.b.c.d</i>:5060)
Ended<br>
2007-09-20 10:40:24 [NOTICE] switch_core_session.c:705
switch_core_session_thread() Close Channel sofia//777888888@<i>a.b.c.d</i>:5060
[CS_HANGUP]<br>
<br>
<br>
Which configuration file should i edit so i could pass the traffic from
A to B through fs?<br>
<br>
Here's my config@fs :<br>
<br>
<i><u><b>default_context.xml</b><br>
<br>
</u></i><context name="default"><br>
<br>
<!--outgoing extension--><br>
<extension name="test1"><br>
<condition field="destination_number"
expression="^(9991111[0-3]{3})$"><br>
<action application="set" data="call_timeout=30"/><br>
<action application="set"
data="continue_on_fail=true"/><br>
<action application="set"
data="hangup_after_bridge=true"/><br>
<action application="bridge"
data="sofia/gateway/test1/$1@<i>w.x.y.z</i>"/><br>
</condition><br>
</extension><br>
<br>
<extension name="test2"><br>
<condition field="destination_number"
expression="^(777888[0-9]{3})$"><br>
<action application="bridge"
data="sofia/$${sip_profile}/$1@<i>a.b.c.d</i>"/><br>
</condition><br>
</extension><br>
<br>
<br>
</context><br>
<br>
<br>
<b><u><i>freeswitch.xml</i></u></b><br>
<br>
<?xml version="1.0"?><br>
<document type="freeswitch/xml"><br>
<br>
<!-- Preprocessor Variables<br>
These are introduced when configuration strings must be
consistent across modules.<br>
--><br>
<!-- sip_profile<br>
Must be a domain name if you are being a registry server;
otherwise<br>
can be any string.<br>
used by: sofia.conf.xml enum.conf.xml default_context.xml
directory.xml<br>
--><br>
#set "sip_profile=<i>1.2.3.4</i>"<br>
<!-- xmpp_client_profile and xmpp_server_profile<br>
xmpp_client_profile can be any string.<br>
xmpp_server_profile is appended to "dingaling_" to form the
database name<br>
containing the "subscriptions" table.<br>
used by: dingaling.conf.xml enum.conf.xml<br>
--><br>
#set "global_codec_prefs=PCMU@20i,G729@20"<br>
<!--#set "xmpp_client_profile=xmppc"--><br>
<!--#set "xmpp_server_profile=xmpps"--><br>
<!-- bind_server_ip<br>
Can be an ip address, a dns name, or "auto".<br>
This determines an ip address available on this host to bind.<br>
If you are separating RTP and SIP traffic, you will want to have<br>
use different addresses where this variable appears.<br>
Used by: sofia.conf.xml dingaling.conf.xml<br>
--><br>
<!--#set "bind_server_ip=auto"--><br>
<!-- external_rtp_ip<br>
Used as the public IP address for SDP.<br>
Can be an ip address or a string like "stun:stun.server.com"<br>
If unspecified, the bind_server_ip value is used.<br>
Used by: sofia.conf.xml dingaling.conf.xml<br>
--><br>
<!--#set "external_rtp_ip=stun:stun.server.com"--><br>
<!-- server_name<br>
A public ip address or DNS name that is used when advertising
conference<br>
presence or registering sip.<br>
Used by: conference.conf.xml<br>
--><br>
<!-- outbound_caller_id and outbound_caller_name<br>
The caller ID telephone number we should use when calling out.<br>
Used by: conference.conf.xml<br>
--><br>
<!--#set "outbound_caller_name=FreeSWITCH"--><br>
<!--#set "outbound_caller_id=8777423583"--><br>
<br>
<section name="configuration" description="Various
Configuration"><br>
<!--#include "switch.conf.xml"--><br>
<!--#include "modules.conf.xml"--><br>
<br>
<i><u> </u></i> <!-- Order doesn't matter, but for clarity these
are in same order as modules.conf.xml.<br>
If they aren't loaded by modules.conf.xml, then they are
ignored.<br>
--><br>
<!-- Loggers --><br>
<!--#include "console.conf.xml"--><br>
<!--#include "syslog.conf.xml"--><br>
<br>
<!-- Multi-Faceted --><br>
<!--#include "enum.conf.xml"--><br>
<br>
<!-- XML Interfaces --><br>
<!--#include "xml_rpc.conf.xml"--><br>
<!--#include "xml_cdr.conf.xml"--><br>
<!--#include "xml_curl.conf.xml"--><br>
<!-- none for mod_xml_cdr --><br>
<br>
<!-- Event Handlers --><br>
<!--#include "cdr.conf.xml"--><br>
<!--#include "event_multicast.conf.xml"--><br>
<!--#include "event_socket.conf.xml"--><br>
<!--#include "xmpp_event.conf.xml"--><br>
<!--#include "zeroconf.conf.xml"--><br>
<br>
<!-- Directory Interfaces --><br>
<!-- none for mod_ldap; dialplan_directory.conf.xml has ldap
connection info --><br>
<br>
<!-- Endpoints --><br>
<!--#include "dingaling.conf.xml"--><br>
<!--#include "iax.conf.xml"--><br>
<!--#include "portaudio.conf.xml"--><br>
<!--#include "alsa.conf.xml"--><br>
<!--#include "sofia.conf.xml"--><br>
<!--#include "wanpipe.conf.xml"--><br>
<!--#include "woomera.conf.xml"--><br>
<br>
<!-- Applications --><br>
<!-- none for mod_bridgecall, mod_commands, mod_echo, mod_park,
mod_playback --><br>
<!--#include "conference.conf.xml"--><br>
<!-- ivr.conf is used by mod_dptools --><br>
<!--#include "ivr.conf.xml"--><br>
<br>
<!-- Dialplan Interfaces --><br>
<!--#include "dialplan_directory.conf.xml"--><br>
<!-- mod_dialplan_xml is configured in the separate "dialplan"
section. --><br>
<br>
<!-- Codec Interfaces --><br>
<!-- no configuration needed --><br>
<!-- File Format Interfaces --><br>
<!-- no configuration needed --><br>
<!-- Timers --><br>
<!-- no configuration needed --><br>
<br>
<!-- Languages --><br>
<!--#include "spidermonkey.conf.xml"--><br>
<!-- none for mod_perl --><br>
<br>
<!-- ASR /TTS --><br>
<!-- none for mod_cepstral --><br>
<!--#include "rss.conf.xml"--><br>
<!--#include "mod_openmrcp.conf.xml"--><br>
<br>
<!-- Say --><br>
<!-- none for mod_say_en --><br>
<!--#include "mod_cdr.conf.xml"--><br>
<!--#include "mod_local_stream.conf.xml"--><br>
<br>
</section><br>
<section name="dialplan" description="Regex/XML Dialplan"><br>
<!--#include "default_context.xml"--><br>
</section><br>
<br>
<!-- mod_dingaling is reliant on the vcard data in the "directory"
section. --><br>
<!-- mod_sofia is reliant on the user data for authorization --><br>
<section name="directory" description="User Directory"><br>
<!--#include "directory.xml"--><br>
</section><br>
<br>
<!-- phrases section (under development still) --><br>
<section name="phrases" description="Speech Phrase Management"><br>
<macros><br>
<language name="en" sound_path="/snds" tts_engine="cepstral"
tts_voice="david"><br>
<!--#include "lang_en.xml"--><br>
</language><br>
<language name="fr" sound_path="/var/sounds/lang/fr/jean"
tts_engine="cepstral" tts_voice="jean-pierre"><br>
<!--#include "lang_fr.xml"--><br>
</language><br>
</macros><br>
</section><br>
<br>
</document><br>
<br>
<br>
<b><i><u>Sofia.conf.xml</u></i></b><br>
<br>
<configuration name="sofia.conf" description="sofia Endpoint"><br>
<profiles><br>
<profile name="test1"><br>
<!--aliases are other names that will work as a valid profile
name for this profile--><br>
<aliases><br>
<alias name="test1"/><br>
</aliases><br>
<!-- Outbound Registrations --><br>
<gateways><br>
<gateway name="test1"><br>
<!--/// account username *required* ///--><br>
<param name="username" value="<i>myusername B</i>"/><br>
<!--/// auth realm: *optional* same as gateway name, if
blank ///--><br>
<param name="realm" value="<i>1.2.3.4</i>"/><br>
<!--/// domain to use in from: *optional* same as realm,
if blank ///--><br>
<!--<param name="from-domain"
value="asterlink.com"/>--><br>
<!--/// account password *required* ///--><br>
<param name="password" value="xxxx"/><br>
<!--/// replace the INVITE from user with the channel's
caller-id ///--><br>
<!--<param name="caller-id-in-from"
value="false"/>--><br>
<!--/// extension for inbound calls: *optional* same as
username, if blank ///--><br>
<param name="extension" value="<i>myusername B</i>"/><br>
<!--/// proxy host: *optional* same as realm, if blank
///--><br>
<param name="proxy" value="<i>1.2.3.4</i>"/><br>
<!--/// expire in seconds: *optional* 3600, if blank
///--><br>
<param name="expire-seconds" value="60"/><br>
<!--/// do not register ///--><br>
<param name="register" value="true"/><br>
<!--How many seconds before a retry when a failure or
timeout occurs --><br>
<param name="retry_seconds" value="30"/><br>
<!--Use the callerid of an inbound call in the from field
on outbound calls via this gateway --><br>
<param name="disable-transcoding" value="true"/><br>
<param name="caller-id-in-from" value="false"/><br>
</gateway><br>
</gateways><br>
<br>
<domains><br>
<!-- indicator to parse the directory for domains with
parse="true" to get gateways--><br>
<!--<domain name="$${domain}" parse="true"/>--><br>
</domains><br>
<br>
<settings><br>
<param name="debug" value="1"/><br>
<param name="rfc2833-pt" value="101"/><br>
<param name="sip-port" value="5060"/><br>
<param name="dialplan" value="XML"/><br>
<param name="dtmf-duration" value="100"/><br>
<param name="codec-prefs" value="$${global_codec_prefs}"/><br>
<param name="codec-ms" value="20"/><br>
<param name="use-rtp-timer" value="true"/><br>
<param name="rtp-timer-name" value="soft"/><br>
<param name="rtp-ip" value="$${bind_server_ip}"/><br>
<param name="sip-ip" value="$${bind_server_ip}"/><br>
<!--set to 'greedy' if you want your codec list to take
precedence --><br>
<param name="inbound-codec-negotiation" value="generous"/><br>
<!-- if you want to send any special bind params of your own
--><br>
<!--<param name="bind-params"
value="transport=udp"/>--><br>
<br>
<!--If you don't want to pass through timestampes from 1 RTP
call to another (on a per call basis with rtp_rewrite_timestamps
chanvar)--><br>
<!--<param name="rtp-rewrite-timestampes"
value="true"/>--><br>
<br>
<!--If you have ODBC support and a working dsn you can use
it instead of SQLite--><br>
<!--<param name="odbc-dsn"
value="dsn:user:pass"/>--><br>
<br>
<!--Uncomment to set all inbound calls to no media mode--><br>
<!--<param name="inbound-no-media" value="true"/>--><br>
<br>
<!--Uncomment to let calls hit the dialplan *before* you
decide if the codec is ok--><br>
<!--<param name="inbound-late-negotiation"
value="true"/>--><br>
<br>
<!-- this lets anything register --><br>
<!-- comment the next line and uncomment one or both of the
other 2 lines for call authentication --><br>
<param name="accept-blind-reg" value="true"/><br>
<br>
<!--TTL for nonce in sip auth--><br>
<param name="nonce-ttl" value="60"/><br>
<!--Uncomment if you want to force the outbound leg of a
bridge to only offer the codec<br>
that the originator is using--><br>
<!--<param name="disable-transcoding"
value="true"/>--><br>
<!--<param name="auth-calls" value="true"/>--><br>
<!-- on authed calls, authenticate *all* the packets not
just invite --><br>
<!--<param name="auth-all-packets" value="true"/>--><br>
<br>
<!-- <param name="ext-rtp-ip"
value="$${external_rtp_ip}"/>--><br>
<br>
<!-- <param name="ext-sip-ip"
value="100.101.102.103"/> --><br>
<!-- VAD choose one (out is a good choice); --><br>
<!-- <param name="vad" value="in"/> --><br>
<!-- <param name="vad" value="out"/> --><br>
<i><u><br>
</u></i> </settings><br>
</profile><br>
<profiles><br>
<br>
</profiles><br>
<profile name="test2"><br>
<!--aliases are other names that will work as a valid profile
name for this profile--><br>
<aliases><br>
<alias name="test2"/><br>
</aliases><br>
<gateways><br>
<gateway name="test2"><br>
<!--/// account username *required*///--><br>
<param name="username" value="<i>username A</i>"/><br>
<!--/// auth realm: *optional* same as gateway name, if
blank ///--><br>
<param name="realm" value="<i>a.b.c.d</i>"/><br>
<!--/// domain to use in from: *optional* same as realm,
if blank ///--><br>
<!--<param name="from-domain"
value="asterlink.com"/>--><br>
<!--/// account password *required* ///--><br>
<param name="password" value="<i>password</i>"/><br>
<!--/// replace the INVITE from user with the channel's
caller-id ///--><br>
<param name="caller-id-in-from" value="false"/><br>
<!--/// extension for inbound calls: *optional* same as
username, if blank ///--><br>
<!--<param name="extension" value="cluecon"/>--><br>
<!--/// proxy host: *optional* same as realm, if blank
///--><br>
<param name="proxy" value="<i>a.b.c.d</i>"/><br>
<!--/// expire in seconds: *optional* 3600, if blank
///--><br>
<param name="expire-seconds" value="60"/><br>
<!--/// do not register ///--><br>
<param name="register" value="true"/><br>
<!--How many seconds before a retry when a failure or
timeout occurs --><br>
<!--<param name="retry_seconds" value="30"/>--><br>
<!--Use the callerid of an inbound call in the from field
on outbound calls via this gateway --><br>
-<param name="caller-id-in-from" value="false"/><br>
<param name="disable-transcoding" value="true"/><br>
</gateway><br>
</gateways><br>
<br>
<settings><br>
<param name="debug" value="1"/><br>
<param name="rfc2833-pt" value="101"/><br>
<param name="sip-port" value="5061"/><br>
<param name="dialplan" value="XML"/><br>
<param name="dtmf-duration" value="100"/><br>
<param name="codec-prefs" value="$${global_codec_prefs}"/><br>
<param name="codec-ms" value="20"/><br>
<param name="use-rtp-timer" value="true"/><br>
<param name="rtp-timer-name" value="soft"/><br>
<param name="rtp-ip" value="$${bind_server_ip}"/><br>
<param name="sip-ip" value="$${bind_server_ip}"/><br>
<!--set to 'greedy' if you want your codec list to take
precedence --><br>
<param name="inbound-codec-negotiation" value="generous"/><br>
<!-- if you want to send any special bind params of your own
--><br>
<!--<param name="bind-params"
value="transport=udp"/>--><br>
<br>
<!--If you don't want to pass through timestampes from 1 RTP
call to another (on a per call basis with rtp_rewrite_timestamps
chanvar)--><br>
<!--<param name="rtp-rewrite-timestampes"
value="true"/>--><br>
<br>
<!--If you have ODBC support and a working dsn you can use
it instead of SQLite--><br>
<!--<param name="odbc-dsn"
value="dsn:user:pass"/>--><br>
<br>
<!--Uncomment to set all inbound calls to no media mode--><br>
<!--<param name="inbound-no-media" value="true"/>--><br>
<br>
<!--Uncomment to let calls hit the dialplan *before* you
decide if the codec is ok--><br>
<!--<param name="inbound-late-negotiation"
value="true"/>--><br>
<br>
<!-- this lets anything register --><br>
<!-- comment the next line and uncomment one or both of the
other 2 lines for call authentication --><br>
<param name="accept-blind-reg" value="true"/><br>
<br>
<!--TTL for nonce in sip auth--><br>
<param name="nonce-ttl" value="60"/><br>
<!--Uncomment if you want to force the outbound leg of a
bridge to only offer the codec<br>
that the originator is using--><br>
<!--<param name="disable-transcoding"
value="true"/>--><br>
<!--<param name="auth-calls" value="true"/>--><br>
<!-- on authed calls, authenticate *all* the packets not
just invite --><br>
<!--<param name="auth-all-packets" value="true"/>--><br>
<br>
<!-- <param name="ext-rtp-ip"
value="$${external_rtp_ip}"/>--><br>
<br>
<!-- <param name="ext-sip-ip"
value="100.101.102.103"/> --><br>
<!-- VAD choose one (out is a good choice); --><br>
<!-- <param name="vad" value="in"/> --><br>
<!-- <param name="vad" value="out"/> --><br>
<!-- <param name="vad" value="both"/> --><br>
<!-- <param name="ext-sip-ip"
value="100.101.102.103"/> --><br>
<!-- VAD choose one (out is a good choice); --><br>
<!-- <param name="vad" value="in"/> --><br>
<!-- <param name="vad" value="out"/> --><br>
<!-- <param name="vad" value="both"/> --><br>
<!--<param name="alias"
value=<a class="moz-txt-link-rfc2396E" href="sip:10.0.1.251:5555">"sip:10.0.1.251:5555"</a>/>--><br>
</settings><br>
</profile><br>
</profiles><br>
</configuration><br>
<br>
<br>
appreciate it if anybody could give me clue<br>
<br>
Thx,<br>
<br>
~pieter~<br>
<br>
<br>
<br>
<i><u><br>
<br>
</u><br>
<br>
</i>
</body>
</html>