MGCP协议

更新时间:2024-06-27 01:11

原则上,MGCP协定与前两者皆不同,H.323和SIP协议是专门针对网络电话及IP网络所提出的两套各自独立的标准,两者间并不兼容及互通。反观MGCP协议,则与IP电话网络无关,而只涉及网关分解上的问题,也因为如此,该协议可同时适用于支持H.323或SIP协议的网络电话系统。

简介

协议是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命令消息

续表

④命令参数。

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响应码范围含义

详细的响应码含义如表3所示。

表3详细的MGCP响应码及其含义

续表

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控制下的呼叫释放流程

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}