[Freeswitch-users] Strange Reg

Dave lists+freeswitch at bigfatdave.com
Sun May 27 14:21:57 PDT 2007


Hi Anthony, and thanks again for stepping up to the plate,

On Fri, May 25, 2007 at 07:03:34AM -0700, Anthony Minessale wrote:

> you need to monitor both the sip and the rtp traffic.
> 
> Run freeswitch with TPORT_LOG=1 and also
> run wireshark on the machine capturing udp traffic on the interface where
> the sip calls will take place.

you mean, on the ATA?  ...or on the FS box?

> Also make sure the sofia.conf.xml profile is setup the same as the default
> example in the source tree apart from the options necessary to enable
> the directory auth.

Here's my sofia.conf.xml:
---
<configuration name="sofia.conf" description="sofia Endpoint">
  <profiles>
    <profile name="$${sip_profile}">
      <!--aliases are other names that will work as a valid profile name for this profile-->
      <aliases>
	<alias name="default"/>
      </aliases>
      <!-- Outbound Registrations -->
      <gateways>
        <gateway name='gv1'>
          <param name='username' value='myusername'/>
          <param name='realm' value='rnktel.com'/>
          <param name='password' value='mypassword'/>
          <param name='extension' value='from-gv1'/>
          <param name='proxy' value='216.143.130.36'/>
          <param name='expire-seconds' value='120'/>
        </gateway>
	<!--<gateway name="asterlink.com">-->
	  <!--/// account username *required* ///-->
	  <!--<param name="username" value="cluecon"/>-->
	  <!--/// auth realm: *optional* same as gateway name, if blank ///-->
	  <!--<param name="realm" value="asterlink.com"/>-->
	  <!--/// account password *required* ///-->
	  <!--<param name="password" value="2007"/>--> 
	  <!--/// replace the INVITE from user with the channel's caller-id ///-->
	  <!--<param name="caller-id-in-from" value="false"/>-->
	  <!--/// extension for inbound calls: *optional* same as username, if blank ///-->
	  <!--<param name="extension" value="cluecon"/>-->
	  <!--/// proxy host: *optional* same as realm, if blank ///-->
	  <!--<param name="proxy" value="asterlink.com"/>-->
	  <!--/// expire in seconds: *optional* 3600, if blank ///-->
	  <!--<param name="expire-seconds" value="60"/>-->
	  <!--/// do not register ///-->
	  <!--<param name="register" value="false"/>-->
	<!--</gateway>-->
      </gateways>

      <domains>
	<!-- indicator to parse the directory for domains with parse="true" to get gateways-->
	<!--<domain name="$${domain}" parse="true"/>-->
      </domains>

      <settings>
	<param name="debug" value="1"/>
	<param name="rfc2833-pt" value="101"/>
	<param name="sip-port" value="5060"/>
	<param name="dialplan" value="XML"/>
	<param name="dtmf-duration" value="100"/>
	<param name="codec-prefs" value="$${global_codec_prefs}"/>
	<param name="codec-ms" value="20"/>
	<param name="use-rtp-timer" value="true"/>
	<param name="rtp-timer-name" value="soft"/>
	<param name="rtp-ip" value="$${bind_server_ip}"/>
	<param name="sip-ip" value="$${bind_server_ip}"/>
	<!-- if you want to send any special bind params of your own -->
	<!--<param name="bind-params" value="transport=udp"/>-->

	<!--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)-->
	<!--<param name="rtp-rewrite-timestampes" value="true"/>-->

	<!--If you have ODBC support and a working dsn you can use it instead of SQLite-->
	<!--<param name="odbc-dsn" value="dsn:user:pass"/>-->

	<!--Uncomment to set all inbound calls to no media mode-->
	<!--<param name="inbound-no-media" value="true"/>-->

	<!--Uncomment to let calls hit the dialplan *before* you decide if the codec is ok-->
	<!--<param name="inbound-late-negotiation" value="true"/>-->

	<!-- this lets anything register -->
	<!--  comment the next line and uncomment one or both of the other 2 lines for call authentication -->
	<!-- <param name="accept-blind-reg" value="true"/> -->

	<!--TTL for nonce in sip auth-->
	<param name="nonce-ttl" value="60"/>
	<!--Uncomment if you want to force the outbound leg of a bridge to only offer the codec 
	    that the originator is using-->
	<!--<param name="disable-transcoding" value="true"/>-->
	<!--<param name="auth-calls" value="true"/>-->
	<!-- on authed calls, authenticate *all* the packets not just invite -->
	<!--<param name="auth-all-packets" value="true"/>-->

	<!-- <param name="ext-rtp-ip" value="$${external_rtp_ip}"/>-->

	<!-- <param name="ext-sip-ip" value="100.101.102.103"/> -->
	<!-- VAD choose one (out is a good choice); -->
	<!-- <param name="vad" value="in"/> -->
	<!-- <param name="vad" value="out"/> -->
	<!-- <param name="vad" value="both"/> -->
	<!--<param name="alias" value="sip:10.0.1.251:5555"/>-->
      </settings>
    </profile>
  </profiles>
