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:
- Usted crea una sala utilizando este punto final de la API.
- Usted genera tokens de acceso para que los usuarios se unan a la sesión.
- La sesión permanece activa mientras haya participantes presentes.
- 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:
- Verificar si ya existe una sesión activa para ese
room_id(p. ej., usando la APIisRoomActive).- Si no existe ninguna sesión, llamar a este punto final
createpara iniciar una nueva.- 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
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| room_id | string | Sí | Un 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_participants | number | No | El número máximo de participantes permitidos en la sala. |
| empty_timeout | number | No | El número de segundos que la sala permanecerá activa después de su creación si nadie se une. |
| metadata | object | Sí | Detalles adicionales sobre la configuración de la sala. |
Metadatos
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| room_title | string | Sí | El título de la sala o reunión. |
| welcome_message | string | No | Un mensaje que se muestra a los participantes cuando se unen. |
| webhook_url | string | No | La URL para recibir eventos de webhook desde Plug-N-Meet. |
| logout_url | string | No | La URL a la que se redirigirá a los usuarios después de que termine la reunión o sesión. |
| room_features | object | Sí | Configuraciones para habilitar o deshabilitar diversas características de la sala. |
| default_lock_settings | object | No | Configuraciones predeterminadas para bloquear funcionalidades específicas para los usuarios. |
| copyright_conf | object | No | Configuración de los derechos de autor. |
| extra_data | map | No | Un 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
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| allow_webcams | boolean | Sí | Habilitar o deshabilitar el uso de cámaras web. |
| mute_on_start | boolean | Sí | Silenciar automáticamente los micrófonos cuando los participantes se unen. |
| allow_screen_share | boolean | Sí | Habilitar o deshabilitar la función de compartir pantalla. |
| admin_only_webcams | boolean | Sí | Permitir el acceso a la cámara web solo a los administradores. |
| allow_view_other_webcams | boolean | Sí | Permitir 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_list | boolean | Sí | Restringir la visualización de la lista de usuarios solo a los moderadores. |
| enable_analytics | boolean | No | Habilitar o deshabilitar los informes de análisis para la sesión. Predeterminado: false. |
| allow_virtual_bg | boolean | No | Habilitar o deshabilitar las opciones de fondo virtual. |
| allow_raise_hand | boolean | No | Habilitar o deshabilitar la función de "levantar la mano". |
| auto_gen_user_id | boolean | No | PlugNmeet 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_duration | number | No | Establecer una duración fija para la sala en minutos. 0 significa que no hay límite. |
| recording_features | object | Sí | Configuraciones de grabación. |
| chat_features | object | Sí | Configuraciones del chat. |
| shared_note_pad_features | object | Sí | Configuraciones del bloc de notas compartido. |
| whiteboard_features | object | Sí | Configuraciones de la pizarra. |
| external_media_player_features | object | Sí | Configuraciones del reproductor multimedia externo. |
| external_broadcasting_features | object | No | Configuraciones de transmisión externa. |
| waiting_room_features | object | Sí | Configuraciones de la sala de espera. |
| breakout_room_features | object | Sí | Configuraciones de las salas para grupos. |
| display_external_link_features | object | Sí | Configuraciones para mostrar enlaces externos. |
| ingress_features | object | No | Configuraciones de ingesta RTMP. |
| polls_features | object | No | Configuraciones de encuestas. |
| insights_features | object | No | Configuraciones de análisis, transcripción y traducción impulsadas por IA. |
| sip_dial_in_features | object | No | Configuraciones de marcación de entrada SIP. |
| end_to_end_encryption_features | object | No | Configuraciones de Cifrado de Extremo a Extremo (E2EE). |
Características de Grabación
Ver Detalles
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| is_allow | boolean | Sí | Habilitar o deshabilitar la grabación para la reunión. |
| is_allow_cloud | boolean | Sí | Habilitar o deshabilitar la grabación en la nube. |
| is_allow_local | boolean | Sí | Habilitar o deshabilitar la grabación local. |
| enable_auto_cloud_recording | boolean | No | Iniciar automáticamente la grabación en la nube cuando un moderador o administrador se una. |
| only_record_admin_webcams | boolean | No | Si es true, solo se incluirán en la grabación las cámaras web de los usuarios administradores. |
| recorder_bot_options | object | No | Opciones avanzadas para el bot grabador. |
Características del Chat
Ver Detalles
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| is_allow | boolean | Sí | Habilitar o deshabilitar el chat para la reunión. |
| is_allow_file_upload | boolean | Sí | Habilitar o deshabilitar la carga de archivos en el chat. |
Características del Bloc de Notas Compartido
Ver Detalles
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| is_allow | boolean | Sí | Habilitar o deshabilitar la función de bloc de notas compartido. |
Características de la Pizarra
Ver Detalles
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| is_allow | boolean | Sí | Habilitar o deshabilitar la función de pizarra. |
| preload_file | string | No | Precargar 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
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| is_allow | boolean | Sí | Habilitar 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
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| is_allow | boolean | Sí | Habilitar o deshabilitar las funciones de transmisión externa. |
| is_allow_rtmp | boolean | Sí | Cuando está habilitado, los moderadores pueden iniciar la transmisión en vivo de la sala a plataformas externas como YouTube. |
| recorder_bot_options | object | No | Opciones avanzadas para el bot grabador utilizado para la transmisión. |
Características de la Sala de Espera
Ver Detalles
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| is_active | boolean | Sí | Habilitar 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
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| is_allow | boolean | Sí | Habilitar o deshabilitar las salas para grupos. |
| allowed_number_rooms | number | No | Nú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
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| is_allow | boolean | Sí | Habilitar 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
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| is_allow | boolean | Sí | Habilitar 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
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| is_allow | boolean | Sí | Habilitar o deshabilitar la función de encuestas. |
Características de Insights
Ver Detalles
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:
- Primero, usted define sus cuentas de proveedor, como
azureogoogle, y añade sus credenciales de API para cada una. - 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.
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| is_allow | boolean | Sí | Habilitar o deshabilitar todas las características de la Plataforma Insights. |
| transcription_features | object | No | Configuraciones para la conversión de voz a texto y la traducción hablada. |
| chat_translation_features | object | No | Configuraciones para la traducción del chat. |
| ai_features | object | No | Configuraciones para las características de IA generativa. |
Características de Transcripción
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| is_allow | boolean | Sí | Habilitar o deshabilitar la transcripción en tiempo real. |
| is_allow_translation | boolean | No | Habilitar o deshabilitar la traducción de la transcripción. |
| is_allow_speech_synthesis | boolean | No | Habilitar o deshabilitar las traducciones habladas (texto a voz). |
Características de Traducción de Chat
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| is_allow | boolean | Sí | Habilitar o deshabilitar la traducción en tiempo real de los mensajes de chat. |
Características de IA
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| is_allow | boolean | Sí | Habilitar o deshabilitar todas las características de IA generativa. |
| ai_text_chat_features | object | No | Configuraciones para el Asistente de Chat con IA. |
| meeting_summarization_features | object | No | Configuraciones para los resúmenes de reuniones impulsados por IA. |
Características del Chat de Texto con IA
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| is_allow | boolean | Sí | Habilitar o deshabilitar el Asistente de Chat con IA. |
Características de Resumen de Reunión
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| is_allow | boolean | Sí | Habilitar o deshabilitar la generación de resúmenes de reuniones. |
Características de Marcado de Entrada SIP
Ver Detalles
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.
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| is_allow | boolean | Sí | Habilitar o deshabilitar la marcación de entrada SIP para la sala. |
| enable_dial_in_on_create | boolean | No | Si 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_number | boolean | No | Si 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
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| is_enabled | boolean | Sí | Habilitar 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_key | boolean | No | Si 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_messages | boolean | No | Habilitar o deshabilitar el cifrado E2EE para los mensajes de chat. |
| included_whiteboard | boolean | No | Habilitar 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
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| enable_auto_close_chat_panel | boolean | No | Si es true, el panel de chat se cerrará automáticamente después de una cierta duración. |
| duration_after_last_message | number | No | Duración en segundos. Después de esta duración, el panel de chat se cerrará. |
Configuraciones de Bloqueo Predeterminadas
Ver Detalles
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| lock_microphone | boolean | No | Bloquear el micrófono para los usuarios. |
| lock_webcam | boolean | No | Bloquear la cámara web para los usuarios. |
| lock_screen_sharing | boolean | No | Bloquear la función de compartir pantalla para los usuarios. |
| lock_chat | boolean | No | Bloquear el chat para los usuarios. |
| lock_chat_send_message | boolean | No | Bloquear el envío de mensajes en el chat. |
| lock_chat_file_share | boolean | No | Bloquear el envío de archivos en el chat. |
| lock_private_chat | boolean | No | Bloquear el chat privado para los usuarios. |
Configuración de Copyright
Ver Detalles
Esta característica solo está disponible si la configuración del servidor client > copyright_conf > allow_override está establecida en true.
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| display | boolean | Sí | Habilitar o deshabilitar la visualización del texto de derechos de autor. |
| text | string | Sí | Texto 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
| Campo | Tipo | Descripción |
|---|---|---|
| status | boolean | Indica si la solicitud fue exitosa. |
| msg | string | Mensaje de respuesta. |
| status_code | number | Código de estado de la respuesta. |
| room_info | object | Detalles sobre la sala. |