2012年9月26日 星期三

電腦教室螢幕廣播軟體 iTALC 安裝及基本操作

iTALC - Intelligent Teaching And Learning with Computers

由於使用需要,找到了這套螢幕廣播軟體,才發現在學術界這套早就行之有年。
主要用來電腦教室上課時,老師可以全權掌控電腦,讓同學能專心聽課(以前上電腦課時,都在玩接龍^_^)。


iTALC 特點:
概觀模式:透過畫中畫功能,讓教師在主電腦能夠同時查看課室內所有學生電腦,並能夠擷取螢幕;
遠端控制:透過遠端控制,為學生提供支援或指導;
演示模式:可以以全螢幕或畫中畫形式,強制把教師電腦的螢幕在學生電腦上顯示,又或把指定學生的電腦螢幕轉發至其他學生的電腦螢幕上;
文字信息:透過軟件向學生傳送文字信息;
封鎖電腦:對於不專心的學生,可以透過封鎖他們的電腦,讓他們專心上課,而不能利用電腦作其他課堂以外的功能;
遠端開關:能夠透過Wake on LAN功能使課室內的電腦同時開啟,亦能同時關閉或重新啟動所有電腦;
遠端取證:當有學生違規使用電腦,可以即時擷取畫面作為證據;
在家學習:由於iTALC採用了SSH認證而不是其他遠端操控軟體的密碼控制,使網路上存取教學資源更安心。而iTALC亦支援VPN連線;
線程優化:透過對軟件的線程化,iTALC在多核心系統上的運行得到優化。
常駐電腦:與其他的MUSE或TightVNC不同的是,iTALC常駐在電腦之後,無法直接從Taskbar或Task Manager關閉,免除學生透過停止程式而規避監管。另外,程式的反安裝亦無法>從控制台執行,而要執行特別的命令。
遠端登入:透過指定的命令能夠遠端使所有學生電腦以指定的登入信息登入網路,這對低小年級學生最有幫助,因為一年級的學生很多時對鍵盤不熟習,需要花很多時間於電腦的登入。

本文章是以 debian wheezy 為主,理論上 ubuntu 應該也通用。

首先找一台當老師的電腦,其他就是學生電腦。

在老師電腦上:
$ sudo apt-get install italc-master

建立公鑰及私鑰:
$ sudo ica -createkeypair
會產生二個檔案
/etc/italc/keys/private/teacher/key     私鑰
/etc/italc/keys/public/teacher/key      公鑰

公鑰是任何人都能讀取的,而私鑰的檔案預設是無法讓 root 以外人看的,權限為 root:root 0440
將私鑰權限改成老師這台電腦的使用者可讀權限。如 teacher group,然後將使用者加入 teacher 群組即可:

$ sudo chgrp teacher /etc/italc/keys/private/teacher/key
$ sudo gpasswd -a your_username teacher
加入群組後,不會立刻生效,先登出再登入即可。

先執行 client 端程式(會在背景跑,並在通知區有一個綠色圖示):
$ ica &

再執行 master 端程式:
$ italc &

在學生電腦上:
$ sudo apt-get install italc-client

將老師那台產生的公鑰拷貝過來放到同樣位置。
/etc/italc/keys/public/teacher/key

執行 client 端程式(會在背景跑,並在通知區有一個綠色圖示):
$ ica &

防火牆部分,使用 5800 及 5900 埠,若電腦已安裝 vnc 軟體,則必須先行關閉,或在設定時使用其他埠,否則會造成相衝。另外,當廣播學生電腦時,課室所有電腦會連接到有
關學生電腦的 5858 埠。

學生電腦部份,只要執行 ica 及防火牆開 tcp port 5800, 5900, 5858 即可,其他就沒事了。

開始使用老師的電腦:
執行 italc & 後,若沒問題,會出現一個控制視窗。
最上方大圖示的工具列,可在最左上角一點點空白的地方,以滑鼠左鍵來拖曳到四個角落。
第一步先建立一間教室。
左邊小圖示第二個按鈕,進入 classroom-manager。
在中間空白地方按右鍵->Add Classroom 來建立教室,如 "我的教室"。
在中間空白地方按右鍵->Add Computer 來建立學生電腦。
IP/hostname:填入 ip
Name:看到的名稱
Mac-Address:網卡卡號,用來遠端開機用。

