2024年1月20日发(作者:)

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 系统架构

Mysql数据库

数据库读写

信令文件服务

中心服务

会议服务1 会议服务2 会议服务…

通信网络

IM客户端 IM客户端

屏点H播

幕播3

录媒2

制体

3与转

电播换

放 器

系统架构及信息流程图

IM客户端

主程序

自动更新

电子签章

直播采集

监控编码器

音频视频录制

一个中心服务、多个MCU和多个客户端结构。

第-1-页

2.1 中心服务

数据库服务:MySQL

数据库读写服务:EMC2N

会议服务:EMMCU

会议信令、文件服务:EMC2S

中心服务器:EMRouter

2.2 客户端

主程序:IM

自动更新:TestLiveUpdate

电子签章:TestOfficePic

H323电话:H323Phone

屏幕录制与播放:EMScrnRecorder

播放器:EMAVPlayer

boost_system-vc71-mt-1_:C++库Boost的库文件

:录制声音

:带宽测试

:录制声音和视频

:企业网络电视台

:监控的视频流的编码器

:编码器配置文件

:直播编码器

:直播编码器配置文件

:视频监控控件

:备忘录

:SIP电话功能库

:SIP电话模块

:系统信息模块

:点播模块

:点播转换器

:GIPS VoiceEngine声音引擎库

:天气信息

:工作日志

:海康威视采集卡开发库

:微软提供一款开源的用于在线编辑、调用Word、等的ActiveX控件

:声音编码库

:声音编码控件

:播放器

:声音调节向导

:本系统基本函数库

第-2-页

Excel 、PowerPoint

:聊天模块

:工作组模块

:会议模块

:聊天对话框模块

:文件共享

:同步浏览

:H323协议库

:本系统通信库

:本系统通信库

:媒体编码解码库

:IM协议库

:会议录制

:屏幕录制

:皮肤库

:窗口管理库

:基本界面库

:用户文件管理模块

:视频编码器

:视频控件

:白板

:网络会议支持库

ff_:wmv9采集编码库

FT_ET99_:ET99软件保护锁库

:H323电话模块

:海康解码库

:聊天记录信息数据库

icu_auto_:自动回复

icu_media_:媒体共享历史记录

icu_quik_:快速回复

:声音视频编码库

:AAC编码库

:AAC音频格式解码库

:音视频播放解码

:Speex编解码器函数库

:Speex编解码器函数库

:记录参加的会议历史

MEETING_share_:会议室共享目录

MEETING_share_:会议室共享文件

:ms vc 动态库

:串口通信库

portaudio_:音频处理函数库

:显示后处理库

第-3-页

:虚拟打印处理库

:RM格式转换

:备忘录数据库

:虚拟打印机

:虚拟打印机函数库

:SQLite是一款轻型的数据库,数据库访问库函数

:虚拟打印输入模块

:更新模块

:电子签章

:卸载,由安装程序产生

:主程序

:配置文件

:版本定义文件

:远程控制幕分块传输库

:远程控制显示

:WINDWOS的录音控件

:远程控制库

:微软ASF格式编码解码库

:微软wmv格式解码库

:微软wmv格式解码库

:微软wmv格式编码库

:xvid格式编码解码库

3 代码和类库说明

IM系统接口及其实现类非常优秀。就整个软件的设计架构来说,IM系统完全面向对象,并充分运用了类接口设计模式,重构后的整个代码简洁且高效。

3.1 服务端代码结构和类库

服务器调用ACE自适配通信环境进行服务器设计,利用统一的接口TProactor开发服务器程序,在Windows下使用前摄器完成端口,可以获得较好的效率。

3.1.1 EMC2S

服务器首先调用ACE_TMAIN进入主进程,控制配置信息类CConfigFile,读取配置信息,CLicense类获取服务器认证的信息,启动通信管理类CC2SManager进行通信,然后调用通道管理器类ChannelManager,接收器类ChannelAcceptor,IO线程池类IOThreadPool,启动完成端口监听,进行服务。

第-4-页

服务器<<接口>>ACE_TMAINCConfigFileCLicenseCC2SManagerChannelManagerIOThreadPoolChannelAcceptor

3.1.2 IMC2N

信令、文件服务器调用数据库服务器BzC2N完成数据库读写功能。

其中的关键类有:

CC2N类:监听处理登录连接命令。

CC2Nsession类:处理会话,转发会话数据。

CRcvProtocol类:通道工厂管理类,负责打开、关闭、读写通道数据。

3.1.3 IMMCU

会议服务,处理会议会话和会议命令。启动后CconfigFile类读取配置文件,之后启动CMCUServer类监听并连接到EMC2S服务器,处理会议命令。后启动CIOEventManager处理IO事件,启动CMCUManager对UDP会话的会议服务器管理,CTCPSessionMgr对TCP会话进行管理,启动线程进入会议命令的事件循环。

第-5-页

服务器<<接口>>ACE_TMAINCConfigFileCMCUServerCIOEventManagerCMCUManagerCManagerUDPCTCPSessionMgr

3.1.4 IMRouter

中心服务与信令、文件服务器交互,对指令进行管理分发。

3.2 客户端代码结构和类库

客户端主程序以MFC框架进行开发,CEMeetingApp从CWinApp派生,控制CvoiceEngine初始化GIPS声音引擎,初始化CaudioEngine音频引擎,CEMVideoCtrl视频编码器引擎,加载皮肤语言类Skin,给应用程序提供皮肤图片和文字信息,启动主对话框类CEMeetingDlg。

第-6-页

CVoiceEngine客户端主程序<<接口>>CWinApp<<接口>>CEMeetingAppCAudioEngineCEMVideoCtrlSkinCEMeetingDlg

主对话框类CEMeetingDlg是客户端主程序的界面和控制类,具有重要地位。对话框启动后,调用登录类CDlgLogin登录,通过CIniFile类读取配置,CDlgLog进行日志记录,CDlgUser类显示用户信息,CDlgMeeting类启动会议室,CDlgGroup类显示工作组信息,CDlgDepart显示部门信息,CDlgTabIE类实现网页浏览,CDialogIEMini类完成迷你首页功能。

CDlgLoginCDlgGroupCEMeetingDlgCIniFileCDlgDepartCDlgLogCDlgTabIECDlgUserCDialogIEMiniCDlgMeeting

第-7-页

4 系统通信

设计通信类进行TCP通信,CVideoSenderTCP进行视频发送,CVideoReceiverTCP进行视频接收。CAudioReceiverTCP接收音频信息, CAudioSenderTCP发送音频信息。

class CVideoSenderTCP

{

public:

CVideoSenderTCP(IVideoSenderNotify&rIVideoSenderNotify,CVideoChannel&rVideoChannel);

virtual~CVideoSenderTCP(void);

class CAudioReceiver

{

public:

CAudioReceiver(IAudioReceiverNotify& rNotify,unsigned long

ulAudioChannelID,unsigned long ulUserID,bool bP2P = false);

virtual ~CAudioReceiver(void);

支持UDP和P2P协议的通信类。

CAudioSenderUDP

CAudioReceiverP2P

CVideoReceiverP2P

CVideoReceiverUDP

CClientTCP用于信息传递。

第-8-页