[OpenSIPS-Users] IP check in FixContact (nat_traversal.c)

Iñaki Baz Castillo ibc at aliax.net
Wed Feb 25 12:35:04 CET 2009


2009/2/25 Bogdan-Andrei Iancu <bogdan at voice-system.ro>:
> Hi Iñaki,
>
> to be honest, I'm note 100% sure about this. If you consider that the reply
> has to be routed back via the same TCP connection, what you have in VIA is
> the origin of the TCP conn (used by client to open the connection) and not
> the listening info (for receiving new connections).

Bogdan, AFAIK what you say is not correct. I show you an example of a
TCP request sent by Twinkle:

  T  10.10.10.120:33947 -> 10.10.10.121:5070 [AP]
  INVITE sip:1234 at mydomain.org SIP/2.0
  Via: SIP/2.0/TCP 10.10.10.120:5060;rport;branch=z9hG4bKsbnnahng

As you see, the Via sent-by is the *listening* address of Twinkle.

RFC 3261 states more or less clearly that, in case of a TCP
connection, the response is sent using the existing TCP connection.
But the Via remains being the listening address.
In case the response cannot arrive due to a TCP error, the UAS should
open a *new* connection against the Via sent-by address (in the above
example it would be "10.10.10.120:5060", this is, the address in which
the UAC is listening).

I'm 101% sure of it :)



> In such a case, the port should match...but again, I'm not 100% what you
> should put in VIA when doing TCP - the desctiption of the TCP connection or
> the description of the listening interface.

The listening interface, sure :)



-- 
Iñaki Baz Castillo
<ibc at aliax.net>



More information about the Users mailing list