OM-3.0.1 产品化开发与改造

本文详细介绍了OpenMeetings 3.0.1的产品化开发与改造过程,包括服务端和前台开发的关键内容。涉及到桌面共享、Axis组件、会议类型扩展、环境变量配置、数据库设置、文件路径、编译结果以及OpenLaszlo前端的交互实现。同时,文章还提到了运维测试中需要注意的事项,如环境变量、MySQL配置、OpenOffice的安装与设置,以及功能调试和使用。此外,还讨论了与Asterisk的SIP集成问题和屏幕共享功能的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OM-3.0.1 产品化开发与改造

Openmeetings provides video conferencing, instant messaging, white board, collaborative document editing and other groupware tools using API functions of the Red5 Streaming Server for Remoting and Streaming.

OpenMeetings is a project of the Apache, the old project website at GoogleCode will receive no updates anymore. The website at Apache is the only place that receives updates.

服务端开发
......
src/screenshare/java
桌面共享

src/axis/java
axis  (Apache EXtensible Interaction System 即阿帕奇可扩展交互系统)

增加新的会议类型
增加新的会议类型、以及创建新的数据库表模型

时间上 : 短会
座谈会(人人都可发言)  一人主说(传统教室类)
企业面试  

特殊部门工作会议 : 如政务类会议 安全性要求级别加高,不使用会议记录功能

会议参数可配置: 主持人自主配置 新的个性与会类型

       由不同会议决定 资源分配 : 麦克风 摄像头 白板 ...

代码开发
~、主要配置文件
(*) 编译前所在位置
\om-3.0.1-src\src\main\webapp\WEB-INF\red5-web.properties
\om-3.0.1-src\src\main\webapp\public\config.xml

(*) 编译后所在位置
\om-3.0.1\webapps\openmeetings\WEB-INF\classes\openmeetings-applicationContext.xml
\om-3.0.1\webapps\root\WEB-INF\red5-web.properties
\om-3.0.1\webapps\openmeetings\WEB-INF\red5-web.properties
\om-3.0.1\webapps\openmeetings\public\config.xml

~、
文件上传路径          \om-3.0.1\webapps\openmeetings\upload\files
               \om-3.0.1\webapps\openmeetings\uploadtemp\files
               \om-3.0.1\webapps\openmeetings\streams                        //流媒体文件

~、编译结果
\om-3.0.1\ webapps\openmeetings\WEB-INF\lib

openmeetings-axis-3.0.1-RELEASE.jar                src\axis\java
openmeetings- cli -3.0.1-RELEASE.jar                src\ install \java        
openmeetings-core-3.0.1-RELEASE.jar
openmeetings-db-3.0.1-RELEASE.jar
openmeetings-util-3.0.1-RELEASE.jar
openmeetings-web-3.0.1-RELEASE.jar


\om-3.0.1\ webapps\openmeetings\screensharing\

openmeetings-screenshare-3.0.1-RELEASE.jar        src/screenshare/java



前台开发
\om-3.0.1-src\WebContent

前台是由OpenLaszlo编写lzx文件,编译完成后是一个Flash的形式(swf 文件)。
前后台的交互大部分通过RPC调用实现,即OpenLaszlo程序远程调用后台的Java类,也有部分回调。


运维测试
......
om-3.0.1 工程设置注意点
OpenMeetings_3.0.1  + Red5_1.0_rc3  + Java EE Kepler SR2 64位
---------------
~、环境变量设置,并选择替换原来的环境变量
RED5_HOME        E:\LAB\opensource\Svr_VoIP\Red5\om-3.0.1
JAVA_HOME        D:\Java\jdk1.6.0_38

~、
MySql在 即使未创建openmeetings的数据库时,也要启动等待连接,否则启动失败。

~、无法调试问题
调试端口号不配对: red5-debug.bat里设置的"address=8787",  及 DE中"Debug on Server" 时选中的Red5服务器所设置的 "Debug Port"值
编译后的.class缺少行号属性 : Preferences - Java - Compiler - Classfile Generation ,行号那项打勾