</configuration>
---

Here's my freeswitch.xml:
---
<?xml version="1.0"?>
<document type="freeswitch/xml">
  <!--#comment 
      All comments starting with #command will be preprocessed and never sent to the xml parser
      Valid instructions:
      #include ==> Include another file to this exact point
                   (partial xml should be encased in <include></include> tags)
      #set     ==> Set a global variable (can be expanded during preprocessing with $$ variables)
                   (note the double $$ which denotes preprocessor variables)
      #comment ==> A general comment such as this
      
      The preprocessor will compile the full xml document to ${prefix}/log/freeswitch.registry
      Don't modify it while freeswitch is running cos it is mem mapped in most cases =D
  -->

  <!-- Preprocessor Variables
       These are introduced when configuration strings must be consistent across modules. 
   -->
  <!-- sip_profile 
       Must be a domain name if you are being a registry server; otherwise
       can be any string.
       used by: sofia.conf.xml enum.conf.xml default_context.xml directory.xml
  --> 
  <!--#set "sip_profile=freeswitch1.asnetinc.net"-->
  <!-- For some reason, $domain is used in some places: -->
  <!--#set "domain=freeswitch1.asnetinc.net"-->
  <!-- xmpp_client_profile and xmpp_server_profile
       xmpp_client_profile can be any string. 
       xmpp_server_profile is appended to "dingaling_" to form the database name
       containing the "subscriptions" table.
       used by: dingaling.conf.xml enum.conf.xml 
  --> 
  <!--#set "global_codec_prefs=PCMU at 20i"-->
  <!--#set "xmpp_client_profile=xmppc"-->
  <!--#set "xmpp_server_profile=xmpps"-->
  <!-- bind_server_ip
       Can be an ip address, a dns name, or "auto". 
       This determines an ip address available on this host to bind.
       If you are separating RTP and SIP traffic, you will want to have
       use different addresses where this variable appears.
       Used by: sofia.conf.xml dingaling.conf.xml
  -->
  <!--#set "bind_server_ip=freeswitch1.asnetinc.net"-->
  <!-- external_rtp_ip
       Used as the public IP address for SDP.
       Can be an ip address or a string like "stun:stun.server.com" 
       If unspecified, the bind_server_ip value is used.
       Used by: sofia.conf.xml dingaling.conf.xml
  -->
  <!-- no#set "external_rtp_ip=stun:stun.server.com"-->
  <!-- server_name
       A public ip address or DNS name that is used when advertising conference
       presence or registering sip.
       Used by: conference.conf.xml
  --> 
  <!--#set "server_name=freeswitch1.asnetinc.net"-->
  <!-- outbound_caller_id and outbound_caller_name
       The caller ID telephone number we should use when calling out.
       Used by: conference.conf.xml
  -->
  <!--#set "outbound_caller_name=ASNET"-->
  <!--#set "outbound_caller_id=2014066766"-->

  <section name="configuration" description="Various Configuration">
    <!--#include "switch.conf.xml"-->
    <!--#include "modules.conf.xml"-->

    <!-- Order doesn't matter, but for clarity these are in same order as modules.conf.xml. 
         If they aren't loaded by modules.conf.xml, then they are ignored.
    --> 
    <!-- Loggers -->
    <!--#include "console.conf.xml"-->
    <!--#include "syslog.conf.xml"-->

    <!-- Multi-Faceted -->
    <!--#include "enum.conf.xml"-->

    <!-- XML Interfaces --> 
    <!--#include "xml_rpc.conf.xml"-->
    <!--#include "xml_curl.conf.xml"-->
    <!-- none for mod_xml_cdr -->

    <!-- Event Handlers -->
    <!--#include "cdr.conf.xml"-->
    <!--#include "event_multicast.conf.xml"-->
    <!--#include "event_socket.conf.xml"-->
    <!--#include "xmpp_event.conf.xml"-->
    <!--#include "zeroconf.conf.xml"-->

    <!-- Directory Interfaces -->
    <!-- none for mod_ldap; dialplan_directory.conf.xml has ldap connection info -->

    <!-- Endpoints -->
    <!--#include "dingaling.conf.xml"-->
    <!--#include "iax.conf.xml"-->
    <!--#include "portaudio.conf.xml"-->
    <!--#include "alsa.conf.xml"-->
    <!--#include "sofia.conf.xml"-->
    <!--#include "wanpipe.conf.xml"-->
    <!--#include "woomera.conf.xml"-->

    <!-- Applications -->
    <!-- none for mod_bridgecall, mod_commands, mod_echo, mod_park, mod_playback --> 
    <!--#include "conference.conf.xml"-->
    <!-- ivr.conf is used by mod_dptools -->
    <!--#include "ivr.conf.xml"-->

    <!-- Dialplan Interfaces -->
    <!--#include "dialplan_directory.conf.xml"-->
    <!-- mod_dialplan_xml is configured in the separate "dialplan" section. -->

    <!-- Codec Interfaces -->
    <!-- no configuration needed -->
    <!-- File Format Interfaces -->
    <!-- no configuration needed -->
    <!-- Timers -->
    <!-- no configuration needed -->

    <!-- Languages -->
    <!--#include "spidermonkey.conf.xml"-->
    <!-- none for mod_perl -->

    <!-- ASR /TTS -->
    <!-- none for mod_cepstral -->
    <!--#include "rss.conf.xml"-->

    <!-- Say -->
    <!-- none for mod_say_en -->
    <!--#include "mod_cdr.conf.xml"-->
  </section>
  
  <section name="dialplan" description="Regex/XML Dialplan">
    <!--#include "default_context.xml"-->
  </section>

  <!-- mod_dingaling is reliant on the vcard data in the "directory" section. -->
  <!-- mod_sofia is reliant on the user data for authorization --> 
  <section name="directory" description="User Directory">
    <!--#include "directory.xml"-->
  </section>

  <!-- phrases section (under development still) -->
  <section name="phrases" description="Speech Phrase Management">
    <macros>
      <language name="en" sound_path="/snds" tts_engine="cepstral" tts_voice="david">
	<!--#include "lang_en.xml"-->
      </language>
      <language name="fr" sound_path="/var/sounds/lang/fr/jean" tts_engine="cepstral" tts_voice="jean-pierre">
	<!--#include "lang_fr.xml"-->
      </language>
    </macros>
  </section>

