LINXD-2842: Log message when protocol is changed

This commit is contained in:
Sergiu Toma 2025-03-03 22:30:41 +02:00
parent f7053359a5
commit fc39d5bead

21
app.js
View File

@ -12,6 +12,10 @@ try {
console.log('https support is disabled!'); console.log('https support is disabled!');
} }
const mediasoup = require('mediasoup'); const mediasoup = require('mediasoup');
const isUdpEnabled = process.env.ENABLE_UDP === 'true';
const isTcpEnabled = process.env.ENABLE_TCP === 'true';
const isUdpPreferred = process.env.PREFER_UDP === 'true';
let initialConnection = isUdpPreferred ? 'udp' : 'tcp';
let worker; let worker;
/** /**
@ -555,14 +559,25 @@ const createWebRtcTransportLayer = async (callId, callback) => {
announcedIp: process.env.ANNOUNCED_IP, // Announced IPv4 or IPv6 (useful when running mediasoup behind NAT with private IP). announcedIp: process.env.ANNOUNCED_IP, // Announced IPv4 or IPv6 (useful when running mediasoup behind NAT with private IP).
}, },
], ],
enableUdp: process.env.ENABLE_UDP === 'true', enableUdp: isUdpEnabled,
enableTcp: process.env.ENABLE_TCP === 'true', enableTcp: isTcpEnabled,
preferUdp: process.env.PREFER_UDP === 'true', preferUdp: isUdpPreferred,
}; };
// https://mediasoup.org/documentation/v3/mediasoup/api/#router-createWebRtcTransport // https://mediasoup.org/documentation/v3/mediasoup/api/#router-createWebRtcTransport
let transport = await videoCalls[callId].router.createWebRtcTransport(webRtcTransport_options); let transport = await videoCalls[callId].router.createWebRtcTransport(webRtcTransport_options);
transport.on('iceselectedtuplechange', (selectedTuple) => {
const { protocol } = selectedTuple;
const switchedTo = protocol === 'udp' ? 'tcp' : 'udp';
if (initialConnection !== protocol) {
console.warn(`⚠️ ${protocol.toUpperCase()} blocked! Switching to ${switchedTo.toUpperCase()} for callId: ${callId}`);
initialConnection = protocol;
}
});
// Handler for when DTLS(Datagram Transport Layer Security) changes // Handler for when DTLS(Datagram Transport Layer Security) changes
transport.on('dtlsstatechange', (dtlsState) => { transport.on('dtlsstatechange', (dtlsState) => {
console.log(`transport | dtlsstatechange | calldId ${callId} | dtlsState ${dtlsState}`); console.log(`transport | dtlsstatechange | calldId ${callId} | dtlsState ${dtlsState}`);