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.