diff --git a/backend/src/helpers/ov-components-adapter.helper.ts b/backend/src/helpers/ov-components-adapter.helper.ts index 2b97164..18aaba0 100644 --- a/backend/src/helpers/ov-components-adapter.helper.ts +++ b/backend/src/helpers/ov-components-adapter.helper.ts @@ -1,5 +1,6 @@ import { MeetRecordingInfo, MeetRecordingStatus } from '@typings-ce'; -import { SendDataOptions } from 'livekit-server-sdk'; +import { EgressInfo, EgressStatus, SendDataOptions } from 'livekit-server-sdk'; +import { RecordingHelper } from './recording.helper.js'; const enum OpenViduComponentsDataTopic { CHAT = 'chat', @@ -27,9 +28,14 @@ export class OpenViduComponentsAdapterHelper { return { payload, options }; } - static generateRoomStatusSignal(isRecordingStarted: boolean, participantSid?: string) { + static generateRoomStatusSignal(recordingEgress: EgressInfo[], participantSid?: string) { + const isRecordingActive = recordingEgress.some((egress) => egress.status === EgressStatus.EGRESS_ACTIVE); const payload = { - isRecordingStarted + isRecordingStarted: isRecordingActive, + recordingList: recordingEgress.map((egress) => { + const recInfo = RecordingHelper.toRecordingInfo(egress); + return OpenViduComponentsAdapterHelper.parseRecordingInfoToOpenViduComponents(recInfo); + }) }; const options = { diff --git a/backend/src/services/frontend-event.service.ts b/backend/src/services/frontend-event.service.ts index 561e618..9dd906e 100644 --- a/backend/src/services/frontend-event.service.ts +++ b/backend/src/services/frontend-event.service.ts @@ -45,18 +45,11 @@ export class FrontendEventService { this.logger.debug(`Sending room status signal for room ${roomId} to OpenVidu Components.`); try { - // Check if recording is started in the room - const activeEgressArray = await this.livekitService.getActiveEgress(roomId); - const isRecordingStarted = activeEgressArray.length > 0; - - // Skip if recording is not started - if (!isRecordingStarted) { - return; - } + const recordingEgress = await this.livekitService.getRecordingsEgress(roomId); // Construct the payload and signal options const { payload, options } = OpenViduComponentsAdapterHelper.generateRoomStatusSignal( - isRecordingStarted, + recordingEgress, participantSid );