基于H.323的网守中呼叫信令处理模块的设计与实现
2012-11-10施涛骆瑞玲
施涛,骆瑞玲
(石河子大学信息科学与技术学院,石河子832003)
传统电话话音质量高,但是对带宽使用效率低,且费用昂贵,而IP电话话音质量较低,但费用低廉,带宽利用率较高,从而获得了较为广泛的应用。目前VoIP(Voice over IP)体系存在ITU-T制订的H.323体系标准和IETF制订的SIP(Session initiation protocol)[2]协议等,我国实际使用较广泛的是H.323协议体系结构,提高IP电话的通话质量和大规模应用IP电话时的接通率就成了应用中比较重要的问题。文献[1]描述了在不保证服务质量的包交换网络中各种终端和其他实体如何提供多媒体通信服务,定义了4种实体:终端(Terminal)、网关(Gateway,GW)、网守(Gatekeeper,GK)和多点控制单元(Multipoint control unit,MCU),其中网守提供对端点(终端、网关、多点控制单元统称为端点)和呼叫的管理功能。文献[3]在文献[1]的基础上描述了基于包交换网络各种H.323实体如何管理音频、视频、数据和控制信息以提供语音服务。文献[4]提出改进网络负载平衡可以提高呼叫通话率。文献[5]提出网守通过号码前缀转换完成在IP网内进行呼叫路由。本文在文献[4]的基础上研究了网守自身的呼叫路由信令过程,在文献[5]的基础上研究了网守的快速连接信令处理过程。
目前,对呼叫信令处理的常规连接过程为:首先利用H.225.0信令建立呼叫,然后进行能力交换,最后打开逻辑信道,过程较为复杂,呼叫的建立时延偏长。本文针对网守的呼叫信令模块,对在信令处理模块中的 H.225.0[3]消息如何进行快速连接处理呼叫信令提出具体的设计方案,以实现网守的快速连接信令处理功能。
1 网守的信令处理协议H.225.0协议过程
1.1 H.225.0呼叫信令消息
H.225.0基本呼叫控制消息取自于 Q.931[6]和 Q.932[7]消息。其呼叫信令消息见表1[3]。
表1 呼叫信令消息Tab.1 Call signaling message
用户——用户信息单元UUIE(User user information element)是 H.225.0信令消息中最为重要的信息单元。它传送常规的端到端用户数据和H.323特定的呼叫控制信息,这些特定信息构成了H.323系统呼叫信令的核心内容。
UUIE中定义的内容均为H.323系统呼叫信令必需传送的信息,这些信息无法用原来的Q.931/Q.932的信息单元进行传送,因此就用UUIE来补充,使协议设计简化,同传统的电信协议有很好的继承性。
1.2 2种信令传送方式
当端点呼叫接入通过网守认证后,主被叫端点便可以开始呼叫信令消息和控制消息的传送。在H.323协议中有2种信令路由方式,直接路由方式和网守路由方式。而采用哪种路由方式由呼叫接入过程确定,端点可以提出意向,但最终则由网守决定[8]。
1)呼叫信令消息的传送[3]。图1和图2分别表示呼叫信令消息的直接路由和网守路由方式。
图1 直接路由呼叫过程Fig.1 Direct routing call process
图2 网守路由呼叫过程Fig.2 Gatekeeper routing call process
在直接路由方式中,网守在接入证实消息(ACF)中直接回送被叫端点的呼叫信令信道运输层地址,于是主叫端点的信令直接发往对端。在网守路由方式中,网守在接入证实(ACF)中回送自身的呼叫信令信道运输层地址,然后两端点的信令消息都发往网守,由网守转送。
2 网守的信令处理模块的设计与实现
2.1 呼叫信令处理模块系统环境
在网守系统中H.225.0消息处理模块位置如图3所示。
图3 网守模块结构Fig.3 Gatekeeper module structure
在网守软件体系中,网守核心模块的程序占据主体地位,它处理H.323协议体系中与网守相关协议部分的处理,主要包括RAS消息处理模块和H.225.0消息处理模块,其中RAS消息处理模块用来完成终端注册和呼叫许可,H.225.0消息处理模块用于转发终端的呼叫信令,协助主叫和被叫终端之间的逻辑信道(TCP信道)的建立,包括呼叫的建立,呼叫的清除,Q.932消息处理等过程,并且支持呼叫转移功能,可以进行常规的连接过程也支持快速连接过程,同时将获得的信息经过解析后送到监控模块,便于用户管理和查看。
2.2 呼叫信令处理模块相关类图
信令处理模块中主要包括如下几个类:工作Job类、套接字Socket类、信令处理类、线程类Worker。Job的子类定义了线程所要执行的工作,它创建各类监听器对象listener和套接字socket对象。套接字Socket类实现和客户进程通信,读取数据并在处理完后发送信息至客户端。信令处理类实现对各种不同信令消息的处理。主要的Job类图如4所示,套接字socket类如图5和6所示。
图4 Job及其子类Fig.4 Job and its subclasses
图5 PSocket及其子类Fig.5 PSocket and its subclasses
图6 Socket类Fig.6 Classes of Socket
在图4中,虚基类Job类定义各类工作,其最重要的子类有4个:RasServer、Proxy Handler、TCPServer。其中RasServer处理RAS信令消息,Proxy Handler处理呼叫信令消息,TCPServer处理所有TCP连接请求消息并分配至具体的线程去处理消息。
在图5中,给出了网守中类UDPSocket和TCPSocket继承自PWLib中定义的socket类。这些类实现了监听、读写等操作。
在图6中,定义了用于监听TCP请求的类CallSignal Listener,进行监听请求和创建呼叫信令类套接字CallSignalSocket与客户进程通信。USocket的子类用来为其他对象提供代理以控制对套接字socket的访问。
2.3 信令处理模块流程
呼叫处理线程在主程序中被启动后便开始在呼叫信道上侦听是否有端点发出呼叫。当一个新端点发起一个有效呼叫并且选路方式设定为网守选路模式时,呼叫监听对象CallSignal Listener便创建一个新的TCP套接字对象CallSignalSocket,呼叫信令处理线程Proxy Handler对象利用此套接字与该端点建立连接,呼叫监听对象CallSignal Listener在原呼叫信道上侦听新端点发出的呼叫。
在初始呼叫建立完成后,实际的呼叫控制和保持活动消息被转移到了新的临时端口上,信令线程CallSignalSocket就是在该端口上实际处理这些消息的线程。信令线程采用“快速连接”过程,其特点是将信道建立过程和呼叫建立过程融合在一起,且省略了能力交换步骤,从而有效缩短连接建立时间。“快速连接”的基本过程如下:
主叫端点在Setup消息的UUIE中置入“快速连接”(Fast start)数据单元,该单元有若干个“打开逻辑信道”(OLC)数据结构组成,每个OLC描述主叫端点提议的一个发送或接收媒体信道,包括立即打开此信道并在其上传送媒体信息所需的所有参数。当被叫端点愿意执行“快速连接”过程,则在主叫提议的OLC中选取它同意并能够支持的信道构成返回的快速启动数据单元,置入后向消息(Call Proceeding、Progress、Alerting或 Connect)回送主叫端点。此后,凡是被选中的信道就认为已被打开。可以立即在这些反向信道上发送媒体信息。同样主叫端点在发送Setup消息后必须准备随时在它提议的任何一个反向信道上接收数据。主叫也可以对被叫发送媒体流的时间进行限制,将Setup消息的“媒体等待Connect”数据单元置为真,则被叫必须在发送Connect消息后才能发送数据。"快速连接"过程的主要实现代码如下:
2.4 测试数据
使用自动呼叫器进行群呼,每次分别发起六百路呼叫,每次通话的时间长度为半分钟。采用常规的呼叫信令处理和快速的呼叫信令处理的测试结果见表2。
表2 测试结果Tab.2 The result of the test
由测试结果(表2)可见,信令的快速连接方法使网守在并发600路呼叫的情况下接通率达到了90.33%,而常规的信令连接方法接通率只有79.67%,从而表明快速连接法实现了较高的性能,提高了呼叫接通率。
3 小结
随着三网融合趋势的发展,IP电话有着广阔的应用前景,对基于IP电话的研究也会更加深入和宽广。本文基于H.323网络,通过对H323网守呼叫信令协议功能的研究,针对网守的呼叫信令模块,采用快速启动模式,设计并实现了呼叫信令的处理流程,缩短了呼叫的建立时间,能更好的接纳更多并发呼叫从而提高了网守的呼叫信令处理性能,已被应用到西安邮政的呼叫中心,满足了企业的实际需要。
[1]Rizzetto D,Catania C,A voice over IP service architecture for integrated communications[J].IEEE Internet Compute,1999,3:53-62.
[2]Dalgic I,Borella M,Dean R,et al.True number portability and advanced call screening in a SIP based IP telephony system[J].IEEE Communication Magzine,1999,37:96-101.
[3]Goyal P,Greenberg A,Kalmanek C R,et al.Integration of call signaling and resource management for IP telephony[J].IEEE Network,1999,13,24-32.
[4]Cheng Yue Chang,Ming Syan Chen,Pai Han Huang.An H.323 gatekeeper prototype:design,implementation and performance analysis[J].IEEE Transactions on Multimedia,2004,6:936-946.
[5]楚君,王玲,王紫湘.H.323网守设计与应用[J].计算机时代,2006(11):22-23.
[6]杨彬,黄正谦.构建基于H.323的新一代呼叫中心[J].计算机工程与科学,2005,27(5):13-14,44.
[7]苏进,廖建明.软交换体系下VOIP的呼叫路由设计与实现[J].成都信息工程学院学报,2005(5):16-19.
[8]沈鑫剡.多媒体传输网络与VoIP系统设计[M].北京:人民邮电出版社,2005.