重覆將所有學生電腦都加入教室,完成後同樣按左邊小圖示第二個按鈕,關閉 classroom-manager。

按上方大圖示第一個 Classroom, 點選 "我的教室",會出現並連接所有學生電腦的視窗,若沒問題,則出現全部學生螢幕的縮圖。

在任一台學生電腦上按滑鼠右鍵,僅對該台電腦做動作。而在最上方工具列上則是對所有電腦做動作。

Overview:任何時間按此鈕,可結束之前狀態(如 Demo, Lock),回到所有電腦列表。
Fullscreen Demo:將老師桌面以全螢幕模式廣播到學生電腦螢幕。
Window Demo:將老師桌面以視窗模式廣播到學生電腦螢幕。
Lock aLL:鎖定學生電腦螢幕。
Text message:送文字到學生電腦。
Power on:電腦開機。
Power down:電腦關機。(在 linux 好像沒用)
Logon:windows 用的吧。
Support:對單一電腦做遠端控制,直接輸入 ip 即可,不用從一堆電腦清單中去尋找某台電腦。

另外,按上方工具列最右邊箭頭還可看到 2 個圖示。
Adjust/Align:整理電腦清單,填滿整個視窗。
Auto viewe:自動排列是否啟用。

在學生電腦上按右鍵,某些功能是 windows 上才有用的,如 logon user, logout user, reboot, power down 等等。
View live:觀看學生電腦畫面。(偷看有沒有在打電動)
Remote control:操控學生電腦。
Let student show demo:將學生電腦畫面廣播到所有人螢幕。
Take a snapshot:將學生電腦畫面截圖(抓學生做壞事要有證據 ^_^)。
Execute command:在學生電腦執行指令。

左方小圖示工具列第 3 個是用來觀看所有截圖。
第四個為設定,若是效能不好,可調整畫面更新間隔,預設 1 秒鐘,以及廣播畫面時的品質。
直接左鍵點二下,預設功能是操控該學生的電腦,可由此來修改。

基本上 italc 使用起來非常直覺,很容易上手,就介紹到此。


由於 arch aur 當中的 italc 為 2.0.0,但新版又無法和舊版相容,可是 debian 及 ubuntu 又沒包 italc 2.0.0,所以才會有後面在 debian 上自行編譯 2.0.0 的過程。


自己編譯 italc 2.0.0 版:
官方網站:
http://italc.sourceforge.net/

由於我不會自己從 source 包成 deb 檔,但是有找到有 debian developer 有弄好現成的 source,只要抓回來編完就可產生 deb 檔。

$ git clone git://git.debian.org/debian-edu/italc.git
$ sudo apt-get build-dep italc

因為 debian 只包 italc 1.0.x 版, build-dep 只會裝編譯 1.0.x 需要的東西,要編 2.0.0 還需要下列:
$ sudo apt-get install gcj-jdk git-buildpackage libxss-dev libvncserver-dev libv4l-dev libpam0g-dev

開始編 italc:
$ cd italc
$ git-buildpackage -rfakeroot
或用老方法也可以
$ dpkg-buildpackage -rfakeroot

預設 wheezy gcc 及 g++ 版本為 4.7,我編了好幾次都失敗,後來換成 gcc 4.6 才編的成功。

debian 裡存在同一軟體可裝不同版本的機制 update-alternatives.
我的 wheezy 系統上有裝 gcc 4.6 及 gcc 4.7(甚至舊的 4.4, 4.5 都有),預設編譯器是 gcc 4.7,那要如何改 4.6 成為預設的:

建立一個選擇項目 gcc, 連結位置在 /usr/bin/gcc ,第一個選擇為 4.6, 優先權為 40, 第二個為 4.7, 優先權為 50, 優先權是用在自動模式時,優先權最高的會當預設值。
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 40
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 50

手動選擇 gcc 4.6 當目前的 compiler
$ sudo update-alternatives --config gcc

$ sudo update-alternatives --set gcc /usr/bin/gcc-4.6

g++ 部份也如法炮製:
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.6 40
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.7 50
$ sudo update-alternatives --set g++ /usr/bin/g++-4.6

檢查看看是否變成 gcc 4.6
$ gcc -v
$ g++ -v

