- 经验
- 38
- 分贝
- 0
- 家园分
- 50
- 在线时间:
- 0 小时
- 最后登录:
- 2010-3-19
- 帖子:
- 1
- 精华:
- 0
- 注册时间:
- 2010-3-19
- UID:
- 506180
注册:2010-3-19
|
发表于 2010-3-19 16:45:17
|显示全部楼层
MGCP全称,媒体网关控制协议。在MGCP定义的呼叫体系结构中,呼叫控制与承载分离,由MGC媒体网关控制器来处理。 IETF制定的MGCP(Media Gateway Control Protocol)协议是一个分布式IP电话网关系统的内部协议。本质上是一个主从协议,网关需要实行媒体网关控制器发出的命令。 媒体网关控制器MGC(Media Gateway Controller),主要完成呼叫过程相关的信令功能,对媒体网关和信令网关的操作进行管理和控制。 网关(Gateway)是一种网络单元,用于实现不同体系结构和网络之间的互联互通。 NGN体系结构中的网关包括: 中继网关(TG):提供传统电话网(PSTN)和承载语音的IP网的接口。 接入网关(AG):提供模拟用户线或者数字专用分组交换机与承载语音的IP网之间的接口。 住宅网关(RG):为IP语音网提供传统的模拟接口(RJ11)的实体。 一组网关中至少包括一个媒体网关,如果需要与SS7网络相连接,至少还需要一个信令网关。媒体网关完成电路交换网与分组交换网之间的语音信号转换;信令网关完成窄带信令网与宽带信令网之间的无缝交互与信令之间的转换。 电话网关是承载于电话电路的语音信号,可以和承载于包交换网网络的语音信号互通与转换。通过电话网关以及控制它的呼叫代理,普通的电话终端可以通过分组交换网,如IP或ATM网,和其它普通电话终端,或IP/ATM终端互通电话。MGCP支撑传统的电话操作,如拨号、摘机等。它也支撑基于电话的链路,如DSI。MGCP认为连接模型由连接和端点两个基本元素组成,一次呼叫由一个或多个连接组成,连接与呼叫由一个或多个呼叫代理(MGC)协同完成。 在MGCP中,端点就是数据源和数据信宿。端点可以是物理链路,如一条T1中继线。也可以使操作在物理链路上的虚拟链路。 端点由端点名称来标识。该名称分为两个部分,第一部分是该端点所在网关的域名,第二部分是该端点在网关内部的本地名称,它们之间用“@”分隔。实际上就是一个Email地址。本地名称的语法取决于端点的类型,但要求具有层次结构,以形成一个从网关名盗各端点的命名路径。 本地名中可以用通配符“*”和“$”,前者表示这一层上的所有端点,后者表示这一层上的某个端点。 连接可以使点到点的连接或多点连接。点到点连接就是两个相互发送数据的端点之间的一种关联,一旦关联在两个端点都建立起来以后,就可以开始传送数据。多点连接是多个端点之间的关联。连接可以建立在不同类型的承载网络之上。连接在端点被管理,并且可以被聚合成呼叫。连接由网关创建,并且网关赋予其本端为一的连接标识。连接标识为16进制数字组成的字符串。 呼叫由唯一的标号来标识,它由MGC创建。呼叫标识可以看作没有结构的字符串。呼叫标识在系统中必须是唯一的。MGC可能对一个呼叫建立数条连接,这些连接必须与同一个呼叫相关联。 事务标识是0到999999999之间的整数值。MGC可以决定为他们管理的每个网关分配一个确定的编号空间,或者对于属于任意一组的所有网关使用相同的编号空间。MGC可以决定将管理一个大网关的负荷分担给多个相互独立的进程。这些进程将分享相同的事务编号空间。这里可以有多种可能的共享实现,例如使用事务标识集中分配法,或者为每个进程预先分配相互不重叠的标识域。该实现必须保证所有来自同一个逻辑MGC的事务必须被分配 唯一的事务标识,这样只需要查看事务标识,网关就可以简单检查出重复的事务。在任何命令中都可以发现响应确认属性。它携带一个“确认事务标识域”集。 网关可以选择删除那些在收到响应确认消息中“已经确认事务标识域”中所包含事务的响应拷贝。当更多来自MGC的命令的事务标识落在这个域中时,网关应该默默丢弃这些命令。 如果自从该网关发出它的最后一个给呼叫代理的响应已经超过LONG-TIMER秒,或者当一个网关恢复操作时,不应该再使用该“已经确认事务标识域”。这种情况下,网关应该接受相关命令并进行处理,不检查事务标识。 携带“响应确认属性”的命令可能不按顺序传输。网关应该保留最近收到“已经确认事务标识域”的并集。 MGC请求网关监视端点上将要发生的某个事件如摘机,或者指示网关向指定端点送信号,如拨号音。 在MGCP中事件和信号被分成不同的包(Package),包中事件和信号被统一命名,共享同一命名空间。用事件名来统指事件名和信号名。包通常按端点类型划分,一个包给出在这个端点上可能会发生的事件或可以实施的信号的集合。 MGC可以请求网关收集用户拨号数字。该功能用于住宅网关收集用户拨打的电话号码;类似的该功能也可以用于中继网关和接入网关,用来收集存取码、信用卡号码或者呼叫控制业务请求的其它号码。在网关中设置拨号方案,可以解决单独报号无谓的交互过程和网关中存储所有拨号的不可预知性。 通知请求(RQNT) 通知请求命令是由MGC发送给网关的命令,以指示网关在指定端点上检测指定的事件。NotificationRequest{EndpointId,RequestIdentifie,RequestedEvents,SignalRequests,NotifiedEntity,DigitMap,QuarantineHandling,DetectEvents}主要参数: EndpointId:端点标识。MGC请求网关检测在这个端点上发生的指定事件。这里的端点标识可以使用表示“所有的”通配符“*”。 RequestedEvents:事件列表。指示网关检测对应端点上事件列表中的事件。这些事件包括:Fax信号、摘挂机事件等。 DigitMap:当需要网关按堆积方式收号时,MGC指示网关按此参数收号。收号方式有马上与堆积方式,按堆积方式收号时,网关收齐指定的位数以后一次把所收集的号码发给MGC。 SignalRequests:信号音请求参数。MGC在检测特定事件的时候或之前,可以通过此参数指示网关向对应端点输出信号。 收到该命令后,网关马上发送一应答(Respond)给MGC,并实行相应操作,检测对应的事件。一旦网关检测到对应的事件,则按该命令规定的动作处理(每个事件对应一个动作),如直接通知MGC、按照DigitMap收号等,缺省的动作是发送通知。通知命令(NTFY) 当在指定端口上检测到指定的事件后,如果规定的动作是发送通知,则网关将发出命令Notify给MGC。 Notify{EndPointId,RequestIdentifier,NotifiedEntity,ObservedEvents,QuarantineHandling,DetectEvents} 主要参数: EndpointId:端点标识。Notify是由端点上的事件触发。这里端点标识不能使用通配符。 ObservedEvents:被网关检测到的事件集。其中只包含对应命令NotificationRequest要求检测的并被检测到的事件。 收到网关发来的Notify命令后,MGC马上应答网关。如果有必要,随后还会发出其它命令,如NotificationRequest或CreateConnection等给网关。创建连接命令(CRCX) 该命令由MGC发送给网关的命令,用于创建连接。 CreateConnection{EndpointId,CallId,RequestIdentifier,LocalConnectionOptions,ConnectionMode,RequestEvents,SignalRequests,NotifiedEntity,DigitMap,QuarantineHandlling,DetectEvents,RemoteConnectionDesriptr} 主要参数: CallId:呼叫标识。全局唯一的标识。指出所建立的连接属于这个呼叫。 EndpointId:端点标识。网关所创建的连接的端点。 LocalConnectionOptions:本地连接选项。引导网关如何设置这个连接的一些参数,它包括这样一些域:编码方案、打包时延、占用带宽、业务类型、回声抑制的使用、静音抑制的使用、增益控制的使用、资源预留的使用、RTP安全机制的使用、承载网络的类型。 RemoteConnectionDescripto:远端连接描述。与本地连接选项的域相同。该MGC不清楚远端描述的情况下,本参数缺省。 ConnectionMode:连接模式。指示此连接的操作模式,如它们可以被设置为“只发送”(sendonly)、“只接收”(recvonly)、“收/发”(sendrecv)、“会议”(confrnce)、“数据(data)”、“去激活(inactive)等。在这些连接上接收到的音频信号的处理是由这些模式参数决定的: 通过“接收”、“会议”或者“收/发”模式连接收到的数据包中的音频信号将被混合,并被送到该端点。 源于模式为“发送”、“会议”或者“收/发”的连接的该端点的音频信号将被发送出去。 通过“会议”连接模式数据包收到的音频信号,除了被送到端点之外,还被复制到所有模式为“会议”的其他连接上。 其它参数: 这些参数与通知请求命令相同,这也说明在创建连接的同时可以携带通知请求命令给网关,使之同时实行这两条命令。 实行完CreateConnection后,网关将马上发送一应答给MGC。指出连接建立是否成功。如果成功,则返回网关创建的连接标识(ConnectionId,在端点内唯一,一个端点可以终结多个连接)、用SDP描述的本地连接描述(其中包含IP地址和RTP端口号)。修改连接命令(MDCX) 由MGC发送给网关的命令,用于更改连接的特征,其参数中既包括本地连接描述,也包括远端连接描述。 ModifyConnection{CallID,EndPointId,ConnectionID,RequestIdentifier,LocalConnectionOptions,ConnectionMode,RequestEvents,SignalRequests,NotifiedEntity,DigitMap,QuarantineHandlling,DetectEvents,RemoteConnectionDesriptr} 主要参数: CallID:呼叫标识。 ConnectionId:连接标识。这是在建立连接时由网关返回的标识,对应端点内连接的标识。 其它参数: 与建立连接命令参数相同,且其用法也是一样。不同之处在于EndpointId不可使用通配符。 实行ModifyConnection后,网关马上应答MGC,如果本地连接的参数被更改,则同时返回更改后的LocalConnectionDescriptor参数。由MGC发起的删除连接命令(DLCX) MGC用DeleteConnection来终止之前建立的连接。 DeleteConnection{CallID,EndPointId,ConnectionID,RequestIdentifier,RequestEvents,SignalRequests,NotifiedEntity,ReasonCode,DigitMap,QuarantineHandlling,DetectEvents} 主要参数: CallId:呼叫标识。 EndpointId:端点标识。这里端点标识不能用通配符。 ConnectionId:连接标识。 其它参数: 与建立连接的参数一样,用法也相同。 通常情况下,一条连接对应着两个端点,要MGC(可能是不同的MGC)分别发送一条删除连接命令给这两个端点所对应的网关。连接一旦被删除,所有关于此连接的操作,如挂机事件检测等都将被取消。作为对DeleteConnection的应答,网关还会将关于此连接在此端点上的一些统计值返回给MGC,MGC可以据此记帐。这些统计值是:发送出的数据包的数目、发送出的信息的字节数、接收到的包的数目、接收到的信息的字节数、丢包数、平均时延抖动、平均传输时延等。由网关发起的删除连接命令(DLCX) 某些情况下,如资源不够、端点不能接收和发送数据而变的得不可用等,网关将不得不拆除这条连接,对此它将发送删除连接命令给MGC通知对应的连接已被拆除。 DeleteConnection{CallID,EndPointId,ConnectionID,ReasonCode,ConnectionParameters} 主要参数: CallId:呼叫标识。 EndpointId:端点标识。不可使用通配符。 ConnectionId:连接标识。 ReasonCode:拆除的原因。 ConnectionParameters:连接参数。包括关于此连接的各种统计值等信息。 收到网关发来的DeleteConnection后,MGC马上应答网关。审计端点命令(AUEP) MGC可以用这条命令检查指定端点的状态。 AuditEndpoint{EndPointID,RequestedInfo} 主要参数: EndpointId:端点标识。如果端点标识含有通配符“*”,则网关将返回所有匹配此标识的端点标识,且不返回任何关于这些端点的状态。如果端点标识不含通配符,则网关将返回此端点的各种指定状态。 RequestedInfo:请求检查的状态信息。MGC通过此参数告知网关,希翼得到关于端点的哪些状态。这些状态信息包括:RequestedEvents、DigitMap、SignalRequests、RequestIdentifier、NotifiedEntity、ConnectionIdentifiers、DetectEvents、Capabilities。 收到AuditEndpoint请求后,网关将马上应答MGC,并根据RequestedInfo中的指示,返回关于指定端点的特定的状态信息。审计连接命令(AUCX) MGC可以用这条命令检查指定连接的各种信息。 AuditConnection{EndPointID,ConnectionID,RequestedInfo} 主要参数: EndpointId:端点标识。这里,端点标识不能含通配符。 ConnectionId:连接标识。欲被检查的连接标识。 RequestedInfo:请求检查的连接信息。MGC利用此参数告知网关,希翼获知此连接的哪些信息。这些信息是:CallId、NotifiedEntity、LocalConnectionOptions、Mode、RemoteConnectionDescriptor、RemoteConnectionDescriptor、ConnectionParameters。 收到AuditConnection请求后,网关将马上应答MGC,并根据RequestedInfo中的指示,返回关于指定端点中指定连接的指定信息。重启命令(RSIP) 网关利用命令RestartInProgress提示MGC,网关内的一个或一群端点将不再提供服务或将可以提供服务(take in or out of service),换句话说,就是即将离线或即将在线。 RestartInProgress{EndPointID,RestartMethod,RestartDelay} 主要参数: EndpointId:端点标识,指即将在线或离线的端点。它可以含表示“所有”的通配符“*”,但不能含表示“其中任何一个”的通配符“$”。 RestartMethod:重启方案。这些端点重新启动有三种方案,它们是: Graceful:此方案表明这些端点将在指定的延时之后离线。 Forced:此方案表明这些端点将马上离线,已建立的连接将丢失。 Restart:此方案表明这些端点的服务将在指定的延时之后恢复(在线)。此时,这些端点上没有建立任何连接。 RestartDelay:重启时延。即是上面所说的时延,以秒为单位。Forced方案下RestartDelay没有意义。 收到RestartInProgress命令后,MGC作相应处理,并应答网关。命令示例MGCP命令编码的示例RQNT 4561 endpoint-66@tgw-21.infoinst.com MGCP 1.0 N: abc@cal.infoinst.com: 5777X: 45848484R: hd第一行是命令行,RQNT是表示通知请求命令的动词,事务编号是4561,端点是endpoint-66@tgw-21.infoinst.com,协议版本是V1.0。第二行表示NotifiedEntity的内容:Abc@cal.infoinst.com: 5777。它表示网关观察到指定的事件后,发出通知的实体是Abc@cal.infoinst.com,端口号是5777。第三行是用于请求标识符的十六进制的字符串。发送命令时,网关通过此参数将相应的通知请求通报给MGC。第四行表示每一个事件名称的代码,代码“hd”表示摘机。这些代码表示需要检测的网关请求的事件名称。MGC给网关发出该命令,请求它监控摘机事件,该事件出现在中继网关tgw-21的“端点-66”,域名为“infoinst.com”。响应格式和MGCP命令的格式类似,响应格式由一行后接一组可选参数行的响应行组成。响应行由响应码,事务标识和一个由空格隔开的可选注释组成。响应码是一个三位的数值,表示命令的实行状态。MGCP 1.0版本中定义十九个代码,其范围如下:? 200和299之间的值表示成功完成? 400和499之间的值表示瞬态误差? 500和599之间的值表示永久误差下面是审计连接响应的示例:200 1203 OKC: A3C47F21456789F0N: [128.96.41.12]L: p: 10, a: PCMU; G726-32M: sendrecvP: PS=1245, OS=62345, PR=780, OR=45123, PL=10, JI=27,LA=48v=0c=IN IP4 128.96.41.1m=audio 1296 RTP/AVP 0v=0c=IN IP4 128.96.63.25m=audio 1296 RTP/AVP 0 96a=rtpmap:96 G726-32/8000第一行,“200”表示命令的正确接收,1203是事务标识符,OK是注释。第二行,C代表了呼叫ID。第三行,被通知的实体。指示网关,当检测到指定事件时,应向哪个实体发送通知。第四行,在近端连接选项L中,封装时延是10秒,压缩算法是G.726-32。第五行,连接方式M,表示这是一个发送和接收模式,即,该端点既可接受也可发送数据。第六行,连接参数(P)表示,到目前为止,1245个包含62345个字节的数据包已经发出,包含45123个字节的780个数据包已经收到,10个数据包丢失,平均抖动时间是27ms,平均延迟时间是48ms。第七行及其下面的两组参数分别是近端连接说明和远端连接说明,分别表示当地和远端IP地址,端口号和抑制算法。MGCP正常呼叫流程 事件1:MGC给网关发送RQNT命令,请求其对端点的摘机进行监控。 网关确认命令。确认时,使用和RQNT命令相同的事务代码。网关监控这一事件直到用户摘机。 事件2:用户摘机后,网关给MGC发出NTFY命令,其中包含被监控端点发生的摘机事件消息。 MGC应对网关发出的信息进行确认并记录摘机时间。 事件3:MGC给网关发RQNT命令,要求它根据拨号方案收集拨打的号码,监控用户的挂机事件并送拨号音。 网关确认命令并同时给用户送拨号音。 事件4:网关根据事件3的拨号方案,接收数字。收到所有数字后,网关发出NTFY命令通知MGC。这个命令携带收到的带有数ObservedEvents的数字。 MGC发ACK确认命令。 事件5:MGC给网关发出CRCX命令,指示它创建连接。这个命令包括参数CallID、LocalConnectionOptions和ConnectionMode。它表示打包周期、压缩算法(G.711、G.729等等)、连接带宽以及回声抵消。连接方式设置为接收模式。同时,MGC请求网关停止接收拨号,监控另一个挂机事件。 网关创建连接后,发ACK响应MGC,该响应中包含一些连接参数,如IP地址、端口号、承载参数和连接ID。 事件6:MGC分析事件4收到的号码,来指定呼叫路由并建立和指定被呼叫网关的连接。MGC通过分析指定到被呼叫网关的路由。 MGC给被叫网关发CRCX命令。此命令携带的参数包括事件5中网关送回MGC的连接参数,以及与网关传送到MGC的会议相同的会话。但是有两点不同。首先,端点名称表示被叫网关的端点,并且通常它的值和呼叫网关的值不同。第二,方式参数设置为接收/发送方式。由于两个端点之间的连接属于同一个呼叫,呼叫ID在命令中仍然相同。另外,携带诸如SignalRequests和RequesteEvents的参数,指示网关给被叫送振铃声并检测摘机信号。 被叫网关发ACK响应。该命令包括被叫网关的会议说明,如IP地址,端口号和RTP结构。此外网关给被叫送振铃音。接着,它对被叫进行监控直到被叫摘机。 事件7:MGC给主叫网关发出QRNT命令,指示它检测和监控摘机事件并送回铃音。 网关发ACK对命令进行确认,并给主叫送回铃音。 事件8:当被叫网关监测到被叫摘机,它将给MGC发NTFY命令,通知MGC在指定端点观察到的摘机事件。 MGC用ACK响应。 事件9:MGC给主叫发MDCX命令要求修改连接。该命令携带被叫网关的一些连接参数,即被叫网关响应的ACK中携带的参数,然后,连接方式改变为接收/发送方式。同时,它指示网关停止送回铃音。 主叫网关用ACK响应MGC。同时,它将修改连接并停送回铃音。 事件10:紧随事件8,MGC给被叫网关发RQNT,指示它检测指定端点的挂机事件。 被叫网关用ACK对MGC响应。 然后,主叫和被叫连接,进入通话状态。同时双方的网关分别监控指定端点的挂机事件。 事件11:当被叫网关检测到挂机事件,它给MGC发NTFY通报指定端点的挂机事件。 MGC用ACK信号对网关响应。 事件12:MGC给主叫网关发DLCX命令,指示它断开连接。该命令包括诸如端点名称,呼叫ID和连接ID等参数,另外,它还包括参数SignalEvents用来指示网关送忙音。 网关用ACK信号对MGC响应。给MGC的响应中携带性能数据字段来进行统计分析。同时,网关送忙音给用户以中断连接。 事件13:MGC发DLCX命令给被叫网关,指示它中断连接。该命令包括端点名称,呼叫ID和连接ID等参数。 被叫网关发ACK给MGC,响应中携带性能数据字段,中断连接。 事件14:MGC发RQNT命令给被叫网关,指示它对所有端点的摘机信号进行监控。 被叫网关用ACK对MGC响应,并恢复指定端点的摘机检测。 事件15:当呼叫网关观察到主叫挂机,发NTFY命令给MGC。 MGC用ACK对网关响应。 事件16:MGC发RQNT命令给呼叫网关,指示它停止送忙音给指定端点并监控所有端点的摘机信号。 网关用ACK对MGC响应并恢复指定端点的摘机检测。
|
-
总评分: 经验 + 10
家园分 + 30
+ 10
查看全部评分
|