Hi,
We have a bit of confusion regarding tcp_connecton_timeout core parameter.
The documentation says,
--
Lifetime in seconds for TCP sessions. TCP sessions which are inactive for
longer than *tcp_connection_lifetime* will be closed by Kamailio.
--
However we observe a strange behaviour.
1. The connection is NOT closed by Kamailio unless we additionally set
"close_expired_tcp" parameter in usrloc module,
2. Secondly, if we set this parameter to a smaller value say 70 seconds
while sip register expiry is 600 seconds (and close_expired_tcp parameter
enabled in usrloc module), the connection still remains active (tested
after keeping it idle for 120 seconds then sending a sip request on this
connection, we expected the request to fail but it does not fails).
3. if we set this parameter to greater then sip register value, e.g. 610
seconds and set close_expired_tcp parameter in usrloc, then we observe
disconnect after about 8-10 minutes. Whereas we expect it to continue since
user is re-registering every 600 seconds.
Can you guys explain why this is happening? What keeps a tcp connection
active or makes it inactive?
We are using websockets (which use TCP at lower layer) and we observe there
is no websocket frame sent or received over the tcp connection, yet it
remain active after tcp_connection_lifetime in case 2 above and becomes
inactive in case 3.
We are using Kamailio v4.3.1 SVN Rev. 4717b5 on Debian Wheezy 32bit OS.
Please suggest.
Thank you.