調整完 gcc 及 g++ 後,繼續編譯,我的機器大概編 7 分鐘完成。
$ git-buildpackage -rfakeroot

編譯完成後,會在上層目錄出現四個 deb 檔,安裝起來即可。
italc-master_2.0.0-1_amd64.deb
italc-management-console_2.0.0-1_amd64.deb
italc-client_2.0.0-1_amd64.deb
libitalccore_2.0.0-1_amd64.deb

$ sudo dpkg --install italc-master_2.0.0-1_amd64.deb  italc-management-console_2.0.0-1_amd64.deb italc-client_2.0.0-1_amd64.deb  libitalccore_2.0.0-1_amd64.deb

編完後記得改回來 gcc-4.7, g++-4.7
$ sudo update-alternatives --set gcc /usr/bin/gcc-4.7
$ sudo update-alternatives --set g++ /usr/bin/g++-4.7
或是切回自動模式,這樣系統會自動選擇優先權較高的 4.7 來當預設值。
$ sudo update-alternatives --auto gcc
$ sudo update-alternatives --auto g++


題外話
update-alternatives 不只用在同一程式不同版本間切換,也可用在同一功能,但不同程式間的選擇,如文字編輯器。

通常我們會直接打 vim 或 nano 來做文字編輯,但是大部份應用程式需要呼叫外部文字編輯器時,不知道你的喜好,所以會呼叫一個通用的程式 editor 來做編輯器,所以只要將
 /usr/bin/editor 設成你慣用的文字編輯器即可。

update-alternatives --list editor
/bin/nano
/usr/bin/vim.basic
/usr/bin/vim.tiny

在 debian 裡,預設文字編輯器為 nano (因為優先權 40 最高)

$ update-alternatives --display editor
editor - manual mode
  link currently points to /usr/bin/vim.basic
/bin/nano - priority 40
  slave editor.1.gz: /usr/share/man/man1/nano.1.gz
/usr/bin/vim.basic - priority 30
  slave editor.1.gz: /usr/share/man/man1/vim.1.gz
  slave editor.fr.1.gz: /usr/share/man/fr/man1/vim.1.gz
  slave editor.it.1.gz: /usr/share/man/it/man1/vim.1.gz
  slave editor.pl.1.gz: /usr/share/man/pl/man1/vim.1.gz
  slave editor.ru.1.gz: /usr/share/man/ru/man1/vim.1.gz
/usr/bin/vim.tiny - priority 10
  slave editor.1.gz: /usr/share/man/man1/vim.1.gz
  slave editor.fr.1.gz: /usr/share/man/fr/man1/vim.1.gz
  slave editor.it.1.gz: /usr/share/man/it/man1/vim.1.gz
  slave editor.pl.1.gz: /usr/share/man/pl/man1/vim.1.gz
  slave editor.ru.1.gz: /usr/share/man/ru/man1/vim.1.gz
Current 'best' version is '/bin/nano'.

將 /usr/bin/editor 設成 vim.basic
$ update-alternatives --set editor /usr/bin/vim.basic


可看目前系統上有哪些已設定的程式
$ update-alternatives --get-selections


回到主題,若是真的編不出來,可以使用我編譯的 binary deb,共 4 個檔案,約 2 M.

italc 2.0.0 使用:
建立公、私鑰的功能移到 management-console 去。
listen port 不再是 5858, 5900, 而是 11100 及 11400, 而 5800 保持不變,預設沒開,可到 management console 設定。


老師的電腦:

italc 2.0.0 for debian wheezy
編輯 /etc/apt/sources.list.d/italc.list
deb http://manstalk.no-ip.org/debian/wheezy ./

$ sudo apt-get update
$ sudo apt-get install italc-client italc-master

裝好後,會自動在系統上建立 4 個群組,italc-teachers, italc-supporters, italc-admins, italc-students。
也自動產生所有 key.
/etc/italc/keys/private/admin/key
/etc/italc/keys/private/supporter/key
/etc/italc/keys/private/teacher/key
/etc/italc/keys/public/admin/key
/etc/italc/keys/public/supporter/key
/etc/italc/keys/public/teacher/key


