Chapitre 9 GET POST

getMeetings – Lister toutes les réunions

Le point de terminaison getMeetings renvoie une liste de toutes les réunions existant actuellement sur le serveur BigBlueButton, y compris les détails des participants et les métadonnées. C'est l'outil principal pour créer des tableaux de bord d'administration, surveiller la charge du serveur et planifier la capacité sur votre infrastructure.

Point de terminaison

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

Ce point de terminaison ne nécessite aucun paramètre supplémentaire au-delà de la checksum. Il renvoie toutes les réunions du serveur dans une seule réponse.

Paramètres

Paramètre Type Obligatoire Par défaut Description
checksum String Oui de sécurité calculée à partir du nom de l'appel API et du secret partagé.

Exemple de requête

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

Exemple de réponse

Réunions trouvées

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

Aucune réunion trouvée

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

Champs de réponse par réunion

Champ Type Description
meetingName String Nom d’affichage de la réunion.
meetingID String ID externe de la réunion tel que spécifié lors de la création.
internalMeetingID String ID unique interne généré par le serveur.
createTime Number Horodatage de création en millisecondes depuis l’époque Unix.
createDate String Chaîne de date de création lisible par l’humain.
voiceBridge String Numéro de pont vocal pour l’audioconférence.
dialNumber String Numéro d’appel téléphonique pour la réunion.
attendeePW String Mot de passe participant. Présent uniquement s'il est défini. Obsolète dans BBB 3.0.
moderatorPW String Mot de passe modérateur. Présent uniquement s'il est défini. Obsolète dans BBB 3.0.
running Boolean Indique si la réunion est actuellement active.
duration Number Durée maximale en minutes. 0 signifie illimitée.
hasUserJoined Boolean Indique si au moins un utilisateur a rejoint la réunion.
recording Boolean Indique si l’enregistrement est activé pour cette réunion.
hasBeenForciblyEnded Boolean Indique si la réunion a été forcée à se terminer via l’API.
startTime Number Horodatage de début en millisecondes depuis l’époque Unix.
endTime Number Horodatage de fin. 0 si la réunion est toujours en cours.
participantCount Number Nombre actuel de participants à la réunion.
listenerCount Number Nombre de participants en écoute seule.
voiceParticipantCount Number Nombre de participants avec audio actif.
videoCount Number Nombre de webcams actives.
maxUsers Number Nombre maximal de participants autorisés. 0 signifie illimité.
moderatorCount Number Nombre de modérateurs actuellement dans la réunion.
attendees List Liste de tous les participants avec des détails tels que userID, fullName, role et l'état des médias.
metadata Object Tous les paramètres de métadonnées personnalisées transmis lors de l'appel create.
isBreakout Boolean Indique s’il s’agit d’une salle de répartition.
parentMeetingID String ID de réunion de la réunion parente. Présent uniquement pour les salles de répartition.
sequence Number Numéro de séquence de la salle de répartition. Présent uniquement pour les salles de répartition.
freeJoin Boolean Indique si les participants peuvent choisir librement cette salle de répartition. Présent uniquement pour les salles de répartition.
breakoutRooms List Liste des ID des salles de répartition. Présente uniquement lorsque la réunion a des salles de répartition actives.

Détails des participants

Chaque entrée de la liste attendees contient les champs suivants :

Champ Type Description
userID String Identifiant utilisateur interne unique.
fullName String Nom d’affichage du participant.
role String Rôle du participant : MODERATOR ou VIEWER.
isPresenter Boolean Indique si le participant est actuellement le présentateur.
isListeningOnly Boolean Indique si le participant a rejoint en mode écoute seule.
hasJoinedVoice Boolean Indique si le participant a rejoint la conférence vocale.
hasVideo Boolean Indique si le participant a une webcam active.
clientType String Type de client utilisé par le participant (par ex. HTML5).

La liste des participants renvoyée par getMeetings inclut tous les utilisateurs ayant déjà rejoint la réunion, y compris ceux qui l’ont déjà quittée. Cela diffère de getMeetingInfo, qui ne renvoie que les utilisateurs actuellement connectés. Gardez cela à l’esprit lors du calcul du nombre de participants actifs.

Cas d'utilisation courants

  • Tableau de bord d’administration — affiche une vue d’ensemble de toutes les réunions en cours et de leur nombre de participants.
  • Planification de capacité — calcule le nombre total de participants actifs sur l’ensemble des réunions du serveur.
  • Surveillance — identifie les réunions sans modérateur ou les réunions rencontrant des problèmes.
  • Nettoyage automatique — trouve les réunions qui existent depuis longtemps sans aucun participant.

Conseils et bonnes pratiques

Puisque getMeetings renvoie toutes les réunions du serveur (pas seulement celles en cours), filtrez les résultats sur le champ running si vous n'avez besoin que des réunions actives.

La réponse contient des informations sensibles telles que les noms des participants, les ID utilisateur et les mots de passe. Appelez toujours ce point de terminaison uniquement depuis du code côté serveur. Ne l’exposez jamais à des applications côté client ni aux utilisateurs finaux.

Ce point de terminaison ne prend pas en charge la pagination. Sur les serveurs avec de nombreuses réunions simultanées, la réponse peut devenir très volumineuse et affecter les performances. Envisagez de mettre les résultats en cache si vous interrogez fréquemment.

Foire aux questions

Non. Il renvoie toutes les réunions qui existent actuellement sur le serveur, y compris celles qui ont été créées mais n'ont pas encore de participants. Filtrez sur le champ running si vous n'avez besoin que des réunions actives.

getMeetings renvoie un résumé de toutes les réunions du serveur, tandis que getMeetingInfo renvoie des informations détaillées sur une réunion spécifique. De plus, la liste des participants dans getMeetings inclut tous les utilisateurs ayant déjà rejoint la réunion (y compris ceux qui l'ont quittée), tandis que getMeetingInfo ne liste que les utilisateurs actuellement connectés.

Non. Ces champs ne sont inclus dans la réponse que s'ils ont été définis lors de la création de la réunion et ne sont pas vides. Depuis BigBlueButton 3.0, ces champs sont obsolètes et souvent absents.

Vérifiez le champ isBreakout. S'il est true, la réunion est une salle de répartition et inclura des champs supplémentaires tels que parentMeetingID, sequence et freeJoin. La réunion parente aura une liste breakoutRooms contenant les ID de ses salles de répartition.

Non. L'API BigBlueButton ne prend pas en charge la pagination pour getMeetings. Toutes les réunions sont renvoyées dans une seule réponse. Pour les serveurs avec un très grand nombre de réunions, envisagez de mettre en œuvre une mise en cache ou d'appeler le point de terminaison moins fréquemment afin de réduire la charge du serveur.