<div dir="ltr"><div dir="ltr"><div>Hi Again,</div><div><br></div><div>Here is an issue with TCP connection being kept for more:</div><div><br></div><div><div>Yesterday, I have discovered that a User-Agent (<Avaya IP Phone 1120E (SIP1120e.04.04.30.00)> tried to register a lot. It was sending REGISTER over new established TCP socket *every 2 seconds*.</div><br class="gmail-Apple-interchange-newline"></div><div>All the REGISTER was rejected with 401. (may be the device was misconfigured? or not receiving any of my answer? I can't tell)<br></div><div><br></div><div>NOTE: You can see the expires header was very large: 86400, ie: 24 hours...</div><div><br></div><div>I was checking the TCP/TLS connections on my server and discovered more than 1000 TCP established connection to that user/ip, and thus, I have tried to understand what happened.</div><div><br></div><div>Checking the logs, I received 4855 REGISTER from this device from "Mar 25 03:47:09" to "Mar 25 07:56:13" which is a rate of approx one new TCP connection every 2.5 seconds...</div><div><br></div><div>Today, I decided to check it again around 11am.</div><div><br></div><div>jack@sip:~$ sudo kamctl stats tcp</div><div>{</div><div>  "jsonrpc":  "2.0",</div><div>  "result": [</div><div>    "tcp:con_reset = 1857",</div><div>    "tcp:con_timeout = 35927",</div><div>    "tcp:connect_failed = 25",</div><div>    "tcp:connect_success = 2",</div><div>    "tcp:current_opened_connections = 2291",</div><div>    "tcp:current_write_queue_size = 0",</div><div>    "tcp:established = 80778",</div><div>    "tcp:local_reject = 0",</div><div>    "tcp:passive_open = 80776",</div><div>    "tcp:send_timeout = 2",</div><div>    "tcp:sendq_full = 0"</div><div>  ],</div><div>  "id": 7305</div><div>}</div><div><br></div><div>There was still A LOT of established connections. And the connections have been established more than 24 hours ago.</div><div><br></div><div>At 11H16:</div><div>$> lsof -n -l | grep kamailio | grep TCP | grep 41.234.242.69 | grep ESTA | wc -l</div><div>1161</div><div>At 11H22:</div><div>$> lsof -n -l | grep kamailio | grep TCP | grep 41.234.242.69 | grep ESTA | wc -l</div><div>1018</div><div>At 11H35:</div><div>$> lsof -n -l | grep kamailio | grep TCP | grep 41.234.242.69 | grep ESTA | wc -l</div><div>655</div><div>At 13H</div><div>$> lsof -n -l | grep kamailio | grep TCP | grep 41.234.242.69 | grep ESTA | wc -l</div><div>0</div><div><br></div><div>So the established connections are all gone now.</div><div><br></div><div>Between 11h16 and 11H35, I was seeing the server regularly sending [FIN, ACK] over each TCP established connection, with retransmissions for all of them. (no incoming trafic)</div><div><br></div><div>I do not have numbers/capture/stats, but I think that kamailio was already closing some</div><div>connection yesterday. I don't know when kamailio started to try closing those connections.</div><div><br></div><div>I'm now back with this status:</div><div><br></div><div>At 13pm:</div><div>jack@sip:~$ sudo kamctl stats tcp</div><div>{</div><div>  "jsonrpc":  "2.0",</div><div>  "result": [</div><div>    "tcp:con_reset = 1896",</div><div>    "tcp:con_timeout = 38042",</div><div>    "tcp:connect_failed = 26",</div><div>    "tcp:connect_success = 2",</div><div>    "tcp:current_opened_connections = 939",</div><div>    "tcp:current_write_queue_size = 0",</div><div>    "tcp:established = 81950",</div><div>    "tcp:local_reject = 0",</div><div>    "tcp:passive_open = 81948",</div><div>    "tcp:send_timeout = 2",</div><div>    "tcp:sendq_full = 0"</div><div>  ],</div><div>  "id": 12734</div><div>}</div><div><br></div><div>With around 155 registration entries using TCP and TLS in my location database.</div><div><br></div><div>As you can see, tcp:current_opened_connections = 939 is still pretty high compared to</div><div>my currently registred users.</div><div><br></div><div>I have "modparam("registrar", "max_expires", 86400)", because I'm keeping contact entries (even with TCP connection down) for push notifications.</div><div><br></div><div>I have "tcp_connection_lifetime=3600" configured.</div><div><br></div><div>Question 1</div><div><br></div><div>With "tcp_connection_lifetime=3600", I would expect kamailio to close the established connection after 3600 seconds without traffic. It is pretty obvious that no data has been exchanged over the 4855 established connection during a day.</div><div><br></div><div>Despite the issue with the Avaya phones is solved automatically after a day, I guess similar stuff or happening, at a different rate, for other users as well. (because  current_opened_connections is way higher than registred TCP/TLS users)</div><div><br></div><div>Question 2</div><div><br></div><div>I can list TLS connection with "kamctl rpc tls.list"</div><div>Can I get a similar list for TCP? (lsof returns a lot of duplicates...)</div><div><br></div><div>Tks</div><div>Aymeric</div><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><img src="http://sip.antisip.com/am48.png">Antisip - <a href="http://www.antisip.com" target="_blank">http://www.antisip.com</a><br></div></div></div>