Chapitre 10 GET POST

getMeetingInfo – Obtenir les détails de la réunion

Le point de terminaison getMeetingInfo renvoie des informations détaillées sur une réunion BigBlueButton unique, y compris ses participants actuels, ses métadonnées, ses paramètres de configuration et l'état de l'enregistrement. Utilisez-le pour inspecter une réunion spécifique en temps réel.

Point de terminaison

GET/POST https://api-guide.bbbserver.com/bigbluebutton/api/getMeetingInfo?<parameter>&checksum=replace-with-checksum

Ce point de terminaison nécessite une checksum valide calculée à partir du secret partagé de votre serveur BigBlueButton. Les requêtes GET et POST sont prises en charge.

Paramètres

Paramètre Type Obligatoire Description
meetingID String Oui L'identifiant de la réunion à interroger. Il s'agit de l'ID que vous avez spécifié lors de la création de la réunion.

Champs de réponse

Une réponse réussie contient les champs suivants décrivant la réunion et son état actuel :

Champ Type Description
returncode String Indique si l'appel a réussi. Renvoie SUCCESS ou FAILED.
meetingName String Le nom lisible par l'humain de la réunion.
meetingID String L'identifiant externe de la réunion tel que spécifié lors de la création.
internalMeetingID String L'identifiant unique interne généré par BigBlueButton.
createTime Long Horodatage (en millisecondes depuis l'époque Unix) du moment où la réunion a été créée.
createDate String Date et heure lisibles par l'humain du moment où la réunion a été créée.
voiceBridge String Le numéro du pont vocal pour la connexion téléphonique.
dialNumber String Le numéro de téléphone pour l'accès par appel, si configuré.
attendeePW String deprecated Le mot de passe participant. Inclus pour la rétrocompatibilité mais obsolète depuis BigBlueButton 2.5.
moderatorPW String deprecated Le mot de passe modérateur. Inclus pour la rétrocompatibilité mais obsolète depuis BigBlueButton 2.5.
running Boolean Indique si la réunion est actuellement en cours (true) ou non (false).
duration Integer La durée maximale de la réunion en minutes. Une valeur de 0 signifie illimitée.
hasUserJoined Boolean Indique si au moins un utilisateur a rejoint la réunion.
recording Boolean Indique si la réunion est en cours d'enregistrement.
hasBeenForciblyEnded Boolean Indique si la réunion a été terminée par un appel API end.
startTime Long Horodatage (en millisecondes) du moment où la réunion a commencé.
endTime Long Horodatage (en millisecondes) du moment où la réunion s'est terminée. Renvoie 0 si elle est toujours en cours.
participantCount Integer Le nombre total de participants actuellement dans la réunion.
listenerCount Integer Le nombre de participants en mode écoute seule.
voiceParticipantCount Integer Le nombre de participants qui ont rejoint le canal audio.
videoCount Integer Le nombre de participants partageant leur webcam.
maxUsers Integer Le nombre maximal d'utilisateurs autorisés. Une valeur de 0 signifie illimité.
moderatorCount Integer Le nombre de modérateurs actuellement dans la réunion.
attendees XML Container Contient une liste d'éléments attendee avec des détails sur chaque participant connecté (voir les champs Attendee ci-dessous).
metadata XML Container Contient les paires clé-valeur de métadonnées personnalisées transmises lors de la création de la réunion.
isBreakout Boolean Indique si la réunion est une salle de répartition.
parentMeetingID String L'ID de la réunion parente. Présent uniquement pour les salles de répartition.
sequence Integer Le 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 la salle de répartition à rejoindre. Présent uniquement pour les salles de répartition.
breakoutRooms XML Container Liste les identifiants des salles de sous-groupes associées à cette réunion. Présent uniquement lorsque des salles de sous-groupes ont été créées.

Champs des participants

Chaque élément attendee dans attendees contient les champs suivants :

Champ Type Description
userID String L'ID utilisateur interne BigBlueButton, généralement au format w_xxxxxxxx.
fullName String Le nom d’affichage du participant.
role Enum Le rôle du participant : MODERATOR ou VIEWER.
isPresenter Boolean Indique si le participant est actuellement le présentateur.
isListeningOnly Boolean Indique si le participant est en mode écoute seule.
hasJoinedVoice Boolean Indique si le participant a rejoint le canal audio avec un microphone.
hasVideo Boolean Indique si le participant partage sa webcam.
clientType String Le type de client utilisé par le participant. Généralement HTML5.
customdata XML Container Contient des données clé-valeur personnalisées sous forme d'éléments enfants XML. Présent uniquement lorsque des données personnalisées ont été définies pour le participant pendant join.

Exemple de requête

GET https://api-guide.bbbserver.com/bigbluebutton/api/getMeetingInfo?meetingID=replace-with-meeting-id&checksum=replace-with-checksum

Exemple de réponse (succès)

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

Réponse d’erreur

Si l'ID de réunion spécifié n'existe pas ou s'est déjà terminée, l'API renvoie une réponse FAILED :

<response>
  <returncode>FAILED</returncode>
  <messageKey>notFound</messageKey>
  <message>We could not find a meeting with that meeting ID</message>
</response>

Une erreur notFound ne signifie pas nécessairement que la réunion n'a jamais été créée. Elle peut déjà s'être terminée et avoir été supprimée de la mémoire du serveur. BigBlueButton ne conserve les données de réunion que tant que la réunion est active.

getMeetingInfo vs getMeetings

Aspect getMeetings getMeetingInfo
Portée Toutes les réunions actives sur le serveur Une seule réunion spécifique
Paramètres Aucun requis meetingID requis
Détails des participants Tous les utilisateurs, y compris ceux qui ont quitté Uniquement les utilisateurs actuellement connectés
Cas d’utilisation Vue d’ensemble du tableau de bord et de la supervision Inspection ciblée d’une réunion spécifique

Cas d'utilisation courants

  • Logique de connexion — vérifier si un modérateur est présent avant de rediriger les invités vers la réunion.
  • Listes de participants — afficher les participants actuellement présents dans une application externe ou une page d’accueil.
  • Statut de l’enregistrement — vérifier si l’enregistrement est actuellement actif pour la réunion.
  • Débogage — effectuer une analyse détaillée d’une réunion spécifique à des fins de dépannage.
Sur bbbserver.de, le point de terminaison getMeetingInfo est disponible dans tous les forfaits. Vous pouvez trouver vos identifiants API dans le tableau de bord de gestion du serveur.

Conseils

Interrogez périodiquement getMeetingInfo pour construire une liste en direct des participants. Combinez les champs voiceParticipantCount et videoCount pour déterminer combien d'utilisateurs sont activement engagés avec l'audio et la vidéo.

Utilisez le conteneur metadata pour transmettre et récupérer des données spécifiques à l'application telles que le système d'origine, les URL de rappel ou des libellés personnalisés sans interférer avec les mécanismes internes de BigBlueButton.

Les champs attendeePW et moderatorPW sont obsolètes depuis BigBlueButton 2.5. Ils sont toujours renvoyés pour la rétrocompatibilité, mais vous ne devriez pas vous y fier pour la logique d'authentification dans les nouvelles intégrations.

Foire aux questions

Vous recevrez une réponse FAILED avec la messageKey "notFound". BigBlueButton supprime les données de réunion de la mémoire une fois la réunion terminée. Pour accéder aux informations sur les réunions passées, utilisez plutôt le point de terminaison getRecordings.

Non. La liste des participants ne contient que les participants actuellement connectés à la réunion. Les utilisateurs qui sont partis n'y figurent plus. En revanche, getMeetings peut inclure des utilisateurs qui sont partis dans certaines versions de BigBlueButton.

Il n'existe pas de limite stricte imposée par BigBlueButton lui-même, mais une interrogation fréquente (par ex. chaque seconde) peut imposer une charge inutile au serveur. Un intervalle d'interrogation de 5 à 10 secondes est généralement suffisant pour la plupart des cas d'usage.

Oui. Appelez getMeetingInfo avec le meetingID. Si le returncode de la réponse est SUCCESS, la réunion existe et est active. S'il est FAILED avec la messageKey "notFound", la réunion n'existe pas ou s'est déjà terminée.

Les champs tels que parentMeetingID, sequence, freeJoin et breakoutRooms n'apparaissent dans la réponse que lorsque la réunion est une salle de répartition ou possède des salles de répartition. Pour les réunions normales, isBreakout vaut false et les autres champs de répartition sont omis.

Le conteneur customdata contient des paires clé-valeur spécifiques à l'utilisateur qui ont été transmises comme paramètres lorsque l'utilisateur a rejoint la réunion via l'appel API join. Chaque clé devient un élément enfant XML. Si aucune donnée personnalisée n'a été fournie, cet élément peut être absent.