From 167582b9b09f8e0e8c488194d76d2bb5c331f1ed Mon Sep 17 00:00:00 2001 From: legop3 Date: Sun, 15 Mar 2026 22:46:27 -0400 Subject: [PATCH] fix --- server/src/services/audioForwardService.js | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/server/src/services/audioForwardService.js b/server/src/services/audioForwardService.js index d6161a0b..172ab904 100644 --- a/server/src/services/audioForwardService.js +++ b/server/src/services/audioForwardService.js @@ -62,11 +62,30 @@ function ensureReady() { } } +function forcePublishStreamMode(rawUrl) { + const value = String(rawUrl || '').trim(); + if (!value) return ''; + if (!/[?&]streamid=#!::/.test(value)) { + return value; + } + + if (/,m=publish\b/.test(value)) { + return value; + } + + if (/,m=read\b/.test(value)) { + return value.replace(/,m=read\b/, ',m=publish'); + } + + // If streamid exists but mode is omitted, default it to publish. + return value.replace(/([?&]streamid=#!::[^&]*)/, '$1,m=publish'); +} + function resolveForwardUrl(roverId) { const record = roverManager.rovers.get(roverId); const configured = record?.meta?.media?.audioForwardUrl; if (configured) { - return configured; + return forcePublishStreamMode(configured); } const fallback = `srt://127.0.0.1:9000?streamid=#!::r=${encodeURIComponent(roverId + streamSuffix)},m=publish&latency=10&mode=caller&transtype=live&pkt_size=1316`; return fallback;