Hi,
The `tcpops` module exposes,
* event_route[tcp:closed] * event_route[tcp:timeout] * event_route[tcp:reset]
These fire on closure of TCP connections and TLS connections. TLS is considered a separate transport in Kamailio, having distinct identifiers in all cases where transport protocol is relevant, configured by separate and specific parameters, and provided by a separate module (tls). But TLS runs on top of TCP, of course, so treating a TLS disconnection as a superset of TCP disconnection makes sense.
WebSocket is considered a separate transport in Kamailio, having distinct identifiers in all cases where transport protocol is relevant, configured by separate and specific parameters, and provided by a separate module (websocket). But WebSocket runs on top of TCP, of course...
... yet it doesn't trigger these TCP connection events. Instead, one must use a separate `event_route[websocket_closed]` event route for this.
Is there a reason for this inconsistency? I would think that the common denominator of TCP would lead to the same hierarchy of abstraction when it comes to events.
It becomes important because if one wishes for Kamailio to log or notify disconnections for vanilla SIP or browser-based clients, one must essentially implement the same code twice.
Thank you,
-- Alex