Hello Kamailio community,
I'm running Kamailio 5.8 with websocket and tcpops modules loaded.
My setup:
- websocket module configured with keepalive enabled:
modparam("websocket", "keepalive_mechanism", 1)
modparam("websocket", "keepalive_interval", 10)
modparam("websocket", "keepalive_timeout", 5)
modparam("websocket", "keepalive_processes", 2)
modparam("websocket", "timer_interval", 5)
- tcpops module loaded with closed_event enabled:
loadmodule "tcpops.so"
modparam("tcpops", "closed_event", 1)
- event_route[tcp:closed] implemented to catch socket closure and clean dialogs
- dialog module loaded with dlg_flag = 4, and dialog tracking active on INVITE requests
What works:
- When I manually kill the WebSocket client, the event_route[tcp:closed] is triggered immediately.
What doesn't work:
- When the client loses network connectivity abruptly (e.g. mobile device loses 4G signal or Wi-Fi disconnects), the event_route[tcp:closed] is NOT triggered for several minutes (likely until TCP timeout).
- I've tried reducing websocket keepalive_timeout to 5 seconds, but it does not speed up detection of lost connections.
- I have confirmed that TCP keepalive settings on the OS are at default values and have not yet been tuned.
My questions:
1. Is there any known limitation or delay in Kamailio's tcpops or websocket modules that could cause delayed detection of abrupt WebSocket disconnects?
2. Are there any best practices or additional mechanisms recommended to handle abrupt WebSocket disconnections faster, especially for SIP dialog cleanup?
3. Would adding SIP OPTIONS ping help detect dead clients sooner, and how would you recommend implementing this in Kamailio?
4. Any other suggestions to improve detection and cleanup of dead WebSocket SIP clients?
Thanks in advance for your help and advice.
Best regards,
Fabien Brou
__________________________________________________________
Kamailio - Users Mailing List - Non Commercial Discussions -- sr-users@lists.kamailio.org
To unsubscribe send an email to sr-users-leave@lists.kamailio.org
Important: keep the mailing list in the recipients, do not reply only to the sender!