<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Jan Henkins wrote:<br>
<blockquote cite="mid1133736199.10280.12.camel@localhost" type="cite">
  <pre wrap="">Interesting! In my particular case, it's a Netgear ADSL router running a
version of uCLinux or something similar. The Netgear firmware is
apparently available for download (minus some proprietry WWW frontend
and related stuff) in order to comply to the GPLv2, but I haven't taken
the time to do this in order to check which Netfilter modules are being
used by the particluar 2.4.x kernel. In any case, I'm not particularly
good at C, so it wouldn't do me any good anyway. </pre>
</blockquote>
<br>
Hairpinning is usally a matter of config rather than coding - I doubt
you'd need any C...<br>
<br>
<blockquote cite="mid1133736199.10280.12.camel@localhost" type="cite">
  <pre wrap="">However, in my
experience the "statefulness" of a Linux Netfilter-based gateway should
be sufficient to be able to handle a situation like this transparently,
unless there is still something fundamental that I'm missing. 

  </pre>
</blockquote>
<br>
in my experience: the more stateful a cheap router (&lt; 500 US$) box
is, the more harm it ends up doing.<br>
just my 2c..<br>
<br>
<blockquote cite="mid1133736199.10280.12.camel@localhost" type="cite">
  <pre wrap="">Be that as it may, the simple question still remains: is it possible to
handle more than one UA behind a single NAT gateway with a single SER
setup on the outside of the NAT gateway (RFC 1918 address space inside,
normal routable IP outside)? Alternatively, would it be best to have an
inside SER that simply forwards all SIP traffic to the outside SER?

  </pre>
</blockquote>
<br>
The simple answer is yes; if your rtpproxy is configured correctly and
the gateway allows hairpinning.<br>
Ideally, however you would have a proxy "inside" and have it call out
using a B2BUA (or trunk). This corresponds to your alternative <br>
("..to have an inside SER")<br>
<br>
&nbsp;&nbsp;&nbsp; -h<br>
<br>
<blockquote cite="mid1133736199.10280.12.camel@localhost" type="cite">
  <pre wrap="">On Sun, 2005-12-04 at 11:05 +0100, Harry Behrens wrote:
  </pre>
  <blockquote type="cite">
    <pre wrap="">could be an issue of the local gateway. most NAT devices explicitly 
block "hairpinning", which is happening in your case.


    -h

Jan Henkins wrote:

    </pre>
    <blockquote type="cite">
      <pre wrap="">Hello Rafael,

This is an issue I'm having at the moment as well, where two UA's are
behind the same nat. SIP obviously works fine, I can ring one UA from
the other (one UA a Grandstream Budgetone 100 and the other the X-Lite
softphone from Counterpath). Audio doesn't work. Did you get this
working with forcing rtpproxy?

On Fri, 2005-12-02 at 09:44 -0500, Rafael R. GV wrote:
 

      </pre>
      <blockquote type="cite">
        <pre wrap="">Hi
I need to let the UAs speak directly to each other without force
rtpproxy, Is there any solution for this issue?

rafael


---------- Forwarded message ----------
From: Rafael J. Risco G.V. <a class="moz-txt-link-rfc2396E" href="mailto:rafael.risco@gmail.com">&lt;rafael.risco@gmail.com&gt;</a>
Date: Apr 22, 2005 2:17 PM
Subject: UA&acute;s behind same NAT using na thelper/rtpproxy, No Audio...
To: <a class="moz-txt-link-abbreviated" href="mailto:serusers@lists.iptel.org">serusers@lists.iptel.org</a>

I am using avpops to enable SER to see if the UAs are located behind
the same address and now I need to let the UAs speak directly to each
other (without force rtpproxy), please someone see my configuration 
below and send some advice.

rafael

----.
              if (!lookup("location")) {
                      log(1,"unable to locate user \n");
                      # handle user which was not found 
                      route(4);
                      break;
              };

              ### Test if UAS are in the same NAT:
              # get the host part of the final uri (IP part)
              # and store it in AVP ID 13 

              avp_write("$ruri/domain", "i:13");
              if (avp_check("i:13","eq/$src_ip/i")) {
                      log(1, "source IP is the same as destination IP
\n"); 
                      route(3);
                      break;
              };
              avp_delete("i:13/g");
.
.
# -------------- Same NAT Call Routing (no force rtpproxy) ----

route[3]{
      log(1," route[3]: UAs are in the same nat, NO force_rtp_proxy
");

### Do something!!!!

      if(!t_relay()){
              sl_reply_error();
      };
}
_______________________________________________
Serusers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:serusers@lists.iptel.org">serusers@lists.iptel.org</a>
<a class="moz-txt-link-freetext" href="http://lists.iptel.org/mailman/listinfo/serusers">http://lists.iptel.org/mailman/listinfo/serusers</a>
   

        </pre>
      </blockquote>
    </blockquote>
  </blockquote>
  <pre wrap=""><!---->
  </pre>
</blockquote>
<br>
</body>
</html>