Saltar al contenido principal

Crear una Sala

Punto final: /room/create

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

Este es el ciclo de vida típico:

  1. Usted crea una sala utilizando 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 finaliza automáticamente cuando el último participante se retira o puede ser terminada mediante una llamada a la API.

Una vez que una sesión ha concluido, la sala se da por finalizada y todos los datos asociados (como mensajes de chat y listas de usuarios) se eliminan. Esto asegura que cada nueva sesión comience desde cero.

Consejo Profesional: Cómo Simular Salas Permanentes

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

Cuando un usuario intente 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 brinda la flexibilidad de tener salas que parecen persistentes, mientras aprovecha el modelo de sesiones temporales de Plug-N-Meet.

Parámetros de la 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 sobre la 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_urlstringNoLa URL para recibir eventos de webhook desde Plug-N-Meet.
logout_urlstringNoLa URL a la que se redirigirá a los usuarios después de que termine la reunión o sesión.
room_featuresobjectConfiguraciones para habilitar o deshabilitar diversas características de la sala.
default_lock_settingsobjectNoConfiguraciones predeterminadas para bloquear funcionalidades específicas para los usuarios.
copyright_confobjectNoConfiguración de los derechos de autor.
extra_datamapNoUn mapa de pares clave-valor personalizados. Tanto las claves como los valores deben ser cadenas de texto. Por ejemplo: {"key": "value"}

Características de la Sala

CampoTipoRequeridoDescripción
allow_webcamsbooleanHabilitar o deshabilitar el uso de cámaras web.
mute_on_startbooleanSilenciar automáticamente los micrófonos cuando los participantes se unen.
allow_screen_sharebooleanHabilitar o deshabilitar la función de compartir pantalla.
admin_only_webcamsbooleanPermitir el acceso a la cámara web solo a los administradores.
allow_view_other_webcamsbooleanPermitir que los participantes vean las cámaras de los demás. Si es false, solo los moderadores podrán ver todas las cámaras.
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 de "levantar la mano".
auto_gen_user_idbooleanNoPlugNmeet requiere un userId único para cada participante. Habilite esta opción si prefiere no gestionar los userId o si 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 usted proporcione se almacenará como ex_user_id y podrá ser recuperado a través de la API getActiveRoomInfo. Predeterminado: false.
room_durationnumberNoEstablecer una duración fija para la sala en minutos. 0 significa que no hay límite.
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.
external_broadcasting_featuresobjectNoConfiguraciones de transmisión externa.
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 análisis, transcripción y traducción impulsadas por IA.
sip_dial_in_featuresobjectNoConfiguraciones de marcación de entrada SIP.
end_to_end_encryption_featuresobjectNoConfiguraciones de Cifrado de Extremo a Extremo (E2EE).

Características de Grabación

Ver Detalles
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 una.
only_record_admin_webcamsbooleanNoSi es true, solo se incluirán en la grabación las cámaras web de los usuarios administradores.
recorder_bot_optionsobjectNoOpciones avanzadas para el bot grabador.

Características del Chat

Ver Detalles
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

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

Características de la Pizarra

Ver Detalles
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 accesible directamente, sin redirecciones.

Características del Reproductor Multimedia Externo

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

Características de Transmisión Externa

Ver Detalles
CampoTipoRequeridoDescripción
is_allowbooleanHabilitar o deshabilitar las funciones de transmisión externa.
is_allow_rtmpbooleanCuando está habilitado, los moderadores pueden iniciar la transmisión en vivo de la sala a plataformas externas como YouTube.
recorder_bot_optionsobjectNoOpciones avanzadas para el bot grabador utilizado para la transmisión.

Características de la Sala de Espera

Ver Detalles
CampoTipoRequeridoDescripción
is_activebooleanHabilitar para activar la sala de espera. Los usuarios permanecerán en ella hasta que un moderador les permita el acceso.

Características de las Salas para Grupos

Ver Detalles
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

