Saltar al contenido principal

Crear Sala

Punto final: /room/create

Antes de crear su primera sala, es útil entender cómo funcionan las salas en Plug-N-Meet. Piense en una sala no como un espacio permanente, sino como una sesión en vivo temporal.

Este es el ciclo de vida típico:

  1. Usted crea una sala usando este punto final de la API.
  2. Usted genera tokens de acceso para que los usuarios se unan a la sesión.
  3. La sesión permanece activa mientras haya participantes presentes.
  4. La sesión termina automáticamente cuando el último participante se va o puede ser terminada mediante una llamada a la API.

Una vez que una sesión ha terminado, la sala se finaliza y todos los datos asociados (como mensajes de chat y listas de usuarios) se borran. Esto asegura que cada nueva sesión comience de nuevo.

Consejo Profesional: Simulando Salas Permanentes

Si desea crear la experiencia de una sala "permanente" a la que los usuarios pueden unirse en cualquier momento, puede construir esta lógica en su aplicación.

Cuando un usuario intenta unirse, su aplicación debería:

  1. Verificar si ya existe una sesión activa para ese room_id (p. ej., usando la API isRoomActive).
  2. Si no existe ninguna sesión, llamar a este punto final create para iniciar una nueva.
  3. Finalmente, generar un token de acceso para permitir que el usuario se una.

Este enfoque le da la flexibilidad de tener salas de tipo persistente mientras aprovecha el modelo de sesión temporal de Plug-N-Meet.

Parámetros de Solicitud

CampoTipoRequeridoDescripción
room_idstringUn identificador único para la sala. Dado que las salas son temporales, puede reutilizar un room_id después de que una sesión haya finalizado.
max_participantsnumberNoEl número máximo de participantes permitidos en la sala.
empty_timeoutnumberNoEl número de segundos que la sala permanecerá activa después de su creación si nadie se une.
metadataobjectDetalles adicionales de configuración de la sala.

Metadatos

CampoTipoRequeridoDescripción
room_titlestringEl título de la sala o reunión.
welcome_messagestringNoUn mensaje que se muestra a los participantes cuando se unen.
webhook_urlstringNoURL para recibir eventos de webhook de Plug-N-Meet.
logout_urlstringNoURL para redirigir a los usuarios después de que termine la reunión o sesión.
room_featuresobjectConfiguraciones para habilitar o deshabilitar varias características de la sala.
default_lock_settingsobjectNoConfiguraciones predeterminadas para bloquear características específicas para los usuarios.
copyright_confobjectNoConfiguración de copyright.
extra_datamapNoUn mapa de pares clave-valor personalizados. Tanto las claves como los valores deben ser cadenas. p. ej. {"key": "value"}

Características de la Sala

CampoTipoRequeridoDescripción
allow_webcamsbooleanHabilitar o deshabilitar el soporte para webcams.
mute_on_startbooleanSilenciar automáticamente los micrófonos cuando los participantes se unen.
allow_screen_sharebooleanHabilitar o deshabilitar la compartición de pantalla.
allow_rtmpbooleanHabilitar o deshabilitar la transmisión RTMP.
admin_only_webcamsbooleanPermitir el acceso a la webcam solo para administradores.
allow_view_other_webcamsbooleanPermitir que los participantes vean las webcams de los demás. Si es false, solo los moderadores pueden ver todas las webcams.
allow_view_other_users_listbooleanRestringir la visualización de la lista de usuarios solo a los moderadores.
enable_analyticsbooleanNoHabilitar o deshabilitar los informes de análisis para la sesión. Predeterminado: false
allow_virtual_bgbooleanNoHabilitar o deshabilitar las opciones de fondo virtual.
allow_raise_handbooleanNoHabilitar o deshabilitar la función "levantar la mano".
auto_gen_user_idbooleanNoPlugNmeet requiere un userId único para cada participante. Habilite esto si prefiere no gestionar los userIds o necesita permitir que el mismo usuario se una desde múltiples dispositivos. Cuando es true, PlugNmeet genera un user_id único para cada sesión. Cualquier user_id que proporcione se almacenará como ex_user_id, recuperable a través de la API getActiveRoomInfo. Predeterminado: false
room_durationnumberNoEstablecer una duración fija para la sala en minutos. 0 significa ilimitado.
recording_featuresobjectConfiguraciones de grabación.
chat_featuresobjectConfiguraciones del chat.
shared_note_pad_featuresobjectConfiguraciones del bloc de notas compartido.
whiteboard_featuresobjectConfiguraciones de la pizarra.
external_media_player_featuresobjectConfiguraciones del reproductor multimedia externo.
waiting_room_featuresobjectConfiguraciones de la sala de espera.
breakout_room_featuresobjectConfiguraciones de las salas para grupos.
display_external_link_featuresobjectConfiguraciones para mostrar enlaces externos.
ingress_featuresobjectNoConfiguraciones de ingesta RTMP.
polls_featuresobjectNoConfiguraciones de encuestas.
insights_featuresobjectNoConfiguraciones de insights, transcripción y traducción impulsadas por IA.
sip_dial_in_featuresobjectNoConfiguraciones de marcado de entrada SIP.
end_to_end_encryption_featuresobjectNoConfiguraciones de Cifrado de Extremo a Extremo (E2EE).

