当前位置:文档之家› H.248程序员手册

H.248程序员手册

H.248程序员手册
H.248程序员手册

RADVISION的Megaco/H.248

工具包

程序员指南

申明

?2001 RADVISION有限公司

本出版物中所有知识产权为RADVISION有限公司拥有,并受美国版权法和其他适用的版权法等国际条约保护。RADVISION有限公司保留所有未明确授予的权利。本出版物的任何部分不得以任何形式被应用于制作任何未经事先书面批准的衍生作品。RADVISION公司保留修订和更改本出版物的权利,且无义务向任何人通知此类修改或变更。RADVISION公司可以在任何时间进行改进或变更文档中的产品和程序。如果想了解更多的产品和信息,请联系RADVISION有限公司。RADVISION注册商标被登记在美国,除非另有说明,否则不能使用于其他地区。欲了解更多信息,请联系RADVISION或您当地的经销商或分销商。

1.0版,2001年6月出版

https://www.doczj.com/doc/e318510382.html,

目录

关于本手册7

相关文档7

1 工具包概述

介绍9

软件包9

什么是的Megaco/H.248?9 的Megaco/H.248基础知识10 简介RADVISION工具包12 产品规格13 产品特点14 符合规格的Megaco/H.248 14 设计工具包15 差异化特性16 的Megaco/H.248堆栈架构17 语义层18 原始图层19 原料层19 核心层19 工具包的概念20 多个实例20 多线程和线程安全操作20 调用和回调20 非阻塞请求/应答交互20 2 资料来源参考

API的命名约定21 句法21

主要功能动词22 工具包库和目录23 3 设置和运行演示

介绍25

如何示范工程26 演示可执行文件26 媒体网关控制器命令行26 媒体网关命令行27 RVPhone命令行28 程序运行示例程序29 4 创建应用程序

介绍31 媒体网关的初始化/关机31 样品初始化/关机代码31 媒体网关控制器的初始化/关机34 样品初始化/关机代码34 建筑和发送的Megaco/H.248交易36 全力打造方法37 罐装生成方法42 5 Media设备管理器

介绍45 Media设备管理器模型46

媒体设备管理器API 46 主要的操作使用Media设备管理器当47 初始化48 初始化样例代码48 播放信号51 汇报活动51 统计报告51 创建,修改,释放和连接媒体流52 建立媒体流52 修改和释放媒体流53 连接媒体流53 使用选择终止回调函数53 样品的Megaco呼叫流程54 6 日志

介绍61 侦听器函数62 设置日志62 因果过滤器62 示例63

关于这本手册

本手册介绍的Megaco/H.248工具包的组成和详细描述了在用户程序中如何实现RADVISION的Megaco/H.248堆栈

该Megaco/H.248工具套件包含了Megaco/H.248栈,一套API,示例代码和相应的用户文档。该工具包提供给那些想开发媒体网关(MG)或媒体应用的程序开发者。Megaco/H.248协议正在被IETF和ITU-T共同定义和规范。

相关文档

以下文档也与RADVISION的Megaco/ H.248工具包一起被提供

RADVISION的Megaco/H.248工具包参考图书馆的

提供有关API函数和数据类型的详细信息。

RADVISION SDP参考指南。

RADVISION的RTP / RTCP编程器和参考指南。

详细信息和安装说明。

1

工具包概述

介绍:

该工具包Megaco/H.248是为那些想要开发媒体网关(MG)或媒体网关控制器(MGC)的应用程序的开发者提供的。该Megaco/H.248协议由IETF 和ITU-T标准组织定义,并且被广泛遵守。

为了清楚起见,H.248是ITU-T的协议的名称,MEGACO是IETF协议的名称。在ITU-T和IETF共同制定了协议规范。

软件包

RADVISION公司的Megaco/H.248工具包一共提供的

以下软件:

工具包库:MEGACO/H.248,SDP和RTP / RTCP协议

一个包括演示一个媒体网关控制器和媒体网关示例的应用程序

RvPhone模拟手机模拟器

什么是MEGACO/H.248