老師這台電腦上的使用者加入 italc-teachers。
$ sudo gpasswd -a your_username italc-teachers
登出再登入才會生效。
小插曲,通常我都會用 id username 來查詢某位使用者是屬於哪些群組,在加入 italc-teachers 後,登出再登入,id 查了半天,就是沒看到出現 italc-teachers 這個群組,以為自己記性不好,忘記剛才有沒有下加入群組指令,所以試了好幾次。

$ id (沒看到 italc-teachers)
uid=1000(louie) gid=1000(louie) groups=1000(louie),7(lp),25(floppy),29(audio),44(video),103(netdev),112(fuse),114(libvirt),990(event)

明明有在 /etc/group 裡
$ grep louie /etc/group
italc-teachers:x:126:louie

$ id louie
uid=1000(louie) gid=1000(louie) groups=1000(louie),7(lp),25(floppy),29(audio),44(video),103(netdev),990(event),112(fuse),114(libvirt),126(italc-teachers)

$ groups louie
louie : louie lp floppy audio video netdev event fuse libvirt italc-teachers

但仍然無法讀取 /etc/italc/keys/private/teacher/key
只好重新開機試試,開好後,打 id 就可看到在 italc-teachers 群組,一切都正常了,應該是 bug 吧。

先執行 management console 來設定:
$ sudo imc

在 General 部份,Autostart 是打抅的,所以預設一進入 X 就會開啟,這個要特別注意,平時最好是關掉的,要用時再開,不過電腦教室就另當別論。( italc 2.0.0 版改成要經由學生按確認,老師才能連到學生機器)

iTALC Server 部份,主要是調整 port,預設是 11100 及 11400。

Authentication 部份,在 linux 上,直接將 ACL-based logon authentication 抅抅拿掉,然後最下方 Logon authenticaion 也是抅抅拿掉,才會正常。(我試出來是這樣)

中間 Launch key file assistant 可重新產生公鑰及私鑰,或是在學生電腦滙入老師電腦上的公鑰。

設定完成按套用,接著可在上方 File 選單將設定存成一個檔案,拿到學生電腦匯入。

再來就和 1.0.x 版一樣,執行 client 程式

$ ica &

最後執行 master 程式:
$ italc &


學生的電腦:

編輯 /etc/apt/sources.list.d/italc.list
deb http://manstalk.no-ip.org/debian/wheezy ./

$ sudo apt-get update
$ sudo apt-get install italc-client
一樣將老師那台產生的公鑰拷貝過來,可以 3 個公鑰全過來,或只有 teachers 公鑰就好,放到和老師那台同樣位置即可。(私鑰不要離開老師那台電腦)
也可以使用 management console 來將公鑰匯入,不過檔名要叫 *.key.txt 結尾才看得到好匯入,選擇 Import public key (client computer) 角色選 Teacher 即可。

一樣執行 client 端:
$ ica

搞定,防火牆開 tcp port 11000 即可。


這套 iTALC 已經出現滿久了,而且台灣早就有很多人用,只是大部份都是老師或學術界,用於電腦教室。
現在可拿來用在一些 open source 的分享場合,理論上應該滿好用的才是,不過,還是要再實際測看看就是。

但由於 italc 是用在桌面分享及操控,並沒有聲音的部分,當然,電腦教室上課全部學生和老師都在同一間房間,直接用麥克風就好,所以不用透過電腦傳聲音。
但是若是一定要聲音,有一套 open source 的語音通訊工具,叫 mumble。

Mumble 是款針對遊戲玩家的低延遲、高質量的語音通訊工具,可以讓玩家在遊戲的同時,進行即時的語音交流。
軟體支援消除回音,這樣在遊戲過程中,其它玩家就不會聽到使用者喇叭裡發出的遊戲聲音了。

在國內也滿流行的,最主要是拿來打線上遊戲時溝通,可設定多種模式(push to talk 或自動偵測是否有講話),要架一台伺服器,所有人都連到那台伺服器去。在伺服器內可分房
間,只有在同個房間的人才聽得到彼此對話。

當然也可自己架伺服器,叫 murmur,debian 有包。不過有很多免費的伺服器好用,國內有一家。

到官方網站抓回來裝,裝好後要設定調整麥克風。
http://mumble.sourceforge.net

裡面有預設很多伺服器可以連,另外可加以下的

la1.mumblevoice.com:65003       國內遊戲公司的伺服器
mumble.debian.net:64738         debian 開發者架的


