——IP语音与数据的融合(IPT)
构建一个完整、可扩展的IP电话架构是我们在这篇文章要完成的任务。
协议基础:
当前,许多的协议及协议族支持分组语音技术,他们有的需要互相协作,有的可完整支持Voip,有的则不行。它们包括H323、SIP、Skinny、MGCP等,我们不可能了解所有协议的内部架构,所以这些协议在在我们试图拢清它们之间 协作关系、扮演角色(在分组语音技术中 )、可选/必选性 等问题时感到迷惑,接下来我们尝试系统的介绍并梳理一下它们之间的关系:
H.323:
它是一个完整的协议族,H . 3 2 3是一个国际电信联盟( I T U)标准,为基于分组的网络基础设施上的音频、视频和数据通信提供一个基础。它是最被广泛支持的IP网络与模拟网络之间煤体桥梁。它可以独立完成分组语音里几乎所有的事,所以它的体系也是庞大的。. H.3 2 3提供语音编码、简单的带宽管理、许可控制、地址转换、呼叫控制和管理以及外部网络链接等标准。Vo I P界采纳H . 3 2 3标准,努力实现多制造商设备的互操作。
它的协议组件包括:
1、煤体相关
H.261 和 H.263 – 视频编码;
G.711, G.723, G.729 – 音频编码.;
RTP/RTCP – 煤体流传输.
2、数据/传真
T.120 – 数子会议
T.38 – 传真
3、呼叫控制和信令
H.245 – 容量/能力通告, 煤体通道建立, 会议控制.
H.225
Q.931 – 呼叫信令和呼叫建立.
RAS - 注册、许可和状态, 用于端点(终端及网关)和G ATEKEEPER 之间的协议。它被用来从G ATEKEEPER 中执行注册、许可控制,带宽改变、状态改变和分离端点等功能。
值得一提的是H.323已成熟的发展到第4版,在这版里真正引进的“哑”媒体网关概念,也就是将网关的控制功能和网关分开了(分成MG和MGC),它由MGCP和MDCP融合而成,标准为H.248。所以由此看来很难将这2个协议族(H.323和MGCP)彻底分开而独立工作,实际网络中上它们也经常共存和协作。
大家可能都知道H.323角色组件包括:H.323终端、H.323网关(Gateway,GW)、网守(Gatekeeper,GK)、MCU(多点控制单元),关于H.323终端和H.323网关我想不用赘述,MCU在实际VOIP实现中经常是GK的一部分,它的角色也很明确:控制多点会议和组播。我们往往迷惑的是GK,它被认为是H.323中最有用的部件,可是我们不知道它该布置在哪儿?或者是否该被布置?的确如此,它和存在于M G C P中、称为Call Agent呼叫代理(现在呼叫代理的概念渐渐被MGC媒体网关控制器 概念融合和取代)的非常相似。区别是MGC是对MG和SG(这里又涉及到SG信令网关:它提供H . 3 2 3和SS7 ISUP信令操作的相互配合。跟呼叫代理一样它也被MG融合和取代了)进行控制,而H.323的GK是对IP网络中的H.323操作进行控制,包括MG和H.323终端。在CISCO实现中GK特性是CCM3.3的一部分,由于技术选型的原因,Cisco并没有真正使用GK的RAS特性来完成终端和MG(媒体网关)的注册、许可、管理。CCM里的GK选项主要用来完成控制其他CCM集群,实现带宽控制和呼叫分配等,也就是用来控制CCM(cisco callmanager)。实际上在一个简单的VOIP实现中,GK的确是可选的,如果不选它那么你采用的就是媒体端点(比如作为MG的Cisco2600路由器)自行选路的直接呼叫信令路由。最好的例子就是Cisco的VOIP拨号对等体配置概念。
MGCP:
是由因特网工程任务组( I E T F, Internet Engineering Task Force)所公布的媒体网关控制协议。MG C P用于集中控制:Vo I P网关, 网络接入服务器和电路交换。正如名字所言,它的专长是通过MG和MGC控制媒体网关,适用于大规模IP 电话的使用。它常常与H.323同时存在于VOIP网络中,它可以与H.323实现交互,此时,它的MGC(或呼叫代理)就以一个H . 3 2 3 网守(GK)的身份进行工作的。这样处理就和H . 3 2 3网守的功能保持一致,即需要对H . 3 2 3终端进行地址转换以及呼叫控制服务。CISCO推荐使用MGCP作为VOIP网关的控制协议,实际上CISCO的大部分语音网关产品(包括Cisco 26/36/3700、VGA200、Catalyst4200等)都默认支持它。
SIP:
现在轮到分组语音技术的三大竞争对手(H.323、MGCP、SIP)里的最后一位也是最“年轻”“健壮”“有前途”的一位:SIP(会话初始话协议)出场了。S I P是用于因特网会议和电话服务的简单信令协议。它基于S M T P和HTTP ,是在IETF 多方多媒体会话控制( M M U S I C)工作组中发展起来的。它定义了因特网上电话和多媒体会议的过程。S I P是应用层协议。S I P是继基于文本的S M T P和HTTP 协议之后基于客户/服务器结构的模型。在客户/服务器结构中,客户机发起呼叫,服务器响应呼叫。通过遵循这些已有的基于文本的因特网标准,故障诊断和网络调试就变得非常简单了。S I P系统包括两部分:用户代理和网络服务器。
用户代理( U A)是形成和接收S I P呼叫的S I P ,它包括:
• 客户机被叫作用户代理客户机( U A C),它被用来发起S I P请求。
• 服务器被叫作用户代理服务器( U A S),它接收从U A C来的请求并给用户返送响应。
S I P有两种类型的网络服务器:
• 代理服务器
• 重定向服务器
优点:
• 简易性
• 可扩展性
• 模块化S I P具有很高的模块化程度。
• 可升级性
• 集成性因S I P可以将We b、电子邮件、媒体流应用和其他协议集成到一起。
简单点说它是直接IP终端(如IP Phone、Netmeeting、MSN)之间最简单可行的语音处理协议了。它经常与MGCP共存协作以支持更复杂的VOIP网络之间的通信。CISCO也看到它的优点,所以CCM与IP Phone构成的IPT网络中cisco也使用SIP来完成呼叫,此时的IP Phone 就是一个UA,而CCM就扮演UAS。这样要扩展到支持10000部IP电话的圆区负载也是真正可以实现的了。(简单也是要付出代价的,一方面是对模拟网络支持较差,另一方面由于是通过明文发送,我认为SIP实现的VOIP会话存在严重的安全隐患,很难抵挡电子欺骗和包重放等攻击。)
Skinny:
“瘦”客户端协议。在cisco的IPT网络中主要用作cisco ip phone向CCM之间的注册/管理的协议。实际上Skinny也可以通过SCCP(Skinny client conrtroll protocol)来管理和控制MG,但这已是老的语音网关设备如DT12+上才支持的了。Cisco不准备再支持它。
SS7:
S S 7是目前PSTN公用网中用以建立与终止电话呼叫的协议套。S S 7应用于包交换网络,这种网络大多数情况下使用专用的链路、节点和设备。通常, S S 7是非关联的、公共信道、带外信令网络。但是,S S 7又可以在携带语音流量的链路上,经过真实的或虚拟的电路传输。对于SS7,网络工程师知道它但却不必精通它,只在与PSTN网租用线路时涉及到它,本文不再详细讲解,如有兴趣可参阅ULTRA论坛另一篇关于SS7的文章:http://www.ultratechnology.net/forums/showthread.php?s=&threadid=15889&highlight=ss7
到此,我们已经可以看出Cisco的IPT架构的协议实现:IP Phone通过Skinny向CCM注册,获得许可和权限,使用SIP协议建立会话和通信,通过MGCP或H.323管理网关,使用GK管理CCM和集群的带宽分配。
以上我们花了很大的篇幅介绍VOIP原理和协议,在H.323、MGCP、SIP等之间作一个清晰的阐述,这本身就是个复杂而麻烦的主题,所以肯定有不足和错误的地方,希望大家提出指正。但这一步却是有意义的:对协议和实现一开始就混淆不清,而要设计一个可行的、可扩展和健壮的IPT网络(或叫VOIP网络),是极为不易甚至不可能的。接下来我们将引入产品和特性来构建一个具体的IPT网络。
(未完...待续)