Tips, bedste praksis & skjulte funktioner
Dette kapitel samler mindre kendte API-funktioner, sikkerhedsanbefalinger og gennemprøvede best practices til integration med BigBlueButton API'et. Mange af disse detaljer er kun delvist dokumenteret i de officielle kilder og er blevet verificeret gennem kildekodeanalyse og community-research.
Skjult værdi for gæstepolitik
Ud over de tre velkendte værdier for parameteren guestPolicy findes der en fjerde værdi, som sjældent dokumenteres, men er meget nyttig i scenarier med blandede målgrupper.
| Værdi | Adfærd |
|---|---|
ALWAYS_ACCEPT | Alle brugere deltager straks uden godkendelse. |
ALWAYS_DENY | Kun moderatorer kan deltage i mødet. |
ASK_MODERATOR | Gæster venter i lobbyen, indtil en moderator godkender dem. |
ALWAYS_ACCEPT_AUTH | Autentificerede brugere deltager direkte. Kun ikke-autentificerede gæster kræver godkendelse fra en moderator. |
Politikken ALWAYS_ACCEPT_AUTH er ideel, når registrerede brugere fra et LMS skal kunne deltage uden at vente, mens eksterne gæster stadig skal godkendes af en moderator.
Server-side-callback med meetingEndedURL
Parameteren meetingEndedURL giver et server-side callback, som adskiller sig fra den ofte brugte meta_endCallbackUrl på vigtige måder:
- Den eksponeres ikke for klienten og gemmes ikke i optagelser.
- Den bruges internt af systemer som
Scalelite. - Den er velegnet til server-side integrationer, hvor callback-URL'en skal forblive skjult.
create?meetingID=replace-with-meeting-id&meetingEndedURL=https://api-guide.bbbserver.com/callbacks/internal&checksum=replace-with-checksum Parametre til indfangning fra grupperum
Ud over standardparametrene for breakout-rum understøtter BigBlueButton yderligere muligheder til at indfange indhold fra breakout-rum tilbage til hovedmødet.
| Parameter | Type | Beskrivelse |
|---|---|---|
breakoutRoomsCaptureSlides | Boolean | Importér slides fra grupperum til hovedmødet. |
breakoutRoomsCaptureNotes | Boolean | Importér delte noter fra grupperum til hovedmødet. |
breakoutRoomsCaptureNotesFilename | String | Brugerdefineret filnavn til den indfangede notefil. |
Parametre for annotation og branding
Parameteren lockSettingsHideViewersAnnotation skjuler whiteboard-annoteringer lavet af andre seere, så hver deltager kun ser sine egne annoteringer og præsentatørens.
create?meetingID=replace-with-meeting-id&lockSettingsHideViewersAnnotation=true&checksum=replace-with-checksum Parameteren copyright angiver en brugerdefineret copyright-tekst i BBB-klienten, hvilket kan være nyttigt til white-label-deployments:
create?meetingID=replace-with-meeting-id©right=Example+Organization&checksum=replace-with-checksum Parameteren logo virker kun, hvis displayBrandingArea=true er angivet i serverkonfigurationsfilen /etc/bigbluebutton/bbb-web.properties.
Bedste praksis for sikkerhed
Inkludér altid createTime i join-URL'er
Inkludér altid værdien createTime fra svaret på create i din join-URL. Dette forhindrer, at gamle join-links genbruges, når et nyt møde oprettes med samme møde-ID.
join?meetingID=replace-with-meeting-id&fullName=Max&role=VIEWER&createTime=1715261728123&checksum=replace-with-checksum Checksum-beregning for POST-requests
En almindelig fejl: checksummen beregnes altid kun ud fra URL-query-strengen, selv for POST-requests. Request body (XML, JSON) medtages aldrig i checksum-beregningen.
Checksum = SHA256("create" + "meetingID=replace-with-meeting-id&name=Demo" + "replace-with-secret") POST-body'en (f.eks. præsentations-XML) sendes separat, men hashes ikke.
En tidligere sikkerhedssårbarhed (CVE GHSA-4m48-49h7-f3c4) gjorde det muligt for angribere med en gyldig join-URL at injicere yderligere parametre i signerede join-links. Valider og sanér altid alle parametre på serversiden, før du genererer signerede API-URL'er.
BBB 3.0 Brudændringer
BigBlueButton 3.0 introducerer flere brudændringer, som påvirker API-integrationer. Gennemgå følgende tabel nøje ved opgradering:
| Ændring | Detaljer |
|---|---|
password → role | Kaldet join bruger nu role=MODERATOR eller role=VIEWER i stedet for adgangskoder. |
| POST fjernet for /join | Kun GET-requests accepteres for join-kald. |
Content-Type påkrævet | Skal angives for alle POST-requests. |
| Accepterede Content-Types for /create | application/x-www-form-urlencoded, multipart/form-data, application/xml, text/xml |
| Fjernede parametre | breakoutRoomsEnabled, learningDashboardEnabled, virtualBackgroundsDisabled er blevet erstattet af parameteren disabledFeatures. |
Forældede endpoints
Følgende endpoints er forældede og bør ikke bruges i nye integrationer:
| Endepunkt | Status | Erstatning |
|---|---|---|
getDefaultConfigXML | Forældet siden BBB 2.4, fjernet i BBB 3.0. | clientSettingsOverride |
setConfigXML | Forældet siden BBB 2.4, fjernet i BBB 3.0. | clientSettingsOverride |
Fletteadfærd for plugin-manifest
Plugin-manifester fra tre kilder flettes sammen (overskrives ikke), når et møde oprettes:
- Serverkonfiguration
- Parameteren
pluginManifestsicreate-kaldet - Parameteren
pluginManifestsFetchUrl
Dubletter fjernes automatisk. Dette muliggør fleksibel plugin-konfiguration på tværs af flere niveauer.
Vigtige serverkonfigurationsindstillinger
Følgende indstillinger fra bigbluebutton.properties kan ikke styres via API'et, men påvirker direkte API-adfærden:
| Egenskab | Standard | Beskrivelse |
|---|---|---|
supportedChecksumAlgorithms | sha1,sha256,sha384,sha512 | Understøttede checksum-algoritmer til API-godkendelse. |
maxUserConcurrentAccesses | 3 | Maksimalt antal samtidige sessioner pr. bruger (efter eksternt ID). |
allowOverrideClientSettingsOnCreateCall | false | Aktiverer parameteren clientSettingsOverride i body'en til create. |
allowRevealOfBBBVersion | false | Viser BBB-versionen i API-rodsvaret. |
allowFetchAllRecordings | true | Tillader getRecordings uden et filter for møde-ID. |
maxFileSizeUpload | 30000000 | Maksimal filstørrelse for upload af præsentationer (30 MB). |
defaultHttpSessionTimeout | 14400 | Timeout for HTTP-session i sekunder (4 timer). |
sessionsCleanupDelayInMinutes | 60 | Sessioner forbliver aktive i så mange minutter, efter at et møde er afsluttet. |
fetchUrlSupportedProtocols | https | Tilladte protokoller til hentning af URL'er (f.eks. download af præsentationer). |
Konfiguration af mediebro
BigBlueButton 3.0 introducerer LiveKit som en alternativ mediebro. Følgende create-parametre styrer, hvilken bro der bruges:
| Parameter | Mulige værdier | Standard |
|---|---|---|
cameraBridge | bbb-webrtc-sfu, livekit | bbb-webrtc-sfu |
screenShareBridge | bbb-webrtc-sfu, livekit | bbb-webrtc-sfu |
audioBridge | bbb-webrtc-sfu, livekit, freeswitch | freeswitch |
Timeout for præsentationskonvertering
Fra og med BBB 3.0 begrænser serverparameteren maxPageConversionTime (standard: 60 sekunder) konverteringstiden pr. slide. Komplekse præsentationer med mange sider eller tung grafik kan ramme denne timeout, hvilket kan få slides til at mislykkes i konverteringen.
Hvis dine præsentationer ofte rammer timeout under konvertering, bør du overveje at opdele dem i mindre filer eller forenkle komplekse slides før upload.