Características de Grabación

CampoTipoRequeridoDescripción
is_allowbooleanHabilitar o deshabilitar la grabación para la reunión.
is_allow_cloudbooleanHabilitar o deshabilitar la grabación en la nube.
is_allow_localbooleanHabilitar o deshabilitar la grabación local.
enable_auto_cloud_recordingbooleanNoIniciar automáticamente la grabación en la nube cuando un moderador o administrador se une.

Características del Chat

CampoTipoRequeridoDescripción
is_allowbooleanHabilitar o deshabilitar el chat para la reunión.
is_allow_file_uploadbooleanHabilitar o deshabilitar la carga de archivos en el chat.

Características del Bloc de Notas Compartido

CampoTipoRequeridoDescripción
is_allowbooleanHabilitar o deshabilitar la función de bloc de notas compartido.

Características de la Pizarra

CampoTipoRequeridoDescripción
is_allowbooleanHabilitar o deshabilitar la función de pizarra.
preload_filestringNoPrecargar un archivo de presentación remoto (http/https) para la pizarra. El archivo debe ser directamente accesible sin redirección.

Características del Reproductor Multimedia Externo

CampoTipoRequeridoDescripción
is_allowbooleanHabilitar o deshabilitar la reproducción de video/audio de fuentes externas. Los moderadores también pueden subir medios locales.

Características de la Sala de Espera

CampoTipoRequeridoDescripción
is_activebooleanHabilitar para activar la función de sala de espera. Los usuarios permanecen en la sala de espera hasta que un moderador les permite unirse.

Características de las Salas para Grupos

CampoTipoRequeridoDescripción
is_allowbooleanHabilitar o deshabilitar las salas para grupos.
allowed_number_roomsnumberNoNúmero máximo de salas para grupos que se pueden crear simultáneamente. Predeterminado: 6

Características de Visualización de Enlaces Externos

CampoTipoRequeridoDescripción
is_allowbooleanHabilitar o deshabilitar la visualización de enlaces externos dentro de un iframe. Útil para mostrar sitios web, cuestionarios o juegos. Nota: El sitio externo debe permitir ser incrustado en un iframe. Los moderadores pueden pasar valores como name, userId, role y meetingId a la URL.

Características de Ingesta

CampoTipoRequeridoDescripción
is_allowbooleanHabilitar la ingesta de medios para transmitir contenido directamente a la sesión. Esto es útil para la transmisión profesional usando software como OBS Studio. Plug-N-Meet admite tanto RTMP como WHIP (Protocolo de Ingesta HTTP de WebRTC) para una transmisión de baja latencia.

Características de Encuestas

CampoTipoRequeridoDescripción
is_allowbooleanHabilitar o deshabilitar las características de las encuestas.

Características de Insights

Se Requiere Configuración del Servidor

Para que cualquiera de estas características funcione, primero debe configurar la sección insights del archivo principal config.yaml de su servidor.

