getMeetingInfo – Obtener detalles de la reunión
El endpoint getMeetingInfo devuelve información detallada sobre una única reunión de BigBlueButton, incluidos sus participantes actuales, metadatos, ajustes de configuración y estado de grabación. Úsalo para inspeccionar una reunión específica en tiempo real.
Endpoint
GET/POST https://api-guide.bbbserver.com/bigbluebutton/api/getMeetingInfo?<parameter>&checksum=replace-with-checksum Este endpoint requiere una suma de verificación válida calculada a partir del secreto compartido de tu servidor BigBlueButton. Se admiten solicitudes tanto GET como POST.
Parámetros
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
meetingID | String | Sí | El identificador de la reunión que se va a consultar. Este es el ID que especificaste cuando se creó la reunión. |
Campos de respuesta
Una respuesta correcta contiene los siguientes campos que describen la reunión y su estado actual:
| Campo | Tipo | Descripción |
|---|---|---|
returncode | String | Indica si la llamada se realizó correctamente. Devuelve SUCCESS o FAILED. |
meetingName | String | El nombre legible por humanos de la reunión. |
meetingID | String | El identificador externo de la reunión, tal como se especificó durante la creación. |
internalMeetingID | String | El identificador único interno generado por BigBlueButton. |
createTime | Long | Marca de tiempo (en milisegundos desde epoch) de cuando se creó la reunión. |
createDate | String | Fecha y hora legibles por humanos de cuando se creó la reunión. |
voiceBridge | String | El número de puente de voz para el acceso telefónico. |
dialNumber | String | El número de teléfono para acceso por marcación, si está configurado. |
attendeePW | String deprecated | La contraseña de asistente. Se incluye por retrocompatibilidad, pero está obsoleta desde BigBlueButton 2.5. |
moderatorPW | String deprecated | La contraseña de moderador. Se incluye por retrocompatibilidad, pero está obsoleta desde BigBlueButton 2.5. |
running | Boolean | Si la reunión está actualmente en ejecución (true) o no (false). |
duration | Integer | La duración máxima de la reunión en minutos. Un valor de 0 significa ilimitada. |
hasUserJoined | Boolean | Indica si al menos un usuario se ha unido a la reunión. |
recording | Boolean | Si la reunión se está grabando. |
hasBeenForciblyEnded | Boolean | Si la reunión fue finalizada por una llamada de API end. |
startTime | Long | Marca de tiempo (en milisegundos) de cuando comenzó la reunión. |
endTime | Long | Marca de tiempo (en milisegundos) de cuando terminó la reunión. Devuelve 0 si sigue en ejecución. |
participantCount | Integer | El número total de participantes actualmente en la reunión. |
listenerCount | Integer | El número de participantes en modo de solo escucha. |
voiceParticipantCount | Integer | El número de participantes que se han unido al canal de audio. |
videoCount | Integer | El número de participantes que están compartiendo su cámara web. |
maxUsers | Integer | El número máximo de usuarios permitidos. Un valor de 0 significa ilimitado. |
moderatorCount | Integer | El número de moderadores actualmente en la reunión. |
attendees | XML Container | Contiene una lista de elementos attendee con detalles sobre cada participante conectado (consulta los campos de Attendee a continuación). |
metadata | XML Container | Contiene los pares clave-valor de metadatos personalizados pasados durante la creación de la reunión. |
isBreakout | Boolean | Si la reunión es una sala de grupos. |
parentMeetingID | String | El ID de la reunión principal. Solo está presente en las salas de grupos. |
sequence | Integer | El número de secuencia de la sala de grupos. Solo está presente en las salas de grupos. |
freeJoin | Boolean | Si los participantes pueden elegir libremente a qué sala de grupos unirse. Solo está presente en las salas de grupos. |
breakoutRooms | XML Container | Enumera los ID de las salas para grupos pequeños asociadas a esta reunión. Solo está presente cuando se han creado salas para grupos pequeños. |
Campos del asistente
Cada elemento attendee dentro de attendees contiene los siguientes campos:
| Campo | Tipo | Descripción |
|---|---|---|
userID | String | El ID de usuario interno de BigBlueButton, normalmente en el formato w_xxxxxxxx. |
fullName | String | El nombre para mostrar del participante. |
role | Enum | El rol del participante: MODERATOR o VIEWER. |
isPresenter | Boolean | Indica si el participante es actualmente el presentador. |
isListeningOnly | Boolean | Indica si el participante está en modo de solo escucha. |
hasJoinedVoice | Boolean | Indica si el participante se ha unido al canal de audio con un micrófono. |
hasVideo | Boolean | Indica si el participante está compartiendo su cámara web. |
clientType | String | El tipo de cliente que está usando el participante. Normalmente HTML5. |
customdata | XML Container | Contiene datos personalizados de clave-valor como elementos secundarios XML. Solo está presente cuando se establecieron datos personalizados para el participante durante join. |
Ejemplo de solicitud
GET https://api-guide.bbbserver.com/bigbluebutton/api/getMeetingInfo?meetingID=replace-with-meeting-id&checksum=replace-with-checksum Respuesta de ejemplo (éxito)
<response>
<returncode>SUCCESS</returncode>
<meetingName>Project Discussion</meetingName>
<meetingID>replace-with-meeting-id</meetingID>
<internalMeetingID>replace-with-internal-meeting-id</internalMeetingID>
<createTime>1715261728123</createTime>
<createDate>Thu May 09 13:35:28 UTC 2024</createDate>
<voiceBridge>66052</voiceBridge>
<dialNumber>613-555-1234</dialNumber>
<attendeePW>replace-with-password</attendeePW>
<moderatorPW>replace-with-password</moderatorPW>
<running>true</running>
<duration>0</duration>
<hasUserJoined>true</hasUserJoined>
<recording>true</recording>
<hasBeenForciblyEnded>false</hasBeenForciblyEnded>
<startTime>1715261728142</startTime>
<endTime>0</endTime>
<participantCount>3</participantCount>
<listenerCount>1</listenerCount>
<voiceParticipantCount>2</voiceParticipantCount>
<videoCount>2</videoCount>
<maxUsers>0</maxUsers>
<moderatorCount>1</moderatorCount>
<attendees>
<attendee>
<userID>replace-with-user-id</userID>
<fullName>Max Mustermann</fullName>
<role>MODERATOR</role>
<isPresenter>true</isPresenter>
<isListeningOnly>false</isListeningOnly>
<hasJoinedVoice>true</hasJoinedVoice>
<hasVideo>true</hasVideo>
<clientType>HTML5</clientType>
</attendee>
</attendees>
<metadata>
<bbb-origin>greenlight</bbb-origin>
<bbb-origin-version>v3.1.0</bbb-origin-version>
<endcallbackurl>https://api-guide.bbbserver.com/callbacks/meeting-ended</endcallbackurl>
</metadata>
<isBreakout>false</isBreakout>
</response> Respuesta de error
Si el ID de reunión especificado no existe o ya ha finalizado, la API devuelve una respuesta FAILED:
<response>
<returncode>FAILED</returncode>
<messageKey>notFound</messageKey>
<message>We could not find a meeting with that meeting ID</message>
</response> Un error notFound no significa necesariamente que la reunión nunca se haya creado. Puede que ya haya finalizado y se haya eliminado de la memoria del servidor. BigBlueButton solo conserva los datos de la reunión mientras esta está activa.
getMeetingInfo vs. getMeetings
| Aspecto | getMeetings | getMeetingInfo |
|---|---|---|
| Alcance | Todas las reuniones activas del servidor | Una única reunión específica |
| Parámetros | No se requiere ninguno | meetingID requerido |
| Detalles de los asistentes | Todos los usuarios, incluidos los que se han ido | Solo los usuarios conectados actualmente |
| Caso de uso | Resumen del panel y la monitorización | Inspección específica de una reunión concreta |
Casos de uso comunes
- Lógica de unión — comprobar si hay un moderador presente antes de redirigir a los invitados a la reunión.
- Listas de participantes — mostrar los asistentes actuales en una aplicación externa o en una página de sala de espera.
- Estado de la grabación — verificar si la grabación está activa actualmente para la reunión.
- Depuración — realizar un análisis detallado de una reunión específica con fines de resolución de problemas.
getMeetingInfo está disponible en todos los planes. Puedes encontrar tus credenciales de API en el panel de gestión del servidor.Consejos
Consulta periódicamente getMeetingInfo para construir una lista en vivo de participantes. Combina los campos voiceParticipantCount y videoCount para determinar cuántos usuarios están participando activamente con audio y vídeo.
Usa el contenedor metadata para pasar y recuperar datos específicos de la aplicación, como sistema de origen, URL de devolución de llamada o etiquetas personalizadas, sin interferir con los componentes internos de BigBlueButton.
Los campos attendeePW y moderatorPW están obsoletos desde BigBlueButton 2.5. Se siguen devolviendo por retrocompatibilidad, pero no deberías basarte en ellos para la lógica de autenticación en nuevas integraciones.
Preguntas frecuentes
FAILED con la messageKey "notFound". BigBlueButton elimina los datos de la reunión de la memoria una vez que la reunión ha finalizado. Para acceder a información sobre reuniones pasadas, usa en su lugar el endpoint getRecordings.getMeetings puede incluir usuarios que se han ido en ciertas versiones de BigBlueButton.BigBlueButton en sí, pero las consultas frecuentes (por ejemplo, cada segundo) pueden imponer una carga innecesaria al servidor. Un intervalo de consulta de 5 a 10 segundos suele ser suficiente para la mayoría de los casos de uso.getMeetingInfo con meetingID. Si el returncode de la respuesta es SUCCESS, la reunión existe y está activa. Si es FAILED con messageKey "notFound", la reunión no existe o ya ha finalizado.parentMeetingID, sequence, freeJoin y breakoutRooms solo aparecen en la respuesta cuando la reunión es una sala de grupos o tiene salas de grupos. En reuniones normales, isBreakout es false y los demás campos de salas de grupos se omiten.customdata contiene pares clave-valor específicos del usuario que se pasaron como parámetros cuando el usuario se unió a la reunión mediante la llamada de API join. Cada clave se convierte en un elemento secundario XML. Si no se proporcionaron datos personalizados, este elemento puede estar ausente.