using kamailio 4.3 on ubuntu server 14.04

i noticed tcp socket will be killed by kamailio after around 11 minutes with or without tcp_keepalive=no. tcpdump shows that by default (tcp_keepalive=yes) there is indeed keepalive packets going back and forth. if set to no, there would be nothing in between.

if i have clients who have registration timeout of 1700, they would send re-registration around half of that, or around 14 minutes after registration. then the socket would be long dead and they would be unreachable for 3 minutes.

based on procfs, ubuntu have settings for 9 probes with 75 seconds interval so that means around 11 minutes of sending keepalives. so i tried changing these values, on procfs. and tried playing around with these kamailio cfg settings as well:
tcp_keepcnt 
tcp_keepidle
tcp_keepintvl

whatever i do, the interval between keepalives are always 2 minutes and after 4-5 probes, kamailio will send a FIN to the client. i checked the source code tcp_main.c and it looks alright. could this be an ubuntu issue? anybody seen this before?

I created a workaround by setting expire 900 for all registrations but this is not ideal. 


Kelvin Chua