Capítulo 10 GET POST

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 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.
En bbbserver.de, el endpoint 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

Recibirás una respuesta 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.

No. La lista de asistentes solo contiene participantes que están conectados actualmente a la reunión. Los usuarios que se han ido ya no se incluyen. En cambio, getMeetings puede incluir usuarios que se han ido en ciertas versiones de BigBlueButton.

No existe un límite de tasa estricto aplicado por 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.

Sí. Llama a 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.

Campos como 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.

El contenedor 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.