Kapitel 9 GET POST

getMeetings – Alle Meetings auflisten

Der Endpunkt getMeetings gibt eine Liste aller Meetings zurück, die derzeit auf dem BigBlueButton-Server existieren, einschließlich Teilnehmerdetails und Metadaten. Er ist das wichtigste Werkzeug zum Aufbau von Admin-Dashboards, zur Überwachung der Serverlast und zur Kapazitätsplanung über Ihre Infrastruktur hinweg.

Endpunkt

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

Dieser Endpunkt erfordert keine zusätzlichen Parameter außer der Prüfsumme. Er gibt alle Meetings auf dem Server in einer einzigen Antwort zurück.

Parameter

Parameter Typ Erforderlich Standard Beschreibung
checksum String Ja Sicherheits-Prüfsumme, berechnet aus dem Namen des API-Aufrufs und dem Shared Secret.

Beispielanfrage

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

Beispielantwort

Meetings gefunden

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

Keine Meetings gefunden

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

Antwortfelder pro Meeting

Feld Typ Beschreibung
meetingName String Anzeigename des Meetings.
meetingID String Externe Meeting-ID wie bei der Erstellung angegeben.
internalMeetingID String Intern vom Server erzeugte eindeutige ID.
createTime Number Erstellungszeitstempel in Millisekunden seit der Unix-Epoche.
createDate String Menschenlesbare Zeichenkette des Erstellungsdatums.
voiceBridge String Voice-Bridge-Nummer für die Audiokonferenz.
dialNumber String Einwahlnummer für das Meeting.
attendeePW String Teilnehmerpasswort. Nur vorhanden, wenn gesetzt. Veraltet in BBB 3.0.
moderatorPW String Moderatorpasswort. Nur vorhanden, wenn gesetzt. Veraltet in BBB 3.0.
running Boolean Ob das Meeting derzeit aktiv ist.
duration Number Maximale Dauer in Minuten. 0 bedeutet unbegrenzt.
hasUserJoined Boolean Ob mindestens ein Benutzer dem Meeting beigetreten ist.
recording Boolean Ob die Aufzeichnung für dieses Meeting aktiviert ist.
hasBeenForciblyEnded Boolean Ob das Meeting über die API zwangsweise beendet wurde.
startTime Number Startzeitstempel in Millisekunden seit der Unix-Epoche.
endTime Number Endzeitstempel. 0, wenn das Meeting noch läuft.
participantCount Number Aktuelle Anzahl der Teilnehmer im Meeting.
listenerCount Number Anzahl der Teilnehmer im Nur-Zuhören-Modus.
voiceParticipantCount Number Anzahl der Teilnehmer mit aktivem Audio.
videoCount Number Anzahl der aktiven Webcams.
maxUsers Number Maximal zulässige Anzahl an Teilnehmern. 0 bedeutet unbegrenzt.
moderatorCount Number Anzahl der Moderatoren, die sich derzeit im Meeting befinden.
attendees List Liste aller Teilnehmer mit Details wie userID, fullName, role und Medienstatus.
metadata Object Alle benutzerdefinierten Metadaten-Parameter, die beim Aufruf von create übergeben wurden.
isBreakout Boolean Ob es sich um einen Breakout-Raum handelt.
parentMeetingID String Meeting-ID des übergeordneten Meetings. Nur bei Breakout-Räumen vorhanden.
sequence Number Sequenznummer des Breakout-Raums. Nur bei Breakout-Räumen vorhanden.
freeJoin Boolean Ob Teilnehmer diesen Breakout-Raum frei wählen können. Nur bei Breakout-Räumen vorhanden.
breakoutRooms List Liste der Breakout-Raum-IDs. Nur vorhanden, wenn das Meeting aktive Breakout-Räume hat.

Teilnehmerdetails

Jeder Eintrag in der Liste attendees enthält die folgenden Felder:

