bbbadmin

# BigBlueButton Admin- & User-Frontend [![PHP 7.1](https://img.shields.io/badge/php-7.1-f33.svg?style=flat-square)](https://php.net/) [![PHP 7.2](https://img.shields.io/badge/php-7.2-f33.svg?style=flat-square)](https://php.net/) [![PHP 7.3](https://img.shields.io/badge/php-7.3-f93.svg?style=flat-square)](https://php.net/) [![PHP 7.4](https://img.shields.io/badge/php-7.4-9c9.svg?style=flat-square)](https://php.net/) [![PHP 7.4](https://img.shields.io/badge/php-8.0-9c9.svg?style=flat-square)](https://php.net/) #### [[BigBlueButton Homepage][bbb]] [[BigBlueButton PHP API][bbbapi]] #### [[Discussion][discussion]] [[Issues][issues]] [[Changelog][changelog]]

TABLE OF CONTENTS

  1. About bbbadmin
  2. Description
  3. Synopsis
  4. User URL for joining meeting
  5. Change page style
  6. Screenshots
  7. Todo

NAME

      bbbadmin - BigBlueButton Admin- & User-Frontend

DESCRIPTION

      bbbadmin is a minimalistic BBB PHP API Frontend

SYNOPSIS

goto TOC

OPTIONS

goto TOC

PHP FILES

Filename Description
bbb_admin.json Configuration file for application
index.php Index page for application
bbb_config.php Load configuration
bbb_load.php Loading needed addons and additional scripts
bbb_create.php Create meeting on server
bbb_join.php Join meeting on server
bbb_info.php Display meeting informations
bbb_record.php Show recordings on server
bbb_delrec.php Delete recordings on server
bbb_send.php Send invitation mail to user
bbb_stop.php Stop meeting on server
bbb_user.php Join user to meeting

goto TOC

CONFIGURATION FILES

CONFIGURATION


{
    "debug": "1",
    "refresh": "30",
    "language": "en",
    "email": "bbbadmin@domain.com",
    "invite": "https://room.domain.com",
    "copyright": "© 2021 unattended.ch",
    "server": {
        "1": "room1.domain.com",
        "2": "room2.domain.com"
    },
    "logout": {
        "1": "https://room1.domain.com",
        "2": "https://room2.domain.com"
    },
    "logos":  {
        "1": "https://room1.domain.com/favicon.ico",
        "2": "https://room2.domain.com/favicon.ico"
    },
    "access": {
        "1": "ModeratorPasswordDefault" ,
        "2": "AttendeePasswordDefault" 
    },
    "rooms":  { 
        "1": { "name": "Bastelraum © 2021 unattended.ch", "id": "Bastelraum" ,  "acc": "Password", "msg": "Monday 20:00 - 22:00" },
        "2": { "name": "Startraum © 2021 unattended.ch", "id": "Startraum" ,  "acc": "Password", "msg": "" }
    }
}

Parameter|Description ———|———– debug|0=Off 1=On refresh|Screen refresh in secords for main and recording page language|en=English, de=German, fr=French other languages are wanted email|Admin email for sending invitation links invite|URL to users join page for invitations copyright|Copyright

 "server":    Parameter|Description    ---------|-----------    unique id|Unique number for server    name|Name of server (only descriptive)


 "logout":    Parameter|Description    ---------|-----------    unique id|Unique number for logout URL    name|Logout URL for meeting (default invitation url &exit=1)


 "logos":    Parameter|Description    ---------|-----------    unique id|Unique number for Logo    name|Logo URL for meetings


 "access":    Parameter|Description    ---------|-----------    1|Moderator password default    2|Attendee password default if no room password was specified


 "rooms":    Parameter|Description    ---------|-----------    unique id|Unique number for room    name|Room name fully descriptive for BigBlueButton    id|Room ID for BigBlueButton    acc|Room password for BigBlueButton

goto TOC

LANGUAGE SUPPORT

STYLING

RELEASES

DEBIAN PACKAGES

INSTALLATION SCRIPTS

PREREQUISITES

  1. Install PHP modules php-curl php-mbstring php-xml
      sudo apt install php-curl php-mbstring php-xml php-intl -y
    

    goto TOC

