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
Hello,
On 03/07/15 11:31, Kelvin Chua wrote:
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.
I haven't noticed this issue on ubuntu. Have you tried on other type of OS (e.g., bare debian)?
Can you try setting it per connection using tcpops module?
Cheers, Daniel