Laravel

Bigbluebutton Integration in Laravel

Hello everyone, in this blog we will learn about how we can integrate bigbluebutton in Laravel before moving forward let’s know something about bigbluebutton

What is Bigbluebutton?

BigBlueButton is a free software web conferencing system for GNU/Linux servers. In addition to various web conferencing services, it has integrations for many of the major learning and content management systems, for more information which please visit this URL.

I thought now you get to know what is bigbluebutton all about let’s proceed with the installation part.

Installation

  • Install the Laravel using composer
 composer create-project laravel/laravel example-app
  • Now we will install bigbluebutton package via composer
composer require joisarjignesh/bigbluebutton

  • Define security salt in your .env file
BBB_SECURITY_SALT=bbb_secret_key   
BBB_SERVER_BASE_URL=https://example.com/bigbluebutton/

If you want security salt from the server please visit this URL

  • After Define salt and url clear old configurations
php artisan optimize:clear

After install and clear old configuration check a url and security salt is working.

dd(\Bigbluebutton::isConnect()); //by default 
dd(\Bigbluebutton::server('server1')->isConnect()); //for specific server

When you run the above code you will get the response like the below one

true

Now parameters for creating a meeting

You can create meeting by passing below array

\Bigbluebutton::create([
    'meetingID' => 'codehunger',
    'meetingName' => 'CodeHunger Meeting',
    'attendeePW' => 'ap',
    'moderatorPW' => 'mp'
]);

When run the above code you will get the below response

llluminate\Support\Collection Object ( 
[items:protected] => Array ( 
[returncode] => SUCCESS 
[meetingID] => codehungers 
[internalMeetingID] => dc4d06a55074733d607a74bd409149016b6df811-1608808732341 
[parentMeetingID] => bbb-none 
[attendeePW] => ap 
[moderatorPW] => mp 
[createTime] => 1608808732341 
[voiceBridge] => 86321 
[dialNumber] => 613-555-1234 
[createDate] => Thu Dec 24 11:18:52 UTC 2020 
[hasUserJoined] => false 
[duration] => 0 
[hasBeenForciblyEnded] => false 
[messageKey] => Array ( ) 
[message] => Array ( ) 
))

Another way of creating meeting by passing more parameter

Pass parameter like the below one

$createMeeting = \Bigbluebutton::initCreateMeeting([
    'meetingID' => 'codehunger',
    'meetingName' => 'CodeHunger meeting',
    'attendeePW' => 'ap',
    'moderatorPW' => 'mp',
    'presentation'  => [ //if you want to add presentation
        ['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 add you own endback url
    'endCallbackUrl'  => 'www.example.com/callback',
    // you can add your logout url also
    'logoutUrl' => 'www.example.com/logout',
]);
// after that additional parameter like below
$createMeeting->setDuration(100); //overwrite default configuration
\Bigbluebutton::create($createMeeting);

Below is the list of all additional parameter which you can pass during meeting creation.

  • $createMeeting->setRecord(‘true’);
  • $createMeeting->setWelcomeMessage(‘Hello User’);
  • $createMeeting->setMaxParticipants(10);
  • $createMeeting->setModeratorOnlyMessage(‘Moderator message’);
  • $createMeeting->setAutoStartRecording(‘true’);
  • $createMeeting->setMuteOnStart(‘true’);
  • $createMeeting->setwebcamsOnlyForModerator(‘true’);
  • $createMeeting->setlogo(‘url’);
  • $createMeeting->setcopyright(‘copyright’);
  • $createMeeting->setlockSettingsDisableCam(‘true’);
  • $createMeeting->setlockSettingsDisableMic(‘true’);
  • $createMeeting->setlockSettingsDisablePrivateChat(‘true’);
  • $createMeeting->setlockSettingsDisablePublicChat(‘true’);
  • $createMeeting->setlockSettingsDisablePrivateChat(‘true’);
  • $createMeeting->setlockSettingsDisableNote(‘true’);
  • $createMeeting->setlockSettingsHideUserList(‘true’);
  • $createMeeting->setlockSettingsLockedLayout(‘true’);
  • $createMeeting->setlockSettingsLockOnJoin(‘true’);
  • $createMeeting->setlockSettingsLockOnJoinConfigurable(‘true’);
  • $createMeeting->setallowModsToUnmuteUsers(‘true’);

Note -: You can find more about the create meeting parameter under vendor\bigbluebutton\bigbluebutton-api-php\src\Parameters\CreateMeetingParameter.php line number 932

Join a meeting as moderator

To Join the meeting you can pass the below array

return redirect()->to(
 \Bigbluebutton::join([
    'meetingID' => 'codehunger',
    'userName' => 'disa',
    'password' => 'mp' //which user role want to join set password here
 ])
);

If everything is good up to now, then you will be redirected to bigbluebutton screen and see something like the below screenshot

bigbluebutton
Bigbluebutton Screen when user join as moderator

Join a meeting as a attendee

To Join the meeting you can pass the below array

return redirect()->to(
 \Bigbluebutton::join([
    'meetingID' => 'codehunger',
    'userName' => 'disa',
    'password' => 'ap' //which user role want to join set password here
 ])
);

when you join as attendee you can see the below screenshot

bigbluebutton-attendee-image
Joined as attendee

I hope you like the blog for more information about the bigbluebutton please visit this url .

Shaiv Roy

Hy Myself shaiv roy, I am a passionate blogger and love to share ideas among people, I am having good experience with laravel, vue js, react, flutter and doing website and app development work from last 7 years.

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button