打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
基于MGCP协议的VoIP系统研究 无忧电子开发网
摘    要  以软交换为核心的下一代网络发展迅速,对传统PSTN网络的融合更展示了其内在优势。本文通过对软交换中的MGCP协议的分析与研究,提出了MGCP体系实现模型并对其中各模块进行重点描述。
关键词  媒体网关控制协议 媒体网关控制器 媒体网关 VoIP
 
1 概述
以软交换为核心、IP为骨干网的下一代网络将是一种融合的网络,它不仅能够实现传统的电信网络、计算机网络和有线电视网的融合,也将实现固定和移动网络的融合。基于软交换的下一代网络的最大特点就是将业务、传送媒体和控制相互分离。通过媒体网关接入终端设备,使呼叫信令通过IP网来承载,可以大大降低通话的成本和费用。因此研究基于媒体网关控制协议的VoIP成为当前一个热点。
 
2         基于MGCP的媒体网关控制器系统结构
2.1 MGCP协议
       媒体网关控制协议MGCP(Media Gateway Control Protocol),顾名思义是用于控制来自外部呼叫控制单元的IP语音(VoIP)网关。MGCP定义了一种呼叫控制结构,在该结构中,呼叫控制与业务承载分离。呼叫控制功能独立在MG(Media Gateway)外部,由称为MGC ( Media Gateway Controller)或CA(Call Agent)的外部呼叫控制单元处理。MG需要执行MGC发出的命令,所以,从本质上说MGCP协议是一个主/从协议。
2.2 媒体网关控制器
       媒体网关控制器MGC(Media Gateway Controler)也称为呼叫代理(Call Agent)提供信令和呼叫处理功能。具体来说,媒体网关控制器接受来自网关的事件,指示网关如何处理电话的接续,并将语音分组发送到对应的网关上。媒体网关控制器应该既能够处理来自宽带IP网的呼叫,由能够处理传统PSTN网络的呼叫。
2.3 媒体网关
      媒体网关(Media Gateway)是一种网络单元,负责传统网络上的语音信号和IP网上的分组数据之间的转换。根据其所在网络中的位置不同用于实现不同体系结构的网络之间的互联互通,其类型有中继媒体网关,接入媒体网关等。
 
3         基于MGCP的VoIP系统研究
3.1 MGCP系统的实现模型。
       MGC和MG是通过MGCP协议进行通讯的,而MGCP协议又是基于UDP(User Datagram Protocol)传输的。 MGC向MG发送指令,从而控制MG将电路交换的语音转换为分组流,或者反之,也能够将来自外部网络的分组或信元数据流连接封装为RTP(Real- time Transport Protocol)格式的分组或信元流。因此,MGCP系统实现主要涉及三个模块:MGC模块、MG模块和UDP模块。
     本文考虑的MGCP系统实现由一个媒体网关控制器、一个媒体网关和UDP组成,其中,媒体网关控制器由MGC模块表示,媒体网关由MG模块表示,UDP由 UDP模块表示。MGC模块有一个mgc_udp接口,该接口的主要功能是MGC下发消息给MG或者回应MG发给MGC的消息。MG模块有三个接口:一个 mg_udp接口、一个mg_media_udp接口和一个mg_user接口,mg_udp接口用来发送MGC下发消息的响应消息或者上报消息给 MGC,mg_media_udp接口用于发送通话过程中的媒体流比如语音或者其他数据,mg_user接口功能则是MG检测用户摘、挂机等事件和信号以及时上报给MGC或者MGC控制MG对用户进行放音信号等的下发(例如拨号音)等。UDP模块有三个接口:一个udp_mgc接口、一个udp_mg的接口和一个udp_media_mg。前两个接口的功能主要是提供MGC和MG交互的平台,最后一个接口是完成MG侧的媒体流和MGC侧的分组信元的转换。

                              图1  MGCP系统实现模型
