Hoofdstuk 10 GET POST

getMeetingInfo – Vergaderdetails ophalen

Het endpoint getMeetingInfo retourneert gedetailleerde informatie over één enkele BigBlueButton-vergadering, inclusief de huidige deelnemers, metadata, configuratie-instellingen en opnamestatus. Gebruik het om een specifieke vergadering in realtime te inspecteren.

Endpoint

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

Dit endpoint vereist een geldige checksum die is berekend op basis van het gedeelde geheim van je BigBlueButton-server. Zowel GET- als POST-verzoeken worden ondersteund.

Parameters

Parameter Type Vereist Beschrijving
meetingID String Ja De vergaderingsidentifier van de op te vragen vergadering. Dit is de ID die je hebt opgegeven toen de vergadering werd aangemaakt.

Responsvelden

Een succesvol antwoord bevat de volgende velden die de vergadering en de huidige status ervan beschrijven:

Veld Type Beschrijving
returncode String Geeft aan of de aanroep is geslaagd. Retourneert SUCCESS of FAILED.
meetingName String De voor mensen leesbare naam van de vergadering.
meetingID String De externe vergaderingsidentifier zoals opgegeven tijdens het aanmaken.
internalMeetingID String De interne unieke identificatie die door BigBlueButton wordt gegenereerd.
createTime Long Tijdstempel (in milliseconden sinds epoch) waarop de vergadering is aangemaakt.
createDate String Voor mensen leesbare datum en tijd waarop de vergadering is aangemaakt.
voiceBridge String Het voice bridge-nummer voor telefonische inbeltoegang.
dialNumber String Het telefoonnummer voor inbeltoegang, indien geconfigureerd.
attendeePW String deprecated Het deelnemerswachtwoord. Inbegrepen voor achterwaartse compatibiliteit, maar verouderd sinds BigBlueButton 2.5.
moderatorPW String deprecated Het moderatorwachtwoord. Inbegrepen voor achterwaartse compatibiliteit, maar verouderd sinds BigBlueButton 2.5.
running Boolean Of de vergadering momenteel actief is (true) of niet (false).
duration Integer De maximale duur van de vergadering in minuten. Een waarde van 0 betekent onbeperkt.
hasUserJoined Boolean Of ten minste één gebruiker aan de vergadering heeft deelgenomen.
recording Boolean Of de vergadering wordt opgenomen.
hasBeenForciblyEnded Boolean Of de vergadering is beëindigd door een API-aanroep end.
startTime Long Tijdstempel (in milliseconden) waarop de vergadering is gestart.
endTime Long Tijdstempel (in milliseconden) waarop de vergadering is beëindigd. Retourneert 0 als deze nog actief is.
participantCount Integer Het totale aantal deelnemers dat zich momenteel in de vergadering bevindt.
listenerCount Integer Het aantal deelnemers in alleen-luisterenmodus.
voiceParticipantCount Integer Het aantal deelnemers dat zich bij het audiokanaal heeft aangesloten.
videoCount Integer Het aantal deelnemers dat hun webcam deelt.
maxUsers Integer Het maximaal toegestane aantal gebruikers. Een waarde van 0 betekent onbeperkt.
moderatorCount Integer Het aantal moderators dat zich momenteel in de vergadering bevindt.
attendees XML Container Bevat een lijst met attendee-elementen met details over elke verbonden deelnemer (zie hieronder Attendee Fields).
metadata XML Container Bevat de aangepaste metadata-sleutel-waardeparen die tijdens het aanmaken van de vergadering zijn doorgegeven.
isBreakout Boolean Of de vergadering een breakout room is.
parentMeetingID String De ID van de hoofdvergadering. Alleen aanwezig bij breakout rooms.
sequence Integer Het volgnummer van de breakout room. Alleen aanwezig bij breakout rooms.
freeJoin Boolean Of deelnemers vrij kunnen kiezen bij welke breakout room ze zich aansluiten. Alleen aanwezig bij breakout rooms.
breakoutRooms XML Container Geeft een overzicht van de breakoutroom-ID's die aan deze vergadering zijn gekoppeld. Alleen aanwezig wanneer breakoutrooms zijn aangemaakt.

Deelnemersvelden

Elk attendee-element binnen attendees bevat de volgende velden:

