Andrei Pelinescu-Onciul writes:
Yes, it should do either that, or add an alias
parameter to its Via
(assuming that the port in Via _is_ 5074).
If it does add "alias" to the Via, make sure you have
tcp_accept_aliases=yes in the config.
twinkle does not add alias param to via so looks like its tcp
implementation is broken. this comes from source tcp port 34136 to port
5060 at sr:
+++ 6-11-2009 12:06:27.976341 INFO SIP ::send_sip_tcp
Send to: tcp:192.98.101.10:5060
REGISTER sip:test.fi SIP/2.0
Via: SIP/2.0/TCP 192.98.101.10:5074;rport;branch=z9hG4bKtabgdwsf
Max-Forwards: 70
To: "Juha Heinanen" <sip:jh@test.fi>
From: "Juha Heinanen" <sip:jh@test.fi>;tag=hqmmp
Call-ID: bmybrkvktynbuma@localhost
CSeq: 668 REGISTER
Contact: <sip:jh_test_fi@192.98.101.10:5074;transport=tcp>;expires=3600
or should sr
figure out that twinkle in fact is behind the tcp
connection it created when it registered itself no matter what the port in
contact uri is?
You can force that, using force_tcp_alias() (adds src_ip:port_in_via as
an alias for src_ip:src_port).
can force_tcp_alias() be called on any register over tcp or should it be
tested first that there is no alias in via and that port in register
contact uri does not match source port?
In general, especially if you have NATed UACs,
it's better to always have
force_tcp_alias() in the config. It will cause problems only if you have
non-NATed broken UACs that don't expect/support symmetric signalling
over TCP (e.g. open a new connection for each new request and expect
only replies to that request on the connection).
ok.
OTOH if you don't force_tcp_alias() and the UACs
don't add alias to the
Via, it's a very slim chance that NATed UACs will work over tcp.
i'll test next what happens when i put twinkle behind nat.
-- juha