La configuración tiene una potente estructura de dos partes:

  1. Primero, define sus cuentas de proveedor, como azure o google, y agrega sus credenciales de API para cada una.
  2. Segundo, asigna cada servicio (p. ej., transcription, ai_text_chat) a una cuenta de proveedor específica.

Este diseño flexible le permite usar diferentes proveedores para diferentes tareas (p. ej., Azure para traducción y Google para chat con IA) e incluso seleccionar diferentes modelos para la optimización de costo-rendimiento (p. ej., un modelo potente para chat y uno más barato para resúmenes). Consulte la guía de configuración del servidor para obtener instrucciones detalladas de configuración.

Este objeto controla todas las características impulsadas por IA proporcionadas por la Plataforma de Insights.

CampoTipoRequeridoDescripción
is_allowbooleanHabilitar o deshabilitar todas las características de la Plataforma de Insights.
transcription_featuresobjectNoConfiguraciones para la conversión de voz a texto y la traducción hablada.
chat_translation_featuresobjectNoConfiguraciones para la traducción del chat.
ai_featuresobjectNoConfiguraciones para las características de IA generativa.

Características de Transcripción

CampoTipoRequeridoDescripción
is_allowbooleanHabilitar o deshabilitar la transcripción en tiempo real.
is_allow_translationbooleanNoHabilitar o deshabilitar la traducción de la transcripción.
is_allow_speech_synthesisbooleanNoHabilitar o deshabilitar las traducciones habladas (texto a voz).

Características de Traducción de Chat

CampoTipoRequeridoDescripción
is_allowbooleanHabilitar o deshabilitar la traducción en tiempo real de los mensajes de chat.

Características de IA

CampoTipoRequeridoDescripción
is_allowbooleanHabilitar o deshabilitar todas las características de IA generativa.
ai_text_chat_featuresobjectNoConfiguraciones para el Asistente de Chat con IA.
meeting_summarization_featuresobjectNoConfiguraciones para los resúmenes de reuniones impulsados por IA.
Características del Chat de Texto con IA
CampoTipoRequeridoDescripción
is_allowbooleanHabilitar o deshabilitar el Asistente de Chat con IA.
Características de Resumen de Reunión
CampoTipoRequeridoDescripción
is_allowbooleanHabilitar o deshabilitar la generación de resúmenes de reuniones.

Características de Marcado de Entrada SIP

Se Requiere Configuración del Servidor

Para que el marcado de entrada SIP funcione, primero debe configurar la sección livekit_sip_info del archivo principal config.yaml de su servidor. Esto implica configurar la puerta de enlace SIP (p. ej., livekit/sip) e integrarla con un proveedor de troncales SIP externo.

Consulte la guía de configuración del servidor y el repositorio de GitHub de livekit/sip para obtener instrucciones detalladas de configuración.

CampoTipoRequeridoDescripción
is_allowbooleanHabilitar o deshabilitar el marcado de entrada SIP para la sala.
enable_dial_in_on_createbooleanNoSi es true, el servicio de marcado de entrada SIP se iniciará automáticamente cuando se cree la sala. Si es false, un moderador debe iniciarlo manualmente desde la reunión. Predeterminado: false.
hide_phone_numberbooleanNoSi es true, el número de teléfono de marcado de entrada se ocultará en la lista de participantes, mostrando solo los últimos 4 dígitos. Predeterminado: false.

Características de Cifrado de Extremo a Extremo (E2EE)

CampoTipoRequeridoDescripción
is_enabledbooleanHabilitar o deshabilitar E2EE. Navegadores compatibles: Chromium 83+, Google Chrome, Microsoft Edge, Safari, Firefox 117+. Nota: Los usuarios no pueden unirse si su navegador no es compatible con E2EE.
enabled_self_insert_encryption_keybooleanNoSi es true, se pedirá a los usuarios que introduzcan una clave secreta al unirse. Esto habilita un modelo de confianza cero donde la clave nunca se envía al servidor. Si es false, el servidor genera y distribuye la clave. Predeterminado: false.