媒体网关控制器(MGC)和媒体网关(MG)之间共有九种MGCP消息,总体来说分为两类:命令和响应。当消息发送到MG或MGC时,称之为命令;当命令的证实消息从MG或MGC送回时,称之为响应。命令包括连接处理和端点处理命令,响应为整数码,接受到所有的命令都要回响应,已表示命令完成或遇到错误。同一MG下两个用户A(主叫用户)和B(被叫用户)完成一次完整的呼叫流程如下:MGC通过下发RQNT命令请求MG检视A状态。当A摘机时, MG通过NTFY上报MGC,MGC收到NTFY消息后通知MG根据其拨号方案收集拨打的号码并送拨号音。A拨被叫B号码,MG收号完成后通过NTFY通知MGC,MGC下发CRCX和A用户相连的端点建立连接,同时MGC根据收到的被叫号码找到和B用户连接的端点并发送CRCX创建和B用户端点之间的连接。之后MGC下发RQNT通知MG给用户B放振铃音,同时下发RQNT给用户A放回铃音。这时如果用户B摘机,MG会检测到并以NTFY上报给MGC。 MGC发MDXC给用户B相连的端点,将用户A相连端点连接参数给B,同时命令MG停止B振铃,之后MGC发MDXC给用户A相连的端点,将B相连端点的连接参数给A,同时命令MG给A停放回铃音,至此,MGC通过修改先前分别和A、B用户相连端点的连接,将A、B连接参数各自传给彼此而使得A、B之间建立连接,这时用户A和B可以双向通话了。在上述过程中,每收到一个命令都会有响应表示收到命令以防止命令的重发,在此为了叙述简洁略去了。
3.2  MGC模块
  MGC模块主要功能是负责呼叫控制,提供信令和呼叫处理。MGC模块通过mgc_udp接口和网络通信,通过该接口经UDP模块向MG发送MGCP命令,从而实现对MG的控制。其中MGC模块中又包含两个子模块:
(1) 呼叫控制(Call Control):呼叫控制的主要功能是用来协调MG创建连接,MGC能命令MG对不同媒体流所应监视的事件及其相关的信号进行检测,并将其报告给MGC。同样,MGC也能通知MG解除对信号的监视。
(2) 事务处理控制(Transaction Control):事务处理控制模块用于管理事务处理,它能够保存当前正在执行的事务处理清单以及通过tc_cc接口已经发送给呼叫控制模块的最近的事务处理的响应清单。如果发现输入命令消息的事务处理标识符不在清单中,就将该消息转发到呼叫控制模块中,否则重发该命令的响应。此外,事物处理控制模块负责将呼叫控制模块通过cc_tc接口发给它的MGCP消息通过mgc_udp接口转发到网络中。在发生异常时对模块进行保护这时要用到定时器。事务处理模块通过对定时器的管理在超时未收到响应消息的情况下重发命令消息。

