Bigbluebutton
Package that provides easily communicate between bigbluebutton server and laravel framework
Install / Use
/learn @joisarjignesh/BigbluebuttonREADME

BigBlueButton Server API Library for Laravel
Package that provides easily communicate between BigBlueButton server and laravel framework
- Requirements
- Installation
- Usage
- Api
Requirements
- Laravel 5.5 or above.
Installation
You can install the package via composer:
composer require joisarjignesh/bigbluebutton
After install package publish config file
php artisan vendor:publish --tag=bigbluebutton-config
Usage
- Define in config/bigbluebutton.php file
BBB_SECURITY_SALT=bbb_secret_key
BBB_SERVER_BASE_URL=https://example.com/bigbluebutton/
- For Specific server configuration (only for multiple server by default is optional)
'servers' => [
'server1' => [
'BBB_SECURITY_SALT' => '',
'BBB_SERVER_BASE_URL' => '',
],
]
After Define salt and url clear old configurations
php artisan config:clear
Api
Check a url and secret working
dd(\Bigbluebutton::isConnect()); //default
dd(\Bigbluebutton::server('server1')->isConnect()); //for specific server
dd(bigbluebutton()->isConnect()); //using helper method
Meeting
Create a meeting
- You can create meeting in three ways document
1.By Passing Array
\Bigbluebutton::create([
'meetingID' => 'tamku',
'meetingName' => 'test meeting',
'attendeePW' => 'attendee',
'moderatorPW' => 'moderator'
]);
2.By passing CreateMeetingParameters object for customize create meeting
use BigBlueButton\Parameters\CreateMeetingParameters;
$meetingParams = new CreateMeetingParameters($meetingID, $meetingName);
$meetingParams->setModeratorPW('moderatorPassword');
$meetingParams->setAttendeePW('attendeePassword');
\Bigbluebutton::create($meetingParams);
3.By passing array it will return CreateMeetingParameters object for overwrite methods
$createMeeting = \Bigbluebutton::initCreateMeeting([
'meetingID' => 'tamku',
'meetingName' => 'test meeting',
'attendeePW' => 'attendee',
'moderatorPW' => 'moderator',
]);
$createMeeting->setDuration(100); //overwrite default configuration
\Bigbluebutton::create($createMeeting);
Upload slides
- You can upload slides within the create a meeting call. If you do this, the BigBlueButton server will immediately
download and process the slides
\Bigbluebutton::create([ 'meetingID' => 'tamku', 'meetingName' => 'test meeting', 'attendeePW' => 'attendee', 'moderatorPW' => 'moderator', 'presentation' => [ //must be array ['link' => 'https://www.example.com/doc.pdf', 'fileName' => 'doc.pdf'], //first will be default and current slide in meeting ['link' => 'https://www.example.com/php_tutorial.pptx', 'fileName' => 'php_tutorial.pptx'], ], ]);
End meeting callback URL
-
You can ask the BigBlueButton server to make a callback to your application when the meeting ends. Upon receiving the callback your application could, for example, change the interface for the user to hide the ‘join’ button.
Note : End meeting callback URL will notify silently, User won't redirect to that page.
- For testing endCallbackUrl see webhook site
If you want to redirect users to that page after meeting end then can use logoutURL
\Bigbluebutton::create([
'meetingID' => 'tamku',
'meetingName' => 'test meeting',
'attendeePW' => 'attendee',
'moderatorPW' => 'moderator',
'endCallbackUrl' => 'www.example.com/callback',
'logoutUrl' => 'www.example.com/logout',
]);
Recording ready callback URL
-
You can ask the BigBlueButton server to make a callback to your application when the recording for a meeting is ready for viewing. Upon receiving the callback your application could, for example, send the presenter an e-mail to notify them that their recording is ready
Note : Recording ready callback URL will notify silently, User won't redirect to that page.
- For testing Recording ready callback see webhook site
\Bigbluebutton::create([
'meetingID' => 'tamku',
'meetingName' => 'test meeting',
'attendeePW' => 'attendee',
'moderatorPW' => 'moderator',
'bbb-recording-ready-url' => 'https://example.com/api/v1/recording_status',
]);
Join a meeting
- Join meeting ( by default it will redirect into BigBlueButton Server And Join Meeting) document
use JoisarJignesh\Bigbluebutton\Facades\Bigbluebutton;
return redirect()->to(
Bigbluebutton::join([
'meetingID' => 'tamku',
'userName' => 'disa',
'password' => 'attendee' //which user role want to join set password here
])
);
- Join meeting but does want to redirect into BigBlueButton server and pass other parameters
\Bigbluebutton::join([
'meetingID' => 'tamku',
'userName' => 'disa',
'password' => 'attendee', //which user role want to join set password here
'redirect' => false, //it will not redirect into bigblueserver
'userId' => "54575",
'customParameters' => [
'foo' => 'bar',
'key' => 'value'
]
]);
Get a list of meetings
- Get all meetings document
\Bigbluebutton::all(); //using facade
bigbluebutton()->all(); //using helper method
Get meeting info
- Get meeting info document
use JoisarJignesh\Bigbluebutton\Facades\Bigbluebutton;
Bigbluebutton::getMeetingInfo([
'meetingID' => 'tamku',
'moderatorPW' => 'moderator' //moderator password set here
]);
Is a meeting running
- Is meeting running document
Bigbluebutton::isMeetingRunning([
'meetingID' => 'tamku',
]);
Bigbluebutton::isMeetingRunning('tamku'); //second way
Close a meeting
- Close meeting document
use JoisarJignesh\Bigbluebutton\Facades\Bigbluebutton;
Bigbluebutton::close([
'meetingID' => 'tamku',
'moderatorPW' => 'moderator' //moderator password set here
]);
Recording
Get recordings
- Get recordings document
\Bigbluebutton::getRecordings([
'meetingID' => 'tamku',
//'meetingID' => ['tamku','xyz'], //pass as array if get multiple recordings
//'recordID' => 'a3f1s',
//'recordID' => ['xyz.1','pqr.1'] //pass as array note :If a recordID is specified, the meetingID is ignored.
// 'state' => 'any' // It can be a set of states separate by commas
]);
Publish recordings
- Publish Recordings document
\Bigbluebutton::publishRecordings([
'recordID' => 'a3f1s',
//'recordID' => ['xyz.1','pqr.1'] //pass as array if publish multiple recordings
'state' => true //default is true
]);
Delete recordings
- Delete recordings document
\Bigbluebutton::deleteRecordings([
//'recordID' => 'a3f1s',
'recordID' => ['a3f1s','a4ff2'] //pass array if multiple delete recordings
]);
Update recordings
- Update recordings document
\Bigbluebutton::updateRecordings([
//'recordID' => 'a3f1s',
'recordID' => ['a3f1s','a4ff2'