Megaco/H.248 说明了媒体网关(MG)和媒体网关控制器之间的联系。媒体网关用于转换电路交换语音到基于包的通信流量,而媒体网关控制器用于规定这种流量的服务逻辑。Megaco/H.248 通知MG 将来自于数据包或单元数据网络之外的数据流连接到数据包或单元数据流上,如实时传输协议(RTP)。从VOIP 结构和网关控制的关系来看,Megaco/H.248 与MGCP 在本质上相当相似,但是Megaco/H.248 支持更广泛的网络,如ATM。Megaco/H.248 中有两个基本组成部分:终端(termination)和上下文(context)。Termination 表示进入和离开MG 的流(例如,模拟电话线路,RTP 流或MP3 流)。Termination 具有一些属性,如最大活动缓存容量,MGC 可对其进行检查和修改。Termination 可以被置于context 中。当有两个或更多Termination 流被混合或连接在一起时就需要定义context。常规的活动context 可能会有一个物理Termination (比如说,DS3 中的一个DS0)和一个暂时

Megaco/H.248 基本概念

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

Context:一个Context就是一些Termination间的联系。它描述了Termination之间的拓扑关系以及媒体混合/交换的参数。Context由一组Termination组成。一个Context可以包含多个Termination,一个Termination在同一时刻只能属于一天Context,一个Context中至少要

包含一个Termination。Context用一个Context ID来标识,在MG范围内唯一。

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

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

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

描述符(Descriptor)

?媒体描述符(Media):描述所有的媒体流,包括一个终结点状态描述符和多个流描述符。

?终结点状态描述符(Termination State):与媒体流无关,表明业务状态特性和事件缓存特性,终结点状态--T est, 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报告检测到的事件

?拓扑描述符(T opology):描述关联中终结点的流方向(T1,T2,联络)

?错误描述符(Error):向MGC报告错误

入门套件

RADVISION公司的Megaco/H.248工具包包括以下组件:

Megaco/H.248堆栈

协议实现

RADVISION的实施的Megaco/H.248和建议制定的Megaco/H.248的MGC和MGS

Media设备管理器

在RADVISION公司的Megaco/H.248工具包中包括媒体设备管理(MDM),它是用来构建媒体网关应用的。 MDM解释的Megaco/H.248信息的语义。媒体网关所构建的MDM应用不需要处理Megaco/H.248消息语法,他们只需要处理应用程序特定的逻辑。这将减少开发时间和开发难度。

SDP组件

RADVISION实现了用SDP协议的多媒体会话通告,多媒体会话邀请和其它形式的多媒体会话启动。一个多媒体会话的定义作为一组存在于某一时间段的媒体流。

RTP / RTCP元器件

RADVISION实现了通过RTP / RTCP协议发送和接收媒体分组数据

规格

RADVISION公司的Megaco/H.248工具包是基于以下规格:

IETF RFC 3015

ITU-T制定的H.248

IETF RFC 2327会话描述协议

2000 十一月MEGACO MIB草案

有关规格的信息,请参阅Megaco协议的以下网址:

https://www.doczj.com/doc/e318510382.html,/rfc/rfc3015.txt。

http://www.itu.int/itudoc/itu-t/rec/h/h-248.html。

产品特点

该工具包是兼容的Megaco/H.248规格和支持:

媒体网关和媒体网关控制器应用程序。

ABNF(文字)编码/解析。

TCP和UDP传输。

中期AH机制,IPv4网络缺乏IPSEC,以及IPSEC。这种机制提供了一种手段,以不安全的网络身份验证信息。

标准封装。

下面列出所有的标准软件包:

基本(规范性附录)封装,包括:

通用

基根

音频发生器

音检测

基本的DTMF

DTMF检测

呼叫进程音发生器

呼叫进程音检测

模拟线路监控

基本连续性

网络

RTP

TDM电路

额外的软件包

IP电话(附件草案)

扩展包。

非标准软件包,可以通过一个标准的API被添加。

MIB

该工具包支持:

RADVISION核心私有MIB

工具包设计:

该工具包提供了以下设计特点:

ANSI C的编写,遵循面向对象的方法。每个对象类型有关联函数构造和析构的对象。此外,每个对象都有访问功能操纵对象。多操作系统支持,包括:

Win32的

