[筆記] BigBlueButton(Web Conferencing) & Asterisk(SIP server) 建置與設定

1. BigBlueButton: Web Conferencing,包含視訊會議 電子白板 桌面及檔案共享 線上簡報 等功能,可用於遠距開會或視訊教學
2. Asterisk: SIP Server,也就是俗稱的 VoIP,包含於 BigBlueButton 中,但此次因某些原因我會單獨安裝它
3. BIND: 不用解釋了,赫赫有名的 DNS server,此文不再介紹
4. smbind: BIND 的 Web UI

這篇只能算是筆記
因為 BigBlueButton Asterisk BIND smbind 這些 Open Source 的服務建置都有先進的文章可參考
我主要是要筆記在整合這幾種服務於同一台 server 中時遇到的一些實際上的問題和解法,以及一些基本的設定和操作
我的 Lab 環境 OS 為 Ubuntu 10.04 x64 位元

 
首先簡介一下這幾種服務:
1. BigBlueButton: Web Conferencing,包含視訊會議 電子白板 桌面及檔案共享 線上簡報 等功能,可用於遠距開會或視訊教學
2. Asterisk: SIP Server,也就是俗稱的 VoIP,包含於 BigBlueButton 中,但此次因某些原因我會單獨安裝它
3. BIND: 不用解釋了,赫赫有名的 DNS server,此文不再介紹
4. smbind: BIND 的 Web UI
 
 

一. BigBlueButton
官網:
安裝流程:
 
其主要的 web server 是建構在 Nginx 上,API 則是跑在 Tomcat 中
它的好處是 client 只要有 web browser 即可使用,不需另外再安裝軟體
 
目前最新版本為 0.8 beta 版,但因為其中包含的 SIP server 是 Freeswitch,我個人則是偏好 Asterisk
而 0.71a 版的 BBB 可以自行選擇要安裝 Asterisk or Freeswitch
但是其 Asterisk 是 1.6 版的,因某種未知原因無法和 Asterisk-GUI 2.0 配合(看網友的分享是說應該可以,此部份以後再研究,真要玩得深入,vi 依然是王道 XD)
若發生安裝 BBB 0.71a 版後,asterisk 無法正確啟動的話,就先將所有的 BBB 相關套件先 aptitude purge
然後單獨 aptitude install asterisk,再安裝 bbb-voice-conference,最後才安裝 BigBlueButton,就可以解決這個問題
而且 asterisk 單獨安裝的好處是它的功能會比較完整,且會生出 sample config,後續設定會比較方便
 
BBB 安裝好後的 web: http://IP
Tomcat web: http://IP:8080
Red5 web: http://IP:8088
 
操控 BBB 的基本指令和參數:
#bbb-conf --restart            重新啟動 BigBueButton
                 --stop               停止 BigBueButton
                 --start               啟動 BigBueButton
                 --clean              重新啟動 BigBueButton & 清除所有 log
                 --check             檢查設定檔及服務是否正確
                 --conference     查看目前使用的是 Asterisk or Freeswitch
                 --setip               若 server IP 變了,可以重設 BBB 使用新的 IP 來服務
 
