Capítulo 9 GET POST

getMeetings – Listar todas las reuniones

El endpoint getMeetings devuelve una lista de todas las reuniones que existen actualmente en el servidor BigBlueButton, incluidos los detalles de los participantes y los metadatos. Es la herramienta principal para crear paneles de administración, supervisar la carga del servidor y realizar planificación de capacidad en toda tu infraestructura.

Endpoint

GET/POST https://api-guide.bbbserver.com/bigbluebutton/api/getMeetings?checksum=replace-with-checksum

Este endpoint no requiere parámetros adicionales aparte de la suma de verificación. Devuelve todas las reuniones del servidor en una sola respuesta.

Parámetros

Parámetro Tipo Obligatorio Predeterminado Descripción
checksum String Suma de verificación de seguridad calculada a partir del nombre de la llamada de API y del secreto compartido.

Ejemplo de solicitud

https://api-guide.bbbserver.com/bigbluebutton/api/getMeetings?checksum=replace-with-checksum

Respuesta de ejemplo

Reuniones encontradas

<response>
  <returncode>SUCCESS</returncode>
  <meetings>
    <meeting>
      <meetingName>Demo Meeting</meetingName>
    <meetingID>replace-with-meeting-id</meetingID>
      <internalMeetingID>a0715c95...</internalMeetingID>
      <createTime>1531241258036</createTime>
      <createDate>Tue Jul 10 16:47:38 UTC 2018</createDate>
      <voiceBridge>70066</voiceBridge>
      <dialNumber>613-555-1234</dialNumber>
      <attendeePW>ap</attendeePW>
      <moderatorPW>mp</moderatorPW>
      <running>true</running>
      <duration>0</duration>
      <hasUserJoined>true</hasUserJoined>
      <recording>false</recording>
      <hasBeenForciblyEnded>false</hasBeenForciblyEnded>
      <startTime>1531241258074</startTime>
      <endTime>0</endTime>
      <participantCount>5</participantCount>
      <listenerCount>2</listenerCount>
      <voiceParticipantCount>3</voiceParticipantCount>
      <videoCount>2</videoCount>
      <maxUsers>0</maxUsers>
      <moderatorCount>1</moderatorCount>
      <attendees>
        <attendee>
          <userID>w_ftcrsyuh44oj</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/>
      <isBreakout>false</isBreakout>
    </meeting>
  </meetings>
</response>

No se encontraron reuniones

<response>
  <returncode>SUCCESS</returncode>
  <meetings/>
  <messageKey>noMeetings</messageKey>
  <message>no meetings were found on this server</message>
</response>

Campos de respuesta por reunión

Campo Tipo Descripción
meetingName String Nombre para mostrar de la reunión.
meetingID String ID externo de la reunión según se especificó durante la creación.
internalMeetingID String ID único interno generado por el servidor.
createTime Number Marca de tiempo de creación en milisegundos desde la época Unix.
createDate String Cadena de fecha de creación legible por humanos.
voiceBridge String Número de puente de voz para conferencias de audio.
dialNumber String Número de acceso telefónico para la reunión.
attendeePW String Contraseña de asistente. Solo está presente si se ha establecido. Obsoleto en BBB 3.0.
moderatorPW String Contraseña de moderador. Solo está presente si se ha establecido. Obsoleto en BBB 3.0.
running Boolean Indica si la reunión está activa actualmente.
duration Number Duración máxima en minutos. 0 significa ilimitada.
hasUserJoined Boolean Indica si al menos un usuario se ha unido a la reunión.
recording Boolean Indica si la grabación está habilitada para esta reunión.
hasBeenForciblyEnded Boolean Indica si la reunión fue finalizada forzosamente mediante la API.
startTime Number Marca de tiempo de inicio en milisegundos desde la época Unix.
endTime Number Marca de tiempo de finalización. 0 si la reunión sigue en curso.
participantCount Number Número actual de participantes en la reunión.
listenerCount Number Número de participantes en modo solo escucha.
voiceParticipantCount Number Número de participantes con audio activo.
videoCount Number Número de cámaras web activas.
maxUsers Number Número máximo de participantes permitidos. 0 significa ilimitado.
moderatorCount Number Número de moderadores actualmente en la reunión.
attendees List Lista de todos los participantes con detalles como userID, fullName, role y estado de medios.
metadata Object Todos los parámetros de metadatos personalizados pasados durante la llamada create.
isBreakout Boolean Indica si esta es una sala de grupos.
parentMeetingID String ID de la reunión principal. Solo se muestra para las salas de grupos.
sequence Number Número de secuencia de la sala de grupos. Solo se muestra para las salas de grupos.
freeJoin Boolean Indica si los participantes pueden elegir libremente esta sala de grupos. Solo se muestra para las salas de grupos.
breakoutRooms List Lista de IDs de salas de grupos. Solo se muestra cuando la reunión tiene salas de grupos activas.

