From 90f9cb9501c803bdfb2d16c6a2138141800fd278 Mon Sep 17 00:00:00 2001 From: Robert Long Date: Tue, 2 Nov 2021 11:38:47 -0700 Subject: [PATCH] Capture ice_failed errors --- src/Room.jsx | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/Room.jsx b/src/Room.jsx index 3309cc06..63cb19ce 100644 --- a/src/Room.jsx +++ b/src/Room.jsx @@ -39,6 +39,7 @@ import { useMediaStream } from "matrix-react-sdk/src/hooks/useMediaStream"; import { fetchGroupCall } from "./ConferenceCallManagerHooks"; import { ErrorModal } from "./ErrorModal"; import { GroupCallInspector } from "./GroupCallInspector"; +import * as Sentry from "@sentry/react"; const canScreenshare = "getDisplayMedia" in navigator.mediaDevices; // There is currently a bug in Safari our our code with cloning and sending MediaStreams @@ -117,6 +118,24 @@ export function GroupCallView({ client, groupCall }) { hasLocalParticipant, } = useGroupCall(groupCall); + useEffect(() => { + function onHangup(call) { + if (call.hangupReason === "ice_failed") { + Sentry.captureException(new Error("Call hangup due to ICE failure.")); + } + } + + if (groupCall) { + groupCall.on("hangup", onHangup); + } + + return () => { + if (groupCall) { + groupCall.removeListener("hangup", onHangup); + } + }; + }, [groupCall]); + if (error) { return ; } else if (state === GroupCallState.Entered) {