在線會議和在線教育,是當前階段,最熱門的互聯網應用。一大批在線會議與在線教育廠商,都借勢大肆圈地。 可是對於一些中小企業,和個性化教學的學校,是否能用較低的成本,擁有本身的會議/教育系統呢? 開源項目Bigbluebutton是一個不錯的選擇。git
BigblueButton(BBB)安裝是比較簡單的,有一個簡單的安裝命令,大概30分鐘,就徹底搞定了。固然,前提是你已經準備好環境,而且你很幸運。github
本文以流水帳方式,進行安裝過程的記述:web
準備步驟:docker
1. 首先,你須要有個域名。域名能夠去騰訊,新網,阿里等網站購買。域名購買以後,就是實名認證和備案了。因爲我是我的學習使用,只談我的域名備案。ubuntu
-個人域名在騰訊購買的安全
-域名要實名認證,這個是騰訊要求的bash
-域名須要備案受權碼,在騰訊購買的域名,備案須要有騰訊的服務器在運行,或者有騰訊服務器產生的備案受權碼。因爲我的使用,天然沒錢去開個騰訊服務器。好在某寶有受權碼。服務器
-我的備案過程,須要準備的資料不少,身份證,本人照片,本人視頻驗證等,還有申請備案的緣由。若是一切順利,大概3個工做日,應該能夠搞定。ide
2. 服務器須要ICP備案,讓安裝BBB的服務器IP,80,8080,443,能夠被互聯網訪問。工具
3. 你須要一個固定公網IP,將域名指向這個IP。個人服務器是在AWS上運行的,因此申請EIP,並將EIP綁定到EC2(須要在上面安裝BBB)。
我準備的域名等信息:
bbb.bright-abc.club ----BBB server使用
turn.bright-abc.club ----TURN server使用
bright@bright-abc.club ---一個假的郵箱地址,爲TLS/SSL認證使用
4. 安裝BBB的EC2的安全組須要開通如下端口,以提供服務
incoming traffic on the following ports: TCP/IP port 22 (for SSH) TCP/IP ports 80/443 (for HTTP/HTTPS) UDP ports in the range 16384 - 32768 (for FreeSWITCH/HTML5 client RTP streams)
5. 安裝 TURN sever的安全組須要開通如下端口,以提供服務
On the TURN server, you need to have the following ports (in additon port 22) availalbe for BigBlueButton to connect (port 3478 and 443) and for the coturn to connect to your BigBlueButton server (49152 - 65535).
Ports |
Protocol |
Description |
3478 |
TCP/UDP |
coturn listening port |
443 |
TCP/UDP |
TLS listening port |
49152-65535 |
UDP |
relay ports range |
6. 操做系統準備:
BigblueButton須要使用Ubuntu 16.04 server
TURN sever 須要使用Ubuntu 18.04 server
這裏解釋一些,BBB是提供在線視頻會議的主要功能,而做爲可選項的TURN server的做用,是爲了加強一些客戶端UDP連接受限的場景,更好的訪問BBB而設計。
Note: This step is optional, but recommended if your BigBlueButton server is publically available on the internet and will be accessed by users who may be behind restrictive firewalls. BigBlueButton normally requires a wide range of UDP ports to be available for WebRTC communication. In some network restricted sites or development environments, such as those behind NAT or a firewall that restricts outgoing UDP connections, users may be unable to make outgoing UDP connections to your BigBlueButton server. The TURN protocol is designed to allow UDP-based communication flows like WebRTC to bypass NAT or firewalls by having the client connect to the TURN server, and then have the TURN server connect to the destination on their behalf. You need a separate server (not the BigBlueButton server) to setup as a TURN server
安裝步驟:
7. 若是你尚未域名,只是想感覺一下BBB,一條命令,能夠直接安裝。
To install BigBlueButton 2.2 (no hostname or TLS/SSL certificate): wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v xenial-220
以上步驟安裝的,只能經過HTTP方式訪問,而不能經過HTTPS。
官方文檔也明確說明,沒有SSL/TLS,就不能使用BBB的語音和視頻功能,那麼BBB也就沒什麼用了。官網描述以下:
Since this default use of bbb-install.sh does not configure a SSL/TLS certificate, while you can login to the server, you won't be able to share audio/video as WebRTC requires a SSL/TLS certificate.
8. 若是1~4步驟,你已經準備好。那麼咱們下面的安裝開始了。 安裝前,先看看命令幫助,有詳細的解釋
$ wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -h Script for installing a BigBlueButton 2.2 (or later) server in about 15 minutes. This script also supports installation of a coturn (TURN) server on a separate server. USAGE: wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- [OPTIONS] OPTIONS (install BigBlueButton): -v <version> Install given version of BigBlueButton (e.g. 'xenial-220') (required) -s <hostname> Configure server with <hostname> -e <email> Email for Let's Encrypt certbot -x Use Let's Encrypt certbot with manual dns challenges -a Install BBB API demos -g Install Greenlight -c <hostname>:<secret> Configure with coturn server at <hostname> using <secret> -m <link_path> Create a Symbolic link from /var/bigbluebutton to <link_path> -p <host> Use apt-get proxy at <host> -r <host> Use alternative apt repository (such as packages-eu.bigbluebutton.org) -d Skip SSL certificates request (use provided certificates from mounted volume) -h Print help OPTIONS (install coturn only): -c <hostname>:<secret> Setup a coturn server with <hostname> and <secret> (required) -e <email> Configure email for Let's Encrypt certbot (required) OPTIONS (install Let's Encrypt certificate only): -s <hostname> Configure server with <hostname> (required) -e <email> Configure email for Let's Encrypt certbot (required) -l Install Let's Encrypt certificate (required) -x Use Let's Encrypt certbot with manual dns challenges (optional) EXAMPLES: Sample options for setup a BigBlueButton server -v xenial-220 -v xenial-220 -s bbb.example.com -e info@example.com -v xenial-220 -s bbb.example.com -e info@example.com -g -v xenial-220 -s bbb.example.com -e info@example.com -g -c turn.example.com:1234324 Sample options for setup of a coturn server (on a different server) -c turn.example.com:1234324 -e info@example.com SUPPORT: Community: https://bigbluebutton.org/support Docs: https://github.com/bigbluebutton/bbb-install
9. BigBlueButton 信令(TURN)服務器的安裝及配置:
$ sudo -i $ git clone https://github.com/bigbluebutton/bbb-install.git $ cd bbb-install # run below command for setup turn server ### <turn server endpoint> for turn server url ### <secret id> for secret access from bbb server ### <email address> for which Let's Encrypt generates ssl certificate $ ./bbb-install.sh \ -c <turn server endpoint>:<secret id> \ -e <email address> # for example: ### $ ./bbb-install.sh -c turn.bright-abc.club:12345678 -e bright@bright-abc.club
10. 安裝BBB server,同時,也能夠在 BBB 應用服務器上安裝 BBB Greenlight 工具,用於建立多個線上教室,並能夠經過訪問碼對在線教室的訪問進行驗證,此爲可選步驟:
$ sudo -i $ git clone https://github.com/bigbluebutton/bbb-install.git $ cd bbb-install # this step will take about 25 mins # setup with turn server ### <bbb server endpoint> for bbb server url ### <turn server endpoint> for turn server url ### <secret id> for secret access from bbb server ### <email address> for which Let's Encrypt generates ssl certificate $ ./bbb-install.sh \ -s <bbb server endpoint> \ -v xenial-220 \ -e <email address> \ -c <turn server endpoint>:<secret id> \ -g <Greenlight > # for example: ### $ ./bbb-install.sh -s bbb.bright-abc.club -v xenial-220 -c turn.bright-abc.club:12345678 -e bright@bright-abc.club -g
11. 上面的步驟是先git上下載腳本,再安裝。另外一種命令方式,直接在線運行命令,效果徹底相同。
安裝TURN
wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v xenial-220 -c turn.bright-abc.club:12345678 -e bright@bright-abc.club
安裝BBB
wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v xenial-220 -s bbb.bright-abc.club -e bright@bright-abc.club -g
12. BBB安裝完成以後,已經能夠登陸了。可是BBB web頁面,新用戶註冊等,徹底不受限制。不少會議等管理功能,也沒有辦法很好管理和限制。因此,一個管理員是必須的。
在服務器上,建立admin用戶,這個用戶登陸以後,能夠設置其餘用戶的註冊和登陸等系統狀態
建立admin的命令:
#docker exec greenlight-v2 bundle exec rake user:create["<admin name>","<admin email>","<admin password>","admin"] # for example: ### docker exec greenlight-v2 bundle exec rake user:create["<bright>","<bright@bright-abc.club>","QAZwsx1","admin"]
13. 使用admin登陸,會看到不一樣的菜單
14. 進入菜單設置,能夠看到,主要是server,user,roles等設置
15. 最終,你進入的會議界面
16. 你能夠經過下面的按鈕,語音,視頻,分享桌面,上傳PPT分享等
通過測試,效果仍是不錯的。如BBB CEO說的,這個軟件就是面對50人如下的團體會議而設計。
CEO部分建議:
建議一個會議室只有50人,咱們沒有設計爲一個會議室100或者150人以上。
bbb是能夠多對多視頻通話。
多個在線會議室能夠同時進行,沒有任何限制。
建議,安裝過程當中,多看看git官方文檔,有不少細節,文檔都有說明。本文也引用AWS Blog的命令行。
參考文檔:
AWS Blog: https://aws.amazon.com/cn/blogs/china/quickly-build-an-online-teaching-platform-on-aws/