[OpenSIPS-Users] Via header interpretation with rport parameter being set

Thomas Gelf thomas at gelf.net
Mon Sep 14 17:32:36 CEST 2009


Iñaki Baz Castillo wrote:
> In conclusion: a client doing STUN is not required to change its Via
> sent-by header as adding ";rport" gets the same effect.

That's what I wanted to point out ;-)

> Of course, all the above is just for UDP. In TCP it makes no sense as
> the first attempt is to send the replies using the existing TCP
> connection.

Fortunately I do not yet need to care about TCP :-p

> If a client uses symmetric SIP (as most of them do), and uses UDP,
> then NAT is detected by comparing the real source IP:port with the
> value of the Contact header.

And that's exactly what I'm missing. As of

http://www.opensips.org/html/docs/modules/devel/nat_traversal.html#id228455

there is no such test in OpenSIPS nat_traversal module. As you correctly
pointed out, the whole rport-handling voodoo is not even needed - I'm
already calling force_rport() for each request. I thought it might be
even more elegant to care about what the client states - but you're
absolutely right, that's a waste of ressources.

As no test comparing the real source IP:port with the value in the
Contact header is available, test 2 and 4 are still being used. However,
they are either useless or could lead to wrong assumption (as in the
example I mentioned).

So, to the long and the short of it, let's come back to my essential
question (probably hidden between too much text in my former post):

* would a new test checking whether Contact differs from the socket
  where the UAC's packet came from make sense?

To pick up Iñaki's addition: it should obviously be used for UDP only.

Cheers,
Thomas

-- 
 mail: thomas at gelf.net
  web: http://thomas.gelf.net/




More information about the Users mailing list