參考文件:
http://italc.sourceforge.net/documentation.php
http://sourceforge.net/apps/mediawiki/italc/index.php?title=Main_Page
http://zh.wikipedia.org/wiki/ITALC

2012年9月15日 星期六

OpenMeetings 基本操作

這篇是說明如何使用 OpenMeetings,因為說實在的功能還真不少,有點複雜,要花些時間才學會使用。

使用:

瀏覽器直接開啟網址 http://localhost:5080/openmeetings,以之前建立的超級使用者登入 (Sign in) 或新註冊一個帳號,按 (Not a member?) ,註冊時可選擇語言,有正體中文可選,可是翻譯並不完整而且很多是大陸用語,所以我選英文介面來介紹。註冊時要寫好正確時區,否則以後會議通知會寄錯時間。


Dashboard:
剛登入時是位於 "Dashboard" 頁面,如圖1。

-->
▲圖1 Dashboard

-->

上方的功能表項目:
Home】回到 "Dashboard" 及開啟月曆觀看及預約會議。
Recordings】觀看及下載之前已錄製好的影片。
Rooms】各會議室目前狀況(公共,私人,個人會議室)。每間會議室有不同的屬性,如 Interview Room 就是一對一。
Administration】若是以超級使用者登入,則會出現此選單,內容有:
1.Users:管理及修改使用者資料,可於此設定使用者等級 (user, moderator, admin)
2.Connections:觀看目前伺服器上線的使用者,必要時可將他踢出伺服器。
3.Usergroups:將使用者分群組,如系統組、推廣組。
4.Conference rooms:檢視及微調各個會議室的詳細屬性,若於某會議室裡的「Moderated」核取方塊內打抅,而且某位進入的使用者等級為 moderator,則此使用者會自動擁有會議主持人權限。
5.Configuration:修改 OpenMeetings 伺服器的細項設定。
6.Language editor:從這裡做訊息翻譯動作。
7.LDAP:結合 LDAP 使用的設定。
8.Backup:使用者資料匯出及匯入,用於伺服器升級時。
左上角是個人資料及大頭照。



右上角 "Profile" 可修改個人詳細資料。



下方 "My rooms" 活頁標籤為個人會議室及你必須參加的會議列表,按每個會議室的整條長方型條可看目前會議室內的人員,要加入會議室則點 [Enter]



"My rooms" 的右邊是 "Chat",可看目前線上人員並與他溝通。也可邀請某位目前在線上的人進某個會議室。



右邊是簡易使用說明及捷徑。按下 [Start] 可進入會議室列表(和上方 "Rooms" 一樣)。接著請按下 [Start],即可看到會議室列表。
在公開會議室選 "conference room with micro option set" 這間會議室並點 [Enter]




會議室:

首先會彈出一個 "Choose device" 視窗,選擇 webcam 及麥克風及解析度,按 [Start recording test] 確認 webcam 有看到影像,沒問題按 [Start conference] 進入會議室 -->
,如圖2


▲圖2 會議室

第一個進入會議室的人,會自動成為會議主持人,擁有所有權限。(使用白板、桌面分享及錄影、控制遠端桌面、是否有權限獨佔麥克風)。

左上角為功能表:
【EXIT】為離開會議室
【Files】上傳檔案
【Actions】多項功能
  1.Send invitation: 將目前會議室直接以連結網址寄出電子郵件來邀請人加入會議。
  2.Share/record screen: 分享目前桌面及桌面錄影。
  3.Apply to be moderator: 要求擁有會議主持人的所有權限
  4.Apply for whiteboard access: 要求使用白板權限。
  5.Apply for audio/video access: 要求分享聲音及影像權限。
  6.Create a poll: 建立問卷調查。
  7.Poll results: 看問卷結果。
  8.Vote: 問卷調查投票。
  9.Edit default settings: 更改預設白板設定。


最右上角可看到目前會議室名稱、要求取得會議主持人權限及分享自己的桌面及錄影。
點選分享及桌面錄影圖示,會出現視窗詢問要以什麼應用程式來開啟 .jnlp 檔,若在 client 機器上有裝 icedtea-netx,則此時可選 IcedTea Java Web Start 來使用。可將桌面分享給會議中的人,並同時可錄影起來。

