All notable changes to this project are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
See git history.
- BBB 3.0 / 4.0 API support
getSessionsendpoint: returns one session per joined user (GetSessionsResponse,Core\Session)learningDashboardendpoint: learning dashboard data of a running meeting (moderator session required)getJoinUrlendpoint: generates new/joinURLs for existing user sessionssendChatMessageendpoint: sends a public chat message into a running meetingfeedbackendpoint (experimental: reserved in the BBB server source, not routed on current BBB releases)insertDocument: documents viaDocumentUrl/DocumentFile- Create:
clientSettingsOverridePOST module (HTML5 client settings per meeting) andclientSettingsOverrideJsonUrlvariant - Create: shared-notes configuration (
sharedNotesEditor,sharedNotesInitialContentJsonUrl,sharedNotesInitialContentJsonPOST module,sharedNotesInitialContentMarkdown,sharedNotesInitialContentMarkdownUrl,sharedNotesInitialContentMarkdownPOST module) - Create:
loginURL,pluginManifests,pluginManifestsFetchUrl,presentationConversionCacheEnabled,maxNumPages,multiUserWhiteboardEnabled,recordFullDurationMedia,notifyRecordingIsOn,presentationUploadExternalUrl/Description - Create:
maxPinnedCameras,darklogo,logoutTimer,cameraBridge,screenShareBridge,audioBridge,lockSettingsHideViewersAnnotation, breakout-room capture parameters (breakoutRoomsCaptureSlides/Notesincl. filenames) - Create (BBB 4.0):
lockSettingsPresenterPolicy(newPresenterPolicyenum),notifyRecordingAppend,requireUserConsentBeforeUnmuting - Create: generic
plugin_*metadata (addPluginMeta()/setPluginMeta()) - Join:
bot,enforceLayout,logoutURL,firstName,lastName,webcamBackgroundURL,errorRedirectUrl - Join (BBB 3.0+): re-join parameters
existingUserID,replaceSessionToken,sessionName - Join:
authparameter for the guest-policy evaluation (guestPolicy=ALWAYS_ACCEPT_AUTH) MeetingLayoutenum:UNIFIED_LAYOUT,PLUGINS_ONLY,PARTICIPANTS_AND_CHAT_ONLYFeatureenum (disabledFeatures):privateChat,plugins,multiFunctionalMode,pinChatMessageand all 3.0 optionsApiVersionResponse:graphqlWebsocketUrl,graphqlApiUrl,html5PluginSdkVersion
- PSR-18 http client injection:
BigBlueButton::createWithHttpClient()accepts any PSR-18 client with PSR-17 factories; curl remains the dependency-free default. Multipart uploads (caption tracks),BadResponseExceptionerror handling and JSESSIONID capture work identically through both transports. - Complete mdBook documentation: HTTP client injection, cookies/JSESSIONID, hooks, recordings incl. text tracks, server configuration, FAQ, contribution and testing guides.
getJoinUrlnow parses the real JSON response of the BBB server (the previous XML-based implementation could never work against a real server); former getters are kept as deprecated BC-stubsputRecordingTextTrackuploads the caption track as POST multipart with afilefield (was a GET request without file);PutRecordingTextTrackParameters::setTrackFile()provides the trackPutRecordingTextTrackResponse::isUploadTrackSuccess()and friends evaluate the message key of successful responses, tooBigBlueButton::__construct($baseUrl, $secret)no longer mixes up the two arguments when passed explicitlyBaseJsonResponsereads missingmessage/messageKeyproperties null-safe- The curl transport now reads the cookie jar after the request and extracts the JSESSIONID from the Netscape jar format (the old code read the jar before the request and could never capture a cookie)
DocumentFilethrows its dedicated exception on unreadable files instead of emitting a PHP warning firstgetJSessionId()no longer fails on uninitialized access before a session id was captured- Empty list parameters (
disabledFeatures,disabledFeaturesExclude) are no longer serialized as empty strings on every request; the hookseventIDparameter is deliberately still sent empty — the webhooks application echoes it with an empty element
- Create:
breakoutRoomsEnabled,learningDashboardEnabled,virtualBackgroundsDisabled(replaced bydisabledFeatures),copyright,webVoice(no effect since BBB 4.0) - Join:
defaultLayout(useuserdata-bbb_default_layout),webVoiceConf(no effect since BBB 4.0) Feature::LAYOUTS(no longer a validdisabledFeaturesoption since BBB 4.0)
psr/http-clientandpsr/http-factoryare optional (suggest): the library itself ships without package dependencies and uses curl by default- The curl transport releases its cookie temp file also when a request fails; the hooks hashing algorithm is restored when a URL build throws; the parameter-mapping reflection is cached per class
JoinMeetingParameters::enforceLayoutacceptsMeetingLayout|stringand is exposed asMeetingLayoutenumgetJoinMeetingURL()is officially supported again and documented as the standard join flow;joinMeeting()carries a warning that server-side joins skip the session cookie- Test suite: 100 percent class, method and line coverage; every API method is additionally tested offline against a stub PSR-18 client
- Quality gates: PHPStan clean, PHPUnit exits 0, pre-commit hooks pass without bypass; code coverage is opt-in via
composer code-coverage
See git history.
See git history.
See git history.
See git history.