<!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>