Detalles del asistente

Cada entrada de la lista attendees contiene los siguientes campos:

Campo Tipo Descripción
userID String Identificador interno único del usuario.
fullName String Nombre para mostrar del participante.
role String Rol del participante: MODERATOR o VIEWER.
isPresenter Boolean Indica si el participante es actualmente el presentador.
isListeningOnly Boolean Indica si el participante se unió en modo solo escucha.
hasJoinedVoice Boolean Indica si el participante se ha unido a la conferencia de voz.
hasVideo Boolean Indica si el participante tiene una cámara web activa.
clientType String Tipo de cliente usado por el participante (por ejemplo, HTML5).

La lista de asistentes devuelta por getMeetings incluye a todos los usuarios que alguna vez se han unido a la reunión, incluidos los que ya se fueron. Esto es diferente de getMeetingInfo, que solo devuelve los usuarios conectados actualmente. Téngalo en cuenta al calcular el número de participantes activos.

Casos de uso comunes

  • Panel de administración — muestra una vista general de todas las reuniones en ejecución y su número de participantes.
  • Planificación de capacidad — calcula el número total de participantes activos en todas las reuniones del servidor.
  • Supervisión — identifica reuniones sin moderador o reuniones que presentan problemas.
  • Limpieza automática — encuentra reuniones que han existido durante mucho tiempo sin participantes.

Consejos y mejores prácticas

Dado que getMeetings devuelve todas las reuniones del servidor (no solo las que están en ejecución), filtra los resultados por el campo running si solo necesitas reuniones activas.

La respuesta contiene información sensible como nombres de participantes, IDs de usuario y contraseñas. Llame siempre a este endpoint solo desde código del lado del servidor. Nunca lo exponga a aplicaciones del lado del cliente ni a usuarios finales.

No hay soporte de paginación para este endpoint. En servidores con muchas reuniones concurrentes, la respuesta puede llegar a ser muy grande y afectar al rendimiento. Considere almacenar en caché los resultados si consulta con frecuencia.

Preguntas frecuentes

No. Devuelve todas las reuniones que existen actualmente en el servidor, incluidas las reuniones que se han creado pero aún no tienen participantes. Filtra por el campo running si solo necesitas reuniones activas.

getMeetings devuelve un resumen de todas las reuniones del servidor, mientras que getMeetingInfo devuelve información detallada de una única reunión específica. Además, la lista de asistentes en getMeetings incluye a todos los usuarios que se han unido alguna vez (incluidos los que se fueron), mientras que getMeetingInfo solo enumera a los usuarios conectados actualmente.

No. Estos campos solo se incluyen en la respuesta si se establecieron durante la creación de la reunión y no están vacíos. Desde BigBlueButton 3.0, estos campos están obsoletos y a menudo no están presentes.

Comprueba el campo isBreakout. Si es true, la reunión es una sala de grupos e incluirá campos adicionales como parentMeetingID, sequence y freeJoin. La reunión principal tendrá una lista breakoutRooms que contiene los ID de sus salas de grupos.

No. La API de BigBlueButton no admite paginación para getMeetings. Todas las reuniones se devuelven en una sola respuesta. Para servidores con un número muy grande de reuniones, considera implementar caché o llamar al endpoint con menos frecuencia para reducir la carga del servidor.