Importante: Cuando esto es true, todas las características de IA basadas en audio (como la transcripción y el resumen) se deshabilitan automáticamente. Esto se debe a que el servidor no tiene la clave y, por lo tanto, no puede proporcionarla al agente de IA para acceder al flujo de audio.
included_chat_messagesbooleanNoHabilitar o deshabilitar E2EE para los mensajes de chat.
included_whiteboardbooleanNoHabilitar o deshabilitar E2EE para los mensajes de la pizarra (SCENE_UPDATE, POINTER_UPDATE). Puede aumentar el uso de la CPU; habilítelo solo si es necesario.

Configuraciones de Bloqueo Predeterminadas

CampoTipoRequeridoDescripción
lock_microphonebooleanNoBloquear el micrófono para los usuarios.
lock_webcambooleanNoBloquear la webcam para los usuarios.
lock_screen_sharingbooleanNoBloquear la compartición de pantalla para los usuarios.
lock_chatbooleanNoBloquear el chat para los usuarios.
lock_chat_send_messagebooleanNoBloquear el envío de mensajes en el chat.
lock_chat_file_sharebooleanNoBloquear el uso compartido de archivos en el chat.
lock_private_chatbooleanNoBloquear el chat privado para los usuarios.

Esta característica solo está disponible si la configuración del servidor client > copyright_conf > allow_override está establecida en true.

CampoTipoRequeridoDescripción
displaybooleanHabilitar o deshabilitar la visualización del texto de copyright.
textstringTexto de copyright. Sea conciso. Etiquetas HTML compatibles: b, i, em, strong, a

Ejemplo

{
"room_id": "room01",
"metadata": {
"room_title": "Sala de prueba",
"welcome_message": "Bienvenido a la sala",
"room_features": {
"allow_webcams": true,
"mute_on_start": false,
"allow_screen_share": true,
"allow_rtmp": true,
"admin_only_webcams": false,
"allow_view_other_webcams": true,
"allow_view_other_users_list": true,
"enable_analytics": true,
"allow_virtual_bg": true,
"allow_raise_hand": true,
"auto_gen_user_id": false,
"recording_features": {
"is_allow": true,
"is_allow_cloud": true,
"is_allow_local": true,
"enable_auto_cloud_recording": false
},
"chat_features": {
"is_allow": true,
"is_allow_file_upload": true
},
"shared_note_pad_features": {
"is_allow": true
},
"whiteboard_features": {
"is_allow": true
},
"external_media_player_features": {
"is_allow": true
},
"waiting_room_features": {
"is_active": false
},
"breakout_room_features": {
"is_allow": true,
"allowed_number_rooms": 2
},
"display_external_link_features": {
"is_allow": true
},
"ingress_features": {
"is_allow": true
},
"polls_features": {
"is_allow": true
},
"insights_features": {
"is_allow": true,
"transcription_features": {
"is_allow": true,
"is_allow_translation": true,
"is_allow_speech_synthesis": true
},
"chat_translation_features": {
"is_allow": true
},
"ai_features": {
"is_allow": true,
"ai_text_chat_features": {
"is_allow": true
},
"meeting_summarization_features": {
"is_allow": true
}
}
},
"sip_dial_in_features": {
"is_allow": true,
"enable_dial_in_on_create": true,
"hide_phone_number": false
},
"end_to_end_encryption_features": {
"is_enabled": false,
"enabled_self_insert_encryption_key": false
}
},
"default_lock_settings": {
"lock_microphone": false,
"lock_webcam": false,
"lock_screen_sharing": true,
"lock_whiteboard": true,
"lock_shared_notepad": true,
"lock_chat": false,
"lock_chat_send_message": false,
"lock_chat_file_share": false,
"lock_private_chat": false
},
"copyright_conf": {
"display": true,
"text": "Impulsado por <a href=\"https://www.plugnmeet.org\" target=\"_blank\">plugNmeet</a>"
}
}
}

Respuesta

CampoTipoDescripción
statusbooleanIndica si la solicitud fue exitosa.
msgstringMensaje de respuesta.
room_infoobjectDetalles sobre la sala.