INSTALLATION ADMIN FRONTEND

  1. Clone bbbadmin to your home folder
      git clone https://github.com/unattended-ch/bbbadmin ~/bbbadmin
    
  2. Clone the BBB PHP API to your home folder
      git clone https://github.com/bigbluebutton/bigbluebutton-api-php ~/bigbluebutton-api-php
    
  3. Copy BBB contents of folder src/ to /opt/yourpage
      sudo rsync -avr ~/bigbluebutton-api-php/src/* /opt/yourpage/
    
  4. Copy bbbadmin .php, *.css and icons/.ico files to /opt/yourpage
      sudo rsync --exclude="res/*" -avr ~/bbbadmin/* /opt/yourpage/
    
  5. Create a symbolic link to the apache root folder
      sudo ln -s /opt/yourpage /var/www/html/
    
  6. Set owner of yourpage to www-data
      sudo chown -R www-data.www-data /opt/yourpage
    
  7. For configuration you can use bbb_admin.json
    • You must specify BBB_* Apache environment variables for every server in apache configuration
        SetEnv BBB_SECRET1 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
        SetEnv BBB_SERVER1_BASE_URL https://server1.domain.com/bigbluebutton/
        SetEnv BBB_SECRET2 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
        SetEnv BBB_SERVER2_BASE_URL https://server2.domain.com/bigbluebutton/
      
  8. Enable access security over .htpasswd file as a basic protection 8.1 Add th following to the default apache configuration
      <Directory "/var/www/html/yourpage">
        AllowOverride All
        Options SymLinksIfOwnerMatch IncludesNoExec
        Order allow,deny
        Allow from all
      </Directory>
    

    8.2 Copy .htacces file to your webpage

      sudo cp -v ~/bbbadmin/res/.htaccess /opt/youpage/
    

    8.3 Edit the path of password file in .htaccess, always use document root of apache

      sudo mcedit /opt/yourpage/.htaccess
         
      AuthUserFile "/var/www/html/yourpage/.htpasswd"
    

    8.4 Add user to .htpasswd

      sudo htpasswd -c /opt/youpage/.htpasswd [username]
    

    8.5 Restart apache server

      sudo systemctl restart apache2
    
  9. Firefox allow bbbadmin for popup windows to join meeting in new window

    goto TOC

INSTALLATION USER FRONTEND

  1. Clone bbbadmin to your home folder
      git clone https://github.com/unattended-ch/bbbadmin ~/bbbadmin
    
  2. Clone the BBB PHP API to your home folder
      git clone https://github.com/bigbluebutton/bigbluebutton-api-php ~/bigbluebutton-api-php
    
  3. Copy BBB contents of folder src/ to /opt/youruserpage
      sudo rsync -avr ~/bigbluebutton-api-php/src/* /opt/youruserpage/
    
  4. Copy bbbadmin .php, *.css and icons/.ico files to /opt/youruserpage
      sudo rsync --exclude="res/*" -avr ~/bbbadmin/* /opt/youruserpage/
      sudo mv -v /opt/youruserpage/bbb_user.php /opt/youruserpage/index.php
    
  5. Remove not needed files
      sudo rm -f /opt/youruserpage/index.php
      sudo rm -f /opt/youruserpage/bbb_create.php
      sudo rm -f /opt/youruserpage/bbb_delrec.php
      sudo rm -f /opt/youruserpage/bbb_info.php
      sudo rm -f /opt/youruserpage/bbb_join.php
      sudo rm -f /opt/youruserpage/bbb_record.php
      sudo rm -f /opt/youruserpage/bbb_stop.php
    
  6. Create a symbolic link to the apache root folder
      sudo ln -s /opt/yourpage /var/www/html/
    
  7. Set owner of your user page to www-data
      sudo chown -R www-data.www-data /opt/youruserpage
    
  8. For configuration you must edit bbb_admin.json
    • Remove all sub sections except “server”: from bbb_admin.json
    • And you MUST specify BBB_* Apache environment variables for every server
      SetEnv BBB_SECRET1 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      SetEnv BBB_SERVER1_BASE_URL https://server1.domain.com/bigbluebutton/
      SetEnv BBB_SECRET2 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      SetEnv BBB_SERVER2_BASE_URL https://server2.domain.com/bigbluebutton/
      

  9. Servers with no apache_setenv() and apache_getenv() support edit bbb_admin.json

    • Edit section “bbb”:
  10. User can now join the meeting with the following parameters (sid and mID is needed the rest is optional) :
       https://server.domain.com/bbbuser/?sid=X&mID=XXXXXXXXXXXXXXXXXX[&usr=Username][&join=1]
    
       https://server.domain.com?sid=X&mID=XXXXXXXXXXXXXXXXXX[&usr=Username][&join=1]
    
    • If the meeting is running the mask for username will be displayed
    • If not, nothing will be diplayed

goto TOC

CURL TIMEOUT

 If you get a lot curl errrors, change the following lines in [BigBlueButton.php]    ```
        $data = curl_exec($ch);    ```
 Replace with    ```
        $retry = 3;
        $attempts = 0;
        do {
            try
                {
                    $data = curl_exec($ch);
                }
            catch (Exception $e)
                {
                    $attempts++;
                    continue;
                }
            }
        while(($data === false) && ($attempts < $retry));    ```

goto TOC

SCREENSHOTS

goto TOC

goto TOC

TODO

  1. Enjoy
  2. Display 1st page of presentation as background on users join page (would be nice…and i am willing)
  3. Create download location for .MP4 meeting recording files in BBB (a lot of scripts…but i need help)
  4. Create cron srcipt to start meeting in timely fashion for a specific time period (we need this really ?)

goto TOC