PHPackages                             nrz/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. nrz/bigbluebutton

ActiveLibrary[API Development](/categories/api)

nrz/bigbluebutton
=================

BigBlueButton Server API Library for Laravel

020PHP

Since Oct 25Pushed 3y agoCompare

[ Source](https://github.com/abolfazlnorzad/bigbluebutton)[ Packagist](https://packagist.org/packages/nrz/bigbluebutton)[ RSS](/packages/nrz-bigbluebutton/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

[![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->setModeratorPassword('moderatorPassword');
$meetingParams->setAttendeePassword('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);
```

##### 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

16

—

LowBetter than 5% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity24

Early-stage or recently created project

 Bus Factor1

Top contributor holds 90.4% 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/867c6a1c60d6af5d83d1c5e6e9569f16188ef9a7e45767d1665f62698cd8a3c1?d=identicon)[abolfazlnorzad](/maintainers/abolfazlnorzad)

---

Top Contributors

[![joisarjignesh](https://avatars.githubusercontent.com/u/17031402?v=4)](https://github.com/joisarjignesh "joisarjignesh (94 commits)")[![samuelwei](https://avatars.githubusercontent.com/u/4281791?v=4)](https://github.com/samuelwei "samuelwei (3 commits)")[![abolfazlnorzad](https://avatars.githubusercontent.com/u/69985608?v=4)](https://github.com/abolfazlnorzad "abolfazlnorzad (3 commits)")[![StyleCIBot](https://avatars.githubusercontent.com/u/11048387?v=4)](https://github.com/StyleCIBot "StyleCIBot (1 commits)")[![mohamed-hendawy](https://avatars.githubusercontent.com/u/16992890?v=4)](https://github.com/mohamed-hendawy "mohamed-hendawy (1 commits)")[![anthonyvage](https://avatars.githubusercontent.com/u/733172?v=4)](https://github.com/anthonyvage "anthonyvage (1 commits)")[![SadeghPM](https://avatars.githubusercontent.com/u/9298600?v=4)](https://github.com/SadeghPM "SadeghPM (1 commits)")

### Embed Badge

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

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

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M480](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M272](/packages/twilio-sdk)[knplabs/github-api

GitHub API v3 client

2.2k15.8M187](/packages/knplabs-github-api)[facebook/php-business-sdk

PHP SDK for Facebook Business

90121.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

73813.7M114](/packages/meilisearch-meilisearch-php)[google/gax

Google API Core for PHP

263103.1M454](/packages/google-gax)

PHPackages © 2026

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