Stars: 138
Forks: 42
Pull Requests: 22
Issues: 54
Watchers: 2
Last Updated: 2023-03-06 06:47:29
Package that provides easily communicate between bigbluebutton server and laravel framework
License: MIT License
Languages: PHP
Package that provides easily communicate between BigBlueButton server and laravel framework
You can install the package via composer:
composer require joisarjignesh/bigbluebutton
After install package publish config file
php artisan vendor:publish --tag=bigbluebutton-config
BBB_SECURITY_SALT=bbb_secret_key
BBB_SERVER_BASE_URL=https://example.com/bigbluebutton/
'servers' => [
'server1' => [
'BBB_SECURITY_SALT' => '',
'BBB_SERVER_BASE_URL' => '',
],
]
After Define salt and url clear old configurations
php artisan config:clear
dd(\Bigbluebutton::isConnect()); //default
dd(\Bigbluebutton::server('server1')->isConnect()); //for specific server
dd(bigbluebutton()->isConnect()); //using helper method
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');
\Bigblubutton::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);
\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'],
],
]);
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.
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',
]);
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
\Bigbluebutton::create([
'meetingID' => 'tamku',
'meetingName' => 'test meeting',
'attendeePW' => 'attendee',
'moderatorPW' => 'moderator',
'bbb-recording-ready-url' => 'https://example.com/api/v1/recording_status',
]);
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
])
);
\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'
]
]);
\Bigbluebutton::all(); //using facade
bigbluebutton()->all(); //using helper method
use JoisarJignesh\Bigbluebutton\Facades\Bigbluebutton;
Bigbluebutton::getMeetingInfo([
'meetingID' => 'tamku',
'moderatorPW' => 'moderator' //moderator password set here
]);
Bigbluebutton::isMeetingRunning([
'meetingID' => 'tamku',
]);
Bigbluebutton::isMeetingRunning('tamku'); //second way
use JoisarJignesh\Bigbluebutton\Facades\Bigbluebutton;
Bigbluebutton::close([
'meetingID' => 'tamku',
'moderatorPW' => 'moderator' //moderator password set here
]);
\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
]);
\Bigbluebutton::publishRecordings([
'recordID' => 'a3f1s',
//'recordID' => ['xyz.1','pqr.1'] //pass as array if publish multiple recordings
'state' => true //default is true
]);
\Bigbluebutton::deleteRecordings([
//'recordID' => 'a3f1s',
'recordID' => ['a3f1s','a4ff2'] //pass array if multiple delete recordings
]);
\Bigbluebutton::updateRecordings([
//'recordID' => 'a3f1s',
'recordID' => ['a3f1s','a4ff2'] //pass array if multiple delete recordings
]);
dd(Bigbluebutton::hooksCreate([
'callbackURL' => 'example.test', //required
'meetingID' => 'tamku', //optional if not set then hooks set for all meeting id
'getRaw' => true //optional
]));
dd(Bigbluebutton::hooksDestroy([
'hooksID' => 33
]));
dd(Bigbluebutton::hooksDestroy('53')); //second way
dd(\Bigbluebutton::getApiVersion()); //return as collection
$url = \Bigbluebutton::start([
'meetingID' => 'tamku',
'meetingName' => 'test meeting name',
'moderatorPW' => 'moderator', //moderator password set here
'attendeePW' => 'attendee', //attendee password here
'userName' => 'John Deo',//for join meeting
//'redirect' => false // only want to create and meeting and get join url then use this parameter
]);
return redirect()->to($url);
Please see CHANGELOG for more information what has changed recently.
Please see CONTRIBUTING for details.
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.