### Install and Start Plugin from Source (Local) Source: https://docs.bigbluebutton.org/4.0/plugins Steps to install dependencies and start a plugin development server locally. Ensure you are in the plugin's directory. ```bash cd $HOME/src/bigbluebutton-html-plugin-sdk/samples/sample-action-button-dropdown-plugin npm install npm start ``` -------------------------------- ### Install and Start Plugin from Source (Remote Server) Source: https://docs.bigbluebutton.org/4.0/plugins Steps to install dependencies and start a plugin development server for use with a remote BigBlueButton server. This is typically used with NGROK. ```bash cd $HOME/src/plugin-pick-random-user-plugin npm install npm start ``` -------------------------------- ### Install coturn TURN Server Source: https://docs.bigbluebutton.org/administration/turn-server Install the coturn package on Ubuntu 20.04 or later using apt-get. Note that coturn will not start automatically until configuration is applied. ```bash $ sudo apt-get update $ sudo apt-get install coturn ``` -------------------------------- ### Greenlight Server Installation Options Source: https://docs.bigbluebutton.org/greenlight/v3/install Use these options when running the Greenlight installation script. The first example uses a publicly signed SSL certificate, while the second uses pre-owned certificates. ```bash wget -qO- https://raw.githubusercontent.com/bigbluebutton/greenlight/master/gl-install.sh | bash -s -- -s www.example.com -e info@example.com -b bbb.example.com:SECRET ``` ```bash wget -qO- https://raw.githubusercontent.com/bigbluebutton/greenlight/master/gl-install.sh | bash -s -- -s www.example.com -b bbb.example.com:SECRET -d ``` -------------------------------- ### Start HTML5 Client Development Server Source: https://docs.bigbluebutton.org/4.0/development/guide Starts the HTML5 client in development mode, making it accessible for testing and debugging. This command assumes npm dependencies have been installed. ```bash $ npm start ``` -------------------------------- ### Install coturn Package Source: https://docs.bigbluebutton.org/4.0/administration/turn-server Install the coturn package on Ubuntu 24.04 or later using apt-get. Note that coturn will not start automatically until configuration is applied. ```bash $ sudo apt-get update sudo apt-get install coturn ``` -------------------------------- ### Install SDKMAN and Development Tools Source: https://docs.bigbluebutton.org/4.0/development/guide Installs SDKMAN and then uses it to install Gradle, Grails, SBT, and Maven. ```bash curl -s "https://get.sdkman.io" | bash source "$HOME/.sdkman/bin/sdkman-init.sh" sdk install gradle 8.14.3 sdk install grails 7.0.0 sdk install sbt 1.6.2 sdk install maven 3.5.0 ``` -------------------------------- ### Install BigBlueButton Webhooks Source: https://docs.bigbluebutton.org/4.0/development/webhooks Run this command on your BigBlueButton server to install the webhook package. This is the initial setup step for enabling webhook functionality. ```bash $ sudo apt-get install bbb-webhooks ``` -------------------------------- ### Example Callback URL Source: https://docs.bigbluebutton.org/development/api This is an example URL that can be used for the recording ready callback. ```text https://example.com/api/v1/recording_status ``` -------------------------------- ### Install LTI Components and Add Credentials Source: https://docs.bigbluebutton.org/4.0/administration/lti Use the -t option with bbb-install.sh to install LTI framework tools and add LTI consumer credentials. This command installs the bbb-lti-broker and bbb-apps-room components. ```bash -t : Install BigBlueButton LTI framework tools and add/update LTI consumer credentials : ``` -------------------------------- ### Install Core Development Tools (JDK) Source: https://docs.bigbluebutton.org/development/guide Installs the Git core and OpenJDK 17 headless, which are fundamental for development. ```bash sudo apt-get install git-core openjdk-17-jdk-headless ``` -------------------------------- ### Install Core Development Tools Source: https://docs.bigbluebutton.org/4.0/development/guide Installs essential tools like git and OpenJDK 17 for development. ```bash sudo apt-get install git-core openjdk-17-jdk-headless ``` -------------------------------- ### Install and Configure UFW Firewall Source: https://docs.bigbluebutton.org/4.0/administration/customize Install the Uncomplicated Firewall (UFW) and configure it to allow essential BigBlueButton ports. This setup is automatically reapplied on server reboot. ```bash $ apt-get install -y ufw ufw allow OpenSSH ufw allow "Nginx Full" ufw allow 16384:32768/udp ufw --force enable ``` -------------------------------- ### Install bbb-webhooks Source: https://docs.bigbluebutton.org/4.0/administration/customize Installs the bbb-webhooks package to receive event callbacks from BigBlueButton. ```bash sudo apt-get install bbb-webhooks ``` -------------------------------- ### Install stunclient Source: https://docs.bigbluebutton.org/4.0/administration/turn-server Installs the stunclient utility required for testing STUN server functionality. This is a prerequisite for running the STUN client tests. ```bash sudo apt-get install -y stuntman-client ``` -------------------------------- ### Running the Greenlight Install Script Source: https://docs.bigbluebutton.org/4.0/greenlight/v3/install Command to download and execute the Greenlight v3 installation script. Replace [OPTIONS] with your desired configuration flags. ```bash wget -qO- https://raw.githubusercontent.com/bigbluebutton/greenlight/master/gl-install.sh | bash -s -- [OPTIONS] ``` -------------------------------- ### Example Callback URL Source: https://docs.bigbluebutton.org/dev/api.html This is an example of a callback URL that can be passed to the create API call. ```text https://myapp.example.com/analytics-callback?meetingID=test01 ``` -------------------------------- ### Install Dependencies for BBB Client and Sample Plugin Source: https://docs.bigbluebutton.org/4.0/plugins Installs npm dependencies for both the main BigBlueButton HTML5 client and a sample plugin. Navigate to each project directory before running install. ```bash cd ~/path/to/bigbluebutton-html5 npm install cd - cd samples/sample-floating-window-plugin npm install cd - ``` -------------------------------- ### Install netcat on Debian/Ubuntu Source: https://docs.bigbluebutton.org/4.0/administration/firewall-configuration Installs the netcat utility, which is used for testing network connections. ```bash $ sudo apt-get install netcat ``` -------------------------------- ### Complete manifest.json Example Source: https://docs.bigbluebutton.org/4.0/plugins A comprehensive example of a manifest.json file showcasing all possible configurations for a BigBlueButton plugin. ```json { "requiredSdkVersion": "~0.0.77", "name": "MyPlugin", "version": "0.0.8", "javascriptEntrypointUrl": "MyPlugin.js", "javascriptEntrypointIntegrity": "sha384-Bwsz2rxm...", "localesBaseUrl": "https://cdn.domain.com/my-plugin/", "loggerSettings": { "console": { "enableRuntimeErrorLogging": false, "enabled": true, "level": "debug" }, "external": { "enabled": false, "level": "info", "url": "https://LOG_HOST/html5Log", "method": "POST", "throttleInterval": 400, "flushOnClose": true, "logTag": "" } }, "dataChannels": [ { "name": "public-channel", "pushPermission": ["moderator","presenter"], "replaceOrDeletePermission": ["moderator", "creator"] } ], "eventPersistence": { "isEnabled": true }, "remoteDataSources": [ { "name": "allUsers", "url": "${meta_pluginSettingsUserInformation}", "fetchMode": "onMeetingCreate", "permissions": ["moderator", "viewer"] } ], "serverCommandsPermission": { "chat.sendCustomPublicChatMessage": ["presenter", "moderator"] }, "settingsSchema": [ { "name": "myJson", "label": "myJson", "required": true, "defaultValue": { "abc": 123 }, "type": "json" } ] } ``` -------------------------------- ### Example /etc/hosts Entry Source: https://docs.bigbluebutton.org/4.0/administration/firewall-configuration An example of how to add an entry to the /etc/hosts file, mapping a specific external IP to a hostname. ```bash 172.34.56.78 bigbluebutton.example.com ``` -------------------------------- ### Install npm dependencies Source: https://docs.bigbluebutton.org/4.0/plugins Run this command after updating your package.json to install the necessary SDK and other dependencies. ```bash npm install ``` -------------------------------- ### Example Response for Publish/Unpublish Recordings Source: https://docs.bigbluebutton.org/4.0/development/api This is an example of a successful response when publishing or unpublishing recordings. ```XML SUCCESS true ``` -------------------------------- ### Example Plugin Parameter Usage Source: https://docs.bigbluebutton.org/4.0/plugins This example demonstrates how to define a plugin parameter for fetching data. It isolates the parameter to the 'pickRandomUserPlugin'. ```plaintext plugin_pickRandomUserPlugin_url-to-fetch-data=https://... ``` -------------------------------- ### Start BigBlueButton Source: https://docs.bigbluebutton.org/4.0/administration/bbb-conf Initiates all BigBlueButton processes using the --start command. This is essential for making the service available. ```bash $ sudo bbb-conf --start ``` -------------------------------- ### Install BlockNote Shared Notes Server Source: https://docs.bigbluebutton.org/new-features Install the optional BlockNote shared notes server package using apt-get. ```bash $ sudo apt-get install bbb-shared-notes-server ``` -------------------------------- ### Example Recording Event Data Source: https://docs.bigbluebutton.org/development/recording This is an example of a RecordStatusEvent found within the events.xml file, indicating the start of a recording. ```xml 1647630325790 2022-03-18T20:05:25.790+01 true w_j0ke0updyniq ``` -------------------------------- ### Sample Configuration: Pre-owned SSL Source: https://docs.bigbluebutton.org/4.0/greenlight/v3/install Example configuration for setting up a Greenlight 3.x server using pre-owned SSL certificates, specifying the FQDN, and BigBlueButton server details, while skipping SSL generation. ```bash -s www.example.com -b bbb.example.com:SECRET -d ``` -------------------------------- ### Install npm Dependencies for bbb-export-annotations Source: https://docs.bigbluebutton.org/4.0/development/guide Installs the Node.js package manager (npm) dependencies for the bbb-export-annotations service. This is required before starting the service. ```bash cd ~/dev/bigbluebutton/bbb-export-annotations npm install ``` -------------------------------- ### Coturn Configuration Example Source: https://docs.bigbluebutton.org/administration/turn-server A sample coturn configuration file. Replace placeholders like , , , and with your specific values. ```ini listening-port=3478 tls-listening-port=443 listening-ip= relay-ip= # If the server is behind NAT, you need to specify the external IP address. # If there is only one external address, specify it like this: #external-ip=172.17.19.120 # If you have multiple external addresses, you have to specify which # internal address each corresponds to, like this. The first address is the # external ip, and the second address is the corresponding internal IP. #external-ip=172.17.19.131/10.0.0.11 #external-ip=172.17.18.132/10.0.0.12 min-port=32769 max-port=65535 verbose fingerprint lt-cred-mech use-auth-secret static-auth-secret= realm= cert=/etc/turnserver/fullchain.pem pkey=/etc/turnserver/privkey.pem # From https://ssl-config.mozilla.org/ Intermediate, openssl 1.1.0g, 2020-01 cipher-list="ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384" dh-file=/etc/turnserver/dhp.pem keep-address-family no-cli no-tlsv1 no-tlsv1_1 # Block connections to IP ranges which shouldn't be reachable no-loopback-peers no-multicast-peers # CVE-2020-26262 # If running coturn version older than 4.5.2, uncomment these rules and ensure # that you have listening-ip set to ipv4 addresses only. #denied-peer-ip=0.0.0.0-0.255.255.255 #denied-peer-ip=127.0.0.0-127.255.255.255 #denied-peer-ip=::1 # Private (LAN) addresses # If you are running BigBlueButton within a LAN, you might need to add an "allow" rule for your address range. # IPv4 Private-Use denied-peer-ip=10.0.0.0-10.255.255.255 denied-peer-ip=172.16.0.0-172.31.255.255 denied-peer-ip=192.168.0.0-192.168.255.255 # Other IPv4 Special-Purpose addresses denied-peer-ip=100.64.0.0-100.127.255.255 denied-peer-ip=169.254.0.0-169.254.255.255 denied-peer-ip=192.0.0.0-192.0.0.255 denied-peer-ip=192.0.2.0-192.0.2.255 denied-peer-ip=198.18.0.0-198.19.255.255 denied-peer-ip=198.51.100.0-198.51.100.255 denied-peer-ip=203.0.113.0-203.0.113.255 # IPv6 Unique-Local denied-peer-ip=fc00::-fdff:ffff:ffff:ffff:ffff:ffff:ffff # IPv6 Link-Local Unicast denied-peer-ip=fe80::-febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff ``` -------------------------------- ### Build and Install SDK and Sample Plugin Source: https://docs.bigbluebutton.org/plugins Build the SDK and install its dependencies in both the sample plugin and the main BigBlueButton client. This step is crucial for testing SDK changes. ```bash # From the SDK root npm install npm run build # Ensure dependencies are installed in both target projects cd ~/path/to/bigbluebutton-html5 npm install cd - cd samples/sample-floating-window-plugin npm install cd - ``` -------------------------------- ### Adjusting Recording Start Time Source: https://docs.bigbluebutton.org/development/recording This example shows how to adjust the timestamp of a RecordStatusEvent to occur after a ParticipantJoinEvent, effectively changing the recording's start time. ```xml User 8828229 1647630320886 MODERATOR 2022-03-18T20:05:20.886+01 w_j0ke0updyniq w_j0ke0updyniq 1647630325790 2022-03-18T20:05:25.790+01 true w_j0ke0updyniq ``` -------------------------------- ### Sample Configuration: Public SSL Source: https://docs.bigbluebutton.org/4.0/greenlight/v3/install Example configuration for setting up a Greenlight 3.x server with a publicly signed SSL certificate, specifying the FQDN, Let's Encrypt email, and BigBlueButton server details. ```bash -s www.example.com -e info@example.com -b bbb.example.com:SECRET ``` -------------------------------- ### Create Temporary Directories Source: https://docs.bigbluebutton.org/4.0/development/recording Set up the necessary directory structure for development logs and recordings. ```bash mkdir -p ~/temp/log/presentation ~/temp/recording/{process,publish,raw} ~/temp/recording/status/{recorded,archived,processed,sanity} ~/temp/published ``` -------------------------------- ### Example BigBlueButton API Join URL Source: https://docs.bigbluebutton.org/4.0/development/api This is an example of a GET request URL to join a BigBlueButton meeting. Ensure all parameters are correctly set and a valid checksum is provided. ```http http://yourserver.com/bigbluebutton/api/join?meetingID=test01&role=viewer&fullName=Chris&createTime=273648&checksum=abcd ``` -------------------------------- ### Start bbb-export-annotations Service Source: https://docs.bigbluebutton.org/4.0/development/guide Starts the bbb-export-annotations service, which processes export jobs for whiteboard annotations stored in Redis. Ensure npm dependencies are installed and the service is not already running. ```bash npm start ``` -------------------------------- ### Get Recording Text Tracks Example Source: https://docs.bigbluebutton.org/4.0/development/api This example demonstrates how to retrieve available caption and subtitle tracks for a given recording ID. The response includes download links and metadata for each track. ```json { "response": { "returncode": "SUCCESS", "tracks": [ { "href": "https://captions.example.com/textTrack/0ab39e419c9bcb63233168daefe390f232c71343/183f0bf3a0982a127bdb8161e0c44eb696b3e75c-1554230749920/subtitles_en-US.vtt", "kind": "subtitles", "label": "English", "lang": "en-US", "source": "upload" }, { "href": "https://captions.example.com/textTrack/95b62d1b762700b9d5366a9e71d5fcc5086f2723/183f0bf3a0982a127bdb8161e0c44eb696b3e75c-1554230749920/subtitles_pt-BR.vtt", "kind": "subtitles", "label": "Brazil", "lang": "pt-BR", "source": "upload" } ] } } ``` -------------------------------- ### Get Join URL API Response Source: https://docs.bigbluebutton.org/4.0/development/api Example JSON response containing the generated join URL and other session details. ```JSON { "response": { "returncode": "SUCCESS", "message": "Join URL provided successfully.", "url": "https://yourserver.com/bigbluebutton/api/join?&redirect=true&existingUserID=w_t18rn7uc1wjm&role=MODERATOR&userdata-bbb_client_title=Presentation+client&sessionName=Presentation+session&fullName=teacher%2B1&meetingID=random-7653737&enforceLayout=PRESENTATION_ONLY&checksum=135f230a2339b9485d91a3e87b1a22420ca57e8b" } } ``` -------------------------------- ### coturn Configuration File Source: https://docs.bigbluebutton.org/4.0/administration/turn-server Sample configuration for `/etc/turnserver.conf`. Replace placeholders like , , , and with your specific values. This configuration assumes the TURN server has a public IP. ```ini listening-port=3478 tls-listening-port=443 listening-ip= relay-ip= # If the server is behind NAT, you need to specify the external IP address. # If there is only one external address, specify it like this: #external-ip=172.17.19.120 # If you have multiple external addresses, you have to specify which # internal address each corresponds to, like this. The first address is the # external ip, and the second address is the corresponding internal IP. #external-ip=172.17.19.131/10.0.0.11 #external-ip=172.17.18.132/10.0.0.12 min-port=32769 max-port=65535 verbose fingerprint lt-cred-mech use-auth-secret static-auth-secret= realm= cert=/etc/turnserver/fullchain.pem pkey=/etc/turnserver/privkey.pem # From https://ssl-config.mozilla.org/ Intermediate, openssl 1.1.0g, 2020-01 cipher-list="ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384" dh-file=/etc/turnserver/dhp.pem keep-address-family no-cli no-tlsv1 no-tlsv1_1 # Block connections to IP ranges which shouldn't be reachable no-loopback-peers no-multicast-peers # CVE-2020-26262 # If running coturn version older than 4.5.2, uncomment these rules and ensure # that you have listening-ip set to ipv4 addresses only. #denied-peer-ip=0.0.0.0-0.255.255.255 #denied-peer-ip=127.0.0.0-127.255.255.255 #denied-peer-ip=::1 # Private (LAN) addresses # If you are running BigBlueButton within a LAN, you might need to add an "allow" rule for your address range. # IPv4 Private-Use denied-peer-ip=10.0.0.0-10.255.255.255 denied-peer-ip=172.16.0.0-172.31.255.255 denied-peer-ip=192.168.0.0-192.168.255.255 # Other IPv4 Special-Purpose addresses denied-peer-ip=100.64.0.0-100.127.255.255 denied-peer-ip=169.254.0.0-169.254.255.255 denied-peer-ip=192.0.0.0-192.0.0.255 denied-peer-ip=192.0.2.0-192.0.2.255 denied-peer-ip=198.18.0.0-198.19.255.255 denied-peer-ip=198.51.100.0-198.51.100.255 denied-peer-ip=203.0.113.0-203.0.113.255 # IPv6 Unique-Local denied-peer-ip=fc00::-fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff # IPv6 Link-Local Unicast denied-peer-ip=fe80::-febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff ``` -------------------------------- ### Get Meeting Info Source: https://docs.bigbluebutton.org/dev/api.html Retrieves all information about a meeting, including attendee lists, start and end times, and breakout room details. ```APIDOC ## GET /bigbluebutton/api/getMeetingInfo ### Description Retrieves all information about a meeting, including attendee lists, start and end times, and breakout room details. If a meeting has breakout rooms, their IDs are returned. If the meeting is a breakout room, the parent meeting ID is returned. ### Method GET ### Endpoint http://yourserver.com/bigbluebutton/api/getMeetingInfo ### Parameters #### Query Parameters - **meetingID** (string) - Required - The meeting ID that identifies the meeting you are attempting to check on. - **checksum** (string) - Required - The checksum for request authentication. ### Request Example ``` http://yourserver.com/bigbluebutton/api/getMeetingInfo?meetingID=test01&checksum=1234 ``` ### Response #### Success Response (200) - **returncode** (string) - Indicates the success or failure of the request. - **meetingName** (string) - The name of the meeting. - **meetingID** (string) - The unique ID of the meeting. - **internalMeetingID** (string) - The internal ID of the meeting. - **createTime** (string) - The creation timestamp of the meeting. - **createDate** (string) - The creation date of the meeting. - **voiceBridge** (string) - The voice bridge number for the meeting. - **dialNumber** (string) - The dial-in number for the meeting. - **attendeePW** (string) - The password for attendees. - **moderatorPW** (string) - The password for moderators. - **running** (string) - Indicates if the meeting is currently running. - **duration** (string) - The duration of the meeting. - **hasUserJoined** (string) - Indicates if any user has joined the meeting. - **recording** (string) - Indicates if the meeting is being recorded. - **hasBeenForciblyEnded** (string) - Indicates if the meeting was forcibly ended. - **startTime** (string) - The start time of the meeting. - **endTime** (string) - The end time of the meeting. - **participantCount** (string) - The number of participants in the meeting. - **listenerCount** (string) - The number of listeners in the meeting. - **voiceParticipantCount** (string) - The number of participants in voice. - **videoCount** (string) - The number of active video streams. - **maxUsers** (string) - The maximum number of users allowed. - **moderatorCount** (string) - The number of moderators. - **attendees** (object) - An object containing a list of attendees. - **metadata** (object) - An object containing metadata about the meeting. - **isBreakout** (string) - Indicates if the meeting is a breakout room. - **breakoutRooms** (object) - If the meeting has breakout rooms, this contains a list of their IDs. - **breakout** (object) - If the meeting is a breakout room, this contains details about the parent meeting. #### Response Example ```xml SUCCESS Anton G's Room gbesu6dht08uobpislzqxsizjzihn87cmewqyacs a0715c95000a2bcb90604ecc7097dbc94592c690-1715261728123 1715261728123 Thu May 09 13:35:28 UTC 2024 66052 613-555-1234 1umEM3ic V91JirCa true 0 true true false 1715261728142 0 1 0 1 1 0 1 w_ftcrsyuh44oj Anton G MODERATOR true false true true HTML5 summit2024-6d8120x test30.bigbluebutton.org https://test30.bigbluebutton.org/recording_ready greenlight https://test30.bigbluebutton.org/meeting_ended false ``` #### Breakout Rooms Example ```xml success ... breakout-room-id-1 breakout-room-id-2 breakout-room-id-3 ``` #### Breakout Room Parent Example ```xml success ... ParentMeetingId 1 false ``` ``` -------------------------------- ### GET /getRecordings Source: https://docs.bigbluebutton.org/dev/api.html Retrieves a list of recordings from the BigBlueButton system. The response includes details about each recording, such as its ID, meeting information, start and end times, participant count, and playback formats. ```APIDOC ## GET /getRecordings ### Description Retrieves a list of recordings from the BigBlueButton system. The response includes details about each recording, such as its ID, meeting information, start and end times, participant count, and playback formats. ### Method GET ### Endpoint /bigbluebutton/api/getRecordings ### Parameters #### Query Parameters - **meetingID** (string) - Optional - The ID of the meeting for which to retrieve recordings. - **recordID** (string) - Optional - The ID of the specific recording to retrieve. - **state** (string) - Optional - The state of the recording (e.g., 'published', 'deleted'). - **limit** (integer) - Optional - The maximum number of recordings to return. - **offset** (integer) - Optional - The number of recordings to skip before returning results. - **sortBy** (string) - Optional - The field to sort the recordings by (e.g., 'startTime', 'name'). - **ascending** (boolean) - Optional - Whether to sort in ascending order (true) or descending order (false). ### Response #### Success Response (200 OK) - **returncode** (string) - Indicates the success or failure of the request ('SUCCESS' or 'FAILED'). - **recordings** (array) - An array of recording objects, each containing: - **recordID** (string) - The unique identifier for the recording. - **meetingID** (string) - The ID of the meeting associated with the recording. - **internalMeetingID** (string) - The internal ID of the meeting. - **name** (string) - The name of the meeting. - **isBreakout** (boolean) - Whether the meeting was a breakout room. - **published** (boolean) - Whether the recording has been published. - **state** (string) - The current state of the recording. - **startTime** (long) - The start time of the meeting in milliseconds since the epoch. - **endTime** (long) - The end time of the meeting in milliseconds since the epoch. - **participants** (integer) - The number of participants in the meeting. - **metadata** (object) - Additional metadata about the meeting. - **playback** (object) - Information about the playback formats available for the recording. - **totalElements** (integer) - The total number of recordings available. ### Response Example ```json { "returncode": "SUCCESS", "recordings": [ { "recordID": "ffbfc4cc24428694e8b53a4e144f414052431693-1530278898111", "meetingID": "c637ba21adcd0191f48f5c4bf23fab0f96ed5c18", "internalMeetingID": "ffbfc4cc24428694e8b53a4e144f414052431693-1530278898111", "name": "Fred's Room", "isBreakout": false, "published": true, "state": "published", "startTime": 1530278898111, "endTime": 1530281194326, "participants": 7, "metadata": { "meetingName": "Fred's Room", "isBreakout": false, "gl-listed": true, "meetingId": "c637ba21adcd0191f48f5c4bf23fab0f96ed5c18" }, "playback": { "format": [ { "type": "podcast", "url": "https://demo.bigbluebutton.org/podcast/ffbfc4cc24428694e8b53a4e144f414052431693-1530278898111/audio.ogg", "processingTime": 0, "length": 33 }, { "type": "presentation", "url": "https://demo.bigbluebutton.org/playback/presentation/2.0/playback.html?meetingId=ffbfc4cc24428694e8b53a4e144f414052431693-1530278898111", "processingTime": 139458, "length": 33, "preview": { "images": [ { "width": 176, "height": 136, "alt": "Welcome to", "url": "https://demo.bigbluebutton.org/presentation/ffbfc4cc24428694e8b53a4e144f414052431693-1530278898111/presentation/d2d9a672040fbde2a47a10bf6c37b6a4b5ae187f-1530278898120/thumbnails/thumb-1.png" } ] } } ] } } ], "totalElements": 1 } ``` ``` -------------------------------- ### Install Greenlight with Custom Relative URL Path using Greenlight Install Script Source: https://docs.bigbluebutton.org/4.0/greenlight/v3/install Use this command to install Greenlight with a custom relative URL path (e.g., /gl) when using the Greenlight install script. The GL_PATH variable is set for the installation. ```bash wget -qO- https://raw.githubusercontent.com/bigbluebutton/greenlight/master/gl-install.sh | GL_PATH=/gl bash -s -- [options] ``` -------------------------------- ### Publish SDK to Sample Plugin Folder Source: https://docs.bigbluebutton.org/plugins Use this script to publish SDK changes to the specified sample plugin folder. ```bash ./scripts/publish-to-project-folder.sh samples/sample-floating-window-plugin ``` -------------------------------- ### Publish SDK to All Sample Plugins Source: https://docs.bigbluebutton.org/4.0/plugins A convenience script to publish SDK changes to all sample plugins simultaneously. Use this for broader updates across multiple plugin samples. ```bash ./scripts/publish-to-samples.sh ``` -------------------------------- ### Install Greenlight with Custom Relative URL Path using BBB Install Script Source: https://docs.bigbluebutton.org/4.0/greenlight/v3/install Use this command to install Greenlight with a custom relative URL path (e.g., /gl) when using the BigBlueButton install script. Ensure the -g option is included. ```bash wget -qO- https://raw.githubusercontent.com/bigbluebutton/bbb-install/v2.7.x-release/bbb-install.sh | GL_PATH=/gl bash -s -- [options] -g ``` -------------------------------- ### Recording Steps with Video Format Enabled Source: https://docs.bigbluebutton.org/4.0/administration/customize Illustrates how to modify recording steps to include the 'video' format, making it a list of processes. ```yaml steps: archive: 'sanity' sanity: 'captions' captions: - 'process:presentation' - 'process:video' 'process:presentation': 'publish:presentation' 'process:video': 'publish:video' ``` -------------------------------- ### Install Packages and Configure Font Source: https://docs.bigbluebutton.org/4.0/administration/install This command installs necessary packages including locales-all, fontconfig, and rendering libraries. It's used when encountering 'locales-all' package errors during installation. ```bash apt -y install locales-all fontconfig libxt6 libxrender1 ``` -------------------------------- ### Build and Publish Plugin SDK Source: https://docs.bigbluebutton.org/4.0/plugins Builds the plugin SDK locally and prepares it for publishing to test changes in a sample plugin and the BigBlueButton client. ```bash # From the SDK root npm install npm run build ``` -------------------------------- ### Post-Script Example Structure Source: https://docs.bigbluebutton.org/development/recording This snippet shows the directory structure for example post-scripts. These scripts can be placed in 'drop-in' directories to customize the post-archive, post-process, and post-publish steps. ```text |-- post_archive | `-- post_archive.rb.example |-- post_process | `-- post_process.rb.example `-- post_publish `-- post_publish.rb.example ``` -------------------------------- ### Example Response for Delete Recordings Source: https://docs.bigbluebutton.org/4.0/development/api This is an example of a successful response when deleting recordings. ```XML SUCCESS true ``` -------------------------------- ### Install BigBlueButton Webhooks Source: https://docs.bigbluebutton.org/development/webhooks Run this command to install the webhooks package on your BigBlueButton server. ```bash $ sudo apt-get install bbb-webhooks ``` -------------------------------- ### Example Response for Update Recordings Source: https://docs.bigbluebutton.org/4.0/development/api This is an example of a successful response when updating recording metadata. ```XML SUCCESS true ```