The Pick Random User Plugin shows a modal for moderator to pick a user (mainly viewer but it could also be a moderator) randomly out of the whole list of users present in a meetings.
Please be aware that we have a separate branch of this plugin for each version of the SDK. This ensures that everything merged into a branch is compatible with the corresponding version of the BigBlueButton core. As of now, here’s the correspondence between the branches, SDK versions, and BigBlueButton core versions:
Repository Branch | Plugin-SDK Version | BigBlueButton Core Version |
---|---|---|
v0.0.x | v0.0.x | v3.0.x |
v0.1.x | v0.1.x | v3.1.x |
For more information about the plugin API features, see the documentation (readme
files) within the specific branch you are interested in. We separate the branches because, going forward, v0.1.x
is becoming more and more different from v0.0.x
.
If you have any suggestions, requirements, or questions, don’t hesitate to contact us.
Down below, we list all the possible configurations this plugin supports, and then a brief explanation:
- name: PickRandomUserPlugin
settings:
pingSoundEnabled: false
pingSoundUrl: resources/sounds/doorbell.mp3
pickedUserTimeWindow: 10 # seconds
Name | Description | Default |
---|---|---|
pingSoundEnabled |
Whether the ping sound is enabled | false |
pingSoundUrl |
URL of the ping sound file | resources/sounds/doorbell.mp3 |
pickedUserTimeWindow |
Time window to consider a user as recently picked (users that join after that time will not see the last modal) | 30 |
By default, no ping sound is played for the randomly picked user. To activate this feature, one must add the following configurations in their /etc/bigbluebutton/bbb-html5.yml
file.
So within that file and in public.plugins
add the following configurations:
- name: PickRandomUserPlugin
settings:
pingSoundEnabled: true
pingSoundUrl: resources/sounds/doorbell.mp3
The result yaml will look like:
public:
# ...
plugins:
- name: PickRandomUserPlugin
settings:
pingSoundEnabled: true # Enables the ping sound for this plugin true/false
pingSoundUrl: resources/sounds/doorbell.mp3 # This is the default and is not mandatory
Just a minor comment: This relative URLs can only be configured if the server on which BBB is running is not a cluster setup. If that's your case, you'll need to put the whole URL into the configuration. It's also worth mentioning that the default pingSoundUrl
will work in cluser setups, so no worries on that.
Some other possible pingSoundUrl
are (and notice that this URL can be relative, if the mp3
sound is being served from within the BBB server - and it's not a cluster setup - as showed right below):
- resources/sounds/alarm.mp3
- resources/sounds/bbb-handRaise.mp3
- resources/sounds/LeftCall.mp3
- resources/sounds/RelaxingMusic.mp3
- resources/sounds/aristocratDrums.mp3
- resources/sounds/CalmMusic.mp3
- resources/sounds/notify.mp3
- resources/sounds/ScreenshareOff.mp3
- resources/sounds/audioSample.mp3
- resources/sounds/doorbell.mp3
- resources/sounds/Poll.mp3
- resources/sounds/userJoin.mp3
These are the possible mp3
that already come within a BBB server, if you want a custom sound, just add the URL to the mp3
file there and it will work out of the box.
To build the plugin for production use, follow these steps:
cd $HOME/src/plugin-pick-random-user-plugin
npm ci
npm run build-bundle
The above command will generate the dist
folder, containing the bundled JavaScript file named PickRandomUserPlugin.js
, a directory of locale files and a license files. These files can be hosted on any HTTPS server along with the manifest.json
which is also part of the dist/
directory.
If you install the Plugin separated to the manifest, remember to change the javascriptEntrypointUrl
in the manifest.json
to the correct endpoint.
To use the plugin in BigBlueButton, send this parameter along in create call:
pluginManifests=[{"url":"<your-domain>/path/to/manifest.json"}]
Or additionally, you can add this same configuration in /etc/bigbluebutton/bbb-web.properties
.
As for development mode (running this plugin from source), please, refer back to https://github.com/bigbluebutton/bigbluebutton-html-plugin-sdk section Running the Plugin from Source