</document>
---

Here's my directory.xml:
---
<!--the domain or ip (the right hand side of the @ in the addr-->
<domain name="$${domain}">

  <user id='dave'>
    <params>
      <param name='password' value='mypassword'/>
    </params>
  </user>
  <user id='yaarit'>
    <params>
      <param name='password' value='mypassword'/>
    </params>
  </user>
  <user id='homebase'>
    <params>
      <param name='password' value='mypassword'/>
    </params>
    <variables>
      <variable name='force-contact' value='nat-connectile-dysfunction'/>
    </variables>
  </user>

  <!--the user id (the left hand side of the @ in the addr-->
  <!-- <user id="stpeter"> -->
    <!-- Outbound Registrations Related to this user -->
    <!-- <gateways> -->
      <!--<gateway name="asterlink.com">-->
      <!--/// account username *required* ///-->
      <!--<param name="username" value="cluecon"/>-->
      <!--/// auth realm: *optional* same as gateway name, if blank ///-->
      <!--<param name="realm" value="asterlink.com"/>-->
      <!--/// account password *required* ///-->
      <!--<param name="password" value="2007"/>--> 
      <!--/// replace the INVITE from user with the channel's caller-id ///-->
      <!--<param name="caller-id-in-from" value="false"/>-->
      <!--/// extension for inbound calls: *optional* same as username, if blank ///-->
      <!--<param name="extension" value="cluecon"/>-->
      <!--/// proxy host: *optional* same as realm, if blank ///-->
      <!--<param name="proxy" value="asterlink.com"/>-->
      <!--/// expire in seconds: *optional* 3600, if blank ///-->
      <!--<param name="expire-seconds" value="60"/>-->
      <!--/// do not register ///-->
      <!--<param name="register" value="false"/>-->
      <!--</gateway>-->
    <!-- </gateways> -->
    <!-- <params> -->
      <!-- omit password for authless registration -->
      <!-- <param name="password" value="mypass"/> -->
      <!-- optionally use this instead if you want to store the hash of user:domain:pass-->
      <!--<param name="a1-hash" value="c6440e5de50b403206989679159de89a"/>-->
    <!-- </params> -->
    <!-- <vcard> -->
      <!-- insert optional compliant vcard xml here-->
    <!-- </vcard> -->
  <!-- </user> -->
</domain>
---

The ATA registers as homebase, FWIW.

> Make sure the box freeswitch is on has no firewall enabled while you are
> testing (we do not support getting things to work with a firewall that's your job)

Is it possible that that's part of the problem?  The FS box isn't behind
a firewall of any type, but it keeps complaining that its hostname and IP
address don't match, and that therefore it must be behind NAT.  (It's not
difficult to find that freeswitch1.asnetinc.net resolves to 64.118.94.19,
but a reverse lookup fails.  Presumably, that's what FS attempts.)

> Also make sure the nat router the ata is behind does not also have a firewall that is intentionally blocking RTP traffic (getting a trace from there with wireshark also would be helpful)

If one of the NATs were blocking RTP traffic, I'd expect at least one
of the following to hold:
1) An identical setup with Asterisk instead of FS wouldn't work, either.
2) The Vonage ATA we had hooked up a while ago wouldn't've worked.
3) The Packet8 ATA that we still have hooked up wouldn't work.

