Megaco/H.248概述

Megaco/H.248是在MGCP的基础上发展起来的,比MGCP具有更强大的可扩展能力,可应用于大型网关;MegacoH.248是一个协议,只不过是由两个组织同时制定的,IETF称其为MegacoITU-T称其为H.248,后来就合二为一了。IETF制定Megaco的时候用的是文本编码方式,ITU-T制定H.248的时候用的是ASN.1BER编码方式。所以我们可以说Megaco/H.248支持两种编码方式。在Wireshark的解包过程中,如果发现是文本编码格式就显示为Megaco协议,如果发现是二进制编码格式就显示为H.248协议。Megaco/H.248可承载于UDP/TCP/SCTP等协议之上,文本编码格式的默认端口是2944,二进制编码格式的默认端口是2945。协议规范可参考RFC 3525

1. 基本概念:

·         Termination类似MGCP中的Endpoint概念不过两者的标识符不同Endpoint使用类似电子邮件的格式来标识Termination使用Termination ID来表示Termination ID用一个十六进制字串来表示,也可以使用通配符表示。

·         Context: 一个Context就是一些Termination间的联系。 它描述了Termination之间的拓扑关系以及媒体混合/交换的参数。Context由一组Termination组成。一个Context可以包含多个Termination,一个Termination在同一时刻只能属于一天Context一个Context中至少要包含一个TerminationContext用一个Context ID来标识,在MG范围内唯一。下图是一个典型的双方通话时的ContextTermination之间的关系。 

         +------------------------------------------------------+

         |Media Gateway                                         |

         |                                                      |

         | +-------------------------------------------------+  |

         | |Context                                          |  |

         | |  +-------------+                +-------------+ |  |

         | |  | Termination |   +-----+      | Termination | |  |

         | |  |-------------|   |     |      |-------------| |  |

       <-+--->| SCN Bearer  |---|  *  |------| SCN Bearer  |<---+->

         | |  |   Channel   |   |     |      |   Channel   | |  |

         | |  +-------------+   +-----+      +-------------+ |  |

         | +-------------------------------------------------+  |

         |                                                      |

         +------------------------------------------------------+

 

·         Transaction是指MGCMG之间的一次消息交互,用Transaction ID表示,该值由消息的发起方分配。Transaction的第一消息为TransactionRequest消息,对方可以回复TransactionReply消息来结束这个Transaction也可以回复TransactionPending消息告诉发起者TransactionRequest消息已经收到正在处理无须重发。

·         ActionContext属性和一组Commands组成一个消息中可以有多个Actions每一个Action中通常包含一个Context ID

·         PackageMGCP中的Package概念类似是为了对H.248进行扩展RFC3525的附录E中定义了一些基本的Package其它扩展Package在另外相关的文档中定义每一个Package有一个字符串作为名字标识IANA进行统一管理。Pakcage就像一个名字空间,把一些不同的属性分隔开来;Package中可以包含PropertySignalEventStatistics等,它们也有相应的Id来标识自己。

2. 消息格式:

下面第一个图展示了H.248的消息结构图,从途中可以看出,消息是按层次组织的,如果使用的是ASN.1的编码方式,那么就是一些了嵌套的TLV格式,如果是用文本编码的话,就是用大括号来进行层次组织的。第二个图是一个消息的实例。

Megaco/H.248概述_第1张图片

3. H.248命令:

H248一共有八个命令如下:

类别

命令

描述

Termination管理

ServiceChange

双向命令,代表一个/一组Termination 加入/退出服务

MGC->MG

指定网关或一组Termination加入或退出服务

指示网关的切换(handoff)

MG->MGC

网关注册/倒换(failover)

指示终结点能力改变

AuditValue

MGC->MG,获取网关(RootTermination)/

Termination当前设置的特性、事件、信号、统计信息

AuditCapabilities

MGC->MG,获取网关(RootTermination)/

Termination可能的特性、事件、信号、统计信息

Termination操作

Add

MGC->MG:向一个Context添加一个Termination

Modify

MGC->MG:修改一个Termination的特性、事件和信号

Subtract

MGC->MG:解除一个TerminationContext之间的联系

Move

MGC->MGTerminationContext之间的移动

事件通知

Notify

MG->MGC:上报MG中发生的事件

 

4. 呼叫流程:

上图画出了两个媒体网关MG1呼叫MG2 时,MGC和发起呼叫的MG1以及被叫MG2之间的媒体流的流程;其中(3)(4)(5)(6)(7)(8)是呼叫的建立过程,(9)(10)是呼叫的连接过程,(11)(12)(13)(14)是被叫挂机后的删除连接过程。

整个媒体流的流程如下:

(1)主叫摘机,MG检测到后通过Notify命令将事件(Off-Hook)报告给MGC

(2)用户拨号,MG将收到的号码通过Notify命令报告给MGC

(3) MGC分析收到数据决定建立MG1MG2的一个Context,并通过Add命令让MG1将主叫端口加入一个Context,向主叫送拨号音。因为MGC还未获得包含特定媒体流接收方的属性,所以媒体流的ModeReceiveOnly,并且在命令中,未知的参数用参数通配符“$”表明,意思为“选择”,具体的参数值将由MG1在下一条Reply中填入具体的值。

(4) MG1接受新的终端(Termination),并把自己的IPUDP端口填入。

(5) MGC分析被叫号码,找出被叫端口,决定建立MGCMG2的一个新的Context,并通过Add命令让MG2将主叫端口加入一个Context

(6) MG2把自己的IPUDP端口填入。

(7) MGC命令MG1将被叫端口加入前面所说的那个Context MGC命令MG1向主叫送回铃音,向被叫送振铃音;

(8) MG1再向MGC发送回应消息。

(9)被叫摘机,MGC命令MG1连接主被叫,把媒体流的ModeReceiveOnly修改为SendReceive,并停止回铃。

(10) MG再向MGC发一个Reply

此后,双方进入通话。

(11)(12)(13)(14)/被叫挂机(由于主叫挂机和被叫挂机返回的命令是一样的,下面只列出被叫挂机的情况)MGC命令MG1MG2释放主被叫连接,将主/被叫端口放空Context,此处只列出MGCMG1的媒体流。至此,MG1MGC的连接释放,媒体流终止。

你可能感兴趣的:(文档,扩展,action,终端,Signal,statistics)