From 073f0dc640d8143dfed9c93a066b3d6cd65627ca Mon Sep 17 00:00:00 2001 From: CSantosM <4a.santos@gmail.com> Date: Wed, 21 Jan 2026 12:37:06 +0100 Subject: [PATCH] backend: Adds speech processing agent support Enables the capability to integrate speech processing agents by adding room configuration to the token when the agent processing name is set in the environment. This allows to specify the agent to be dispatched on room creation. --- meet-ce/backend/src/environment.ts | 5 ++++- meet-ce/backend/src/services/token.service.ts | 13 +++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/meet-ce/backend/src/environment.ts b/meet-ce/backend/src/environment.ts index abf8afd7..d1ec064d 100644 --- a/meet-ce/backend/src/environment.ts +++ b/meet-ce/backend/src/environment.ts @@ -82,7 +82,10 @@ export const MEET_ENV = { // Deployment configuration MODULES_FILE: process.env.MODULES_FILE || undefined, MODULE_NAME: process.env.MODULE_NAME || 'openviduMeet', - ENABLED_MODULES: process.env.ENABLED_MODULES ?? '' + ENABLED_MODULES: process.env.ENABLED_MODULES ?? '', + + // Agent Speech Processing configuration + AGENT_SPEECH_PROCESSING_NAME: process.env.MEET_AGENT_SPEECH_PROCESSING_NAME || '', }; export function checkModuleEnabled() { diff --git a/meet-ce/backend/src/services/token.service.ts b/meet-ce/backend/src/services/token.service.ts index 7ed0536d..632838e3 100644 --- a/meet-ce/backend/src/services/token.service.ts +++ b/meet-ce/backend/src/services/token.service.ts @@ -1,3 +1,4 @@ +import { RoomAgentDispatch, RoomConfiguration } from '@livekit/protocol'; import { MeetRoomMemberPermissions, MeetRoomMemberRole, @@ -65,6 +66,18 @@ export class TokenService { at.addGrant(grants); } + if (MEET_ENV.AGENT_SPEECH_PROCESSING_NAME) { + + this.logger.debug('Adding speech processing agent dispatch to token', MEET_ENV.AGENT_SPEECH_PROCESSING_NAME); + at.roomConfig = new RoomConfiguration({ + agents: [ + new RoomAgentDispatch({ + agentName: MEET_ENV.AGENT_SPEECH_PROCESSING_NAME + }) + ] + }); + } + return await at.toJwt(); }