diff --git a/app.js b/app.js index e09bc6d..6011831 100644 --- a/app.js +++ b/app.js @@ -542,6 +542,15 @@ const isInitiator = (callId, socketId) => { return videoCalls[callId]?.initiatorSocket?.id === socketId; }; +const emitToParticipants = (callId, event, message) => { + try { + videoCalls[callId].receiverSocket.emit(event, message); + videoCalls[callId].initiatorSocket.emit(event, message); + } catch (error) { + console.error(`[emitToParticipants] | ERROR | callId: ${callId} | error: ${error.message}`); + } +} + /* - Called from at event 'createWebRtcTransport' and assigned to the consumer or producer transport - It will return parameters, these are required for the client to create the RecvTransport @@ -584,6 +593,7 @@ const createWebRtcTransportLayer = async (callId, callback) => { console.log(`[ICE STATE CHANGE] callId: ${callId} | State: ${iceState}`); if (iceState === 'failed' || iceState === 'disconnected') { console.warn(`⚠️ ICE failure detected for callId: ${callId}! Possible UDP blockage.`); + emitToParticipants(callId, 'connection-failed', { callId }); } }); diff --git a/doc/[video] Video - Connection error.png b/doc/[video] Video - Connection error.png new file mode 100644 index 0000000..add13cc Binary files /dev/null and b/doc/[video] Video - Connection error.png differ