Veld Type Beschrijving
userID String De interne gebruikers-ID van BigBlueButton, doorgaans in het formaat w_xxxxxxxx.
fullName String De weergavenaam van de deelnemer.
role Enum De rol van de deelnemer: MODERATOR of VIEWER.
isPresenter Boolean Of de deelnemer momenteel de presentator is.
isListeningOnly Boolean Of de deelnemer zich in alleen-luisteren-modus bevindt.
hasJoinedVoice Boolean Of de deelnemer het audiokanaal met een microfoon heeft betreden.
hasVideo Boolean Of de deelnemer zijn of haar webcam deelt.
clientType String Het type client dat de deelnemer gebruikt. Doorgaans HTML5.
customdata XML Container Bevat aangepaste sleutel-waardegegevens als onderliggende elementen XML. Alleen aanwezig wanneer aangepaste gegevens voor de deelnemer zijn ingesteld tijdens join.

Voorbeeldverzoek

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

Voorbeeldantwoord (succes)

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

Foutantwoord

Als de opgegeven meeting-ID niet bestaat of al is beëindigd, retourneert de API een FAILED-antwoord:

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

Een fout notFound betekent niet noodzakelijk dat de vergadering nooit is aangemaakt. Ze kan al zijn beëindigd en uit het servergeheugen zijn verwijderd. BigBlueButton bewaart vergadergegevens alleen zolang de vergadering actief is.

getMeetingInfo vs. getMeetings

Aspect getMeetings getMeetingInfo
Bereik Alle actieve vergaderingen op de server Eén specifieke vergadering
Parameters Geen vereist meetingID vereist
Deelnemersdetails Alle gebruikers, inclusief degenen die hebben verlaten Alleen momenteel verbonden gebruikers
Gebruiksscenario Dashboard- en monitoringoverzicht Gerichte inspectie van een specifieke vergadering

Veelvoorkomende gebruikssituaties

  • Join-logica — controleer of er een moderator aanwezig is voordat gasten naar de vergadering worden doorgestuurd.
  • Deelnemerslijsten — toon huidige deelnemers in een externe applicatie of lobbypagina.
  • Opnamestatus — controleer of opname momenteel actief is voor de vergadering.
  • Debugging — voer een gedetailleerde analyse van een specifieke vergadering uit voor probleemoplossing.
Op bbbserver.de is het endpoint getMeetingInfo beschikbaar op alle pakketten. Je vindt je API-inloggegevens in het serverbeheerdashboard.

Tips

Poll getMeetingInfo periodiek om een live deelnemerslijst op te bouwen. Combineer de velden voiceParticipantCount en videoCount om te bepalen hoeveel gebruikers actief betrokken zijn met audio en video.

Gebruik de container metadata om applicatiespecifieke gegevens zoals het bronsysteem, callback-URL's of aangepaste labels door te geven en op te halen zonder de interne werking van BigBlueButton te verstoren.

De velden attendeePW en moderatorPW zijn verouderd sinds BigBlueButton 2.5. Ze worden nog steeds geretourneerd voor achterwaartse compatibiliteit, maar je moet er in nieuwe integraties niet op vertrouwen voor authenticatielogica.

Veelgestelde vragen

Je ontvangt een FAILED-antwoord met de messageKey "notFound". BigBlueButton verwijdert vergadergegevens uit het geheugen zodra een vergadering is beëindigd. Gebruik in plaats daarvan het endpoint getRecordings om informatie over eerdere vergaderingen op te halen.

Nee. De deelnemerslijst bevat alleen deelnemers die momenteel met de vergadering zijn verbonden. Gebruikers die zijn vertrokken, worden niet langer opgenomen. Daarentegen kan getMeetings in bepaalde BigBlueButton-versies gebruikers bevatten die de vergadering hebben verlaten.

Er is geen harde rate limit die door BigBlueButton zelf wordt afgedwongen, maar frequent pollen (bijvoorbeeld elke seconde) kan onnodige belasting op de server veroorzaken. Een pollinginterval van 5 tot 10 seconden is doorgaans voldoende voor de meeste toepassingen.

Ja. Roep getMeetingInfo aan met de meetingID. Als de returncode in het antwoord SUCCESS is, bestaat de vergadering en is deze actief. Als deze FAILED is met messageKey "notFound", bestaat de vergadering niet of is deze al beëindigd.

Velden zoals parentMeetingID, sequence, freeJoin en breakoutRooms verschijnen alleen in het antwoord wanneer de vergadering een breakout room is of breakout rooms heeft. Voor gewone vergaderingen is isBreakout gelijk aan false en worden de andere breakout-velden weggelaten.

De container customdata bevat gebruikersspecifieke sleutel-waardeparen die als parameters zijn doorgegeven toen de gebruiker via de API-aanroep join aan de vergadering deelnam. Elke sleutel wordt een onderliggend element XML. Als er geen aangepaste gegevens zijn opgegeven, kan dit element ontbreken.