[OpenSIPS-Users] nat_traversal fails on loose_route ACK

Jeff Pyle jpyle at fidelityvoice.com
Fri Jul 10 22:48:47 CEST 2009


Hello,

On Opensips 1.5.1, the scenario is this:  A subscriber behind NAT places a
call through the proxy that gets relayed to Asterisk whose canreinvite=yes.
The call goes is answered and Asterisk reinvites the RTP endpoints together.

The call starts to go badly when Asterisk ACKs the subscriber's 200 OK to
its reinvite.  Opensips tries to relay the ACK to the private IP of the
endpoint, not the public.  Everything up to this point has been to the
public.

Much like many of the examples I've seen, the following happens at the top
of the route[0] block:

        if (client_nat_test("3")) {
                force_rport();
                $avp(s:received_uri) = $source_uri;
                fix_contact();
                setsflag(7);
        }

nat_keepalive is called later on after a REGISTER, but I don't think that's
related.  The config as it is (plus a functioning Mediaproxy implementaiton)
seems to accomplish everything it needs to, except for this ACK at the end
of the reinvite transaction.

Until now I've been able to avoid NAT altogether.  Those blissful days have
passed.  Any suggestions on a direction to go from here would be most
appreciated.


Thanks,
Jeff







More information about the Users mailing list