Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
849f54db7d | ||
|
|
4e89d9d0fe | ||
|
|
4aeca36a9c |
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "redlight",
|
||||
"version": "2.4.0",
|
||||
"version": "2.4.1",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "redlight",
|
||||
"version": "2.4.0",
|
||||
"version": "2.4.1",
|
||||
"license": "GPL-3.0-or-later",
|
||||
"dependencies": {
|
||||
"axios": "^1.7.0",
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "redlight",
|
||||
"private": true,
|
||||
"version": "2.4.0",
|
||||
"version": "2.4.1",
|
||||
"license": "GPL-3.0-or-later",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
|
||||
@@ -116,11 +116,17 @@ export async function createMeeting(room, logoutURL, loginURL = null, presentati
|
||||
if (analyticsCallbackURL) {
|
||||
params['meta_analytics-callback-url'] = analyticsCallbackURL;
|
||||
}
|
||||
if (room.recording_transcript && isTranscriptionEnabled()) {
|
||||
// BBB posts a signed recording-ready callback there once recording formats
|
||||
// are processed; used to trigger the AI summary/transcript integration.
|
||||
if (logoutURL && room.recording_transcript && isTranscriptionEnabled()) {
|
||||
if (logoutURL) {
|
||||
params['meta_bbb-recording-ready-url'] = `${logoutURL}/api/recordings/recording-ready`;
|
||||
}
|
||||
} else {
|
||||
// Transcription/summary is off for this room — tell BBB to skip processing
|
||||
// and publishing those recording formats entirely (BBB PR #25277).
|
||||
params['meta_bbb-disable-recording-formats'] = 'transcript,summary';
|
||||
}
|
||||
|
||||
// Build optional presentation XML body - escape URL to prevent XML injection
|
||||
let xmlBody = null;
|
||||
|
||||
@@ -62,7 +62,10 @@ export async function requestTranscription({ meetingId, recordingId, prompt }) {
|
||||
log.server.info(`Transcription requested for recording ${recordingId} (meeting: ${meetingId})`);
|
||||
return true;
|
||||
} catch (err) {
|
||||
log.server.error(`Transcription request error: ${err.message}`);
|
||||
// undici wraps the real network error (ECONNREFUSED, ENOTFOUND, timeout, …)
|
||||
// in err.cause — surface it, "fetch failed" alone is undiagnosable.
|
||||
const cause = err.cause ? ` (${err.cause.code || ''} ${err.cause.message || ''})`.trimEnd() : '';
|
||||
log.server.error(`Transcription request to ${url} failed: ${err.message}${cause}`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ export function wellKnownHandler(req, res) {
|
||||
federation_api: '/api/federation',
|
||||
public_key: getPublicKey(),
|
||||
software: 'Redlight',
|
||||
version: '2.4.0',
|
||||
version: '2.4.1',
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user