W7平台安装 OM-3.0.1
~、 Win7 下安装 om-3.0.1
* MySQL 数据库配置
cd   ...\webapps\openmeetings\WEB-INF\classes\META-INF
copy mysql_persistence.xml persistence.xml
修改persistence.xml 数据连接用户名和密码:
<properties>
<property name="openjpa.RuntimeUnenhancedClasses" value="unsupported" />
<property name="openjpa.ConnectionDriverName" value="org.apache.commons.dbcp.BasicDataSource" />
<property name="openjpa.ConnectionProperties"
value="DriverClassName=org.apache.derby.jdbc.ClientDriver,
Url=jdbc:derby:openmeetings;create=true,
create=true,
MaxActive=100,
MaxWait=10000,
TestOnBorrow=true,
                                  Username=root,
                                 Password=123456 " />

安装后,在MySQL中自动创建一个新库"openmeetings"(借用uubridge-win 的MySQL5.5.8),安装后授权:
// create database openmeetings default character set 'utf8';
grant all privileges on openmeetings.* to 'root'@'localhost' identified by '123456' with grant option;
grant all privileges on  openmeetings.*  to 'root'@' % ' identified by '123456';                        //允许从其它所有IP登录

*
装完 OpenOffice 后,执行命令以开启文档转换后台服务,并指定某一端口号 :
soffice.exe -headless -nologo -norestore -accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager
       //若命令未识别,则Path变量加入工具路径: E:\Program Files\OpenOffice 4\program ,重启机器,若不重启则此后台服务无法启动,不能在指定端口号监听。

*
安装页第4页 Converters Tools 路径配置:

F:\LAB\ztttprj\softgr\uubridge-win\tools\ffmpeg\bin
F:\LAB\ztttprj\softgr\uubridge-win\tools\swftools

F:\LAB\softgreen\ProgAssist\Tools\ImageMagick-6.9.1-2
F:\LAB\softgreen\ProgAssist\Tools\sox-14.4.0
F:\LAB\softgreen\ProgAssist\Tools\jodconverter-2.2.2\lib                // JOD Path

另两个软件须正常安装(非Protable ):
OpenOffice4.1.1  , 如  E:\Program Files\OpenOffice 4\program
GhostScript9.16  ,似乎可忽略,配置路径时没有它的输入框

* 注意点。
   安装前,要等待 Red5服务器启动结束,加载安装模块完毕才能出现安装界面,否则可能会提示错误"\languages\languages.xml 系统找不到相关路径",或其他通知。
   安装过程中,第二页安装页面"Userdata"里填的信息 是管理级别的用户,也是表"om_user"里的第一个用户,登录后可以配置整个会议系统参数。

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

* 下载所需安装包:
1)  启用图片上传和导入到白板
下载  ImageMagick
2)  启用的 PDF 文件导入到白板
下载  GhostScript
下载  SWFTools
3)  启用 doc docx PPT PPTX
下载 JODConverter
下载 OpenOffice
4)  启用记录和进口的 AVI FLV MOV MP4 到白板
下载  yasm  FFmpeg ,必须先安装 yasm ,不然无法安装 FFmpeg
下载 SOX

SIP 集成的问题:Asterisk-11.2
om-3.0.1-src + Red5phone\red5sip + Asterisk-11.2.1 + mysql_start_uub.bat

~、 功能设置
(*)会议室的"操作"下拉框可"显示SIP拔号"
Enable SIP transport in the room : 管理--会议室--SIP设置

~、
按网文要求搭建环境后,用eyeBean拔打会议室ID号,可以拔通,但只听到音乐回放,而不是加入了会议,在界面上,也没有像bbb那样,有会议室进来软电话接通的图标出现: Instruction how-to set up OpenMeetings SIP-Transport integration for Openmeetings 3.0 .mht