左邊:
"Users" 活頁標籤為參加會議室人員列表及權限。
"Files" 活頁標籤可上傳檔案放到白板展示。在上傳完成後,檔案位於 "My files (home drive)",只能自己能存取,用滑鼠將檔案拖到 "Room files (public drive)" 則參加會議的人都可以存取。將要展示的文件或圖片,以滑鼠左鍵拖到右方白板上,若是多頁檔案,則下方 "Document properties" 綠色箭頭可切換上、下頁;或是於左方檔案列表檔案上按滑鼠右鍵,選 "Open document",則可看到每一頁內容,直接在頁面上按滑鼠左鍵即可展示到白板。

左下角視窗為動作視窗,若有要求權限時,在會議主持人的左下角出現要求訊息,會議主持人可於此同意或拒絕權限。

右邊一大塊即為白板,預設只有一個白板,可按綠色內有白色加號圓圈來新增另一個白板。

白板下方 "Properties" 可調整畫筆顏色及方塊或橢圓填滿的顏色。

最下方 "Chat" 可打字發言。


流程大致如下:
1.進入會議室,先將 webcam 及麥克風設定好。
2.至少要求使用白板及獨佔麥克風權限,或要求全部權限才能做簡報,展示投影片。
3.點選 "Files" 活頁標籤並上傳檔案。
4.將檔案以滑鼠左鍵拖到右方白板。
5.點選自己的麥克風視窗來獨佔,會同時將別人的麥克風靜音。
6.開始簡報。


--> 經過一陣子的研究,大致弄懂 OpenMeetings 的操作,整個功能滿完整的,若再加上外掛來運作,真是如虎添翼,不愧為”自由軟體線上會議方案“。



安裝篇: http://guildwar23.blogspot.tw/2012/09/debian-wheezy-openmeetings.html

2012年9月10日 星期一

於 Debian wheezy 上 安裝 OpenMeetings

Debian wheezy 安裝自由軟體線上會議系統 OpenMeetings


由於需要用到多人視訊功能,但是又要能夠分享桌面,目前似乎沒有自由軟體能做到如此。所以就試著找看看,找到 apache foundation 的 openmeetings,這才知道有這麼一套“自由軟體線上會議”程式存在。看了些文件後,真是覺得功能符合我的需求,於是花了幾天時間來研究安裝建置及使用,做成筆記。

openmeetings 特點:

- 自由軟體
- 視訊及語音會議,也可打文字聊天(chat)。

- 白板可展示圖片、影片、簡報等等(可同時多個白板)。
- 分享及控制桌面(類似 vnc),並可將桌面錄影起來。
- 詳細的權限控管(防止講到一半被干擾)
- 內建民調系統,方便決策用。
- 預約會議,可以 email 通知。
- 支援外掛程式,擴充功能。

安裝前準備:

小弟的環境是以 debian testing(wheezy) 來安裝,若是其他 distribution,請自行修改。

命令是以一般使用者即可安裝,只有在安裝 package 時 apt-get 要 root 權限,在此是用 sudo。

在安裝 openmeetings 前,有些東西是必要的,要先準備好:

1. JRE(java runtime environment), 安裝 openjdk 即可,不需要用 oracle 的 java。
  $ sudo  apt-get install openjdk-7-jre

2. 要能夠分享桌面,必須要能執行 .jnlp 檔,裝上 icedtea-netx(取代 javaws)
  $ sudo apt-get install icedtea-netx

3. 將桌面錄製成影片或滙入 .avi, .flv, .mov, .mp4 到白板要安裝工具。
  $ sudo apt-get install ffmpeg sox swftools

  debian wheezy 的 swftools 裡並沒有 pdf2swf 這個指令,所以無法上傳 pdf 檔來做簡報,若一定要有,請自行從原始碼編譯。

4. 在白板中匯入圖片,要圖片轉檔工具。
  $ sudo apt-get install imagemagick

5. 要在白板中匯入 office 檔,要裝上 libreoffice 或 openoffice 及轉檔工具 jodconverter。
  $ sudo apt-get install libreoffice

  openmeetings 滙入 .doc, .docx, .ppt, .pptx, ... 都是用 libreoffice 或 openoffice 去做轉換動作,所以在 openmeetings 這台伺服器上一定要裝 office。而呼叫 office 來做轉換的動作,則由 jodconverter 來完成。


  因為 openmeetings 在檔案上傳後,都是轉成 pdf,所以要安裝 ghostscript。
  $ sudo apt-get install ghostscript