Solaris

Linux

PSOS

VxWorks

OSE

多层的接口

具有多个接口层,组件,可访问高和低级别的水平。较低级别的API 使应用程序有更多的控制,但需要开发者对其有更详细的了解。高层次的API处理细节要求较少,但提供较少控制。

支持多种协议栈的实例

支持多线程

线程安全操作

对于在多个堆栈实例的详细信息,多

线程和线程安全的操作,请参见本节工具包

辨证特点

RADVISION公司的Megaco/H.248 Toolkit提供这些独特的功能:Media设备管理器

构建媒体网关的媒体设备管理器应用程序和解释Megaco/H.248消息的语义。

“封装”消息

这个设备为那些想开发Megaco/H.248消息的开发者提供了一个快速的方法

对于全功能媒体网关和媒体的示例代码

网关控制器应用

示例源代码演示了如何开发与应用

该工具包的Megaco/H.248。这些功能齐全的样品也帮助了测试和调试与开发其他应用程序的情况下使用该工具包。

登录

日志功能使应用程序能够收集,查看正在发生的事件,如错误,进程信息,入站和出站邮件,并且调试和跟踪信息。

RVPhone

一个Java应用程序,它模拟了一个模拟电话。该RVPhone可以与样品MG放到到一起使用帮助客户测试应用程序。

Megaco/H.248堆栈架构体系结构的设计

该堆栈的Megaco/H.248由四个软件层构成,

语义层

原始图层

原料层

核心层

语义层

语义层处理Megaco/H.248命令的语义

并打破了语义成与协议无关的概念,例如启动/停止

信令创建/修改/删除。

该Megaco/H.248语义层是由媒体设备实施管理器(MDM)。在MDM API 隐藏的Megaco的语法和语义/H.248消息,并提供了一个抽象的接口应用程序开发人员不需要知道的Megaco/H.248消息,因此,用户应用程序是不知道这些消息的。

媒体网关/媒体网关控制器

用户应用程序

知识产权

TCP

UDP

解析器/编码器的API

运输的API

原始的API

核心API

原始图层

原料层

核心层

媒体设备管理器API

语义层

H.248消息和用户应用程序表示到的Megaco/H.248堆栈当一个事件发生在用户应用程序。因此,实现一个MG具有接口最小的简单应用程序代码是必需的。

原始图层

原始层API提供接口的解析器/编码器的API,并运输Megaco/H.248的API。该解析器/编码器API函数的使用用于创建,销毁,访问和设置上的交易信息。此外,API提供了一种机制,用于编码和解码这些

交易进入/出的Megaco/H.248消息格式。在原始层的Megaco/H.248交通API提供了可靠传输的MG和MGC之间的Megaco/H.248消息。该

原始图层进行重复交易拆卸和交易转播服务。

原料层

该生的Megaco/H.248 API实现了原始图层,并提供界面同时接收和发送。与原始的API接口产生的Megaco/H.248消息,通过用适当的回调注册,用户应用程序有一个选项访问在接收路径或发送路径Raw格式的消息,如下:

在接收路径,当收到消息时,用户应用程序可以利用该消息,检查或更新在它被处理之前,然后,无论是由它返回的处理堆叠,或绕过堆栈。

在发送路径中,当一个消息被发送时,用户用程序可以访问或更新信息。然后应用程序可以处理该消息本身,丢弃消息或消息返回到堆栈进行传输。

核心层

核心层是RADVISION的媒体网关工具包的最底层核心API一组功能,它隔离更高级别的API体现了Toolkit组件和处理器和操作系统用户应用程序的依赖关系。

多个实例

Megaco/H.248堆栈的多个实例可以创建在相同或不同的进程空间。多个实例允许多个逻辑和MGC共存于一个单一的进程空间。

多线程和多线程安全操作

每个堆栈实例是多线程和线程安全的。多线程和线程安全功能对用户应用透明的。多线程协议栈可并行处理事务,从而减少往返延迟。在多处理器环境中,多线程提供了真正的并行处理从而使网络吞吐量可扩展增加。在单处理器环境中,多线程可以通过减少或消除头阻塞现象来提高整体吞吐量。在多线程的堆栈情况下,协议栈提供了机制,线程安全。每叠都有一个线程池。用户构建一个堆栈实例时配置的线程池中的数量。该协议栈的用法是由底层操作系统提供互斥锁保护所有数据结构。这些锁序列化访问是数据结构中堆栈的处理的关键部分。