Feld Typ Beschreibung
userID String Eindeutige interne Benutzerkennung.
fullName String Anzeigename des Teilnehmers.
role String Rolle des Teilnehmers: MODERATOR oder VIEWER.
isPresenter Boolean Ob der Teilnehmer derzeit der Präsentierende ist.
isListeningOnly Boolean Ob der Teilnehmer im Nur-Zuhören-Modus beigetreten ist.
hasJoinedVoice Boolean Ob der Teilnehmer der Sprachkonferenz beigetreten ist.
hasVideo Boolean Ob der Teilnehmer eine aktive Webcam hat.
clientType String Vom Teilnehmer verwendeter Client-Typ (z. B. HTML5).

Die von getMeetings zurückgegebene Teilnehmerliste enthält alle Benutzer, die dem Meeting jemals beigetreten sind, einschließlich derjenigen, die es bereits verlassen haben. Dies unterscheidet sich von getMeetingInfo, das nur aktuell verbundene Benutzer zurückgibt. Berücksichtigen Sie dies bei der Berechnung aktiver Teilnehmerzahlen.

Häufige Anwendungsfälle

  • Admin-Dashboard — Übersicht über alle laufenden Meetings und deren Teilnehmerzahlen anzeigen.
  • Kapazitätsplanung — die Gesamtzahl aktiver Teilnehmer über alle Meetings auf dem Server berechnen.
  • Monitoring — Meetings ohne Moderator oder Meetings mit Problemen identifizieren.
  • Automatische Bereinigung — Meetings finden, die lange existiert haben, ohne Teilnehmer zu haben.

Tipps und Best Practices

Da getMeetings alle Meetings auf dem Server zurückgibt (nicht nur laufende), filtern Sie die Ergebnisse nach dem Feld running, wenn Sie nur aktive Meetings benötigen.

Die Antwort enthält sensible Informationen wie Teilnehmernamen, Benutzer-IDs und Passwörter. Rufen Sie diesen Endpunkt immer nur aus serverseitigem Code auf. Stellen Sie ihn niemals clientseitigen Anwendungen oder Endbenutzern zur Verfügung.

Für diesen Endpunkt gibt es keine Unterstützung für Paginierung. Auf Servern mit vielen gleichzeitigen Meetings kann die Antwort sehr groß werden und die Leistung beeinträchtigen. Erwägen Sie, die Ergebnisse zwischenzuspeichern, wenn Sie häufig pollen.

Häufig gestellte Fragen

Nein. Es gibt alle Meetings zurück, die derzeit auf dem Server existieren, einschließlich Meetings, die erstellt wurden, aber noch keine Teilnehmer haben. Filtern Sie nach dem Feld running, wenn Sie nur aktive Meetings benötigen.

getMeetings gibt eine Zusammenfassung aller Meetings auf dem Server zurück, während getMeetingInfo detaillierte Informationen zu einem einzelnen bestimmten Meeting zurückgibt. Außerdem enthält die Teilnehmerliste in getMeetings alle Benutzer, die jemals beigetreten sind (einschließlich derjenigen, die das Meeting verlassen haben), während getMeetingInfo nur aktuell verbundene Benutzer auflistet.

Nein. Diese Felder werden nur dann in die Antwort aufgenommen, wenn sie bei der Erstellung des Meetings gesetzt wurden und nicht leer sind. Seit BigBlueButton 3.0 sind diese Felder veraltet und oft nicht vorhanden.

Prüfen Sie das Feld isBreakout. Wenn es true ist, handelt es sich bei dem Meeting um einen Gruppenraum, und es enthält zusätzliche Felder wie parentMeetingID, sequence und freeJoin. Das übergeordnete Meeting enthält eine Liste breakoutRooms mit den IDs seiner Gruppenräume.

Nein. Die BigBlueButton-API unterstützt keine Paginierung für getMeetings. Alle Meetings werden in einer einzigen Antwort zurückgegeben. Bei Servern mit sehr vielen Meetings sollten Sie Caching implementieren oder den Endpunkt seltener aufrufen, um die Serverlast zu reduzieren.