1 系统概述
IM 实现即时通信、视频会议、OA 功能的系统。系统分为服务端和客户端,基于C/S 结构设计,采用TCP/IP 、UDP/IP 进行数据通信。视频编码采用WMV9、MPEG-4、XviD 、H.264等编码器,支持多种分辨率,从160X120到704X576等。支持多种码流从5k~2048k 和多种帧率5~30帧/秒。支持高保真语音,音频编码采用先进的GIPS 、G .722.1、G .723、Speedx 、AMR 、FAAC 、iLBC 、GSM 、ADPCM 、ULAW 等编码器,带宽3.6~80k ,采用噪声抑制、回音消除等技术,满足低带宽要求和具有强大的抗误码能力,给用户以最真实的会议现场还原和清晰的视频交互效果。
2 系统架构
系统架构及信息流程图
一个中心服务、多个MCU 和多个客户端结构。
中心服务
IM 客户端 IM 客户端
IM 客户端
Mysql 数据库
通信网络
数据库读写
会议服务1 信令文件服务
主程序
自动更新 电子签章 H 3 2 3电话
屏幕录制与播放 播
放器
点播媒
体转换
器 直播采集
监控编码器
音频视频录制
会议服务2 会议服务…
2.1中心服务
数据库服务:MySQL
数据库读写服务:EMC2N
会议服务:EMMCU
会议信令、文件服务:EMC2S
中心服务器:EMRouter
2.2客户端
主程序:IM
自动更新:TestLiveUpdate
电子签章:TestOfficePic
H323电话:H323Phone
屏幕录制与播放:EMScrnRecorder
播放器:EMA VPlayer
boost_system-vc71-mt-1_36.dll:C++库Boost的库文件
<:录制声音
BzBandWidth.dll:带宽测试
<:录制声音和视频
BzCast.dll:企业网络电视台
<:监控的视频流的编码器
BZEncoder.ini:编码器配置文件
<:直播编码器
BzLive.ini:直播编码器配置文件
BzMc.dll:视频监控控件
BzReminder.dll:备忘录
BzSip.dll:SIP电话功能库
BzSipPhone.dll:SIP电话模块
BzSysMsg.dll:系统信息模块
BzVod.dll:点播模块
<:点播转换器
BzVoiceEngine.dll:GIPS V oiceEngine声音引擎库
BzWeather.dll:天气信息
BzWorkLog.dll:工作日志
DS40xxSDK.dll:海康威视采集卡开发库
<:微软提供一款开源的用于在线编辑、调用Word、Excel 、PowerPoint 等的ActiveX控件
EMAudioCodec.dll:声音编码库
EMAudioCtrl.dll:声音编码控件
:播放器
EMA VWizard.dll:声音调节向导
EMBase32.dll:本系统基本函数库
EMChat.dll:聊天模块
EMDlgGroup.dll:工作组模块EMDlgMeeting.dll:会议模块EMDlgMsg.dll:聊天对话框模块EMFileShare.dll:文件共享
EMIESync.dll:同步浏览
EMLibH323.dll:H323协议库EMLibMC.dll:本系统通信库EMLibSNet.dll:本系统通信库EMMediaFile.dll:媒体编码解码库EMMTC2S.dll:IM协议库
EMNet.dll:
<:
EMRecord.dll:会议录制:屏幕录制EMSkin.dll:皮肤库
EMTM.dll:窗口管理库
EMUIBase.dll:基本界面库EMUserFileMgr.dll:用户文件管理模块EMVideoCodec.dll:视频编码器EMVideoCtrl.dll:视频控件
EMWB.dll:白板
EMYT.dll:网络会议支持库
ff_wmv9.dll:wmv9采集编码库
FT_ET99_API.dll:ET99软件保护锁库
开源oa系统源码<:H323电话模块HikPlayM4.dll:海康解码库
icu.db:聊天记录信息数据库
icu_l:自动回复
icu_l:媒体共享历史记录
icu_l:快速回复libavcodec.dll:声音视频编码库
libfaac.dll:AAC编码库
libfaad2.dll:AAC音频格式解码库libmplayer.dll:音视频播放解码libspeex.dll:Speex编解码器函数库libspeexdsp.dll:Speex编解码器函数库MeetInfo.ini:记录参加的会议历史MEETING_l:会议室共享目录MEETING_l:会议室共享文件MFC71u.dll:ms vc 动态库
Pcomm.dll:串口通信库
portaudio_x86.dll:音频处理函数库postproc.dll:显示后处理库
PrinterProcesser.dll:虚拟打印处理库
RealMediaSplitter.ax:RM格式转换
remind.db:备忘录数据库
<:虚拟打印机
SMSAPI.dll:虚拟打印机函数库
sqlite3.dll:SQLite是一款轻型的数据库,数据库访问库函数
<:虚拟打印输入模块
<:更新模块
<:电子签章
<:卸载,由安装程序产生
<:主程序
IM.ini:配置文件
VNCHooks.dll:远程控制幕分块传输库
VncViewerDll.dll:远程控制显示
wavdest.ax:WINDWOS的录音控件
WinVNCDll.dll:远程控制库
WMASF.dll:微软ASF格式编码解码库
wmvcore.dll:微软wmv格式解码库
wmvdmod.dll:微软wmv格式解码库
wmvdmoe2.dll:微软wmv格式编码库
xvidcore.dll:xvid格式编码解码库
3代码和类库说明
IM系统接口及其实现类非常优秀。就整个软件的设计架构来说,IM系统完全面向对象,并充分运用了类接口设计模式,重构后的整个代码简洁且高效。
3.1服务端代码结构和类库
服务器调用ACE自适配通信环境进行服务器设计,利用统一的接口TProactor开发服务器程序,在Windows下使用前摄器完成端口,可以获得较好的效率。
3.1.1EMC2S
服务器首先调用ACE_TMAIN进入主进程,控制配置信息类CConfigFile,读取配置信息,CLicense类获取服务器认证的信息,启动通信管理类CC2SManager进行通信,然后调用通道管理器类ChannelManager,接收器类ChannelAcceptor,IO线程池类IOThreadPool,启动完成端口监听,进行服务。
CConfigFile
服务器
<<;接口>>ACE_TMAIN
CLicense
CC2SManager
ChannelManager
IOThreadPool
ChannelAcceptor
3.1.2 IMC2N
信令、文件服务器调用数据库服务器BzC2N 完成数据库读写功能。 其中的关键类有:
CC2N 类:监听处理登录连接命令。
CC2Nsession 类:处理会话,转发会话数据。
CRcvProtocol 类:通道工厂管理类,负责打开、关闭、读写通道数据。
3.1.3 IMMCU
会议服务,处理会议会话和会议命令。启动后CconfigFile 类读取配置文件,之后启动CMCUServer 类监听并连接到EMC2S 服务器,处理会议命令。后启动CIOEventManager 处理IO 事件,启动CMCUManager 对UDP 会话的会议服务器管理,CTCPSessionMgr 对TCP 会话进行管理,启动线程进入会议命令的事件循环。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论