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分离

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

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。

    • 半永久性终结点:代表物理实体,如中继线、模拟线;
    • 临时终结点:代表临时性的信息流,如IP资源--一个RTP Port,仅在它们被使用期间存在。

分类:

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

  • 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协议配合共同完成中继呼叫。

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

转载于:https://my.oschina.net/alphajay/blog/4947

NGN学习笔记4——软交换中的协议2—Megaco/H.248相关推荐

  1. 【NGN学习笔记】4 软交换中的协议2—Megaco/H.248

    作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 1.概述: 软交换设备之间采用SIP(Session Initiation Protocol)协议或者BICC( ...

  2. Java快速入门学习笔记8 | Java语言中的数组

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  3. 【计算机网络学习笔记13】交换技术(下)

    [计算机网络学习笔记13]交换技术(下) 一.生成树的诞生和发展 1. 环路问题 两个网桥之间的连接网线如果只有一根,而这根网线或者接口有问题,网络就会出现单点故障.所以为了提高可靠性,网桥在互连时一 ...

  4. Go语言开发学习笔记(持续更新中)

    Go语言开发学习笔记(持续更新中) 仅供自我学习 更好的文档请选择下方 https://studygolang.com/pkgdoc https://www.topgoer.com/go%E5%9F% ...

  5. C语言学习笔记Day3——持续更新中... ...

    上一篇文章C语言学习笔记Day2--持续更新中- - 八. 容器 1. 一维数组 1.1 什么是一维数组 当数组中每个元素都只带有一个下标(第一个元素的下标为0, 第二个元素的下标为1, 以此类推)时 ...

  6. 【NGN学习笔记】5 IMS技术

    作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 1.移动网络的发展--引子 20世纪80年代,商业性移动通信网络得到发展 第一代移动通信系统:TACS.NMT等 ...

  7. Java快速入门学习笔记9 | Java语言中的方法

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  8. Java快速入门学习笔记7 | Java语言中的类与对象

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  9. Java快速入门学习笔记3 | Java语言中的表达式与操作符

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  10. Java快速入门学习笔记2 | Java语言中的基本类型

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

最新文章

  1. 【kuangbin带你飞】专题六 最小生成树
  2. java scanner怎么用_Java Scanner delimiter()用法及代码示例
  3. Little Sub and Triples
  4. C++如何使用puff()的示例
  5. Codeforces Round #564 (Div. 2)A
  6. AWS public key的邮件验证方式
  7. 马拉车(manacher)算法——最长回文(hdu3068)
  8. 联想l430主板图纸_L430开箱+拆机+换内存+换U+评测+拷机15小时,图多杀猫
  9. 二维数组指针,指针数组与数组指针的区别,一看就懂
  10. 图片格式批量转换器 - 支持 JPG、JPEG、PNG、BMP、GIF 等多种格式图片相互批量转换
  11. 华为云服务查找手机_华为云服务登录入口
  12. 计算机与电气工程sci期刊,电气工程专业什么SCI期刊比较好
  13. 爱奇艺播放按钮动画解析
  14. 磁力开源项目和自己服务器,Github新项目:自己本地搭建磁力搜索系统
  15. 假如你来发明编程语言
  16. Java异步--CompletableFuture--实例
  17. 三星I9308手机secsetpwizard错误解决
  18. 牛逼!最强拆迁户!上市公司喜提近26亿拆迁款,为去年净利78倍!3万股东沸腾了...
  19. 超全的机器学习、深度学习视频课程和讲义的百度网盘下载
  20. 亿图AI助手一键生成思维导图,捕捉万千灵感,快速出彩!

热门文章

  1. 看完这道题,你敢在心里承认自己是高手么
  2. 微信小程序的剪贴板 +复制剪贴,在淘宝中打开就可以获取到商品
  3. 淘宝开源代码质量检测工具!(附源码)
  4. iOS ipa包进行重新签名
  5. vscode生成vue模板快捷键_VSCode 初次写vue项目并一键生成.vue模版
  6. 16kb等于多少b_一篇文章讲透MySQL为什么要用B+树实现索引
  7. 为什么都不想去二次开发_为什么现在的一些大学生都不想处理各种人际关系了?...
  8. Laravel的CURD操作
  9. Oracle数据库中查看所有表和字段以及表注释.字段注释
  10. MAC编译的JDK执行出错: [libjvm.dylib+0x482a49] PerfDataManager::destroy()+0xab