This is an old revision of the document!
1. Setup BBB 1.1 - http://docs.bigbluebutton.org/install/install.html#installing-bigbluebutton-11
2. Setup BBB 1.1 development environment - http://docs.bigbluebutton.org/dev/setup.html
Verify that the BBB app launches fine with the client loading from development directory.
4. Changes to the config files -
sudo vi /var/lib/tomcat6/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties
maxNumPages=5000
defaultWelcomeMessage= //(just leave it empty)
defaultWelcomeMessageFooter= //(just leave it empty)
defaultClientUrl=${bigbluebutton.web.serverURL}/client/LiveEvent.html
beans.presentationService.defaultUploadedPresentation=${bigbluebutton.web.serverURL}/DefaultMockPresentationXYZ.pdf
cd /var/www/bigbluebutton-default/
sudo touch DefaultMockPresentationXYZ.pdf
sudo vi /etc/bigbluebutton/nginx/client.nginx
//change location /client/BigBlueButton.html { -> location /client/LiveEvent.html {
sudo vi /etc/nginx/sites-enabled/bigbluebutton
client_max_body_size 200m
sudo vi /etc/bigbluebutton/nginx/web.nginx
client_max_body_size 200m;
sudo vi /etc/bigbluebutton/nginx/client.nginx
root /var/www/bigbluebutton => root /home/expbbbp/dev/bigbluebutton/bigbluebutton-client;
Make sure the proper ngnix configuration and add the ssl certificate path
5. Checkout client code from svn co https://repos.exphosted.com/svnrepos/collaboration/bbb/trunk/ and place it at <home of bbb user>/dev/bigbluebutton/bigbluebutton-client
6. Client config changes - Change config.xml file ( <home of bbb user>/dev/bigbluebutton/bigbluebutton-client
src/conf/config.xml)
(It better to symlink this file has this is full of IP configuration)
// Make this IP/URL changes based on the environment
//Replace the ip (For instance - 192.168.2.240) 192.168.2.240 with this machine’s hostname(devcollab02.learnexa.com)
sed -i s/http://192.168.2.184/devcollab02.learnexa.com/g bigbluebutton-client/src/conf/config.xml
//Replace the ip http://192.168.2.154:3000 with learnexa url machine’s hostname
sed -i s/http://192.168.2.154:3000/https://dev01.learnexa.com/g bigbluebutton-client/src/conf/config.xml
7. Compile client and restart bbb
cd <home of bbb user>/dev/bigbluebutton/bigbluebutton-client ant ant locales sudo bbb-conf --restart
Note - Steps 5-7 will be taken care by deploy script once the initial setup is done.
8. Setup freeswitch
9. Edit Learnexa rails app bigbluebutton.yml settings to place the details of bigbluebutton URL and salt. Restart learnexa rails app.
10. Whenever we change the collaburl in learnexa(config/bigbluebutton.yml) then the corresponded extension needs to be updated in learnexa
1. Incase voice extension is changed in BBB setup then old extension needs to be deleted and the new extension needs to be added in the database via running the following backfill tasks(voice_extensions.rake)
a. First change the extention which is needs to be inactivated in(db/voice_extensions_inactive.csv) and run
bundle exec rake voice_extensions:inactivate
b. Delete the extension which are all inactive by running
bundle exec rake voice_extensions:delete_inactive
c. Add the new extension which is needs to be added in (db/voice_extensions.csv) and run
bundle exec rake voice_extensions:populate
11. Edit public/crossdomain.xml settings to allow cross domain ajax requests from BBB machine URL.
12. Install the code signing certificate
13. Get the deployment script from svn based on the environment and make the required url changes based on the environments like(COLLAB_URL. etc..)
1. Change /usr/share/red5/conf/red5-common.xml to replace queueThreshold and deplayWrite values.
<bean id="fileConsumer" scope="prototype" lazy-init="true" class="org.red5.server.stream.consumer.FileConsumer"> <property name="delayWrite" value="false"/> <property name="queueThreshold" value="14400"/> </bean>
Just running the deploy script after below mentioned changes is fine.
1) Edit / Verify Hosts. Check whether /etc/hosts has an entry mapping this machine's FQDN to 127.0.0.1 2) Mount “streams” brick.
touch /usr/share/red5/websapps/video/streams/error-if_you_see_this mount.glusterfs <FQDN>:/streams /usr/share/red5/websapps/video/streams
3) Verify that it is correctly mounted and add to fstab.
1) Replace all the URLs in sed commands to update the /src/conf/config.xml
2) Make a directory as bbb user.
mkdir -p ~/dev/srctrunk
3) Change the value of BBBDIR to “/home/<bbb user>/dev/bigbluebutton”
1) Update the bbb user home directory and path to bbb directory correctly.
Bigbluebutton1.1 installation steps URL is given below
http://docs.bigbluebutton.org/install/install.html https://wiki.exphosted.com/doku.php?id=setup_and_deploy_bbb_11
Need to follow the below steps in the “http://docs.bigbluebutton.org/install/install.html”
1. install 2. Setup Development Environment
swap space creation ( if the collab server contain 4GB, we need to create swap space )
https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-16-04
sudo apt-get install haveged sudo apt-get update sudo apt-get dist-upgrade reboot sudo apt-get update
Add the user odeploy as sudo users
visudo odeploy ALL=(ALL) NOPASSWD: ALL
Bigbluebutton clone from git
adduser expbbbp su - expbbbp sudo apt-get install git sudo git clone https://github.com/bigbluebutton/bigbluebutton.git chmod -R 775 dev cd ~/dev (/home/expbbbp/dev) sudo chown -R expbbbp:expbbbp tools sudo chown -R expbbbp:expbbbp bigbluebutton sudo chmod 775 bigbluebutton
https://wiki.exphosted.com/doku.php?id=recorder_setup_bbb_v_1.0?s[]=glusterfs&s[]=3&s[]=7&s[]=6
IMPORTANT ( Development tools needs to be installed as “expbbbp” user )
add-apt-repository ppa:gluster/glusterfs-3.8 apt-get install glusterfs-client glusterfs-server mkdir -p /data/brick1/
add the below entry vi /etc/hosts 10.138.84.57 odevcollab01_https cd /mnt mkdir crossbow /usr/sbin/gluster volume create crossbow transport tcp 10.138.84.57:/data/brick1 force gluster volume start crossbow force /sbin/mount.glusterfs odevcollab01_https:/crossbow /mnt/crossbow mkdir -p /usr/share/red5/webapps/recorder/streams cd /usr/share/red5/webapps/ chown -R red5:red5 recorder cp /soft/collab_bin.zip /home/expbbbp chown -R expbbbp:expbbbp bin apt-get install subversion cd /home/expbbbp/dev/bigbluebutton
svn co https://repos.exphosted.com/svnrepos/collaboration/bbb/trunk mv trunk bigbluebutton-client_20180320102919 chown -R expbbbp:expbbbp bigbluebutton-client_20180320102919
cd /home/expbbbp/bin vi deploybbbclient.sh
do perform find and replace
:%s/qacollab01.learnexa.com/odevcollab01.learnexa.com/g
and changes the APPURL as
APPURL="dev.learnexa.com"
once done the changes, run the script
./deploybbbclient.sh
The “bigbluebutton.properties” of “/var/lib/tomcat7/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties” should be like this
#
# BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
#
# Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below).
#
# This program is free software; you can redistribute it and/or modify it under the
# terms of the GNU Lesser General Public License as published by the Free Software
# Foundation; either version 3.0 of the License, or (at your option) any later
# version.
#
# BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License along
# with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
#
#
# These are the default properites for BigBlueButton Web application
# Default loglevel.
appLogLevel=DEBUG
#----------------------------------------------------
# Directory where BigBlueButton stores uploaded slides
presentationDir=/var/bigbluebutton
#----------------------------------------------------
# Directory where SWFTOOLS (pdf2swf, jpeg2swf, png2swf) are located
swfToolsDir=/usr/bin
#----------------------------------------------------
# Directory where ImageMagick's convert executable is located
imageMagickDir=/usr/bin
#----------------------------------------------------
# Fonts directory passed into PDF2SWF to support highlighting of texts
# in the SWF slides.
fontsDir=/usr/share/fonts
#----------------------------------------------------
# These will be copied in cases where the conversion process
# fails to generate a slide from the uploaded presentation
BLANK_SLIDE=/var/bigbluebutton/blank/blank-slide.swf
BLANK_PRESENTATION=/var/bigbluebutton/blank/blank-presentation.pdf
BLANK_THUMBNAIL=/var/bigbluebutton/blank/blank-thumb.png
#----------------------------------------------------
# Number of minutes the conversion should take. If it takes
# more than this time, cancel the conversion process.
maxConversionTime=5
#----------------------------------------------------
# Maximum number of pages allowed for an uploaded presentation (default 100).
maxNumPages=5000
#----------------------------------------------------
# Maximum swf file size for load to the client (default 500000).
MAX_SWF_FILE_SIZE=500000
#----------------------------------------------------
# Maximum allowed number of place object tags in the converted SWF, if exceeded the conversion will fallback to full BMP (default 8000)
placementsThreshold=8000
# Maximum allowed number of bitmap images in the converted SWF, if exceeded the conversion will fallback to full BMP (default 8000)
imageTagThreshold=8000
# Maximum allowed number of define text tags in the converted SWF, if exceeded the conversion will fallback to full BMP (default 2000)
defineTextThreshold=2000
#------------------------------------
# Number of threads in the pool to do the presentation conversion.
#------------------------------------
numConversionThreads=2
#----------------------------------------------------
# Additional conversion of the presentation slides to SVG
# to be used in the HTML5 client
svgImagesRequired=false
# Default number of digits for voice conference users joining through the PSTN.
defaultNumDigitsForTelVoice=5
#----------------------------------------------------
# Default dial access number
defaultDialAccessNumber=613-555-1234
#----------------------------------------------------
# Default welcome message to display when the participant joins the web
# conference. This is only used for the old scheduling which will be
# removed in the future. Use the API to create a conference.
#
# If the message contains characters not in ISO-8859-1 character sets
# they must be properly escaped to unicode characters. An easy way to
# do this is running the native2ascii command setting UTF8 encoding and
# passing this file's path as input and output parameters, e.g.:
#
# native2ascii -encoding UTF8 bigbluebutton.properties bigbluebutton.properties
#
#defaultWelcomeMessage=<br>Welcome to <b>%%CONFNAME%%</b>!<br><br>For help on using BigBlueButton see these (short) <a href="event:http://www.bigbluebutton.org/content/videos"><u>tutorial videos</u></a>.<br><br>To join the audio bridge click the headset icon (upper-left hand corner). Use a headset to avoid causing background noise for others.<br>
defaultWelcomeMessage=
defaultWelcomeMessageFooter=
#defaultWelcomeMessageFooter=This server is running <a href="http://docs.bigbluebutton.org/" target="_blank"><u>BigBlueButton</u></a>.
# Default maximum number of users a meeting can have.
# Current default is 0 (meeting doesn't have a user limit).
defaultMaxUsers=0
# Default duration of the meeting in minutes.
# Current default is 0 (meeting doesn't end).
defaultMeetingDuration=0
# Remove the meeting from memory when the end API is called.
# This allows 3rd-party apps to recycle the meeting right-away
# instead of waiting for the meeting to expire (see below).
removeMeetingWhenEnded=true
# The number of minutes before the system removes the meeting from memory.
defaultMeetingExpireDuration=1
# The number of minutes the system waits when a meeting is created and when
# a user joins. If after this period, a user hasn't joined, the meeting is
# removed from memory.
defaultMeetingCreateJoinDuration=5
# Disable recording by default.
# true - don't record even if record param in the api call is set to record
# false - when record param is passed from api, override this default
disableRecordingDefault=false
# Start recording when first user joins the meeting.
# For backward compatibility with 0.81 where whole meeting
# is recorded.
autoStartRecording=false
# Allow the user to start/stop recording.
allowStartStopRecording=true
# Allow webcams streaming reception only to and from moderators
webcamsOnlyForModerator=false
#----------------------------------------------------
# This URL is where the BBB client is accessible. When a user sucessfully
# enters a name and password, she is redirected here to load the client.
bigbluebutton.web.serverURL=https://odevcollab01.learnexa.com
#----------------------------------------------------
# Assign URL where the logged-out participant will be redirected after sign-out.
# If "default", it returns to bigbluebutton.web.serverURL
bigbluebutton.web.logoutURL=default
# The url of the BigBlueButton client. User's will be redirected here when
# successfully joining the meeting.
defaultClientUrl=${bigbluebutton.web.serverURL}/client/LiveEvent.html
#defaultClientUrl=${bigbluebutton.web.serverURL}/client/BigBlueButton.html
#defaultClientUrl=http://192.168.0.235/3rd-party.html
# The default avatar image to display if nothing is passed on the JOIN API (avatarURL)
# call. This avatar is displayed if the user isn't sharing the webcam and
# the option (displayAvatar) is enabled in config.xml
defaultAvatarURL=${bigbluebutton.web.serverURL}/client/avatar.png
# The URL of the default configuration
defaultConfigURL=${bigbluebutton.web.serverURL}/client/conf/config.xml
apiVersion=1.1
# Salt which is used by 3rd-party apps to authenticate api calls
securitySalt=74682d7e47c263d4dc70a4a685957744
# Directory where we drop the <meeting-id-recorded>.done file
recordStatusDir=/var/bigbluebutton/recording/status/recorded
redisHost=127.0.0.1
redisPort=6379
# The directory where the published/unpublised recordings are located. This is for
# the get recording* api calls
publishedDir=/var/bigbluebutton/published
unpublishedDir=/var/bigbluebutton/unpublished
# The directory where the pre-built configs are stored
configDir=/var/bigbluebutton/configs
# If the API is enabled.
serviceEnabled = true
# Test voiceBridge number
testVoiceBridge=99999
testConferenceMock=conference-mock-default
#------------------------------------------------------
# These properties are used to test the conversion process.
# Conference name folder in ${presentationDir} (see above)
beans.presentationService.testConferenceMock=${testConferenceMock}
# Conference room folder in ${presentationDir}/${testConferenceMock}
beans.presentationService.testRoomMock=conference-mock-default
# Uploaded presentation name
beans.presentationService.testPresentationName=appkonference
# Uploaded presentation file
beans.presentationService.testUploadedPresentation=appkonference.txt
# Default Uploaded presentation file
beans.presentationService.defaultUploadedPresentation=${bigbluebutton.web.serverURL}/DefaultMockPresentationXYZ.pdf
presentationBaseURL=${bigbluebutton.web.serverURL}/bigbluebutton/presentation
#----------------------------------------------------
# The URL where the presentations will be loaded from.
#----------------------------------------------------
beans.presentationService.presentationBaseUrl=${presentationBaseURL}
#----------------------------------------------------
# Inject values into grails service beans
beans.presentationService.presentationDir=${presentationDir}
#----------------------------------------------------
# Specify which IPs can do cross domain requests
accessControlAllowOrigin=${bigbluebutton.web.serverURL}
#----------------------------------------------------
# The lapsus of seconds for polling the BBB Server in order to check if it's down.
# After 5 tries if there isn't response, it will be declared down
checkBBBServerEvery=10
if demo is not working ( http://hostname/demo/demo1.jsp ) after ran “deploybbbclient.sh” http 500 error ( java.lang.NullPointerException )
sudo service redis-server restart
URL for Reference : https://groups.google.com/forum/#!msg/bigbluebutton-dev/ryVNAW96m8Q/i4hM3fAsAAAJ
Try the following
sudo service redis-server restart
sudo bbb-conf --check
If you still see issues with the redis server, try the following
sudo service redis-server stop sudo mv /var/lib/redis/redis.rdb /var/lib/redis/redis.rdb_old sudo service redis-server start
cd /home/expbbbp/dev/bigbluebutton mkdir recorder cd /mnt/crossbow sudo mkdir assets sudo mkdir system sudo mkdir streams sudo chown -R odeploy:odeploy assets sudo chown -R odeploy:odeploy system sudo chown -R odeploy:red5 streams sudo chmod -R 775 streams
su - expbbbp
cd ~/bin (/home/expbbbp/bin)
vi deploy_recorder_server.sh replace expdev01 with odeploy
sh deploy_recorder_server.sh
cd /bin
place the below content
vi cbmount
#!/bin/bash sudo umount /usr/share/red5/webapps/video/streams sudo umount /usr/share/red5/webapps/recorder/streams sudo umount odevcollab01_https:/crossbow sudo /sbin/mount.glusterfs odevcollab01_https:/crossbow /mnt/crossbow sudo mount -o bind /mnt/crossbow/streams /usr/share/red5/webapps/video/streams sudo mount -o bind /mnt/crossbow/streams /usr/share/red5/webapps/recorder/streams
Whenever we re-start the collab server we need to run the “cbmount” script
cd /bin ./cbmount