===== Setup and Deploy BBB 1.1 ===== ==== Setup BBB and Client ==== 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. **Copy ssl certificate files from qacollab01.exphosted.com for *.exphosted.com domains. Since server.crt file will also include CA file content in it.** 6. Checkout client code from svn co https://repos.exphosted.com/svnrepos/collaboration/bbb/trunk/ and place it at /dev/bigbluebutton/bigbluebutton-client 7. Client config changes - Change config.xml file ( /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 8. Compile client and restart bbb cd /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. 9. Setup freeswitch 10. Edit Learnexa rails app bigbluebutton.yml settings to place the details of bigbluebutton URL and salt. Restart learnexa rails app. 11. 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 12. Edit public/crossdomain.xml settings to allow cross domain ajax requests from BBB machine URL. 13. Install the code signing certificate - https://wiki.exphosted.com/doku.php?id=install_code_signing_certificate_to_learnexa_live_event_screen_share 14. Get the deployment script from svn based on the environment and make the required url changes based on the environments like(COLLAB_URL. etc..) ==== Setup/Deploy recorder App ==== 1. Change /usr/share/red5/conf/red5-common.xml to replace queueThreshold and deplayWrite values. Just running the deploy script after below mentioned changes is fine. ==== Setup Streams for video streaming ==== 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 :/streams /usr/share/red5/websapps/video/streams 3) Verify that it is correctly mounted and add to fstab. ==== Deploy Script changes ==== === 1) BBB client === 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//dev/bigbluebutton" === 2) Recorder server === 1) Update the bbb user home directory and path to bbb directory correctly. ===== Collaboration Server Setup ( New steps )===== 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 === GLUSTER INSTALLATION === https://wiki.exphosted.com/doku.php?id=recorder_setup_bbb_v_1.0 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 ==Cloning the source code of bigbluebutton from git== 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 . # # # 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=
Welcome to %%CONFNAME%%!

For help on using BigBlueButton see these (short) tutorial videos.

To join the audio bridge click the headset icon (upper-left hand corner). Use a headset to avoid causing background noise for others.
defaultWelcomeMessage= defaultWelcomeMessageFooter= #defaultWelcomeMessageFooter=This server is running BigBlueButton. # 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 .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 ==Recorder setup== 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