OM-3.0.1 产品化开发与改造
服务端开发
......
src/screenshare/java
src/axis/java
增加新的会议类型
代码开发
前台开发
运维测试
......
om-3.0.1 工程设置注意点
W7平台安装 OM-3.0.1
SIP 集成的问题:Asterisk-11.2
屏幕共享功能使用
OM安装
环境搭建 Win7
添加 *.jar库
借助 MyEclipse10.7 断点调试 om-3.0.1
在MyEclipse10.7 中安装Red5Plugin
red5-debug.bat 启动报错
开发注意事项
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.
桌面共享
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类,也有部分回调。
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 ,行号那项打勾
~、 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
。
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 一般安装方法
1、
启动red5服务器:执行 red5\red5.bat 批处理命令。
2、
将出现安装界面,后按照页面提示的步骤进行安装。
~、OM-3.01 重新安装方法
将MySQL 中 "openmeetings" 数据库改名,注意备份旧的数据库。
启动red5服务器,重新安装OM-3.01 。
om开发环境
: OpenMeetings_3.0.1 + Red5_1.0_RC3 + MyEclipse10.7
\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
* 注意:
(*)"Debug As"调试启动时,MyEclipse10.7自带的浏览器根据项目名"
Openmeetings 3.0.x
"自动生成的的网址不正确:
http://localhost:5080/Openmeetings%203.0.x/
,与"webapps/openmeetings"虚拟目录名不符 。
(*) 启动Jetty或
Tomcat
容器进入om前 先要启动并连接MySQL 数据库。
参考网文: 如何使用 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进程 。
~、
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里创建的。