Ver Detalles
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

Ver Detalles
CampoTipoRequeridoDescripción
is_allowbooleanHabilitar la ingesta de medios para transmitir contenido directamente a la sesión. Esto es útil para transmisiones profesionales con 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

Ver Detalles
CampoTipoRequeridoDescripción
is_allowbooleanHabilitar o deshabilitar la función de encuestas.

Características de Insights

Ver Detalles
Se Requiere Configuración del Servidor

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

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

  1. Primero, usted define sus cuentas de proveedor, como azure o google, y añade sus credenciales de API para cada una.
  2. Segundo, usted 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 distintas tareas (p. ej., Azure para traducción y Google para chat con IA) e incluso seleccionar diferentes modelos para optimizar la relación costo-rendimiento (p. ej., un modelo potente para chat y uno más económico para resúmenes). Consulte la guía de configuración del servidor para obtener instrucciones detalladas.

Este objeto controla todas las características impulsadas por IA que proporciona la Plataforma Insights.

CampoTipoRequeridoDescripción
is_allowbooleanHabilitar o deshabilitar todas las características de la Plataforma 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

Ver Detalles
Se Requiere Configuración del Servidor

Para que la marcación de entrada SIP funcione, primero debe configurar la sección livekit_sip_info en el archivo principal config.yaml de su servidor. Esto implica configurar la pasarela 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 de configuración detalladas.

CampoTipoRequeridoDescripción
is_allowbooleanHabilitar o deshabilitar la marcación de entrada SIP para la sala.
enable_dial_in_on_createbooleanNoSi es true, el servicio de marcación de entrada SIP se iniciará automáticamente cuando se cree la sala. Si es false, un moderador deberá iniciarlo manualmente desde la reunión. Predeterminado: false.
hide_phone_numberbooleanNoSi es true, el número de teléfono de marcación 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)

Ver Detalles
CampoTipoRequeridoDescripción
is_enabledbooleanHabilitar o deshabilitar E2EE. Navegadores compatibles: Chromium 83+, Google Chrome, Microsoft Edge, Safari, Firefox 117+. Nota: Los usuarios no podrán 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 esta opción 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 el cifrado E2EE para los mensajes de chat.
included_whiteboardbooleanNoHabilitar o deshabilitar el cifrado E2EE para los mensajes de la pizarra (SCENE_UPDATE, POINTER_UPDATE). Puede aumentar el uso de la CPU; habilítelo solo si es necesario.

Opciones del Bot Grabador

Ver Detalles
CampoTipoRequeridoDescripción
enable_auto_close_chat_panelbooleanNoSi es true, el panel de chat se cerrará automáticamente después de una cierta duración.
duration_after_last_messagenumberNoDuración en segundos. Después de esta duración, el panel de chat se cerrará.

Configuraciones de Bloqueo Predeterminadas

Ver Detalles
CampoTipoRequeridoDescripción
lock_microphonebooleanNoBloquear el micrófono para los usuarios.
lock_webcambooleanNoBloquear la cámara web para los usuarios.
lock_screen_sharingbooleanNoBloquear la función de compartir 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 envío de archivos en el chat.
lock_private_chatbooleanNoBloquear el chat privado para los usuarios.
Ver Detalles

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 derechos de autor.
textstringTexto de derechos de autor. Sea conciso. Etiquetas HTML compatibles: b, i, em, strong, a.

Ejemplo

{
"room_id": "sala01",
"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,
"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,
"only_record_admin_webcams": false,
"recorder_bot_options": {
"enable_auto_close_chat_panel": true,
"duration_after_last_message": 10
}
},
"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
},
"external_broadcasting_features": {
"is_allow": true,
"is_allow_rtmp": true,
"recorder_bot_options": {
"enable_auto_close_chat_panel": true,
"duration_after_last_message": 10
}
},
"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.
status_codenumberCódigo de estado de la respuesta.
room_infoobjectDetalles sobre la sala.