SoftX3000 技术手册 信令与协议分册第2章 H248协议.docx
《SoftX3000 技术手册 信令与协议分册第2章 H248协议.docx》由会员分享,可在线阅读,更多相关《SoftX3000 技术手册 信令与协议分册第2章 H248协议.docx(55页珍藏版)》请在冰豆网上搜索。
SoftX3000技术手册信令与协议分册第2章H248协议
目录
第2章H.248协议2-1
2.1概述2-1
2.1.1基本概念2-1
2.1.2相关术语2-1
2.1.3协议栈结构2-6
2.1.4H.248协议的应用2-7
2.2协议消息2-8
2.2.1消息类型2-8
2.2.2消息结构2-9
2.3基本控制流程2-24
2.3.1网关注册流程2-24
2.3.2网关注销流程2-25
2.3.3网关初始化流程2-26
2.3.4成功的终端呼叫流程2-27
2.3.5成功的中继呼叫流程2-37
第2章H.248协议
2.1概述
2.1.1基本概念
H.248协议,也叫MeGaCo协议,是媒体网关控制器(MGC)与媒体网关(MG)之间的一种媒体网关控制协议,这个协议是一项ITU-T与IETF合作结果的新标准。
目前ITU-T、IETF、软交换论坛等标准化组织正在加紧对H.248协议进行完善,各大电信设备制造商也在H.248协议的研发和应用上加大了投入。
与MGCP协议相比,H.248协议可以支持更多类型的接入技术并支持终端的移动性,除此之外,H.248协议最显著之处在于能够支持更大规模的网络应用,而且更便于对协议进行扩充,因而灵活性更强,已逐渐取代MGCP发展成为媒体网关控制协议的标准。
2.1.2相关术语
1.终端
终端(Termination)是MG的一个逻辑实体,可以发送(接收)媒体流和(或)控制流,终端可用特性来进行描述,在终端中,封装了媒体流参数、modem和承载能力参数,这些特性可以组成一系列描述符而包含在命令中。
终端有唯一的标志TerminationID,它由MG在创建终端时分配。
2.终端类型
终端类型分为半永久性终端和临时性终端两类。
半永久性终端可以代表物理实体,例如一个TDM信道,此时,只要MG存在这个信道,这个终端就存在。
临时性终端可以代表临时性的信息流,例如RTP流,此时,只有当MG使用这些信息流时,这个终端才存在。
临时性终端可由Add命令来创建、Subtract命令来删除。
而半永久终端不同,当使用Add命令向一个关联添加物理终端时,这个物理终端来自空关联,当使用Subtract命令从一个关联中删除物理终端时,这个物理终端将转移到空关联中。
3.终端功能
终端可支持信号,这些信号可以是MG产生的媒体流(如信号音和录音通知),也可以是信路信号(如HookFlash)。
通过编程可以设置终端对事件进行检测,一旦检测到这些事件发生,MG就向MGC发送Notify消息进行报告或由MG采取相应的操作。
终端可以对数据进行统计,当MGC发出AuditValue命令进行统计请求时,或者当终端从它所在的关联被删除时,终端就将这些统计数据报告给MGC。
4.终端ID
终端可用TerminationID进行标识,TerminationID由MG分配。
TerminationID可以使用通配值“ALL”和“CHOOSE”。
通配值“ALL”用来规定多个终端,当命令中的TerminationID是通配值“ALL”时,则对每一个匹配的终端重复该命令;“CHOOSE”则用来指示MG必须选择符合条件的终端,例如MGC可以指示MG选择一个中继群中的一条中继点电路。
例如,在协议的文本格式编码中,有R13/3/1,R13/3/2,R13/3/3三个终端,则R13/3/*将匹配所有这三个终端。
一些特殊场合必须引用所有终端,这时“*”就可满足要求。
当需要引用一个TerminationID,但不能确定该终端是否存在,则可以选用“CHOOSE”,即“$”,则R13/3/$将匹配三个终端中的其中一个。
5.描述符
描述符(Descriptor)是协议中的一种语法元素,用来描述一组相互联系的特性。
例如:
通过在一个命令中包含适当的描述符控制器能够设置MG中的媒体流特性。
6.终端特性
终端可用特性进行描述,每个特性由一个PropertyID标识,由这些特性可以组成一系列描述符。
终端具有一些公共特性以及与特定媒体流相关的非公共特性。
公共特性与特定媒体流无关,也称为终端状态(TerminationState)特性。
与特定媒体流相关的特性包括本地(Local)特性和接收/发送流特性。
终端的非公共特性由包进行定义,这些特性可由包名(PackageName)和特性标识符(PropertyID)来标识。
特性具有只读(ReadOnly)和可读写(Read/Write)两种属性,对于可读写的特性,MGC可以设置它们的值。
当使用Add命令将一个终端添加到一个关联时,可以通过加入适当的描述符作为命令输入参数来设置可读写的特性值,Add命令中未设置的特性值将保持它们以前的值。
类似的,使用Modify命令可以改变一个关联中的终端的特性值,Modify命令中未设置的特性值将保持它们以前的值。
使用Move命令将一个终端从一个关联转移到另一个关联时,也可以改变终端的特性值。
7.根终端
根终端(Root)是特殊的终端,代表整个MG。
当root作为命令的输入参数时,命令可以作用于整个网关,而不是一个终端。
8.关联
关联(Context)为一组终端之间的联系。
如果一个关联中超过两个终端,那么关联就对终端之间的拓扑结构和媒体混合和(或)交换参数进行描述。
空关联是一种特殊的关联,它包含所有那些与其它终端没有联系的终端,例如,在一个中继网关中,所有的空闲线路被作为终端包括在“空”关联当中。
图2-1给出了终端和关联的例子,但不包括所有类型。
图2-1关联模型示例
关联中的最大终端数是媒体网关的一个特性。
仅支持点到点连接的媒体网关在每个关联中仅允许两个终端存在。
支持会议呼叫的媒体网关可以允许三个或更多的终端同时存在于一个关联中。
9.关联特性
关联具有以下特性:
ContextID:
关联标识,一个由媒体网关(MG)选择的32位整数,在MG范围内是独一无二的。
特殊关联编码对照如表2-1所示:
表2-1特殊关联编码对照表
关联
二进制编码
文本编码
含义
空关联
0
“_”
表示在网关中所有与其它任何终端都没有关联的终端
CHOOSE关联
0xFFFFFFFE
“$”
表示请求MG创建一个新的关联
ALL关联
0xFFFFFFFF
“*”
表示MG的所有关联
Topology:
拓扑结构,关联的拓扑结构描述关联中终端之间的媒体的流向。
终端的Send/Receive方式指示媒体在媒体网关的流入或流出方向。
有三种连接值:
单向,双向,隔离。
单向是指两个终端之间的单向媒体流。
双向是指的两个终端之间的双向媒体流。
隔离是指两个终端之间没有媒体流。
拓扑结构只用于描述关联。
它可在“Add”或“Modify”命令中使用。
优先权:
表示MG处理关联的先后次序。
“0”为最低优先级,“15”为最高优先级。
紧急呼叫的标识符:
用于关联向MG提供紧急呼叫关联的信息。
MG优先处理使用紧急呼叫标识符的呼叫。
10.包
不同类型的网关可以支持不同类型的终端,本协议通过允许终端具有可选的特性、事件、信号和统计来实现不同类型的终端。
为了实现MG和MGC之间的互操作,本协议将这些可选项组合成包(Packages),MGC可以通过审计命令Audit来确定终端实现了哪一种类型的包。
终端具有可选的特性、事件、信号和统计,这些可选项组合成包。
这些项以及包含的参数分别由标识符ID进行标识。
包的定义特性、事件、信号、统计和程序五个部分。
表2-2列出了几类常用的包:
表2-1包分类列表
包名
中文名
包ID
含义
Generic
通用包
g
常见项目里都会用到通用包
BaseRootPackage
基础根包
root
该包定义了网关范围内的属性
ToneGeneratorPackage
音生成器包
tonegen
该包定义了生成放音的各种信号。
基于扩展性的考虑,该包没有指定参数值。
放音一般定义成单个的信号,信号包含一个参数ind、一个放音ID。
参数ind表示interdigit时延,放音ID用于放音。
放音ID对于任何相同的语音来说都应该与语音生成保持一致。
MG应提供其所在国家支持的各种放音的特性。
ToneDetectionPackage
音检测包
tonedet
该包定义了用于音检测的各种事件。
各种音通过其名称(放音ID)来选择。
MG应提供其所在国家支持的各种放音的特性。
BasicDTMFGeneratorPackage
基本DTMF生成器包
dg
该包将基本的DTMF音定义成各种信号,并扩展了tonegen中playtone的参数tl的允许取值。
DTMFdetectionPackage
DTMF检测包
dd
该包定义了基本的DTMF音检测。
该包扩展了“starttonedetected”、“endtonedetected”和“longtonedetected”事件中放音ID的可能的取值。
CallProgressTonesGeneratorPackage
呼叫进展音生成器包
cg
该包将基本的呼叫进展音定义成各种信号,并扩展了tonegen中playtone的参数tl的允许取值。
CallProgressTonesDetectionPackage
呼叫进展音检测包
cd
该包定义了基本呼叫进展检测音。
该包扩展了“starttonedetected”、“endtonedetected”和“longtonedetected”事件中放音ID的可能的取值。
AnalogLineSupervisionPackage
模拟线监控包
al
该包定义了模拟线的各种事件和信号。
BasicContinuityPackage
基本导通包
ct
该包定义了用于导通测试的各种事件和信号。
导通测试包括提供环回或收发器功能。
NetworkPackage
网络包
nt
该包定义了与网络类型无关的网络终端的属性。
RTPPackage
RTP包
rtp
该包用于支持通过实时传输协议RTP方式的分组多媒体数据传输。
TDMCircuitPackage
TDM电路包
tdmc
该包用于支持TDM电路终结点。
表2-3列出了包中常用的特性名、事件名和信号等。
其通常为包名/特性名、包名/事件名和包名/信号的格式。
表2-2特性名、事件名和信号举例
事件名
含义
al/fl
模拟线包中的拍叉事件
al/of
模拟线包中的摘机事件
al/on
模拟线包中的挂机事件
al/ri
模拟线包中的振铃音信号
cg/bt
呼叫音包中的忙音信号
cg/ct
呼叫音包中的拥塞音信号
cg/cw
呼叫音包中的呼叫等待音信号
cg/dt
呼叫音包中的拨号音信号
cg/rt
呼叫音包中的回铃音信号
dd/ce
DTMF检测包中的DigitMapCompletion事件
nt/jit
NetworkPackage中的抖动缓存最大值,单位为毫秒
tdmc/ec
TDM电路包中的回声取消特性
tdmc/gain
TDM电路包中的增益控制特性
2.1.3协议栈结构
H.248消息可基于UDP/IP传输,此外还可基于其它多种传输协议传输,如承载在IP网络上的TCP、SCTP和M3UA,承载在ATM上的MTP3-B等。
SoftX3000H.248协议传输层可以是承载在IP上的UDP/TCP/SCTP和承载在ATM上的MTP3-B,如图2-2所示:
图2-1SoftX3000H.248协议栈
H.248协议假设其下层的传输网络是不可靠的,因此事务的状态和可靠性由协议本身实现。
2.1.4H.248协议的应用
H.248在NGN中的典型应用如图2-3所示,目前主要应用在软交换系统(SoftSwitch)与中继媒体网关(TMG)之间的通信、软交换设备与接入媒体网关(AMG/IAD)之间的通信。
图2-1H.248在NGN中的典型应用
SoftX3000通过H.248协议与中继网关通信。
SoftSwitch提供H.248MGC功能以控制中继网关中的ISUP中继,H.248MGC提供以下功能:
(2)出口网关和入口网关的RTP容量协商
可以配置每个H.248MG的RTP发送和接受容量。
SoftX3000要确保两个MG之间设定的匹配容量被用于建立呼叫。
(3)通过H.248协议管理TMG中的PSTNISUP中继
●支持TMG上的中继预留
●支持TMG上的中继释放
●支持TMG上的中继回流型连接
●支持中继参数的修改
●在中继上加上信号音
●支持中继(或中继组)暂停业务和恢复业务
(4)通过H.248协议管理TMG中的临时RTP终止
●支持临时终端的创建
●支持临时终端的取消
●支持有关临时终端的RTP参数的修改
2.2协议消息
2.2.1消息类型
1.命令
H.248定义了8个命令,用于对协议连接模型中的逻辑实体(关联和终端)进行操作和管理,命令提供了实现对关联和终端进行完全控制的机制。
H.248规定的命令大部分用于MGC实现对MG的控制。
通常MGC作为命令起始者,MG作为命令响应者接收。
但是,Notify和ServiceChange命令除外。
Notify命令由MG发送给MGC,而ServiceChange既可以由MG发起,也可以由MGC发起。
H.248命令及其含义参见表2-4:
表2-1H.248命令
命令名称
命令代码
描述
Add
ADD
MGC→MG,增加一个终端到一个关联中,当不指明ContextID时,将生成一个关联,然后再将终端加入到该关联中。
Modify
MOD
MGC→MG,修改一个终端的属性、事件和信号参数。
Subtract
SUB
MGC→MG,从一个关联中删除一个终端,同时返回终端的统计状态。
如关联中再没有其它的终端将删除此关联。
Move
MOV
MGC→MG,将一个终端从一个关联移到另一个关联。
AuditValue
AUD_VAL
MGC→MG,获取有关终端的当前特性,事件、信号和统计信息。
AuditCapabilities
AUD_CAP
MGC→MG,获取MG所允许的终端的特性、事件和信号的所有可能值的信息。
Notify
NTFY
MG→MGC,MG将检测到的事件通知给MGC。
ServiceChange
SVC_CHG
MGC↔MG或MG→MGC,MG使用ServiceChange命令向MGC报告一个终端或者一组终端将要退出服务或者刚刚进入服务。
MG也可以使用ServiceChange命令向MGC进行注册,并且向MGC报告MG将要开始或者已经完成了重新启动工作。
同时,MGC可以使用ServiceChange命令通知MG将一个终端或者一组终端进入服务或者退出服务。
2.响应
所有的H.248命令都要接收者回送响应。
命令和响应的结构基本相同,命令和响应之间由事务ID相关联。
响应有两种:
“Reply”和“Pending”。
“Reply”表示已经完成了命令执行,返回执行成功或失败信息;“Pending”指示命令正在处理,但仍然没有完成。
当命令处理时间较长时,可以防止发送者重发事务请求。
2.2.2消息结构
1.命令格式
(1)命令的封装格式
H.248协议发送或接收的信息单元称为消息。
在H.248协议中,一个或多个命令被封装成一个消息进行发送或接收。
H.248消息可以是二进制格式和文本格式编码。
采用二进制编码时,使用ITU-TX.680(ASN.1)定义的规范描述,使用X.690定义的BER规则编码;采用文本方式编码时,遵循RFC2234ABNF规范。
MGC必须支持两种编码格式,MG可能支持其中任何一种或两种方式。
H.248消息都有相同的结构,一个H.248消息的结构如图2-4所示。
图2-1H.248消息结构
●消息
消息从消息头(Header)开始,后面是若干个事务。
消息头中包含消息标识符(MID,MessageIdentifier)和版本字段:
MID标识消息的发送者,可以是域地址、域名或设备名,一般采用域名;版本字段用于标识消息遵守的协议版本,版本字段有1位或2位数,目前版本为1。
●事务
一个消息(Message)包含一个或多个事务(Transaction),消息内的事务是相互独立的,当多个被独立处理时,消息没有规定处理的先后次序。
事务包括请求和响应两种类型,而响应也有两种:
TransactionReply和TransactionPending。
由于命令封装在TransactionRequest事务中,我们在此仅对请求事务结构进行介绍。
响应事务结构我们将在下一节介绍。
每个TransactionRequest请求激发一个事务。
一个事务包含一个到多个动作,每个动作包含一系列与同一个Context相关的一个到多个命令。
其结构如下:
●动作
动作与关联(Context)是密切相关的,动作由ContextID进行标识。
在一个动作内,命令需要顺序执行。
一个动作从关联头部(CtxHdr)开始,在CtxHdr包含ContextID,用于标识该动作对应的关联。
ContextID由MG指定,在MG范围内是唯一的。
MGC必须在以后的与此关联相关的事务中使用相同的ContextID。
在CtxHdr后面是若干命令,这些命令都与ContextID标识的关联相关。
●命令
命令是H.248消息的主要内容,实现对关联和终端属性的控制,包括指定终端报告检测到的事件,通知终端使用什么信号和动作,以及指定关联的拓扑结构等,命令由命令头部(CMDHdr)与命令参数构成,在H.248协议中,命令参数被组织成“描述符”(Descriptor)。
由此,H.248消息构成机制如图2-5所示。
图2-2消息机制
(2)命令描述符
一个命令的参数被定义为描述符。
描述符是由Name和item组成(item可以携带Value)。
一些命令可以共享一个或几个描述符。
描述符可以作为一个命令的输出返回值。
在很多情况下描述符作为返回值,只有Name没有其它item。
通常,描述符的形式如下:
H.248协议定义了19种描述符,下面我们对常用的一些描述符进行介绍。
●Modem描述符(MD)
标识Modem的类型和其它参数等信息。
Modem描述符包含以下调制解调器类型:
V.18、V.22、V.22bis、V.32、V32bis、V.34、V.90、V.91、同步ISDN,并且允许进行扩充。
缺省情况下,终端中不包含Modem描述符。
●Mux描述符(MX)
多媒体呼叫时,媒体流是在一群承载通道上进行传输的。
复用描述符将媒体和对应的承载通道联系起来。
复用描述符支持的复用类型包括:
H.221、H.223、H.226、V.76以及一些扩展复用类型。
复用描述符的定义由复用类型以及被复用的输入终端的TerminationID集合组成,例如:
Mux=H.221{MyT3/1/2,MyT3/2/3,MyT3/3/6,MyT3/21/22}。
●Media描述符(M)
媒体描述符是用于描述所有媒体流特性的参数。
媒体流特性参数可用终端状态描述符(TerminationState)和若干个流描述符(Stream)来描述。
其中,TerminationState描述符与特定媒体流无关,用于描述终端的特性;Stream描述符描述媒体流。
本协议规定Stream描述符由StreamID进行标识。
Stream描述符可分为本地控制描述符(LocalControl)、本地描述符(Local)和远端描述符(Remote)三种。
为简便起见,本协议规定LocalControl、Local和Remote可以在一个Media描述符中进行定义,当这三种描述符在一个Media描述符中描述时,Stream描述符的StreamID通常假定为1。
这几种描述符之间的关系如下所示:
MediaDescriptor
TerminationStateDescriptor
StreamDescriptor
LocalControlDescriptor
LocalDescriptor
RemoteDescriptor
●TerminationState描述符(TS)
TerminationState描述符包括业务状态(ServiceStates)特性、事件缓存控制(EventBufferControl)特性以及在包中定义的与特定流无关的终端特性。
其中,ServiceStates(SI)特性描述了终端的状态,本协议规定终端状态有以下三种:
“test(TE)”、“outofservice(OS)”和“inservice(IV)”。
“test”用于指示一个终端正在处于被检测的状态;“outofservice”用于指示一个终端处于退出服务的状态;“inservice”用于指示一个终端正处于服务状态。
TerminationState描述符的缺省值为“inservice”。
EventBufferControl(EB)特性描述了检测到Events描述符中指定的事件后的处理方式。
本协议规定处理方式有两种:
一种是立即对事件进行处理;另一种是先对事件进行缓存再处理。
●Stream描述符(ST)
Stream描述符用于指定一个双向流的参数。
Stream描述符可分为LocalControl、Local和Remote描述符三种。
本协议规定Stream描述符可用StreamID进行标识,通过在关联中的一个终端上指定一个新的StreamID可以创建一个新的流。
而删除一个存在的流则需要对该流原先所在的关联中的所有终端设置:
LocalControl描述符中ReserveGroup和ReserveValue参数为“false”;Local和Remote描述符为空。
H.248规定StreamID由MGC分配,StreamID是MGC和MG之间的局部参数。
一个关联中具有相同StreamID的流是相互连接。
●LocalControl描述符(O)
LocalControl描述符包含模式属性Mode(MO)、预留组属性ReserveGroup(RG)、预留值属性ReserveValue(RV)和包中定义的某些与特定媒体流有关的终端属性。
Mode可分为Sendonly(SO)、Receiveonly(RC)、Send/Receive(SR)、Inactive(IN)和Loopback(LB)几种。
其中Send和Receive与关联中媒体流的流向有关。
例如,如果某个媒体流的模式为Sendonly,则此流并不将接收到的媒体传送给关联。
信号和事件均不受模式的影响。
预留属性Reserve决定了MG在收到Local和/或Remote描述符后的处理动作。
Reserve属性包括ReserveValue和ReserveGroup两种属性,属性值为布尔函数,缺省值均为“False”。
●Local描述符(L)和Remote描述符(R)
Local描述符针对MG接