Lemme explain each of the above in more detail:
1) I started working with FS with the clear goal of fully replacing
an existing Asterisk deployment.  The same ATA behind the same set of
NATs was able to make and take calls through Asterisk.  Now, since the
FreeSWITCH server and the Asterisk server are both at the same data center
(in fact, on the same network segment), an RTP blocking agent between
FS and ATA would have no simple way of selectively blocking RTP only
between FS and ATA, but not between * and ATA.
2) I had Vonage service on the same network that ATA is on (i.e., behind
the same two NATs).  While it's entirely possible that Vonage has some
tricks up their sleeve on both the client and server end, we probably
wouldn't expect said tricks to work right out of the box, would we?
3) I still have Packet8 service here, and both incoming and outgoing
calls have been working fine for a few years already.  (We did have to
convince it to work around NAT, though.)

Thanks again for all your help,
 - Dave


> ----- Original Message ----
> From: Dave <lists+freeswitch at bigfatdave.com>
> To: freeswitch-users at lists.freeswitch.org
> Sent: Friday, May 25, 2007 1:24:36 AM
> Subject: Re: [Freeswitch-users] Strange Reg
> 
> Now that I've documented what works, let's move on to what doesn't :-)
> 
> I can't get outgoing calls to work at all (from the ATA out), and incoming
> calls ring, but have no audio in either direction for about half a minute,
> before just dying completely.
> 
> Before I go around posting tons of logs, can somebody just give me some
> pointers about what to look for?
> 
> Thank you,
>  - Dave
> 
> 
> On Mon, May 21, 2007 at 05:17:30PM -0700, Anthony Minessale wrote:
> > You need to make sure you setup the user directory correctly.
> > 
> > http://wiki.freeswitch.org/wiki/FreeSwitch_XML_User_Directory_Guide
> > 
> > 
> > My earlier email provided a precise example and warnings about making sure the tags etc match up.
> > 
> > When you setup the <domain> tag in the directory 
> > you must make sure there is a domain tag that has the same name as the host portion of the to: header in the register.
> > 
> > Using forensics from your traces here is the exact domain tag to use
> > in directory.xml with 1 caveat:
> > 
> > -----------------------------------------------------------------------
> > **replace the string 1234 with the password you specified in the ata**
> > -----------------------------------------------------------------------
> > 
> > *NOTE*
> > normally $${domain} would be ok here as the name 
> > assuming that the domain variable is set in freeswitch.xml 
> > but I put the exact domain name to avoid confusion.
> > 
> > *ALSO NOTE*
> > You can comment the password param if you want it to
> > accept any password for this user.
> > 
> > <domain name="freeswitch1.asnetinc.net">
> >   <user id="homebase">
> >     <params>
> >       <param name="password" value="1234"/>
> >     </params>
> >     <variables>
> >       <variable name="force-contact" value="nat-connectile-dysfunction"/>
> >     </variables>
> >   </user>
> > </domain> 
> > 
> > I ask that if you get this working you please document this on our wiki in exchange for this exhaustive description of what you need to do.
> > 
> >  
> > Anthony Minessale II
> > 
> > FreeSWITCH http://www.freeswitch.org/
> > ClueCon http://www.cluecon.com/
> > 
> > AIM: anthm
> > MSN:anthony_minessale at hotmail.com
> > JABBER:anthony.minessale at gmail.com
> > IRC: irc.freenode.net #freeswitch
> > 
> > FreeSWITCH Developer Conference
> > sip:888 at conference.freeswitch.org
> > iax:guest at conference.freeswitch.org/888
> > googletalk:conf+888 at conference.freeswitch.org
> > pstn:213-799-1400
> > 
> > 
> > ----- Original Message ----
> > From: Dave <lists+freeswitch at bigfatdave.com>
> > To: freeswitch-users at lists.freeswitch.org
> > Sent: Monday, May 21, 2007 6:49:00 PM
> > Subject: Re: [Freeswitch-users] Strange Reg
> > 
> > Okay, I tried:
> > 
> > recv 434 bytes from udp/[67.80.171.57]:48406 at 23:41:21.754015:
> >    ------------------------------------------------------------------------
> >    REGISTER sip:freeswitch1.asnetinc.net SIP/2.0
> >    From: <sip:homebase at freeswitch1.asnetinc.net>;tag=a010033-13c4-108-40e02-46ec
> >    To: <sip:homebase at freeswitch1.asnetinc.net>
> >    Call-ID: a010033-13c4-108-40dfd-133e
> >    CSeq: 1 REGISTER
> >    Via: SIP/2.0/UDP 10.0.0.221:48406;branch=z9hG4bK-108-40e02-4ab5
> >    Max-Forwards: 70
> >    Supported: replaces
> >    User-Agent: FXSO_GW
> >    Contact: <sip:homebase at 10.0.0.221:48406>;q=0.5
> >    Expires: 60
> >    Content-Length: 0
> > 
> >    ------------------------------------------------------------------------
> > 2007-05-21 23:41:21 [DEBUG] sofia_reg.c:387 sofia_reg_handle_register() Requesti
> > ng Registration from: [homebase at freeswitch1.asnetinc.net]
> > 
> > ...and it responds with:
> > 
> > send 640 bytes to udp/[67.80.171.57]:48406 at 23:41:21.840657:
> >    ------------------------------------------------------------------------
> >    SIP/2.0 401 Unauthorized
> >    Via: SIP/2.0/UDP 10.0.0.221:48406;branch=z9hG4bK-108-40e02-4ab5;received=67.8
> > 0.171.57
> >    From: <sip:homebase at freeswitch1.asnetinc.net>;tag=a010033-13c4-108-40e02-46ec
> >    To: <sip:homebase at freeswitch1.asnetinc.net>;tag=e1arjB5HrFcHF
> >    Call-ID: a010033-13c4-108-40dfd-133e
> >    CSeq: 1 REGISTER
> >    User-Agent: FreeSWITCH(mod_sofia)
> >    Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, PRACK, MESSAGE, SUBSCRIBE, NOTIFY,
> > REFER, UPDATE, REGISTER, INFO
> >    Supported: 100rel, precondition
> >    WWW-Authenticate: Digest realm="freeswitch1.asnetinc.net", nonce="119b66e2-04
> > 43-49a9-980f-d5b150274ff6", algorithm=MD5, qop="auth"
> >    Content-Length: 0
> > 
> >    ------------------------------------------------------------------------
> > 
> > Any ideas as to what's wrong here?
> > 
> > Thanks,
> >  - Dave
> > 
> > 
> > On Mon, May 21, 2007 at 12:17:12PM -0700, Anthony Minessale wrote:
> > > ok how about this:
> > > 
> > > try rev 5207 and do everything I described before only in the 
> > > force-contact set it to nat-connectile-dysfunction
> > > 
> > > <variable name="force-contact" value="nat-connectile-dysfunction"/>
> > > 
> > > This will rewrite the host and ip of the contact to use the 
> > > ip and port the req was received from.  To benefit  from this feature, you will probably need to set the ata to constantly register to maintain this dynamic reverse mapping created by the nat routers.  Most of them will destroy any mappings with inactivity after a certain period of time so you must make your reg freq more often that that time period whatever it may be.
> > > 
> > > 
> > >  
> > > Anthony Minessale II
> > > 
> > > FreeSWITCH http://www.freeswitch.org/
> > > ClueCon http://www.cluecon.com/
> > > 
> > > AIM: anthm
> > > MSN:anthony_minessale at hotmail.com
> > > JABBER:anthony.minessale at gmail.com
> > > IRC: irc.freenode.net #freeswitch
> > > 
> > > FreeSWITCH Developer Conference
> > > sip:888 at conference.freeswitch.org
> > > iax:guest at conference.freeswitch.org/888
> > > googletalk:conf+888 at conference.freeswitch.org
> > > pstn:213-799-1400
> > > 
> > > 
> > > ----- Original Message ----
> > > From: Dave <lists+freeswitch at bigfatdave.com>
> > > To: freeswitch-users at lists.freeswitch.org
> > > Sent: Monday, May 21, 2007 11:24:55 AM
> > > Subject: Re: [Freeswitch-users] Strange Reg
> > > 
> > > Hi Anthony,
> > > 
> > > I assume that means we can change the topolgy to something like this:
> > > ATA<->NAT<->Internet<->FS1
> > > 
> > > Basically, what we're doing here is telling FS1 how to find ATA.
> > > There are only two problems:
> > > 1) NAT is on DHCP.  (I assume this can be worked around by using DynDNS
> > > instead of an IP.)
> > > 2) As I discovered while looking for the mystery 10.0.0.221 IP, NAT is
> > > actually two NATs, one behind the other, and I only have access to one
> > > of them.
> > > 
> > > While you're at it, why don't you just make an option (<variable
> > > name='my-ata-sucks' value='true'/>) to totally break RFCs and mimic
> > > Asterisk's treatment? :-)
> > > 
> > > Thanks a bunch for all your help,
> > >  - Dave
> > > 
> > > 
> > > On Mon, May 21, 2007 at 07:25:01AM -0700, Anthony Minessale wrote:
> > > > Hi,
> > > > 
> > > > You sound like a good candidate for my new experimental force contact feature.
> > > > 
> > > > For this to work you need to use the directory for auth instead of the blind reg mode.
> > > > 
> > > > *) Edit sofia.conf.xml and comment the blind reg option.
> > > > *) Edit directory.xml and add a <user> tag to the <domain name="$${domain}">
> > > >    section making sure $${domain} is also the name of the domain portion of 
> > > >    the sip's client registration.
> > > > 
> > > > edit the file to look something like this and put in a absolute contact to use when this user registers regardless of what he advertises.  This means that if you are using nat you should setup a permenant port forwarding for whatver uri you mention.
> > > > 
> > > > e.g.
> > > > 
> > > > Assuming your public ip is 66.2.2.2 and your phone is 10.0.0.2
> > > > 
> > > > add a rule to always port forward udp port 5555 of 66.2.2.2 to 10.0.0.2 5060
> > > > then edit the following so the contact uri is user at 66.2.2.2:5555
> > > > 
> > > > Whenever the phone registers with this user the specified contact will be added to the database instead of the real one this should make it possible for your phone to receive sip traffic even if it does not support STUN.
> > > > 
> > > > <domain name="$${domain}">
> > > >   <user id="myuser">
> > > >     <params>
> > > >       <param name="password" value="mypass"/>
> > > >     </params>
> > > >     <variables>
> > > >       <variable name="force-contact" value="[TESTING] sip:myuser at 66.2.2.2:5555"/>
> > > >     </variables>
> > > >   </user>
> > > > </domain> 
> > > >  
> > > > Anthony Minessale II
> > > > 
> > > > FreeSWITCH http://www.freeswitch.org/
> > > > ClueCon http://www.cluecon.com/
> > > > 
> > > > AIM: anthm
> > > > MSN:anthony_minessale at hotmail.com
> > > > JABBER:anthony.minessale at gmail.com
> > > > IRC: irc.freenode.net #freeswitch
> > > > 
> > > > FreeSWITCH Developer Conference
> > > > sip:888 at conference.freeswitch.org
> > > > iax:guest at conference.freeswitch.org/888
> > > > googletalk:conf+888 at conference.freeswitch.org
> > > > pstn:213-799-1400
> > > > 
> > > > 
> > > > ----- Original Message ----
> > > > From: Dave <lists+freeswitch at bigfatdave.com>
> > > > To: FSwtch Usrs <freeswitch-users at lists.freeswitch.org>
> > > > Sent: Monday, May 21, 2007 2:20:53 AM
> > > > Subject: [Freeswitch-users] Strange Reg
> > > > 
> > > > Hi guys,
> > > > 
> > > > I've got a rather interesting situation, here.  I've got an ATA
> > > > registering to a FreeSWITCH(TM) (FS2), both behind NAT.  So far, so good.
> > > > Now, the FreeSWITCH(TM) registers to another FreeSWITCH(TM) outside the
> > > > NAT (FS2), and that's where the problems start.  Here's the configuration:
> > > > 
> > > > ATA<->FS2<->NAT<->Internet<->FS1
> > > > 
> > > > ATA: 10.1.0.51 (behind NAT)
> > > > FS2: 10.1.0.30 (behind NAT)
> > > > FS1: freeswitch1.asnetinc.net (64.118.94.19)
> > > > 
> > > > Now, here's where it gets very interesting.  This is what FS1 gets when
> > > > FS2 registers:
> > > > > From:    [R352928 at freeswitch1.asnetinc.net]
> > > > > Contact: ["user" <sip:R352928 at 10.0.0.221:39260>]
> > > > > Expires: [3600]
> > > > > nta_agent: tport: Bad message
> > > > 
> > > > Now, where on Earth did 10.0.0.221 come from???  (I've actually hardcoded
> > > > both external_rtp_ip and server_name to the public IP of the NAT in the
> > > > FS2 config, but for some strange reason, FS2 apparently claims to be at
> > > > 10.0.0.221, which isn't even its local IP.)
> > > > 
> > > > As if that's not interesting enough, I get this from FS1, too, when it
> > > > tries to connect to another SIP server on the public Internet:
> > > > > outbound(0xb4e1e1a0): detected NAT: freeswitch1.asnetinc.net != 64.118.94.19
> > > > 
> > > > Now, since a forward DNS resolution claims that the inequality is false, I
> > > > assume it attempted a reverse DNS lookup, which would fail (since my ISP
> > > > takes forever to update PTR records).
> > > > 
> > > > As usual, any hints, tips, tricks, ideas, suggestions, flames, questions,
> > > > or (ideally) answers are greatly appreciated :-)
> > > > 
> > > > Thank you,
> > > >  - Dave
> > > > 
> > > > _______________________________________________
> > > > Freeswitch-users mailing list
> > > > Freeswitch-users at lists.freeswitch.org
> > > > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> > > > UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> > > > http://www.freeswitch.org
> > > > 
> > > > 
> > > > 
> > > > 
> > > > 
> > > > 
> > > > 
> > > >        
> > > > ____________________________________________________________________________________Be a better Heartthrob. Get better relationship answers from someone who knows. Yahoo! Answers - Check it out. 
> > > > http://answers.yahoo.com/dir/?link=list&sid=396545433
> > > > _______________________________________________
> > > > Freeswitch-users mailing list
> > > > Freeswitch-users at lists.freeswitch.org
> > > > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> > > > UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> > > > http://www.freeswitch.org
> > > 
> > > 
> > > _______________________________________________
> > > Freeswitch-users mailing list
> > > Freeswitch-users at lists.freeswitch.org
> > > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> > > UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> > > http://www.freeswitch.org
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > >  
> > > ____________________________________________________________________________________
> > > Need Mail bonding?
> > > Go to the Yahoo! Mail Q&A for great tips from Yahoo! Answers users.
> > > http://answers.yahoo.com/dir/?link=list&sid=396546091
> > > _______________________________________________
> > > Freeswitch-users mailing list
> > > Freeswitch-users at lists.freeswitch.org
> > > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> > > UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> > > http://www.freeswitch.org
> > 
> > 
> > _______________________________________________
> > Freeswitch-users mailing list
> > Freeswitch-users at lists.freeswitch.org
> > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> > UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> > http://www.freeswitch.org
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> >  
> > ____________________________________________________________________________________
> > No need to miss a message. Get email on-the-go 
> > with Yahoo! Mail for Mobile. Get started.
> > http://mobile.yahoo.com/mail 
> > _______________________________________________
> > Freeswitch-users mailing list
> > Freeswitch-users at lists.freeswitch.org
> > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> > UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> > http://www.freeswitch.org
> 
> 
> _______________________________________________
> Freeswitch-users mailing list
> Freeswitch-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
> 
> 
> 
> 
> 
> 
> 
>        
> ____________________________________________________________________________________Need a vacation? Get great deals
> to amazing places on Yahoo! Travel.
> http://travel.yahoo.com/
> _______________________________________________
> Freeswitch-users mailing list
> Freeswitch-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org





More information about the FreeSWITCH-users mailing list