原因猜测:
(1)AS软交换配置有问题。
confbridge.conf 如何起作用 ,能否使得软电话语音接入会议室参加会议


~、red5sip

Red5phone 流程图参考,到底red5sip3.0 在集成Red5与AS-11之间,起什么作用,如何演示出来 ?


屏幕共享功能使用
~、 参数设置及使用
1〉"default.quality.screensharing"参数设置:        1  -->  2
2〉控制面板 -Java-安全 - Java安全级别        :        高 --〉 中
参数设置完毕,重启om服务器端。

3〉此次测试,浏览器用 Google Chrome 41可以共享,用Firefox-42的共享不了,且firefox自身卡死,强制退出。

(*) 同一台机器上测试, 两个不同用户 登录

(*) 实际生产环境测试, 两台不同机器 登录
第〈2〉点设置须在两台机器都要更改。

~、 Google Chrome 41测试,点击"共享屏幕"菜单时,从服务器下载下列程序,没指定路径时,下载保存到默认位置("Administrator\Downloads"):
public_7.jnlp
下载地址 :

~、功能使用
*
如果对端也以同样的管理员、主持人帐号登录时,那么
OM的屏幕共享,对端可以控制修改共享的机器,是一个简化版的远程桌面程序,并非仅阅读编辑一个共享屏幕。注意,对端的右键无效,弹出的还是自身页面Flash的设置框。
但是,如果不是以主持人、管理员帐号登录的,对端还能控制共享者的机器吗 ??
*
共享屏幕的质量(一般、高清晰、超高清晰)同时决定了在对端看到屏时的原始尺寸大小,可以拉大,但变模糊。

~、共享屏幕时,在您的计算和远程计算机间拷贝和粘贴文本
1) 从您的计算机到远程计算机:从本机的剪切板拷贝和粘贴到远程控制计算机中,首先在屏幕上点一下,然后在文本框中右键点击,选择"插入"。
2)从远程计算机到您的计算机:从远程计算机拷贝文本到您的计算机中,首先高亮选择远程计算机的文本,然后右键点击屏幕选择拷贝高亮文本即可。


OM安装
~、OM 一般安装方法
1、
   启动red5服务器:执行 red5\red5.bat 批处理命令。
2、
   在浏览器运行 http://localhost:5080/openmeetings/install  (5080是默认tomcat端口,可以手动配置),
将出现安装界面,后按照页面提示的步骤进行安装。

~、OM-3.01 重新安装方法
将MySQL 中 "openmeetings" 数据库改名,注意备份旧的数据库。
启动red5服务器,重新安装OM-3.01 。


环境搭建 Win7

om开发环境  : OpenMeetings_3.0.1 + Red5_1.0_RC3 + MyEclipse10.7


添加 *.jar库

\om-3.0.1\lib        52个
\om-3.0.1        3个                  //boot.jar , commons-cli-jar-1.2.jar , red5.jar

\om-3.0.1\plugins\tomcat-embed-core-jar-7.0.50.jar                                  :

\om-3.0.1\webapps\openmeetings\WEB-INF\lib\commons-transaction-jar-1.2.jar          :  
\om-3.0.1\webapps\openmeetings\WEB-INF\lib\mail-jar-1.4.7.jar                        :
\om-3.0.1\webapps\openmeetings\WEB-INF\lib\openjpa-bundle-2.2.2.jar                :

------------------------
src\install\java\org\apache\openmeetings\cli\ Admin.java   报告不存在的包路径:

tomcat-embed-core-jar-7.0.50.jar :
        javax.servlet.ServletContextEvent
        javax.servlet. xxx

commons-cli-jar-1.2.jar  :
         org.apache.commons.cli.CommandLine
        org.apache.commons.cli.OptionGroup

mail-jar-1.4.7.jar  :
        javax.mail.internet

commons-transaction-jar-1.2.jar  :
        org.apache.commons.transaction.util.FileHelper

