zoukankan      html  css  js  c++  java
  • 【NGN学习笔记】4 软交换中的协议2—Megaco/H.248

    作者:gnuhpc
    出处:http://www.cnblogs.com/gnuhpc/

    1.概述:

    软交换设备之间采用SIP(Session Initiation Protocol)协议或者BICC(Bearer Independent Call Control)协议,软交换设备与信令网关之间采用信令传送协议SIGTRAN(Signaling Transport)在IP网络中传递电路交换信令。而在媒体网关控制器(Media Gateway Controller)和媒体网关( Media Gateway )之间则采用H.248/Megaco协议。这是一个呼叫控制协议,媒体网关(MG)受MGC控制,其中渗透着MGC和MG分离的思想:优势在于--媒体转换相对分布在边缘,使得呼叫控制相对集中,可以用相对比较少的MGC控制相对比较多的MG,可以使MGC快速地升级。

    传统的VoIP网关 vs MGC与MG分离

    image image

    左图为其在网络中的位置,右图以阿尔卡特的软交换设备为例。

     

    image image

    MGCP协议是在MEGACO/H.248之前的一个版本,它的灵活性和扩展性比不上MEGACO/H.248,同时在对多运营商的支持方面也不如MEGACO/H.248协议。 MEGACO/H.248实际上是同一个协议的名字,由IETF和ITU联合开发,IETF称为MEGACO,ITU-T称为H.248。MEGACO/H.248称为媒体网关控制协议,它具有协议简单,功能强大,且扩展性很好的特点。

    H.248/Megaco协议是2000年由ITU-T第16工作组提出的媒体网关控制协议,它是在早期的MGCP协议(RFC2705)基础上结合其它媒体网关控制协议特点发展而成的种协议。它提供控制媒体的建立、修改和释放机制,同时也可携带某些随路呼叫信令,支持传统网络终端的呼叫,解决了H.323的复杂、伸缩性差着问题,是下一代网络关键的媒体网关控制协议。

    H.248/Megaco的另一个特点是消息格式既可以采用文本格式,也可以采用ASN.1的二进制编码格式。在对媒体流进行描述时,如果消息格式是文本格式,则采用SDP描述媒体流。如果消息格式是二进制编码格式,则使用协议规定的编码。因此在协议实现时,若要求各厂商设备互通,就需要实现两种编码方式。这一特点是IETF和ITU-T合作的结果。

    H.248/Megaco协议建立了多种传输机制,其定义的各种协议消息既可以在TCP上传输,也可以在UDP上传输,保证了协议消息在媒体网关和媒体网关控制器之间的可靠传输。

     

    2.H.248/Megaco协议中的主要概念:

    • 终结点(Termination)是媒体网关上的一个逻辑实体,能够发送或接收一个或多个媒体流的逻辑功能实体,如模拟用户接入网关中的电话线、中继网关中的中继电路,一个终端在任一时刻属于且只能属于一个关联。终结点定义: TerminationID、PropertyID、Descriptor。
      image
      • 半永久性终结点:代表物理实体,如中继线、模拟线;
      • 临时终结点:代表临时性的信息流,如IP资源--一个RTP Port,仅在它们被使用期间存在。
    • 分类:

    • 关联(Context)是两个或多个终结点之间的连接关系,描述了终端间拓扑关系和媒体混合/交换的参数,表示一组终结点之间的连接关系。只有同一个关联中的终结点才能交换媒体,一个终结点在任一时间只能在一个关联中,但是在一个关联中可以存在若干个终结点,其数目完全由媒体网关的特性决定。空关联表示所有与其它终点没有联系的终结点。
      image
      • ContextID
      • Topology:表示关联中终结点之间媒体的流向
      • Priority:MG处理关联时的优先级
    • 关联的属性

    • 包(Package)通过允许终结点具有可选的特性、事件、信号和数据,媒体网关控制协议实现了对具有不同特点的终结点的支持。同时,为了实现媒体网关与媒体网关控制器的互操作,这些可选项可以被组合成包。不同类型媒体网关可以实现不同的终结点,包用来确定终结点的不同和媒体网关的能力,Megaco的可扩展性主要由包来体现。
      • 属性(Property):终结点状态属性和媒体流特性
      • 事件(Event):终结点需要检测和上报的事件,如摘机,挂机和拍叉等
      • 信号(Signal):请求MG向终结点施加的信号,如拨号音、忙音和录音通知等
      • 统计(Statistic):指示终结点采集并上报的统计数据
    • 定义

    • 事务交互(Transacition)
    • MG和MGC之间的命令被封装到事务中,事务交互由TransactionRequest发起,返回结果放在TransactionReply中,TransactionPend周期性地报告Transaction的执行情况。

    事务交互特点:保证命令的按序执行,但不同的事务可以以任何顺序执行,事务处理都是原子操作。

    3.Megaco命令

    • Add:MGC->MG,向一个关联添加一个终结点,当向一个关联添加第一个终结点时,同时创建一个关联。
    • Subtract:MGC->MG,解除一个终结点与关联的联系,并把该终结点放入空关联,当删除关联中最后一个终结点时,同时删除了这个关联 。
    • Move:MGC->MG,将一个终结点从一个关联转移到另一个关联,不能用来将终结点从空关联中移走和移入。
    • Modify:MGC->MG,修改一个终结点属性、事件和信号,指示检测相关的事件
    • Notify:MG->MGC,报告媒体网关中所发生的事件
    • AuditValue:MGC->MG,获取与终结点的当前属性、事件、信号。
    • AuditCapability:MGC->MG,获取媒体网关所允许的终结点特性、事件和信号的所有可能值的信息
    • ServiceChange:MG->MGC/MGC->MG,报告终结点将要退出服务或者恢复服务,MGC指示应退出服务或恢复服务的终结点,报告终结点的能力发生了改变,MGC将对MG的控制权移交给其他的MGC。

    4.描述符(Descriptor)

    • 媒体描述符(Media):描述所有的媒体流,包括一个终结点状态描述符和多个流描述符。
    • 终结点状态描述符(Termination State):与媒体流无关,表明业务状态特性和事件缓存特性,终结点状态--Test, in service, out of service。
    • 流描述符(stream):描述单个双向流:本地流的特性,远程流的特性,包括本地控制描述符、本地描述符和远程描述符。
    • 本地控制描述符(local control):媒体流特有的属性模式,receive-only/send-only/send-receive/inactive。
    • 本地描述符(Local):描述MG接受到的媒体的编码格式。
    • 远端描述符(Remote):描述MG发出的媒体的编码格式。
    • 事件描述符:包括RequestID和一组MG需要检测和报告的事件。
    • 调制器描述符(Modem):对调制器的类型和参数进行定义。
    • 复用描述符(Multiplex):将媒体和对应的承载通道联系在一起。
    • 事件缓存描述符(EventBuffer):一系列需要检测和缓存的事件,对检测到的事件的处理模式。
    • 信号描述符(Signal):MG应用于终结点的信号集
    • 审计描述符(Audit):向MG指示要进行审计的信息,一个其他描述符的集合。
    • 业务改变描述符(ServiceChange):只能用于ServiceChange命令,描述改变的模式、原因、时间等
    • 数图描述符(DigitMap):规定作用于MG中的拨号方案,用于检测和报告在终结点处接收到的数字
    • 统计描述符(Statistics):描述关联中终结点的统计属性。
    • 包描述符(Packet):用于AuditValue命令,返回终结点实现的包的列表。
    • 被观察事件描述符(ObservedEvent):向MGC报告检测到的事件
    • 拓扑描述符(Topology):描述关联中终结点的流方向(T1,T2,联络)
    • 错误描述符(Error):向MGC报告错误

    5.典型交互流程

    控制中继网关:与ISUP协议配合共同完成中继呼叫。

    image image

    控制驻地网关:单独负责用户终端接入的功能

    image image

    作者:gnuhpc
    出处:http://www.cnblogs.com/gnuhpc/


                   作者:gnuhpc
                   出处:http://www.cnblogs.com/gnuhpc/
                   除非另有声明,本网站采用知识共享“署名 2.5 中国大陆”许可协议授权。


    分享到:

  • 相关阅读:
    JavaScript面向对象之闭包的理解
    JavaScript面向对象之函数构造器的理解
    记录jq控制select 选中状态
    JavaScript面向对象之创建类和方法
    获取对象属相 点运算符 和方括号 运算符
    parseFloat 和 Number isNaN 转换
    Js数据类型和运算符
    break , continue 和 标签 跳出循环
    javaScript--循环语句
    三元运算符
  • 原文地址:https://www.cnblogs.com/gnuhpc/p/2813485.html
Copyright © 2011-2022 走看看