Daniel-Constantin Mierla wrote:
On 10/10/05 11:25, Klaus Darilion wrote:
Just to to throw oil on the fire: ;-)
If the SIP UA uses TCP, and the connection is reset, usually the port
in the Contact URI changes. Thus, a new entry in the location table
will be created.
this should not happen. The UA should register the contact address where
it listens. Same tcp connection is used generally just at transaction
level, then it is closed by server. Keeping the tcp connections open for
long time will overload the server.
it happens: SNOM 360
Ideally, in this case, the UA unregisters the previous
contact when it
detects that it will register another contact address. When the UA does
not follow some basic rules, it is hard to predict and handle all
situations that can occur.
I would be nice if a phone would do this, but I do not think TCP
implementations are better than UDP implementations.
TCP and NAT will not work in most of the cases, and
when there is no
nat, the UA has no excuse to behave wrongly during registration.
If I would implement a SIP client using TCP the client would:
- open the TCP connection
- send keep alive (CRLF)
- if the connection is terminated by the proxy or there is a delivery
failure the client would immediately reconnect to the proxy.
IMO a SIP proxy should be able to keep >thousand TCP sessions open
regards
klaus
Cheers,
Daniel
This can be avoided using the call-id as identifier.
regards
klaus