BBB 的主要 web 設定檔:
/etc/bigbluebutton/nginx/*
/var/lib/tomcat6/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties
 
若在 /var/log/bigbluebutton/bbb-web.log 中出現如下的 error:
ERROR [org.springframework.web.context.ContextLoader] - <Context initialization failed>
org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'presentationService' defined in null: Could not resolve placeholder 'testConferenceMock'
 
則編輯設定檔
#vi /var/lib/tomcat6/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties
將此行 beans.presentationService.testConferenceMock=${testConferenceMock} 註解掉即可
另外若想要設定登出 BBB demo 後直接回到主頁,則將 bigbluebutton.web.logoutURL=default 註解掉即可
 
 
 
二. Asterisk
官網:
操作教學:
安裝 GUI:
操作 GUI:
 
安裝 Asterisk 的方法很直覺
#aptitude install asterisk
 
最重要的幾個設定檔為:
/etc/asterisk/asterisk.conf          基本的全域設定檔
/etc/asterisk/extensions.conf      DialPlan 設定檔
/etc/asterisk/sip.conf                  SIP protocol & SIP user 設定檔
/etc/asterisk/voicemail.conf        SIP user 的 voicemail 設定檔
/etc/asterisk/http.conf                搭配 Asterisk Web GUI 設定檔
/etc/asterisk/manager.conf        Asterisk Management Interface 設定檔
/etc/asterisk/logger.conf            log 項目及等級設定檔
 
若只要手動啟動 asterisk 服務,不需開啟 console,可直接執行 #asterisk
若要啟動並進入 console,則執行 #asterisk -c
*CLI> core stop now        停止 asterisk
*CLI> core restart now     重新啟動 asterisk
*CLI> core reload now     重新載入 asterisk 設定檔
 
若 asterisk 已在執行中, 可用 #asterisk -r 回到之前的 console
另外 Asterisk 的 log 都放在 /var/log/asterisk/messages or full 中(端看 /etc/asterisk/logger.conf 中的設定)
可以用以下的指令確認 Asterisk 確認其是否有正常啟動
#ps aux|grep asterisk
#netstat -anp|grep asterisk
 
SIP 預設是 listen 在 TCP/UDP 5060 port,而 Asterisk 預設是開 UDP
若要啟用 TCP,則要修改 /etc/asterisk/sip.conf 中的 tcpenable = yes
 
雖然在我的 Lab 中 Asterisk GUI 一直沒有成功和 Asterisk 1.6 成功結合(但配合 Asterisk 1.8 是 ok 的)
不過我還是註記一下 Asterisk Web GUI 使用的是 Asterisk 內建的 mini-HTTP server
且為了避免 Asterisk Web GUI 預設使用的 8088 port 和 BBB 包含的 Red5 預設使用的 8088 port 相衝,需要修改一下設定
#vim /etc/asterisk/http.conf
[general]
bindport = 9000  ---自定義一個沒有使用到的 port,假設此處設定 9000 port
 
接著設定主要目錄的擁有者為 asterisk (需先確認 asterisk 服務的啟動身份)
#chown -R asterisk:asterisk /etc/asterisk /var/lib/asterisk
#chmod -R 644 /etc/asterisk/*
 
若發現啟動時權限有誤,再設定啟動 Asterisk 的相關參數,尤其是啟動 asterisk 的 user 和 group
#vim /etc/asterisk/asterisk.conf
runuser = asterisk
rungroup = asterisk
 
Asterisk Web GUI 網址 http://IP:9000/asterisk/static/config/index.html
 
為了測試,我在自己的筆電中安裝 SIP client: sflphone-gnome
當然有非常多 Open Source 的 SIP client 如 linphone or kphone 等等都可使用
另外若 SIP client 是在 FW or NAT 後端,就要設定 STUN server,讓其執行 SIP 連線時轉換公私有 IP 的作業
STUN server 預設都是跑在 UDP 3478 port 上,網路上有很多開放的 STUN server,可參考:
 
 
 
三. smbind
安裝教學:
 
此為 BIND Web UI,是建構在 Apache & MySQL & PHP 上
安裝一樣非常簡單
#aptitude install smbind
 
接著將啟動 apache2 的使用者(www-data)加入啟動 BIND 的 group(bind) 中
#usermod -G bind www-data
 
重啟 apache2
#/etc/init.d/apache2 restart
 
最後重啟 bind
#/etc/init.d/bind9 restart
 
以瀏覽器連到 http://IP/smbind ,預設的帳密都是 admin
 
為了避免和 BBB 的 web 80 port 衝突
故假設更改 smbind 的 port 為 8090 port
 
#vim /etc/apache2/ports.conf
NameVirtualHost *:8090
Listen 8090
 
#vim /etc/apache2/sites-available/default
<VirtualHost *:8090>
 
再重啟 apache2
 
最後確認 smbind 的設定檔有納入 BIND 中
#vim /etc/bind/named.conf
確認有 include "/etc/smbind/smbind.conf";
重啟 BIND  #/etc/init.d/bind9 restart 即可

從諮商輔導人心
到諮商輔導資訊系統及網路世界
雖繞了一大圈 但都是極具意義的事
秉持著過去所學 朝著自己的興趣
體驗著一輩子只有一次的人生~~