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:
http://www.osslab.com.tw/index.php?title=VoIP/IP_PBX/%E8%BB%9F%E9%AB%94%E5%BC%8F_IP_PBX/Asterisk/Addons/Asterisk_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 即可
從諮商輔導人心
到諮商輔導資訊系統及網路世界
雖繞了一大圈 但都是極具意義的事
秉持著過去所學 朝著自己的興趣
體驗著一輩子只有一次的人生~~