6. 上傳的 office 要支援中文,系統上要裝 utf8 中文字型。
  $ sudo apt-get install ttf-arphic-uming ttf-arphic-ukai

  若之前舊文件有用 big5 字型,也要安裝 big5 字型。
  $ sudo apt-get install ttf-arphic-bsmi00lp ttf-arphic-bkai00mp

  還有,文件用到 windows 的細明體的話,預設 linux 並沒有,所以轉換後會變亂碼,直接將字型從 windows 拷貝到 linux 下即可。
  $ sudo mkdir  /usr/share/fonts/truetype/windows/
  $ sudo cp mingliu.ttc  /usr/share/fonts/truetype/windows/

開始安裝:

到 http://incubator.apache.org/openmeetings/ 抓 openmeetings 回來。
解開到指定目錄:
$ mkdir  /media/share/apps/openmeetings
$ tar xvf  apache-openmeetings-incubating-2.0.0.r1361497-14-07-2012_1108.tar.gz  -C  /media/share/apps/openmeetings

由於 debian wheezy 裡的 jodconverter 是 2.2.2 版,必須將 office 啟動成一個 service 在背景跑,listen 一個 tcp port,然後 jodconverter 2.x 再透過 tcp port 去要求 office 做轉換動作。
但是 jodconverter 3.0 則 office 不用在背景跑,jodconverter 3.x 會去呼叫 office 來轉檔,轉完後會關閉 office,所以用 3.x 版比較好。

jodconverter 2.x:
$ sudo apt-get install jodconverter
$ soffice --headless --nofirststartwizard --accept="socket,host=localhost,port=8100;urp" &
會 listen 在 localhost:8100, 而 jodconverter 2.x 在轉換時會自行去跟 office 溝通。

jodconverter 3.x:

下載 jodconverter 3.0:
http://code.google.com/p/jodconverter/downloads/list
解開至 openmeetings 裡
$ unzip jodconverter-core-3.0-beta-4-dist.zip -d /media/share/apps/openmeetings/

由於現在 jodconverter 是 3.0-beta-4, 若下次 beta 5 或正式版釋出,則路徑會不同,要再修改,所以預先做個連結,以後不用再到 openmeetings 裡修改路徑,將新版做個連結即可。
$ cd /media/share/apps/openmeetings/
$ ln -sf jodconverter-core-3.0-beta-4 jodconverter-core


預設 openmeetings 資料庫是用 apache derby database,若要改成 mysql 則需在此先準備好。
1.mysql 伺服器部份設定:
  首先 mysql 伺服器的 charset 一定要設成 utf8,否則無法安裝成功。
  $ sudo apt-get install mysql-server
  $ sudo vi /etc/mysql/my.cnf
  [mysqld]
  character_set_server=utf8
  重新啟動 mysql server
  $ sudo /etc/init.d/mysql restart
2.安裝 Jconnector
  下載 http://www.mysql.com/downloads/connector/j/
 解開後,將 mysql-connector-java-5.1.22-bin.jar 放到指定目錄下
  $ cp mysql-connector-java-5.1.22-bin.jar /media/share/apps/openmeetings/webapps/openmeetings/WEB-INF/lib/
3.openmeetings 呼叫 mysql 設定:
  將 mysql 專用設定檔覆蓋掉原本的:
  $ cd /media/share/apps/openmeetings/webapps/openmeetings/WEB-INF/classes/META-INF/
  $ cp mysql_persistence.xml persistence.xml
  修改 persistence.xml 裡面 mysql server 位置、使用者、密碼。

    , Url=jdbc:mysql://localhost:3306/openmeetings?autoReco
  改成
  , Url=jdbc:mysql://your_mysql_server:3306/openmeetings?autoReco
  若 openmeetings mysql 伺服器在同一台機器,則不用改。


  , Username=root
  改成
  , Username=your_openmeetings_user


  , Password="/>;
  改成
  , Password=your_openmeetings_password"/>;

