PHPackages                             joisarjignesh/bigbluebutton - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. joisarjignesh/bigbluebutton

ActiveLibrary[API Development](/categories/api)

joisarjignesh/bigbluebutton
===========================

BigBlueButton Server API Library for Laravel

v3.0(8mo ago)162145.5k—6.6%47[1 PRs](https://github.com/joisarjignesh/bigbluebutton/pulls)1MITPHPPHP ^7.4|^8.0|^8.1|^8.2CI failing

Since May 2Pushed 8mo ago3 watchersCompare

[ Source](https://github.com/joisarjignesh/bigbluebutton)[ Packagist](https://packagist.org/packages/joisarjignesh/bigbluebutton)[ Docs](https://github.com/joisarjignesh/bigbluebutton)[ Fund](https://www.buymeacoffee.com/joisarjignesh)[ Fund](https://www.paypal.me/joisarjignesh)[ RSS](/packages/joisarjignesh-bigbluebutton/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (4)Versions (31)Used By (1)

[![laravel-bigbluebutton](https://user-images.githubusercontent.com/17031402/87796124-93327b80-c866-11ea-8a77-cdfa844b3d63.jpg)](https://user-images.githubusercontent.com/17031402/87796124-93327b80-c866-11ea-8a77-cdfa844b3d63.jpg)

BigBlueButton Server API Library for Laravel
============================================

[](#bigbluebutton-server-api-library-for-laravel)

[![License](https://camo.githubusercontent.com/5b51682c471c3c4d9013c8669c91ae0077bf5d06fbbb32d19943c358855836c2/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6a6f697361726a69676e6573682f626967626c7565627574746f6e2e737667)](https://github.com/joisarjignesh/bigbluebutton/LICENSE.md)[![Latest Version on Packagist](https://camo.githubusercontent.com/3013ef7a36bf05f9a36f580daedbf99faf3cff61b96013cbe44a1a07cc946ef1/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6a6f697361726a69676e6573682f626967626c7565627574746f6e2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/joisarjignesh/bigbluebutton)[![Build Status](https://camo.githubusercontent.com/b0c6c6845a74cb65a7f0a32bdcfd8fbf80eeb40026c4029af424ab371c94b8bd/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6275696c642d70617373696e672d627269676874677265656e)](https://travis-ci.org/joisarjignesh/bigbluebutton)[![Quality Score](https://camo.githubusercontent.com/297248c6c355822063fa53bda799cc2066829d75817fb74158f098360f6714f0/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f6a6f697361726a69676e6573682f626967626c7565627574746f6e2e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/joisarjignesh/bigbluebutton)[![Total Downloads](https://camo.githubusercontent.com/ff165f85ce5a5f8c73565f52f598e5d3cdb098d218186ddfadc6d64c2e56918d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6a6f697361726a69676e6573682f626967626c7565627574746f6e2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/joisarjignesh/bigbluebutton)[![Laravel Framework](https://camo.githubusercontent.com/1cb53b787186f042c58101e8051a937dee5399e463ce354f99b3e39305b5ad54/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c61726176656c2d253345253344352e352d626c7565)](https://camo.githubusercontent.com/1cb53b787186f042c58101e8051a937dee5399e463ce354f99b3e39305b5ad54/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c61726176656c2d253345253344352e352d626c7565)

Package that provides easily communicate between BigBlueButton server and laravel framework

- [Requirements](#requirements)
- [Installation](#installation)
- [Usage](#usage)
- [Api](#Api)
    - [Check a url and secret working](#check-a-url-and-secret-working)
    - [Meeting](#meeting)
        - [Create a meeting](#create-a-meeting)
            - [Upload slides](#upload-slides)
            - [End meeting callback url](#end-meeting-callback-url)
            - [Recording ready callback URL](#recording-ready-callback-url)
        - [Join a meeting](#join-a-meeting)
        - [Get a list of meetings](#get-a-list-of-meetings)
        - [Get meeting info](#get-meeting-info)
        - [Is a meeting running?](#is-a-meeting-running)
        - [Close a meeting](#close-a-meeting)
    - [Recording](#recording)
        - [Get recordings](#get-recordings)
        - [Publish recordings](#publish-recordings)
        - [Delete recordings](#delete-recordings)
        - [Update recordings](#update-recordings)
    - [Hooks](#hooks)
        - [Create Hooks](#hooks-create)
        - [Destroy Hooks](#hooks-destroy)
    - [Other](#other)
        - [Get API version](#get-api-version)
    - [Unofficial](#unofficial)
        - [Start a meeting](#start-a-meeting)

Requirements
------------

[](#requirements)

- Laravel 5.5 or above.

Installation
------------

[](#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
-----

[](#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
---

[](#api)

### Check a url and secret working

[](#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

[](#meeting)

#### Create a meeting

[](#create-a-meeting)

- You can create meeting in three ways [document](https://docs.bigbluebutton.org/dev/api.html#create)

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

[](#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](https://docs.bigbluebutton.org/dev/api.html#pre-upload-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](https://docs.bigbluebutton.org/dev/api.html#end-meeting-callback-url)

[](#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.

    [](#note--end-meeting-callback-url-will-notify-silently-user-wont-redirect-to-that-page)

    - For testing endCallbackUrl see [webhook site](https://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](https://docs.bigbluebutton.org/dev/api.html#recording-ready-callback-url)

[](#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.

    [](#note---recording-ready-callback-url-will-notify-silently-user-wont-redirect-to-that-page)

    - For testing Recording ready callback see [webhook site](https://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-a-meeting)

- Join meeting ( by default it will redirect into BigBlueButton Server And Join Meeting) [document](https://docs.bigbluebutton.org/dev/api.html#join)

```
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-a-list-of-meetings)

- Get all meetings [document](https://docs.bigbluebutton.org/dev/api.html#getmeetings)

```
\Bigbluebutton::all(); //using facade
bigbluebutton()->all(); //using helper method
```

#### Get meeting info

[](#get-meeting-info)

- Get meeting info [document](https://docs.bigbluebutton.org/dev/api.html#getmeetinginfo)

```
use JoisarJignesh\Bigbluebutton\Facades\Bigbluebutton;

Bigbluebutton::getMeetingInfo([
    'meetingID' => 'tamku',
    'moderatorPW' => 'moderator' //moderator password set here
]);
```

#### Is a meeting running

[](#is-a-meeting-running)

- Is meeting running [document](https://docs.bigbluebutton.org/dev/api.html#ismeetingrunning)

```
Bigbluebutton::isMeetingRunning([
    'meetingID' => 'tamku',
]);

Bigbluebutton::isMeetingRunning('tamku'); //second way
```

#### Close a meeting

[](#close-a-meeting)

- Close meeting [document](https://docs.bigbluebutton.org/dev/api.html#end)

```
use JoisarJignesh\Bigbluebutton\Facades\Bigbluebutton;

Bigbluebutton::close([
    'meetingID' => 'tamku',
    'moderatorPW' => 'moderator' //moderator password set here
]);
```

### Recording

[](#recording)

#### Get recordings

[](#get-recordings)

- Get recordings [document](https://docs.bigbluebutton.org/dev/api.html#getrecordings)

```
\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)

- Publish Recordings [document](https://docs.bigbluebutton.org/dev/api.html#publishrecordings)

```
\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)

- Delete recordings [document](https://docs.bigbluebutton.org/dev/api.html#deleterecordings)

```
\Bigbluebutton::deleteRecordings([
    //'recordID' => 'a3f1s',
    'recordID' => ['a3f1s','a4ff2'] //pass array if multiple delete recordings
]);
```

#### Update recordings

[](#update-recordings)

- Update recordings [document](https://docs.bigbluebutton.org/dev/api.html#updaterecordings)

```
\Bigbluebutton::updateRecordings([
    //'recordID' => 'a3f1s',
    'recordID' => ['a3f1s','a4ff2'] //pass array if multiple delete recordings
]);
```

### Hooks

[](#hooks)

#### Hooks create

[](#hooks-create)

- Hooks Create [document](https://docs.bigbluebutton.org/dev/webhooks.html#hookscreate)

```
dd(Bigbluebutton::hooksCreate([
      'callbackURL' => 'example.test', //required
      'meetingID' => 'tamku', //optional  if not set then hooks set for all meeting id
      'getRaw' => true //optional
]));
```

#### Hooks destroy

[](#hooks-destroy)

- Hooks Destroy [document](https://docs.bigbluebutton.org/dev/webhooks.html#hooksdestroy)

```
dd(Bigbluebutton::hooksDestroy([
     'hooksID' => 33
]));

dd(Bigbluebutton::hooksDestroy('53')); //second way
```

### Other

[](#other)

#### Get api version

[](#get-api-version)

- Get api version

```
dd(\Bigbluebutton::getApiVersion()); //return as collection
```

### Unofficial

[](#unofficial)

#### Start a meeting

[](#start-a-meeting)

- Start meeting (first check meeting is exists or not if not then create a meeting and join a meeting otherwise meeting is exists then it will directly join a meeting) (by default user join as moderator)

```
$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);
```

### More Information Read This [wiki](https://github.com/bigbluebutton/bigbluebutton-api-php/wiki)

[](#more-information-read-this-wiki)

### For Bigbluebutton Api Testing See This [ApiMate](https://mconf.github.io/api-mate/)

[](#for-bigbluebutton-api-testing-see-this-apimate)

### See Bigbluebutton Official dev Api [Bigbluebutton](https://docs.bigbluebutton.org/dev/api.html)

[](#see-bigbluebutton-official-dev-api---bigbluebutton)

### Support

[](#support)

[ ![Buy Me A Coffee](https://camo.githubusercontent.com/9a769e616ce78645bf51d12e4179cfbfd72fb413722b284e0be3ec3c75a86010/68747470733a2f2f63646e2e6275796d6561636f666665652e636f6d2f627574746f6e732f64656661756c742d6f72616e67652e706e67)](https://www.buymeacoffee.com/joisarjignesh)[ ![Donate](https://camo.githubusercontent.com/e1ff554a09e8e92bef25abc553ff05b88f45afd695877cf12f3a46558ef65b2e/68747470733a2f2f7777772e70617970616c6f626a656374732e636f6d2f656e5f55532f692f62746e2f62746e5f646f6e61746543435f4c472e676966)](https://www.paypal.me/joisarjignesh)### Changelog

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

### Security

[](#security)

If you discover any security related issues, please email  instead of using the issue tracker.

Credits
-------

[](#credits)

- [Jignesh Joisar](https://github.com/joisarjignesh)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

57

—

FairBetter than 98% of packages

Maintenance59

Moderate activity, may be stable

Popularity50

Moderate usage in the ecosystem

Community25

Small or concentrated contributor base

Maturity79

Established project with proven stability

 Bus Factor1

Top contributor holds 89% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~69 days

Recently: every ~171 days

Total

29

Last Release

264d ago

Major Versions

v1.2.5 → v2.1.02022-03-03

v2.9 → v3.02025-08-27

PHP version history (3 changes)v1.0.7PHP &gt;=7.0

v2.1.0PHP ^7.4|^8.0|^8.1

v2.5PHP ^7.4|^8.0|^8.1|^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/b6d918e0b44fc2e1a56de863eed8a85056c72be6f651e3c05f6febfa9e5346ef?d=identicon)[joisarjignesh](/maintainers/joisarjignesh)

---

Top Contributors

[![joisarjignesh](https://avatars.githubusercontent.com/u/17031402?v=4)](https://github.com/joisarjignesh "joisarjignesh (129 commits)")[![StyleCIBot](https://avatars.githubusercontent.com/u/11048387?v=4)](https://github.com/StyleCIBot "StyleCIBot (6 commits)")[![samuelwei](https://avatars.githubusercontent.com/u/4281791?v=4)](https://github.com/samuelwei "samuelwei (3 commits)")[![laravel-shift](https://avatars.githubusercontent.com/u/15991828?v=4)](https://github.com/laravel-shift "laravel-shift (2 commits)")[![SadeghPM](https://avatars.githubusercontent.com/u/9298600?v=4)](https://github.com/SadeghPM "SadeghPM (1 commits)")[![mohamed-hendawy](https://avatars.githubusercontent.com/u/16992890?v=4)](https://github.com/mohamed-hendawy "mohamed-hendawy (1 commits)")[![cocomdidin](https://avatars.githubusercontent.com/u/25497749?v=4)](https://github.com/cocomdidin "cocomdidin (1 commits)")[![anthonyvage](https://avatars.githubusercontent.com/u/733172?v=4)](https://github.com/anthonyvage "anthonyvage (1 commits)")[![nimah79](https://avatars.githubusercontent.com/u/20343056?v=4)](https://github.com/nimah79 "nimah79 (1 commits)")

---

Tags

apibigbluebuttonbigbluebutton-servercommunicationlaravellaravel-packagemeetingpainlessphpphpapilaravelpackagelaravel-packagebigbluebuttonbbbmeetingjoisarjignesh

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/joisarjignesh-bigbluebutton/health.svg)

```
[![Health](https://phpackages.com/badges/joisarjignesh-bigbluebutton/health.svg)](https://phpackages.com/packages/joisarjignesh-bigbluebutton)
```

###  Alternatives

[resend/resend-laravel

Resend for Laravel

1191.4M6](/packages/resend-resend-laravel)[wayofdev/laravel-symfony-serializer

📦 Laravel wrapper around Symfony Serializer.

2113.6k](/packages/wayofdev-laravel-symfony-serializer)[dariusiii/tmdb-laravel

Laravel Package for TMDB ( The Movie Database ) API. Provides easy access to the wtfzdotnet/php-tmdb-api library.

1821.1k](/packages/dariusiii-tmdb-laravel)[vinelab/api-manager

Laravel API Manager Package - beatify and unify your responses with the least effort possible.

392.1k](/packages/vinelab-api-manager)[dystcz/lunar-api

Dystore API layer for Lunar e-commerce package

411.1k3](/packages/dystcz-lunar-api)[gufy/whmcs

WHMCS API for Laravel 5

201.7k](/packages/gufy-whmcs)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