借助 MyEclipse10.7 断点调试 om-3.0.1
* 注意:
  (*)"Debug As"调试启动时,MyEclipse10.7自带的浏览器根据项目名" Openmeetings 3.0.x "自动生成的的网址不正确: http://localhost:5080/Openmeetings%203.0.x/  ,与"webapps/openmeetings"虚拟目录名不符 。
  (*) 启动Jetty或 Tomcat 容器进入om前 先要启动并连接MySQL 数据库。


在MyEclipse10.7 中安装Red5Plugin
参考网文: 如何使用 Red5 插件创建 Red5 项目? -2012-06-14   Defonds 的专栏 - 博客频道 - youkuaiyun.com.mht

插件安装: red5-plugin-for-(my)eclispe- 1.0x .zip 直接解压到dropin目录下 ,用red5.link文件里填解压地址的方法不行。
         解压安装成功后弹窗 :
         但,在 Java-EE-Kepler-SR2-x64 里安装并设置Red5服务器成功后,便没有此弹窗。        
         

配置Red5 服务器:
注意(*)"Server's host name"填Red5所在 IP地址,默认为自环的"localhost"。
       "Server name" 可改名,如下图中增加了版本号标识"(1.0-RC3)".
   (*)将 "Runtime Directory" 选择为 Red5 的安装目录(不是Red5Plugin 的解压目录)
   (*)最好是一个"Server name"对应一个"Server runtime environment",这样的话,若配置出错,重新配置前,只需整个删除旧的配置即可,也不会影响其它的"Server name"对应的Server。
        删除旧配置方法:Preferences - Server - Runtime Environment - 选中目标,Remove

问题(+)Myeclipse 输出窗口 "Servers" 标签页下没有"Red5 Server"一项 , 只好到Red5 的安装目录下手动双击 red5-shutdown.bat ,
       才能退出Red5服务器,关闭所在 java.exe进程 。
                  
       
    
              
   



red5-debug.bat 启动报错
~、
ERROR: transport error 202: bind failed: Address already in use
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:690]

原因是当前应用的调试端口已经被别的应用占用了,你修改一下你的应用的调试端口就行了,找一个没有被使用的端口。
打开 red5-debug.bat : " address=8787, "  将8787 改成其他未占用端口号。

~、
Exception org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'red5.common' defined in class path resource [red5.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.context.support.FileSystemXmlApplicationContext]: Constructor threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'rmiRegistry' defined in class path resource [red5-common.xml]: Invocation of init method failed; nested exception is java.rmi.server.ExportException:  Port already in use: 9999 ; nested exception is:
       java.net.BindException: Address already in use: JVM_Bind

端口冲突,解决方式:
1、关闭占用端口号9999 进程。 (1) 用命令jps 显示占用者ID ,  tskill 进程ID (2)强行"Terminate"进程所在的java.exe
2、给正在调试的程序 另设端口号


开发注意事项
* 安装时,om3.0.1的数据库 不是用脚本 进行单独安装,而是在安装om的过程中,一并安装数据库 及配置工具路径的。
* 当下,om3.0.1的数据库 暂时寄宿安装在 uubridge-win 的MySQL5.5.8里。

* 先启动mysql数据库,再进行om调试。
关闭当次调试时,直接双击 red5-shutdown.bat 调用 此bat命令即可 ,不用先在IDE环境里点红色停止按钮,再双击这个批处理 。

* red5-shutdown.bat 须及时运行--当结束一次调试工作时,以关闭java.exe 释放5080端口,否则第二次启动调试 报告端口占用。如下:
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)
ERROR: transport error 202: bind failed:  Address already in use
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:690]


------------- myeclipse10.7 开发-------------

* 安装red5插件,手动定义配置一个red5服务器。
注意,配置时,右击项目-Debug as-Debug on Server-Manually Define a new Server 来创建,
而不是从Preferences-Server-Runtime Environment里创建的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值