网络通信 频道

H.323电视会议系统终端的实现2

可以看出,各个类之间的关系是相当密切和复杂的,然而,亦有着很清晰的主线。上图的核心是Endpoint(H323Endpoint),该类包含了3大功能:

  (1)能力管理—对应Capability:每一个Capability类的派生类对应一个H323Codec类的派生类,而Codec实例是在逻辑信道Channel的实例中使用的。Codec的实例由相关的Capability实例负责创建。

  (2)连接管理—对应Connection:一个终端可以包含多个连接,由一个“连接字典”管理这些连接,每一个连接可能对应多个Channel和Negotiator。

  (3)侦听管理—对应Listener:侦听线程在接收到呼入时,创建Transport实例,再在Transport的基础上建立Connection。运用OpenH323 Library开发基于H.323协议的多媒体应用程序。

  3.2 终端实例

  本系统的开发环境是由实验室PC机组成的局域网,每台PC机都配有摄像头、麦克风等多媒体设备,以Wingdows2000professional为平台,采用VC++6.0作为开发工具。本实例主要包括MyH323EndPoint类(代表终端,继承自H323EndPoint)、MyH323Connection类(代表一个连接,继承自H323Connection)和几个用户接口类,图5是终端实现流程图,包含以下几个阶段:

  (1)应用程序初始化:这部分主要是对应用程序进行初始化工作,包括应用程序各种命令的帮助信息的显示,分析用户输入,设置应用程序参数等。

  (2)创建MyH323EndPoint实例:这是通过调用继承自H323EndPoint类的MyH323EndPoint类的构造函数来实现的。

  (3)初始化MyH323EndPoint实例:调用MyH323EndPoint:Initialise函数对终端实例进行初始化,包括设置(获得)本地用户名,本地侦听端口,缺省呼叫设置,查找和设置视频音频设备和参数,设置终端能力集,打开RAS的信道和H.225的TCP信道。

  (4)等待呼入或发起呼叫:根据用户的命令,进入等待呼入状态(打开TCP侦听线程)或者发起一个新的呼叫(调用MyH323EndPoint::MakeOutgoingCall)。

  (5)等待用户命令:调用MyH323EndPoint::AwaitTermination函数,等待用户的输入命令,然后根据用户的输入命令执行不同的操作(呼叫保持,呼叫前转,调整音量…)。

  H323终端在发起呼叫或者接纳一个呼入时,一般遵循以下5个过程:

  A:呼叫建立,包括接纳控制(H.225信令,RAS过程);

  B:通信能力交换和模式设定,以协调通信双方的互通性(H.245控制过程);

  C:建立声像通信逻辑通道,包括会议通信的建立(H.245控制过程);

  D:通信过程中的呼叫服务,包括带宽修改,由点到点通信扩展为会议通信等(H.225信令,RAS过程);

  E:呼叫终结,关闭所有信道(H.245控制过程)。

  4 结论

  本文在介绍H.323电视会议系统及其终端结构的基础上,用一个实例说明了如何通过OpenH323 Library来实现H.323电视会议系统终端。


转载地址:http://www.voipchina.cn/technology/2004-09-30/38215.shtml

0
相关文章