图2  MGC模块
呼叫控制模块和事务处理模块工作原理如下:呼叫控制模块通过事务处理模块收到来自MG的NTFY消息时,首先检查被叫号码的有效性,若无效则命令MG放提示音给主叫,若有效就向MG发送CRCX消息,创建和主叫端点的连接。同时呼叫控制模块等待收到正确的响应消息后,将向该MG下的被叫端点发送 CRCX消息,用于创建和被叫端点的连接。如果呼叫控制模块接收到来自被叫端点的正确响应消息,则要检查主叫端点的状态,如果主叫端点的状态处于连接状态,则向主叫端点发送RQNT消息命令MG向主叫用户放回铃音。用户挂机时MG上报NTFY消息经过事务处理模块转发到呼叫控制模块,则向该MG返回一个 DLCX并检查属于同一个呼叫识别符的另一个端点的状态,然后向该端点发送DLCX或RQNT消息。
3.3  MG模块
MG模块有三个接口:mg_udp接口和mg_media_udp接口用于和网络通信,mg_user接口用于和端点通信,从而和接在某端点上的用户通讯。MG可以检测和端点相连的用户事件(如摘机事件)、发送呼叫信号(如振铃信号)或者从端点接收数据。MG模块包括三个子模块:
(1) 事务处理控制(Transaction control):MG模块中的事务处理控制和MGC模块中事务处理控制功能类似也是用于管理事务处理,能够保存已经被发送到最近的事务处理的响应清单以及当前正在执行的事务处理清单。如果发现输入命令消息的事务处理标识符不在清单中,就将该消息转发到连接控制模块中,否则重发该命令的响应。另外,事物交易控制模块负责将来自连接控制模块的MGCP消息转发到网络中,也能够管理定时器并在超时的情况下重发命令消息。
(2) 连接控制(Connect control):用于检测来自和端点相连用户的事件并通过cc_tc接口将事件发给事务处理模块,经它处理后向MGC发送通知命令。连接控制模块能够维护MG侧的端点状态,也可以将连接建立消息通过cc_dc接口转发到数据控制模块中。
(3) 数据控制(Data control):用于响应和连接有关的命令,这些命令来自携带有连接标识符和连接地址的连接控制、去往连接控制模块。此外,数据控制也负责将来自网络的数据转发到端点,或者将端点事件信号打包后发到网络中。  
图3   MG模块
当事务处理控制模块收到一个命令消息时,根据事务处理识别符检查最近接收到的事件清单,如果没有相应的事务处理,则将其作为一个新的事务处理存储在事件清单中,并转发给连接控制模块。如果发现相应的事务处理,则将对应的响应置于事件清单中并重发该响应。当连接控制模块检测到处于“请求事件”状态中的端点事件时,就向事务处理控制模块发送NTFY消息,由事务处理控制模块将该消息封装成UDP分组并转发给MGC。随后,连接控制过程进入通知状态。在通知状态下,连接控制模块不会发送另一个NTFY消息,也不能通过事务处理控制模块处理来自MGC的RQNT消息。来自MGC的响应消息和RQNT消息可能是乱序的,但连接控制模块将在收到RQNT消息后,首先将其暂存起来,直至收到响应消息后才会退出通知状态。此后,连接控制模块对RQNT消息进行处理并通过响应消息进行回应。当连接控制模块收到CRCX、MDCX或DLCX消息后,会将其转发到数据控制模块中,由数据控制模块负责检查资源限制并通过对应的连接标识符和地址进行响应。
3.4 UDP模块
       UDP模块的功能就是用来承载信元包的转发,用来将一个信元分组从源地址转发到目的地址。该过程能够仿真网络的一些属性,如随机丢弃部分分组或者以乱序的方式发送分组。
在MGCP系统中分别向MGC和MG提供接口。udp_mgc接口和udp_mg接口协助完成MGC和MG之间信令的交互,udp_media_mg接口主要协助实现MG用户端点侧的媒体流和MGC侧分组信元之间的格式转换。
 
结束语
本文针对基于MGCP的VoIP系统实现进行了详细说明,总体分为三个模块,对其中关键技术模块MGC模块和MG模块进行深入分析。然而现实中开发产品应用还需要考虑其他方面的因素,如服务安全质量QoS,网络地址转换NAT,计费等等。这些因素都还需要进一步的研究。
 
参考文献:
[1] IETF.Media Gateway Control Protrol.RFC2705,1999
[2] 糜正琨,王文鼐.软交换技术与协议,人民邮电出版社,2003
[3] 魏航,杨学良.下一代网络(ngn)的体系结构与软交换协议,计算机应,2003.12第12期
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
MGCP协议基本概念
FTTH语音故障总结
VoIP基本原理与常见设备
下一代网络中的媒体网关控制技术
【IBE】一种嵌入式KNX-BACnet/IP网关的实现方法
串口转网口的配置参数介绍
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服