Hoofdstuk 9 GET POST

getMeetings – Alle vergaderingen weergeven

Het endpoint getMeetings retourneert een lijst van alle vergaderingen die momenteel op de BigBlueButton-server bestaan, inclusief deelnemersdetails en metadata. Het is het belangrijkste hulpmiddel voor het bouwen van beheerdashboards, het monitoren van serverbelasting en capaciteitsplanning over je infrastructuur heen.

Endpoint

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

Dit endpoint vereist geen extra parameters naast de checksum. Het retourneert alle vergaderingen op de server in één enkel antwoord.

Parameters

Parameter Type Vereist Standaard Beschrijving
checksum String Ja Veiligheids-checksum berekend uit de naam van de API-aanroep en het gedeelde geheim.

Voorbeeldverzoek

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

Voorbeeldrespons

Vergaderingen gevonden

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

Geen vergaderingen gevonden

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

Antwoordvelden per vergadering

Veld Type Beschrijving
meetingName String Weergavenaam van de vergadering.
meetingID String Externe vergaderings-ID zoals opgegeven tijdens het aanmaken.
internalMeetingID String Interne, door de server gegenereerde unieke ID.
createTime Number Tijdstempel van aanmaak in milliseconden sinds de Unix-epoch.
createDate String Leesbare tekenreeks van de aanmaakdatum.
voiceBridge String Voice bridge-nummer voor audioconferenties.
dialNumber String Inbelnummer voor de vergadering.
attendeePW String Deelnemerswachtwoord. Alleen aanwezig indien ingesteld. Verouderd in BBB 3.0.
moderatorPW String Moderatorwachtwoord. Alleen aanwezig indien ingesteld. Verouderd in BBB 3.0.
running Boolean Of de vergadering momenteel actief is.
duration Number Maximale duur in minuten. 0 betekent onbeperkt.
hasUserJoined Boolean Of ten minste één gebruiker aan de vergadering heeft deelgenomen.
recording Boolean Of opname is ingeschakeld voor deze vergadering.
hasBeenForciblyEnded Boolean Of de vergadering via de API geforceerd is beëindigd.
startTime Number Starttijdstempel in milliseconden sinds de Unix-epoch.
endTime Number Eindtijdstempel. 0 als de vergadering nog loopt.
participantCount Number Huidig aantal deelnemers in de vergadering.
listenerCount Number Aantal deelnemers in alleen-luisterenmodus.
voiceParticipantCount Number Aantal deelnemers met actieve audio.
videoCount Number Aantal actieve webcams.
maxUsers Number Maximaal toegestaan aantal deelnemers. 0 betekent onbeperkt.
moderatorCount Number Aantal moderators dat momenteel in de vergadering is.
attendees List Lijst van alle deelnemers met details zoals userID, fullName, role en mediastatus.
metadata Object Alle aangepaste metadataparameters die zijn doorgegeven tijdens de aanroep van create.
isBreakout Boolean Of dit een breakout room is.
parentMeetingID String Vergaderings-ID van de hoofdvergadering. Alleen aanwezig voor breakout rooms.
sequence Number Volgnummer van de breakout room. Alleen aanwezig voor breakout rooms.
freeJoin Boolean Of deelnemers deze breakout room vrij kunnen kiezen. Alleen aanwezig voor breakout rooms.
breakoutRooms List Lijst van breakout room-ID's. Alleen aanwezig wanneer de vergadering actieve breakout rooms heeft.

Deelnemergegevens

Elke invoer in de lijst attendees bevat de volgende velden:

Veld Type Beschrijving
userID String Unieke interne gebruikers-ID.
fullName String Weergavenaam van de deelnemer.
role String Rol van de deelnemer: MODERATOR of VIEWER.
isPresenter Boolean Of de deelnemer momenteel de presentator is.
isListeningOnly Boolean Of de deelnemer in alleen-luisterenmodus heeft deelgenomen.
hasJoinedVoice Boolean Of de deelnemer heeft deelgenomen aan de spraakconferentie.
hasVideo Boolean Of de deelnemer een actieve webcam heeft.
clientType String Clienttype dat door de deelnemer wordt gebruikt (bijv. HTML5).

De deelnemerslijst die door getMeetings wordt teruggegeven, bevat alle gebruikers die ooit aan de vergadering hebben deelgenomen, inclusief degenen die al zijn vertrokken. Dit verschilt van getMeetingInfo, dat alleen momenteel verbonden gebruikers teruggeeft. Houd hier rekening mee bij het berekenen van het aantal actieve deelnemers.

Veelvoorkomende gebruikssituaties

  • Beheerdersdashboard — toon een overzicht van alle lopende vergaderingen en hun deelnemersaantallen.
  • Capaciteitsplanning — bereken het totale aantal actieve deelnemers over alle vergaderingen op de server.
  • Monitoring — identificeer vergaderingen zonder moderator of vergaderingen met problemen.
  • Automatische opschoning — vind vergaderingen die al lange tijd bestaan zonder deelnemers.

Tips en best practices

Aangezien getMeetings alle vergaderingen op de server retourneert (niet alleen actieve), filter je de resultaten op het veld running als je alleen actieve vergaderingen nodig hebt.

De respons bevat gevoelige informatie zoals deelnemernamen, gebruikers-ID's en wachtwoorden. Roep dit endpoint altijd alleen aan vanuit server-side code. Stel het nooit bloot aan client-side applicaties of eindgebruikers.

Er is geen ondersteuning voor paginering voor dit endpoint. Op servers met veel gelijktijdige vergaderingen kan de respons erg groot worden en de prestaties beïnvloeden. Overweeg de resultaten te cachen als je vaak pollt.

Veelgestelde vragen

Nee. Het retourneert alle vergaderingen die momenteel op de server bestaan, inclusief vergaderingen die zijn aangemaakt maar nog geen deelnemers hebben. Filter op het veld running als je alleen actieve vergaderingen nodig hebt.

getMeetings retourneert een samenvatting van alle vergaderingen op de server, terwijl getMeetingInfo gedetailleerde informatie over één specifieke vergadering retourneert. Daarnaast bevat de deelnemerslijst in getMeetings alle gebruikers die ooit hebben deelgenomen (inclusief degenen die zijn vertrokken), terwijl getMeetingInfo alleen momenteel verbonden gebruikers weergeeft.

Nee. Deze velden worden alleen in het antwoord opgenomen als ze bij het aanmaken van de vergadering zijn ingesteld en niet leeg zijn. Sinds BigBlueButton 3.0 zijn deze velden verouderd en vaak niet aanwezig.

Controleer het veld isBreakout. Als dit true is, is de vergadering een breakout room en bevat deze extra velden zoals parentMeetingID, sequence en freeJoin. De hoofdvergadering heeft een lijst breakoutRooms met de ID's van de breakout rooms.

Nee. De BigBlueButton-API ondersteunt geen paginering voor getMeetings. Alle vergaderingen worden in één enkel antwoord geretourneerd. Voor servers met een zeer groot aantal vergaderingen kun je overwegen caching te implementeren of het endpoint minder vaak aan te roepen om de serverbelasting te verminderen.