OpenMeetings安裝

OpenMeetings是一個開源的視頻會議軟件。

它是基於OpenLaszlo’s的新流媒體格式和開源的Flash服務器---Red5!

採用了flash流媒體服務器Red5+OpenMeetings。其實是OpenMeetings的運行依賴於Red5,也就是說OpenMeetings是一個基於Flash的視頻會議解決方案。

OpenMeetings的一大亮點是能夠在會議過程中做 PPT的演示,這一功能得益於OpenOffice的文檔轉換能力和提供Java遠程訪問的能力。

 
 
運行所需的軟件支持: 
  jdk 、mysql 、openoffice 、 ghostscript 、imagemagick 、 swftools 、 ffmpeg 、 red5 、 openmeetings 。
 
   說一下安裝依賴的軟件,共有:OpenOffice,ImageMagick,GhostScript,SWFTools,Red5.如果你下載的是包含了Red5的話,就不用單獨下載Red5了。Red5自帶了Tomcat6,直接啓動Red5後,tomcat6將會自動啓動。如果只是運行起來系統的化,是不只需要Openmeetings,Red5,就可以了。不安裝OpenOffice,ImageMagick等將讓你無法得到某些功能,比如ppt處理,pdf轉換等。 
  (申明一下我的平臺,windows xp。所以,所有的安裝軟件都將下載windows版的。下面具體的版本是我個人的選擇。)
 

    1.   openmeetings_0_7_rc2.zip

         (http://openmeetings.googlecode.com/files/openmeetings_0_7_rc2.zip),包含red5,不用下載red5了。

    2.  OpenOffice:OOo_3.0.0_Win32Intel_install_zh-cn.exe   

         (http://ftp.spnet.net/openoffice/localized/zh-cn/3.0.0/OOo_3.0.0_Win32Intel_install_zh-cn.exe)


    3.  ImageMagick:ImageMagick-6.4.9-6-Q16-windows-dll.exe   

         (http://www.imagemagick.org/download/binaries/ImageMagick-6.4.9-6-Q16-windows-dll.exe)

    4.   SWFTools:swftools-2009-02-16-1757.exe   
    5.   GhostScript:gs863w32.exe   

          (http://downloads.sourceforge.net/ghostscript/gs863w32.exe?use_mirror=nchc)

安裝步驟:
   

    1   ImageMagick安裝,直接next就行。命令行下執行 convert,出現版本信息則ok。   

    

    2   SWFTools安裝,直接next,必須手動設置path,如:C:/SWFTools 。命令行執行pdf2swf,可以執行則ok。   

  

    3   GhostScript安裝,一路next。無需設置.   

  

    4   OpenOffice安裝,直接next。然後啓動OpenOffice.org,並讓其監聽8100端口。具體步驟:命令行下執行:   

        soffice.exe -headless -nologo -norestore -      accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager。   

          通過 netstat -anp tcp,如果顯示含有8100端口相關信息,則ok。   

  

    5   解壓OpenMeetings,找到解壓目錄F:/openmeetings_0_7_rc2/webapps/openmeetings/conf,   

        修改hibernate.cfg.xml中的mysql連接名和密碼。   

  

    6   登陸mysql,創建數據庫openmeetings.(安裝過程會自動建表).   

  

    7   進入F:/openmeetings_0_7_rc2,運行red5.bat.(red5將自動啓動附帶的tomcat6)   

  

    8   在瀏覽器運行http://localhost:5080/openmeetings/install (5080是默認tomcat端口,可以手動配置)。   

         將出現安裝界面。有個安裝說明,因爲我們已經按要求來了,所以直接點擊 continue with STEP 1  

  

    9   這裏將對系統進行一些配置,比如管理員名,密碼,郵箱,郵件服務器(沒有可以不填),ImageMagick路徑等等。   

         除了管理員名,密碼等,都可以不填,其他信息登錄後也可以再修改。   

  

10 稍等一下,1分鐘左右(主要是建數據庫表的過程),出現安裝成功界面,直接點擊Enter the Application,開始登錄吧。   

    登陸後你就是管理員,可以管理用戶,視頻,語音等等等等,自己發掘去。

----------------------------------------------------------------------------------------------------------------------------------------------------


    整個架設過程非常簡單。
    1、Red5提供了個常見操作系統的安裝包,完全傻瓜式的安裝,下一步下一步解決。
    2、從OpenMeetings的網站(http://code.google.com/p/openmeetings/downloads/list)下載最新的Web應用,解壓到Red5的webapps目錄下(Red5內置Tomcat服務器);
    3、在OpenMeetings的web應用的install目錄下修改hibernate.cfg.xml文件,將數據庫配置到已創建的數據庫(只需要創建數據庫,不需要手工建表);
    4、重啓Red5服務,加載OpenMettings應用;
    5、打開瀏覽器輸入http://localhost:5080/xmlcrm/Install(注意大小寫,如果你修改了Red5的端口,將5080修改成您指定的端口);在現實的頁面上點擊“Step 1”開始OpenMeetings配置。需要注意的是郵件服務器必須正確的填寫,否則無法進行用戶註冊,也就沒有用戶可以登錄使用了。部署時還需要注意兩個工具的配置,一個是SWF工具(完成其它類型文檔到swf的轉換)和圖形工具,這兩個工具在配置頁面上提供了下載地址(google so cool!),再輸入工具地址的時候要以"/"結束。
    6、上一步輸入完成後點擊“send”開始配置,這個配置的過程大概需要5--10分鐘,不要以爲應用死翹翹了:-)。
    7、配置完成以後就可以登錄使用了,enjoy it!

後記:由於OpenMeetings默認的一個會議室只能4個人參加,不知道老外怎麼想的。沒辦法,只能下載OpeenMeetings的源碼作修改。 OpenMeetins的客戶端源碼是一個“OpenLaszlo ”的應用,被逼無奈研究了一下OpenLaszlo ,感覺還算是個不錯的RIA解決方案。放開人員的限制只需要修改videoconference/xmlcrm/content/conference/ roomlistItem.lzx文件的maxUsers變量的值就可以了;但是你會發現人員限制放開了,但是會議室裏面的攝像頭個數還是4個,怎麼辦?這個只需要修改一下videoconference/xmlcrm/content/conference/conference.lzx文件,參考原來的攝像頭佈局,添加攝像頭個數就可以了,不過攝像頭個數確實不適合太多,因爲攝像頭一多數據流量會相當大,服務器壓力太大,而且一般的視頻會議也就是幾個領導+幾個小兵,小兵就不用攝像頭了嘛,乖乖的看和聽就可以了。

 

http://code.google.com/p/openmeetings/wiki/BuildSources?tm=4 裏面有openmeetings源碼的下載方法。你可以用svn客戶端工具連接http://openmeetings.googlecode.com /svn/branches/dev/laszlo/client/下載瀏覽客戶端代碼;
svn客戶端連接http://openmeetings.googlecode.com/svn/branches/dev/xmlcrm/獲取後臺服務端java代碼以及web應用。

 

 

-----------------------------------------------------------------------------------------------------------------------------------------

OpenMeetings是一個多語言可定製的視頻會議和協作系統。它支持音頻、視頻,支持共享左面,文件協作處理,它還包含一個白板,通過白板可以導入各種格式的圖片。它基於OpenLaszlo的新流媒體格式和開源的Flash服務器Red5。重要的是,它的國際化支持很好。 有中文可以選擇。這對我們來說,是很方便的。不用去搞什麼"漢化"了。最重要的,它基於LGPL(http://www.thebigfly.com/gnu/lgpl/lgpl-v3.php)開源協議,所以,搭建這樣一個平臺是完全自由免費的。


       官方網址:http://code.google.com/p/openmeetings/,

       等不及的化,可以先進入

        http://demo.openmeetings.de/openmeetings/

       這裏看看功能演示,需要自己註冊賬戶登陸。不多速度有點慢,耐心等待就是。


      

  1. 要修改代碼,其實說到前面兩步就差不多了,因爲接下來的事情,就是讀懂和理解代碼,然後按照自己的需求來修改,各人需求不同,自然修改的方案也有很多不同。
  2. 不過介於OpenMeetings客戶端的開發語言爲OpenLaszlo,相信很多人都從來沒有接觸過,這裏我就大致的說下。

    學習簡單的OpenLaszlo語法

    (比較懶的兄弟可以跳過這節直接轉到下面的“懶人***室”,呵呵)
    推薦大家去看一看OpenLaszlo Explorer中的Laszlo in 10 Minutes,啓動Laszlo服務器,然後訪問http://127.0.0.1:8080/lps-4.0.9.1/laszlo-explorer/index.jsp就可以看見(Windows下的安裝後直接雙擊桌面圖標就能夠自動觸發瀏覽器訪問此地址)。這個是給大家對於OpenLaszlo的語法進行一個簡單的介紹。另外,點擊Documentation下面的LZX Reference還能夠看到更詳細的每個標籤和指令的介紹。這些應該都會在修改代碼過程中有所幫助。我這裏介紹幾個修改代碼時可能會用的多的:
    1. 類的繼承、定義與使用
    2. 事件與觸發
    3. 基本元素view, text
    4. 數據綁定(dataset)
    看這些相信最多花費你1-2個小時的時間,然後你就可以開始修改了。

    在調式模式下啓動OpenMeetings

    首先說下我修改時的調試方法,我是在後臺啓動部署了OpenMeetings服務器端的Red5和部署了客戶端的OpenLaszlo兩個服務器,然後訪問http://127.0.0.1:8080/lps-4.0.9.1/videoconference/main.lzx?lzr=swf8,即可編譯並啓動OpenMeetings客戶端

    然而,在OpenMeetings客戶端的根路徑下其實有兩個主文件,一個main.lzx和maindebug.lzx,這兩個都可以用來整合編譯並啓動OpenMeetings客戶端,但maindebug.lzx是帶調試界面的,更便於修改用,我們可以把訪問地址改爲http://127.0.0.1:8080/lps-4.0.9.1/videoconference/maindebug.lzx?lzr=swf8,這樣每次運行都會有一個調試框,裏面會顯示很多客戶端本身就帶有的調試信息。當然你也可以自己在代碼中寫入調試信息,Debug.write(xxxx);運行時即會將xxxx的內容顯示在調試框中。

    懶人***室

    有很多兄弟肯定還是比較懶的,接下來我將幾個簡單又比較通用的修改帖上來,按照這個修改完成以後基本上就是一個簡單的***室了,下面的步驟不分先後,你可以根據自己的需求決定哪些需要修改哪些不需要:

    1. 去掉郵件註冊
        前面我們介紹了OpenMeetings安裝的時候必須設置一個郵件服務器,如果沒有郵件服務器則前臺是無法註冊的。現在我們就把這個煩人的郵件註冊去掉。
        服務器端文件中,找到org.xmlcrm.app.data.user.Usermanagement類,找到下面一行
        Long user_id = this.registerUserInit(3, 1, 0, 1, login, Userpass,lastname, firstname, email, age, street, additionalname,fax, zip, states_id, town, language_id, true, new LinkedHashMap());
        將倒數第二個true改爲false,部署以後再到前臺註冊,現在已經不會提示Invalid EMail了

    2. 修改界面左上角網站名稱和連接
        修改config.xml文件中:
        <currentappname>xxx</currentappname>爲網站名稱(可以爲中文) 
        <currentappnameurl>、<currentappnamebugurl>標籤爲自己的網站URL

    3. 修改登錄框,設置默認語言爲中文
        每次登陸以後默認都是英文的,要選擇一下語言而且登陸以後纔會變成中文,我們可以讓它一開始就是中文。
        然後修改xmlcrm/hibernate/rtmphib.lzx文件<attribute name="userlang" value="1" type="number" />這一句,value由1改爲9(9是chinese simplified在語言那個下拉菜單的順序)。
        修改xmlcrm/auth/checkLoginData.lzx文件combox name="language"標籤下的handler name="oninit"事件內容,兩行this.selectItemAt(0);全都改爲this.selectItemAt(8);,這樣系統會在初始狀態下默認選擇簡體中文(8=9-1)。
        這樣重新編譯,你的界面就初始爲簡體中文了。
        (貌似也可以用管理員帳戶在後臺直接改)

    4. 去掉登錄框上不需要的部分
        登陸框下面的語言選擇,顏色選擇和帶寬我都去掉了,方法如下:
        auth/checkLoginData.lzx文件,其中每個labeltext標籤和其下縮進的一個表單標籤(combobox/customedittext)一起代表一行的輸入框和其前面的名稱,將不需要的都在標籤最後加入 visible="false"屬性(我去掉了最後三項)。
        同時注意剩餘的labeltext和表單標籤中的y值爲其所在的縱向座標,需要修改之讓其匹配界面應在的位置。可以參考原刪除的標籤的y位置。最後的simplelabelbutton就不要改了,因爲是按照相對高度定位的。
        最後,修改整個窗體的高度,頂部的class標籤最後的height屬性,改爲應有的值,大概是每刪除一個表單標籤-30,例如刪除了3項輸入框,就是原有高度260 - (3 x 30) = 170。

    5. 修改登入後界面,直接到私人房間界面
        對於一個聊天室,登陸以後其實直接到房間列表就夠了,所以你需要。。。
        /xmlcrm/navi/mainnavi.lzx文件,找到mainnavi類,最後一個handler name="oninit",修改代碼行if (i==0) t1.onclick.sendEvent();中間if條件爲i==2。這樣進入後就會自動進入“會議”菜單
        然後找到mainmenumeetingsitem類,下面的handler name="onclick",最後一行else this._menuRef.subviews[0].onclick.sendEvent();改爲else this._menuRef.subviews[1].onclick.sendEvent();這樣進入後就會自動進入“私人會議”列表界面

    6. 去掉房間列表頁面中右側的聊天窗口
        進入房間列表頁面以後,可以看見右側有一個聊天窗口,如果你希望屏蔽他們的話。。。
        根據需要修改/xmlcrm/content/meetings/publicmeetings.lzx(公共房間列表)/xmlcrm/content/meetings/privatemeetings.lzx(私人房間列表),刪除<roomlistdetails x="510" y="50" name="_roomlistdetails" />一行即可

    7. 屏蔽頂部菜單
         頂部菜單可以進行一些操作,但對於一個聊天室,這些操作其實有些多餘,下面是刪除辦法。
        /xmlcrm/navi/mainnavi.lzx文件,找到mainnavi類,先在其中找到第一個view標籤(就在緊接一堆attribute下面,不含有name屬性的那個),然後爲其加上name屬性name="navibar"。然後還是mainnavi類中,找到最後一個handler name="oninit",在Debug.write("this: ",this);後添加代碼:
                if (value.length == 4) {
                this.navibar.setAttribute("visibility", "hidden");
                this.itemlist.setAttribute("visibility", "hidden");
                this.subitemlist.setAttribute("visibility", "hidden");
                }
        這樣,當管理員登陸的時候看到的還是原來的界面。普通用戶登陸則看不到頂部菜單。如果只希望屏蔽一級菜單,而希望留下“公共會議”和“私人會議”菜單,則不要第三行this.subitemlist.setAttribute("visibility", "hidden");即可。

    8. 屏蔽右上角菜單,僅剩下Logout登出
        登陸進去以後,屏幕右上角總是顯示三項:用戶、退出、報告錯誤。如果不希望有用戶和報告錯誤兩項的話,就按照下面的做。
        /xmlcrm/navi/mainnavi.lzx文件,找到helpandbugs類,將其中name="btn1"和name="btn2"的兩個view標籤及其包含內容全部刪去即可

    9. 修改未翻譯的文字
        即使選擇了簡體中文,系統依然會有很多地方的顯示是英文的,我們需要手工的將部分未翻譯過來的單詞自己翻譯一下,有三種辦法:
        (1) 在服務器端代碼(不是客戶端代碼)中找到webapp/openmeetings/languages/,裏面存的是所有的國際化文件,english.xml爲英語,chinese simplified.xml爲中文,用文本編輯器打開以後可以按照你自己的希望對不滿意的翻譯進行修改。修改以後需要用管理員帳號登陸,然後在【管理】-【Language-Editor】中Import修改後的xml文件到chinese simplified。
        (2) 用管理員帳號登陸,然後在【管理】-【Language-Editor】可以直接對數據庫中的語言進行翻譯,比較方便。
        (3) 直接訪問數據庫表fieldlanguagesvalues,用select * from fieldlanguagesvalues where language_id = 9即可查看所有的簡體中文國際化記錄,直接修改value的值也能達到同樣的結果,用數據庫的好處是查找比較方便,呵呵
        另外還有部分語言是硬寫在代碼裏的,這些只需要對整個項目搜索那段英文再修改爲中文即可,例如:/conference/popups/changedevice.lzx 中Do not ask again改爲中文“下次不再提示”

    10. 刪除進入房間後頂部菜單中不需要的功能
        進入房間後,頂部一排有很多功能菜單,申請主持、文件上傳、投票等等,這些功能對於一個純粹的聊天室來說,有些多餘,而且這些功能全都可以在其他地方實現,所以你可以根據需要將頂上的部分功能菜單給刪除。
        /xmlcrm/content/conference/conferencemenubar.lzx文件中找到conferencemenubar類,其下每一個labelmenu標籤代表一個菜單項,順序爲從左至右,將不需要的菜單項刪去或註釋掉即可。再在上面一點找到一堆command標籤,根據快捷鍵將不要的也刪除或屏蔽,以避免有人使用快捷鍵調用功能。
        而房間上中的按鈕和顯示則在文件/conference/moderation/moderationpanel.lzx的moderationpanel類中,同樣將不需要的屏蔽即可

    11. 國際化房間裏主要面板的標題
        進入房間後,發現不管怎麼修改語言數據,那三塊板子頂上的標題就是不變,這是因爲這三個標題沒有綁定國際化的原因。
        /xmlcrm/content/conference/conference.lzx中,找到videoboard類,刪去title屬性,加上labelid="313";
        找到whiteboardpanel類,刪去title屬性,加上labelid="315";
        找到filespanel類,刪去title屬性,加上labelid="314"

    12. 刪除房間裏左下角框中不需要的功能
         房間裏左下角框裏面是有聊天、文件和成員三個選項的,文件用來控制白板,還有些用,而投票在***室裏面恐怕用不上,所以去掉。
        /conference/tabbar/conferencecontainertab.lzx中,找到conferencecontainertab類,3個openmeetingsTabButton標籤每個代表一個tab按鈕,屏蔽不需要的

    13. 修改房間人數限制
        有些兄弟認爲4人房間的聊天室太無聊。。。不過好像也是。。。又不是打麻將。。所以。
        /xmlcrm/conference/roomlistItem.lzx文件中<attribute name="maxUsers" value="4" type="number" />一行,修改value的值即是修改最大人數。最大人數修改以後展示的時候界面可能有些亂,這個就你自己去調整了,因爲我做的時候沒有這個需求,所以沒有測試過實際效果,呵呵~~

    客戶端文件結構簡單介紹

    這裏只介紹幾個對界面修改比較有用的文件:

    /config.xml        一些全局參數定義
    /main.lzx        主文件,用來整合其他文件
    /maindebug.lzx       帶debug的主文件
    /xmlcrm/hibernate/rtmphib.lzx   定義並實例化hibrtmpconnection類,負責主要流程調度及部分默認配置,比較重要
    /xmlcrm/hibernate/netremotecallhib.lzx 定義netremotecallhib類,繼承於netremotecall類,負責調用後臺服務器端Java方法,使用很多
    /xmlcrm/content/meetings/publicmeetings.lzx 定義公共會議列表相關類
    /xmlcrm/content/meetings/privatemeetings.lzx 定義私人會議列表相關類
    /xmlcrm/conference/roomlistItem.lzx 定義roomlistItem類,代表會議房間列表頁面中的一個房間展示
    /xmlcrm/auth/checkLoginData.lzx   定義checkLoginData類,負責登陸框的顯示
    /xmlcrm/navi/mainnavi.lzx    定義登錄後的主界面展示相關類
    /xmlcrm/content/conference/conferencemenubar.lzx 定義房間左上角菜單
    /conference/moderation/moderationpanel.lzx 定義房間上中的顯示和按鈕
    /xmlcrm/content/conference/conference.lzx 定義房間主要的三個面板類
    /conference/tabbar/conferencecontainertab.lzx 定義房間左下角聊天窗口中的內容
    /conference/video/basevideoobject.lzx 視頻對象的基類,定義了視頻圖像的外框顯示
    /conference/video/videoobjectbroadcast.lzx 視頻播放類,定義了會議房間中的本人的視頻顯示
    /conference/video/videoobjectplayBroadcast.lzx 視頻播放類,定義了會議房間中的其他人的視頻顯示
    /conference/video/videocontainer.lzx 視頻容器類,定義了房間內左上角框裏的所有視頻對象的展示
    /conference/whiteboard/ 白板相關類
    /conference/tabcontent/chat 房間內的聊天窗口相關類
    /conference/tabcontent/files 房間內的文件窗口相關類

    部署

    要部署的時候建議把整個客戶端生成一個swf文件然後複製到服務器端(即使用SOLO方式編譯,如果不知道如何編譯,參考我的另一篇文章 OpenLaszlo下的Proxied和SOLO兩種編譯方法 ),這樣服務器端部署的時候就不需要再開啓OpenLaszlo服務器了。另外注意,將修改過的config.xml文件和swf文件一起拷貝到服務器去,否則有些修改又沒了,呵呵。(如果swf文件和red5是部署在同一臺機器上的,建議你把config.xml文件中rtmphostlocal留空,這樣可以省去很多麻煩)

    拷貝過去後先修改index.jsp文件中SWFObject的第一個參數,使之指向你的swf文件。然後訪問http://localhost:5080/openmeetings/即可看到效果,部署完成。

    然後,然後。。。如果你在自己的機器上部署了,希望外網的朋友來和你一起測試或使用的話,注意要配置路由上用虛擬主機端口映射,開放1935、8088、5080三個端口指向自己(當然也可以直接將自己設爲DMZ。。如果感覺自己夠安全的話。。),如果是非SOLO方式還要爲Laszlo服務器開放8080;另外,機器上如果有Kapersky之類的話需要關閉,否則會攔截外網的端口訪問。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章