由 於 openmeetings 要使用 mysql 時,是以 mysql root 權限去使用,這樣風險太大。 沒必要的權限不要開。所以是先在 mysql server 上手動建立 openmeetings 資料庫,然後允許 your_openmeetings_user 這個使用者只能使用這個資料庫,其他的不能動。

  以 mysql root 連到 mysql server 下指令:
    create database openmeetings;
    grant all on openmeetings.* to   your_openmeetings_user@localhost  identified by 'your_openmeetings_password';

  
密碼設為 your_openmeetings_password, 這樣 client 只能以 your_openmeetings_user 使用者連進來,並且僅能使用 openmeetings 這個資料庫,若 openmeetings 伺服器和 mysql 不在同一台,請改 localhost。


啟動 openmeetings server:
$ cd /media/share/apps/openmeetings/
$ ./red5.sh
假如你的 openmeetings 伺服器需要更好效能、有更高負載,則啟動時請改用:
$ ./red5-highperf.sh

等個約 30 秒,若沒問題,伺服務啟動完成,會 listen tcp port 5080, 1935, 8088 和其他幾個。
openmeetings 本身就有 http server,不用額外配合 apache web server。

Port 5080: HTTP (瀏覽器登入及檔案上傳下載)
Port 1935: RTMP (Flash Stream and Remoting/RPC)
Port 8088: RTMP over HTTP-Tunneling (rtmpT)

在 openmeetings server 上的防火牆要打開 tcp 5080, 1935, 8088,其他的是 openmeetings 內部自己使用就不需要。


打開瀏覽器,輸入 openmeetings web-installer, 開始安裝:
http://localhost:5080/openmeetings/install

開啟頁面有一堆說明,預設 openmeetings 資料庫是用 apache derby database, 在真實 production run 環境下,可改用 mysql、postgres、IBM DB2、oracle 等等。不管那些說明,直接按 "Continue with STEP 1" 進入安裝畫面。

一開始要先填上一個使用者及密碼,電子郵件及時區,這個使用者即為 "超級使用者" 身份。
電子郵件則是忘記密碼時重置密碼用及會議提醒。

在 Configuration 部份,預設是系統會寄一封信給新註冊的使用者,使用者收信後,點選 email 上的連結啟動帳號,若是不想這麼麻煩,可修改
Send Email to new registered Users (sendEmailAtRegister)                          No
New Users need to verify their EMail (sendEmailWithVerficationCode)       No

預設電子郵件伺服器是指向 localhost, 所以本機 mail server 要 listen tcp port 25, 也可使用外部 smtp server, 如 google 的 smtp.gmail.com的方式,請自行設定。
若用 smtp.gmail.com
SMTP-Server (smtp_server)                                          smtp.gmail.com
SMTP-Server Port(default Smtp-Server Port is 25) (smtp_port)       587
SMTP-Username (email_userpass)                                     gmail 使用者名稱(自行設定)
SMTP-Userpass (email_userpass)                                     gmail 密碼(自行設定)
Enable TLS in Mail Server Auth                                     Yes

在 Converters 部份,若是有在 PATH 裡的執行檔,則不用在此設定,可直接找到,只要調整 jodconverter 3.x 版的 JOD Path:
JOD Path:     ./jodconverter-core/lib

其他的都保持原狀,拉到最底下按 INSTALL 按鈕開始安裝動作,我的電腦約持續 10 分鐘才安裝完成(使用 derby database),若用 mysql 大約 2 分鐘,要有點耐心,完成會跳到另一個視窗,千萬不要一直 refresh 或重開瀏覽器,否則會安裝失敗。


使用:

安裝完成後,直接按 Enter the Application 即可到登入畫面。登入畫面是用 flash 的,所以瀏覽器要裝 adobe flash plugin, 小弟試用過 gnash, 無法使用。

或直接開啟網址使用,網址為 http://localhost:5080/openmeetings

以剛才建立的超級使用者登入(Sign in)或新註冊一個,按(Not a member?),註冊時可選擇語言,有正體中文可選,可是翻譯並不完整而且很多是大陸用語,所以我選英文介面來介紹。
註冊時要寫好正確時區,否則以後會議通知會寄錯時間。




請繼續閱讀 "OpenMeetings 基本操作篇"
http://guildwar23.blogspot.tw/2012/09/openmeetings_15.html



參考文件:
http://jainan.blogspot.tw/2011/10/202-windows-2003-install-openmeetings.html
http://incubator.apache.org/openmeetings/