拨号和回复

所有层的API提供了一套功能从用户应用程序调用到堆栈和一组从堆栈回调函数的用户应用程序。用户应用表明,它希望被通知有关

某些事件注册一个回调函数。

请求/应答交互

请求/应答交互可能会阻止(顺序)或非阻塞

(非顺序)。例如,当堆叠接收到一个请求,并在用户

应用程序的回调被调用时,用户应用程序可以从回复

立即回调(阻塞发送),或者从回调返回并发送

从任何线程(非阻塞发送)任何时间回复。

2 参考资源

API命名规则

在RADVISION公司的Megaco/H.248工具包中,API函数有一个被定义的方式,这种定义方式可以使用户理解准函数和它们的数据

类型。

句法

RV -表示这是一个RADVISION特有的功能。

TypeName——该函数相关联的该类型的名称(大小写混合的)VERB——通常情况下,常用功能的动词之一

主要的功能动词有如下几个

Construct

Destruct

Get

Set

Register

Unregister

3

设置和运行演示

介绍:

演示的目的是展示应用程序的开发与Megaco/H.248工具包的工作原理,从而使开发人员能够验证操作该Megaco/H.248堆栈在他们的运行环境中。

该演示包括:

megacoMgc

样本媒体网关控制器的应用。

megacoMg

样本媒体网关应用程序。

RVPhone

一个基于Java的终端仿真器,一个支持的端点协议(EPP)“黑”手机模拟器, RVPhone可以连接到示例媒体网关和使用标准电话的信令和音频功能。

注端点协议是一个模拟媒体网关和一个模拟电话之间的相互作用的专有RADVISION协议。

如何操作演示

RVPhone采用EPP协议的媒体网关进行通信,媒体网关使用Megaco/H.248与媒体网关控制器进行通信的。编译后的媒体网关和媒体网关控制器与RVPhone携手合作提供一个全功能的环境测试的Megaco/H.248堆栈和RTP。

4 创建应用程序

介绍

本章介绍了任何实施必要的基本代码即RADVISION的Megaco/H.248堆栈。

使用RADVISION工具包创建一个的Megaco/H.248应用

1。初始化Megaco/H.248系统。

2。注册登录听众。(可选)

3。构建堆栈。

4。注册在堆栈回调。

5。构建本地和远程的实体。

6。寄存器堆栈与系统的Megaco/H.248。

5 多媒体设备管理器

介绍

媒体设备管理(MDM)是的Megaco/H.248工具包用于构建媒体网关应用的一部分。 MDM解释Megaco/H.248消息的语义。媒体网关应用程序的建立是不需要MDM处理Megaco/H.248消息的,他们只需要处理应用程序特定的逻辑。因此,使用MDM,媒体网关的应用程序使用内置较少的

源代码,而不是使用写在API的原始图层的应用程序。这减少了应用程序开发时间并减轻了开发难度。MDM管理终端被放置在上下文中。它的任务是在MDM中找出哪些媒体流需要连接到哪个媒体流,并把这些信息生成断开或连接命令。MDM提供了所需的Megaco/H.248语义级功能

协议,如上下文管理,端点通配符,事件过滤,位图模式匹配和事件缓冲。

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。

整个媒体流的流程如下:

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

MGC;

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

(3) MGC分析收到数据决定建立MG1到MG2的一个Context,并通过Add

命令让MG1将主叫端口加入一个Context,向主叫送拨号音。因为MGC

还未获得包含特定媒体流接收方的属性,所以媒体流的Mode是ReceiveOnly,并且在命令中,未知的参数用参数通配符“$”表明,意思为“选择”,具体的参数值将由MG1在下一条Reply中填入具体的值。

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

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

(6) MG2把自己的IP和UDP端口填入。

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

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

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

(10) MG再向MGC发一个Reply。

此后,双方进入通话。

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

相关主题
文本预览
相关文档 最新文档