原则上,MGCP协定与前两者皆不同,H.323和SIP协定是专门针对网路电话及IP网路所提出的两套各自独立的标準,两者间并不兼容及互通。反观MGCP协定,则与IP电话网路无关,而只涉及网关分解上的问题,也因为如此,该协定可适用于支持H.323或SIP协定的网路电话系统。
MGCP协定制定的主要目的在于将网关功能分解成负责媒体流处理的媒体网关(MG),以及掌控呼叫建立与控制的媒体网关控制器(MGC)两大部分。MG在MGC的控制下,实现跨网域的多媒体电信业务。
由于MGCP更加适应需要中央控管的通信服务模式,更符合电信营运商的需求。在大规模网路电话网中,集中控管是一件非常重要的事情,透过MGCP可利用MGC统一处理分发不同的服务给MG。
基本介绍
- 中文名MGCP协定
- 全称媒体网关控制协定
- 分类VOIP 协定
- 制定时间1999年
简介
协定是1999年由IETF制定的媒体网关控制协定。MGCP协定定义的连线模型包括端点(endpoint)和连线(connection)两个主要概念端点是数据源或数据宿,可以是物理端点,也可以是虚拟端点;端点类型包括数字通道、模拟线、录音伺服器接入点及互动式话音回响接入点;端点标识由端点所在网关域名和网关中的地名两部分组成。连线可以是点到点连线或多点连线,点到点连线是两个互相传送数据的端点之间的一种关联,该关联在两个端点都建立起来后,就可开始传送数据。
MGCP採用文本协定,协定讯息分为命令和回响,每个命令需要接收方回送回响,採用三次握手方式证实。命令讯息由命令行和若干参数行组成,回响讯息带有3位数字的回响码。MGCP採用媒体描述协定(SDP)向网关描述连线参数。为了减小信令传送时延,MGCP採用UDP传送。
MGCP协定的基本思想就是网关分离。将H.323协定的IP网关分为媒体网关(MG)、信令网关(SG)和媒体网关控制器(MGC,又称CA)。其中MG仅负责媒体格式的变换;SG负责信令的转换;MGC才是真正的智慧型部分,根据收到的信令控制MG的连线建立和释放。这样的分离结构不仅可以大幅度提高中继MG的容量,而且可以提供7号信令的支持,并提高了系统的可用性和鲁棒性。
从严格的意义上来说,H.323和MGCP不是同一层面上的协定,H.323协定国际电联ITU制定的,MGCP协定是网际网路工程任务组(IETF)定义发布的,不能简单地进行比较。
我们这里仅从接入的角度来比较这两个协定。MGCP协定正是为了在网际网路上高效而方便地传送的VOIP语音而制定的协定,它归纳和简化了H.323协定的基本通话扩展和简化协定,
在实际的套用中,由于H.323的套用较早,大量的驻地网关(RGW)採用的是H.323协定,这是一个历史的原因。而事实上,MGCP却能更好地实现RGW的接入。
採用MGCP协定实现IP语音接入的优点
RGW的智慧型大为降低,易于开发;
2.MGCP採用文本方式编码,且结构非常简单,易于理解,便于开发和维护;
3.基于MGC的智慧型集中管理,运维和智慧型业务升级非常方便。MGC往往是放在机房的伺服器上,每个MGC可以控制成千上万个RGW,这样要进行系统升级或增加新的业务时,只需简单地升级机房里的MGC即可,而採用H.323协定时,需要挨家挨户去升级每个RGW,这种方式非常不适合大规模部署;
4.MGCP不能绕过系统在两个网关之间通话,而H.323网关、SIP网关均可以绕过系统实现两者之间的通话;这与以通话计费作为运营利益保障的商业模式显然是冲突的。
5.防止盗打危害。MGCP协定终端以DOMAINNAME注册受控于MGC(或称CA),无法获得来自落地网关的IP位址信息,无法直接非法透传。H.323协定终端以IP位址方式注册受控于GK,能够获得来自基于H.323协定落地网关方面的信息,包括IP位址讯息,有非常棘手的安全隐患。
6.呼叫建立速度快。一个呼叫至多在3秒内回响振铃,而H.323协定可能用7秒时间。
7.拨号方式与普通电话完全相同,而H.323协定网关普遍需要在拨号尾端添加#号。
8.MGCP协定设备可以方便的实现动态的NAT穿透,而H.323协定设备相对複杂和麻烦。
基于MGCP上述功能特性,使得MGCP协定得到了VOIP运营商的普遍认同,MGCP协定IAD设备已经在软交换业务网路中得到了大规模的商用。MGCP的更高级版本H.248协定也已经确定和发布,随着H.248协定不断为用户熟悉,会有支持该协定的IAD设备与用户见面,届时,MGCP协定的一些局限,如不能方便支持视频会议功能,也将在H.248协定中得以解决。
MGCP呼叫模型
3.1MGCP呼叫控制结构
MGCP协定在RFC2705中进行了定义,主要用于控制来自外部呼叫控制单元的IP语音(VoIP)网关。
MGCP定义了一种呼叫控制结构,这种结构使得呼叫控制与业务承载相分离,如图1所示。
图1 呼叫控制模型结构
从图4.27中可以看出,MGCP协定是一个主/从协定。呼叫控制由独立于媒体网关的媒体网关控制器来完成。即通常情况下,MGC是“主”,MG是“从”,而MG需要被动地执行MGC发出的命令。但也有两种情况是MG发出命令,MGC来接收,详细内容参见MGCP讯息小节。
3.2MG分类
在这里,MG是一种网路单元,在NGN体系结构中,MG可以分为如下几种。
(1)中继媒体网关(TrunkMediaGateway,TMG)
是位于电路交换网和IP分组网之间的网关,用于终结大量的数字电路。
(2)接入媒体网关(AccessMediaGateway,AMG)
用于将一种网路中的媒体转换成另一种网路所要求的媒体格式。例如,AMG可完成电路交换网的承载通道和分组网的媒体流之间的转换。
(3)通用媒体网关(UniversalMediaGateway,UMG)
主要完成媒体流格式转换与信令转换功能,具有TMG、内置信令网关、AMG等多种用途,可用于连线PSTN交换机、PBX、接入网、路由器、无线基站等多种设备。
3.3终端标识
端点由端点标识符来标识。端点标识符不区分大小写,由两部分组成。第一部分是该端点所在的网关的域名,第二部分是该端点在网关内的本地名称,它们之间用@来分隔,就像是一个E-mail地址。本地名称的语法取决于端点的类型,可以具有层次结构,以形成一个从网关名到各端点的命名路径,端点标识遵循下面的约定。
(1)每个命名路径的标识项必须用单个斜槓(/)分隔。
(2)每个标识项都是一个由字母、数字或者其他可列印字元组成的字元串,该字元串中不包括定界符号(/、@)和空格。
(3)本地名中可以用通配符“”和“$”,前者表示这一层上的所有端点,后者表示在这一层上的某一端点,即前者具有“所有的”,而后者具有“任何一个”的含义。
在MGCP中,网关通过其域名(如mg1.anycompany.com)标识。本地名可以用物理接口名(如roger)和终端标识(接入媒体网关中电话号码所对应的连线埠号)构成。该终端标识和物理接口名用斜槓(/)分隔。如媒体网关的端点名roger/1@mg1.anycompany.com,指域名为mg1.anycompany.com的媒体网关roger接口的第1个连线埠。
MGCP系统结构和呼叫流程
4.1MGCP协定栈
MGCP协定是一种信令协定,它定义在UDP/IP之上。即MGCP使用的网路层协定是IP,传输层协定是UDP。这就保证了MGCP协定独立于底层承载协定之上,如图2所示。
4.2MGCP讯息
(1)MGCP命令讯息
①MGCP命令格式。MGCP命令由命令行和参数行组成,其中,命令行的格式如下
命令动词事务ID端点IDMGCP1.0
参数行由若干组“参数名:参数值”对组成。
具体如图3所示。
图2 MGCP协定栈
图3 MGCP命令格式
②MGCP命令嵌套。允许一层命令嵌套,一般用于创建和通知。
③MGCP命令。MGCP命令讯息包括连线处理和端点处理命令,总共九个命令,如表1所示。
表1MGCP命令讯息
代码 | 方 向 | 命令名称 | 命令描述 |
EPCF | MGC→MG | EndpointConfiguration | 用来规定在端点上接收的信号的编码(是A-law还是m-law)。呼叫代理使用该命令可以将这些信息传给相应的网关 |
RQNT | MGC→MG | NotificationRequest | 请求网关监视某端点发生的某些事件,如发生,则通知呼叫代理 |
NTFY | MG→MGC | Notify | 网关通知呼叫代理,请求监视的某些事件已发生 |
CRCX | MGC→MG | CreateConnection | 呼叫代理用此命令将某端点和指定的IP位址和UDP连线埠关联。还需要向远端端点传送一个创建连线命令,这样才能建立两个端点间的连线 |
MDCX | MGC→MG | ModifyConnection | 修改先前建立连线的参数,呼叫代理用该命令将第二个端点的“会话描述”(IP位址、UDP连线埠和打包参数等信息)提供给第一个端点。一旦该过程完成,双方可以进行双向通信 |
续表
代码 | 方 向 | 命令名称 | 命令描述 |
DLCX | MGC→MG | DeleteConnection | 删除先前建立的连线 |
AUEP | MGC→MG | AuditEndpoints | 呼叫代理获得单个端点或一组端点的详细信息 |
AUCX | MGC→MG | AuditConnection | 呼叫代理获得端点上连线的详细信息 |
RSIP | MG→MGC | RestartInProcess | 网关通知端点退出服务或投入服务 |
④命令参数。
a.回响证实(K)
指明已收到回响命令的事务标识。
b.承载信息(B)
指示承载属性。
c.呼叫ID(C)
是一个全局唯一的参数,它用来标识连线的呼叫(会话)。属于同一个呼叫的连线共享相同的呼叫标识。用十六进制字元串表示,至多32个字元。
d.连线ID(I)
用于标识连线,用十六进制字元串表示,至多32个字元。
e.被通知实体(N)
被通知实体,用来指定通知送到什幺地方。当缺少该参数时,通知将发给通知请求的始发者。
f.请求ID(X)
请求标识,用于将请求和它所触发的通知关联起来。用十六进制字元串表示,至多32个字元。
g.本地连线选项(L)
本地连线选项是呼叫代理建议网关的可选参数。这些参数为以ms为单位的打包时长(p),首选的压缩算法(a),以kbit/s为单位的频宽(b),回声取消参数(e),增益控制参数(gc),静音抑制参数(s),业务类型参数(t),资源保留参数(r),加密密钥(k),网路类型(nt)。每个参数都是可选的,当有多个参数出现时,它们的值用逗号分隔。
h.连线模式(M)
连线模式描述连线的操作模式。
i.被请求的事件(R)
提供一系列已经被请求的事件。每个事件受一个请求的动作限制,或者受一系列动作的限制。
j.请求信号(S)
提供已经被请求的信号名。
k.检测到的事件(O)
检测到的事件参数提供一个已经观察到的事件列表。
l.连线参数(P)
连线参数使用类型字元串和参数值进行编码,其中类型可以为参数类型标识,也可以是扩展类型,参数值为一个十进制整数。类型和参数值之间用“=”分隔。参数之间用逗号分隔。
m.原因码(E)
在由媒体网关或MGCP终端发起的删除连线命令或者重启进程命令中,必须包含原因码(ReasonCodes),用来表明删除连线或者重启的原因。
n.指定端点ID(Z)
网关指定的连线埠ID,在创建连线回响中返回。是可选参数,用来标识回响端点。
o.请求的信息(F)
当指定了一个非通配的端点标识,请求的信息用于描述指定端点的请求信息。
p.隔离处理(Q)
隔离处理定义怎样处理“隔离”事件,即在通知请求命令到达之前,网关已经检查到的事件,还没有将该事件通知呼叫代理。
q.检测事件(T)
在隔离模式下当前被检查的事件列表。检测事件参数是用逗号分隔的一组事件编码。
r.重启方式(RM)
重启方式参数指定重启类型,该参数使用以下关键字。
graceful表示指定的端点将在指定的延时之后退出服务。已经建立的连线不受影响,呼叫代理避免建立新连线,并且试图文明拆除该存在的连线。
forced表示指定端点突然退出服务。已经建立的连线会丢失。
restart表示在确定的重启延时之后恢复该端点上的服务。当前该端点上还没有已经建立的连线。
disconnected表示指定的端点已经被分离,并且试图建立连线。“重启时延”指定了该端点分离了多少秒。已经建立的连线不受影响。
cancel-graceful此方式表示该网关正在取消先前发出的“文明重启”命令。
s.重启动时延(RD)
重启延时,以s为单位。如果不提供该参数,则认为延时时间为无效。
t.事件状态(ES)
该参数是用逗号分隔的一组事件编码。
u.性能(A)
当端点被监察时,性能参数通知呼叫代理关于该端点的性能。
v.远端连线描述语(RC)
用于描述被连线的终端信息,它和本地连线包含相同的域(IP位址、UDP连线埠和打包参数)。对于建立连线命令,当不知道远端情况时,该参数为空值。
w.本地连线描述语(LC)
包括适合于本地连线的IP位址和连线埠号等会话描述。
(2)MGCP回响讯息
所有的MGCP命令都要接收者回送回响。
①MGCP回响格式。和MGCP命令的格式类似,回响格式由回响行后接一组可选参数行组成。
回响行由回响码、事务标识和一个由空格隔开的可选注释组成。
参数行与MGCP命令的格式一样,这里不再赘述。
MGCP具体回响格式如图4所示。
图4 MGCP回响格式
②MGCP回响码定义。回响码为一整数,共四组,如表2所示。是否返回应答参数,依赖于特定的命令。
表2MGCP回响码範围含义
回响码範围 | 回响码範围含义 |
100~199 | 表示临时应答 |
200~299 | 表明命令成功完成 |
400~499 | 表明命令执行时遇到一个临时性的错误(transienterror) |
500~599 | 表明命令执行时遇到一个永久性的错误(permanenterror) |
详细的回响码含义如表3所示。
表3详细的MGCP回响码及其含义
响 应 码 | 回响码含义 |
200 | 请求的事务已经被正常执行 |
250 | 连线被删除 |
400 | 由于突发错误,不能执行该事务 |
401 | 电话已经摘机 |
402 | 电话已经挂机 |
403 | 由于此时端点没有充足的资源,不能执行该事务 |
404 | 该时频宽不足 |
500 | 由于端点未知,该事务不能被执行 |
501 | 由于端点未就绪,该事务不能被执行 |
502 | 由于端点没有充足的资源,该事务不能被执行 |
510 | 由于检查到协定错误,该事务不能被执行 |
511 | 由于命令中包含不能识别的扩展名,该事务不能被执行 |
512 | 由于网关没有配置检查请求事件的能力,该事务不能被执行 |
513 | 由于网关没有配置产生请求信号的能力,该事务不能被执行 |
514 | 由于网关不能传送指定的通知音,该事务不能被执行 |
515 | 该事务涉及一个错误的连线标识(该连线可能已经被删除) |
516 | 该事务涉及一个错误的呼叫标识 |
517 | 不支持或者无效的模式 |
518 | 不支持或者未知的讯息包 |
519 | 端点不存在数字表收号方式 |
续表
响 应 码 | 回响码含义 |
520 | 由于端点“正在重启”,该事务不能被执行 |
521 | 端点已经被重定向到其他呼叫代理 |
522 | 没有该事件或者信号 |
523 | 未知的动作或者非法的动作组合 |
524 | LocalConnectionOptions |
526 | 频宽不够 |
527 | 缺少RemoteConnectionDescriptor |
528 | 不兼容的协定版本 |
529 | 内部硬体故障 |
530 | CAS |
531 | 中继群故障(例如设备故障) |
4.3MGCP主要呼叫流程
(1)对整个接入设备注册
接入设备注册是对整个接入设备向控制器发起注册,MG必须向MGC注册,才能完成随后正常的流程接续。当MG设备用户数比较多时将需要较长的时间,通常这个过程是在MG设备加电冷启动的时候进行。详细过程如图5所示。
图5 网关注册流程
注册流程分为以下几个步骤完成。
①MG向MGC发出RSIP命令要求注册。
②MGC收到RSIP后,计算是否为合法注册,如果合法,就认证通过,传送ACK。
③MGC下发检测摘机RQNT命令,并建议摘机事件为永久事件。
④MG向MGC传送回应ACK讯息。
⑤MGC定期向MG传送RQNT命令进行鑒权。
⑥MG回送ACK回响讯息。
⑦MG用NTFY向MGC回送鑒权应答。
⑧MGC向MG传送ACK回响。
(2)单个终端注册
当MG已经启动完毕,并且现有MG上的终端设备都已经注册完毕时,如果在MG上增加了新的终端设备,那幺终端设备将通过MG向MGC发起单个终端的注册过程。详细过程如图6所示。
①MG向MGC传送RSIP命令,重启方式为restart。
②MGC迴响应ACK。
③MGC向MG传送RQNT命令,建议监视摘机。
④MG迴响应ACK。
(3)注销过程
MG在退出服务时向MGC传送RSIP命令,通知MGC本MG上所有端点退出服务。这个注销流程除了适应整个MG设备退出服务,也适用于单个端点退出服务,如图7所示。
图6 单个终端注册流程
图7 注销流程
①MG向MGC传送RSIP命令,重启方式为forced。
②MGC向MG迴响应ACK。
(4)同一MGC控制下的两个MG设备间的呼叫建立流程
具体流程如图8所示。
图8 同一MGC控制下的呼叫建立流程
(5)同一MGC控制下的两个MG设备间的呼叫释放流程
具体流程如图9所示。
图9 同一MGC控制下的呼叫释放流程