OBSERVERTC / Client Monitor
Connectivity detectors
Connection establishment, handshake failures and path changes.
ICE ReachabilityDetects when ICE cannot find a reachable network path.
Class
What it collects
ICE gathering state, local candidates and connection history.
What triggers it
gathering complete, no local candidates, never connected; failing state or 6000 ms wait
What resolves it
candidates appear, connected, or closed; remembers prior success
Example
A completed ICE gathering produces no usable local candidates.
ICE Path EstablishmentReports slow connection establishment.
Class
What it collects
Time spent in the connecting state.
What triggers it
connection stays connecting ≥5000 ms; emits slow-stage event
Reset and lifecycle behavior
resets outside connecting; event once per episode
Example
A peer connection remains connecting for five seconds.
ICE Establishment FailedDetects failure to establish an ICE connection.
Class
IceEstablishmentFailedDetector
What it collects
Candidate availability and historical connection, pair and nomination states.
What triggers it
candidates exist, no historical connected/succeeded/nominated path, sustained 15000 ms
What resolves it
established path or closed; distinguishes no-network from failed establishment
Example
Candidates exist, but no path becomes established during the timeout.
DTLS Handshake FailedDetects a failed DTLS handshake.
Class
What it collects
The DTLS state of each transport.
What triggers it
dtlsState failed, immediate
What resolves it
connected or transport removed; per-transport raise map
Example
A transport reports a failed DTLS handshake.
DTLS Handshake StalledDetects a DTLS handshake that stops progressing.
Class
What it collects
DTLS progress and evidence of a healthy ICE path.
What triggers it
DTLS new/connecting while real ICE evidence is healthy for 6000 ms
What resolves it
connected/failed/removal; generation and missing-evidence paths reset accumulation
Example
ICE works, but DTLS remains connecting without completing its handshake.
ICE DisconnectedDetects a sustained ICE disconnection.
Class
What it collects
Each transport’s ICE state and disconnection duration.
What triggers it
per-transport disconnected for 5000 ms
What resolves it
connected/completed, ICE restart or removal
Example
A previously active ICE transport remains disconnected for five seconds.
ICE Connection FailedDetects an ICE connection failure.
Class
What it collects
Each transport’s ICE connection state.
What triggers it
per-transport failed immediately
What resolves it
connected/completed, restart or removal
Example
A transport enters the failed ICE state.
ICE Transport StalledDetects a connected transport that stops receiving expected data.
Class
What it collects
Sending and receiving activity, ICE health and expected inbound media.
What triggers it
succeeded connected path previously received data; sends but no inbound, expected inbound media, 5000 ms
What resolves it
inbound resumes, connectivity lost, restart/removal; send-only/paused situations gated
Example
The connection stays established and sends data, but expected inbound traffic stops.
Unstable Ice PathDetects frequent changes to the selected ICE path.
Class
What it collects
Selected ICE path changes over an observation window.
What triggers it
at least 3 switches in 30000 ms observation window
What resolves it
completed quieter window or transport removal
Example
The selected path switches three times within thirty seconds.
Each row links through its named class in client-monitor-js/src/detectors/Detector.ts and the detector implementation reference; connectivity state machine context is in client-monitor-js/src/monitors/SelectedIcePath.ts.