热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

H323资料

概述H.323是由ITU制定的通信控制协议,用于在分组交换网中提供多媒体业务。呼叫控制是其中的重要组成部分,它可用来建立点到点的媒体会话和多点间媒体会议

概述
H.323是由ITU制定的通信控制协议,用于在分组交换网中提供多媒体业务。呼叫控制是其中的重要组成部分,它可用来建立点到点的媒体会话和多点间媒体会议。
H.323定义了介于电路交换网和分组交换网之间的H.323网关(Gateway)、用于地址翻译和访问控制的网守(GateKeeper)、提供多点控制的多点会议控制器(MC)、提供多点会议媒体流混合的多点处理器(MP),以及多点会议控制单元(MCU)等实体。
7.1.1 H.323在SoftX3000中的应用
SoftX3000软交换系统通过H.323实现多媒体通信业务。H.323在SoftX3000中的应用如图7-1所示,SoftX3000提供两种H.323接口:
(1) 一种称为SoftX3000 H.323域,是与由SoftX3000直接控制的H.323终端的接口。SoftX3000具有H.323的GW+GK功能。
(2) 另一种称为H.323域,是与外部H.323网络的接口。SoftX3000具有H.323的GW功能。

图7-1 H.323在SoftX3000中的应用
1. SoftX3000 H.323域
 SoftX3000在该域中用作H.323 GK。在SoftX3000 H.323域中所有H.323终端都必须注册到,以便利用SoftX3000提供的业务。
 在该域中SoftX3000也用作H.323 GW,并提供与其它网络的接口,如H.323 终端的SIP/ISUP/MGCP。
 H.323接口支持H.225.0 RAS、H.225.0 Q.931和H.245协议信令。
 验证是通过用户名/密码程序进行的,该程序通过H.323终端提供给SoftX3000。
2. H.323域
 在该域中SoftX3000作为H.323GW必须注册到外部H.323 GK,以便于使用H.323域提供的业务。
 H.323接口支持H.225.0 RAS、H.225.0 Q.931和H.245协议信令。
SoftX3000注册所有通过SoftX3000(包括SoftX3000域中的H.323终端)接入到外部GK的地址。
7.1.2 术语
1. AAA 认证、授权和计费
Authentication、Authorization and Accounting的缩写。认证即检验使用者是否具有一定的权限;授权是给合法的使用者适当的权限,允许其对网络上的一定资源进行访问;计费是对被授权者提供服务时,记录一些必要的信息,以供产生帐单之用。
2. Gatekeeper 网守(GK)
是ITU-T在H.323中定义的称呼。主要完成一些集中的管理功能,包括地址翻译、访问控制、带宽控制、区域管理等。
3. Gateway 网关(GW)
H.323网关用于实现H.323域与其它系统的互通。它是硬件与软件的结合物,有自己的处理器和存储器,可以进行协议的转换。
4. Q.931
一种ITU-T制定的关于呼叫控制的标准,是ISDN用户网络接口第三层关于基本呼叫控制的描述。
5. RADIUS 拨入用户的远程认证服务
Remote Authentication Dial-In User Service的缩写,是当前流行的AAA协议。该协议规定了RADIUS服务器和RADIUS客户端认证、授权和计费信息的交互格式。
7.1.3 协议栈
H.323建议是一种伞形规范,因为它涵盖了其它建议,包括H.225.0分组和同步,H.245控制,H.261和H.263视频CODEC,G.711、G.722、G.728、G.729和G.723音频CODEC,以及T.120系列多媒体通信协议。H.323协议栈结构如图7-2所示。

图7-2 H.323协议栈
具体来说,H.323协议处理软件由以下几个部分组成:
 H.225.0,包括RAS(Registration, Admission,and Status)、ITU-T Q.931和RTP/RTCP等子协议栈,在基于分组的多媒体通讯系统中,用于呼叫接续和对媒体流打包的协议;
 H.245:多媒体通讯控制协议,用于能力的协商和逻辑呼叫通道的打开和关闭;
 H.341:规定了H.323设备各部分网管MIB的内容;
 T.38协议,IP传真应用规程;
 语音编解码协议:G.711 、G.729 、G.723.1。
在SoftX3000应用中,使用了H.323协议族中的RAS、Q.931和H.245协议,。其网络层协议是IP,传送层协议为UDP和TCP,其中RAS承载在UDP上,Q.931和H.245承载在TCP上。
1. RAS
ITU-T RAS (Registration, Admission, and Status)协议为网关与网守之间进行信息交互所使用的协议,在RAS协议中,一般模式都是网关向网守发送一个请求,然后网守返回接受或拒绝消息。RAS消息主要遵循H.323 v2协议。
2. Q.931
ITU-T Q.931协议为网关与网守之间进行信息交互所使用的协议,主要负责呼叫过程中的信令处理。
3. H.245
ITU-T H.245协议为主/被叫网关之间进行信息交互所使用的协议,H.245指定了许多独立的协议实体,支持端对端信令。一个协议实体由语法、词义、语义和一套流程来指定消息交换以及用户的互操作。H.245消息分为四类:请求、响应、命令、指示。请求和响应消息用于协议实体。请求消息要求一个指定的行动及一个立即的响应。响应消息响应一个相应的请求。命令消息要求一个指定的行动,但不需要响应。指示消息只是提供信息,不要求行动和响应。H.245控制信道是用来承载控制信息用以对H.323实体的操作,这些控制主要包括如下三个:
 主从决定
决定两方谁是主、谁是从。H.245主从决定消息流程用于解决下述情况的冲突:一是会议中两个节点都是MC,二是两个节点间尝试建立双向信道。两个节点在masterSlaveDetermination消息中交换随机数,以决定主从节点。
 能力交换
进行能力协商,获得双方都可接受的编解码类型。
 打开或关闭逻辑通道
打开RTP/RTCP通道,为通话作准备。
H.323消息编码格式是基于ASN.1二进制编码。RAS承载在UDP上,Q.931和H.245承载在TCP上。
7.2 RAS
RAS消息是H.225.0协议规定的消息的一种,主要包括注册、访问控制和状态等内容。
7.2.1 消息结构
RAS消息编码采用文本格式,主要由消息名和一系列必配/选配的参数构成,不同的消息会有不同参数,表7-1以RRQ消息为例描述RAS消息结构。
表7-1 网关注册登记的RRQ消息参数
参数 必备(M)/任选(O)
RequestSeqNum M
ProtocolIdentifier M
NonStandardData O
CallSignalAddress M
RasAddress M
TerminalType M
TerminalAlias O
GatekeeperIdentifier O
EndpointVendor M
AlternateEndpoints O
TimeToLive O
Tokens O
CryptoTokens O
IntegrityCheckValue O
KeepAlive O
EndpointIdentifier O
WillSupplyUUIEs O

一个RRQ消息实例如下:
RegistrationRequest
RequestSeqNum: 23917
ProtocolIdentifier: 0.0.8.2250.0.2
DiscoveryComplete: False
CallSignalAddress (TransportAddress)
Item 0(ipAddress)
IpAddress
Ip:172.20.1.160
Port:1720
RasAddress(TransportAddress)
Item 0(ipAddress)
IpAddress
Ip:172.20.1.160
Port:1719
TerminalType(EndpointType)
Vendor(VendorIdentifier)
Vendor(H221NonStandard)
t35CountryCode: 28
t35Extension:21
manufacturercode:555
productId: Huawei H.323 Protocol Stack
versionId: Huawei H.323 Stack version 1.1
mcu(McuInfo)
mc:False
undefinedNode:False
terminalAlias(AliasAddress)
Item 0(e164)
e164:82882200
Item 1(h323_ID)
h323_ID: MediaCenter01A0
endpointerVendor(vendorIdentifier)
Vendor(VendorIdentifier)
Vendor(H221NonStandard)
t35CountryCode: 28
t35Extension:21
manufacturercode:555
productId: Huawei H.323 Protocol Stack
versionId: Huawei H.323 Stack version 1.1
timeToLive:300
keepAlive: False
willSupplyUUIEs: False
7.2.2 RAS消息
1. 注册登记消息
消息 英文全称 含义
RRQ Registration Request 受理终端向网守发起的网关注册登记的请求
RCF Registration Confirm 网守向受理终端发送的对网关注册登记请求RRQ的确认回答
RRJ Registration Reject 网守向受理终端发送的对网关的注册登记请求(RRQ)的拒绝回答

2. 注销消息
消息 英文全称 含义
URQ Unregistration Request 受理终端向网守发送的关于网关请求注销注册登记的消息
UCF Unregistration Confirm 网守向受理终端发送的关于网关的URQ的确认回答;或计费认证中心向受理终端发送的关于用户URQ消息的确认回答
URJ Unregistration Reject 网守向受理终端发送的关于网关的URQ的拒绝回答;或计费认证中心向受理终端发送的关于用户的URQ的拒绝回答

3. 修改消息
消息 英文全称 含义
MRQ Modification Request 受理终端向计费认证中心发送的修改用户数据请求
MCF Modification Confirm 计费认证中心向受理终端发送的对修改用户数据请求的确认消息
MRJ Modification Reject 计费认证中心向受理终端发送的对修改用户数据请求的拒绝消息


4. 接入认证授权和地址解析消息
消息 英文全称 含义
ARQ Admission Request 网关向网守发送的用户接入认证/地址解析请求消息
ACF Admission Confirm 网守对ARQ的确认回答,并给出地址解析结果,对于卡号用户,还需要给出用户余额和最长通话时长
ARJ Admission Reject 网守对ARQ消息的拒绝回答,并给出拒绝原因

5. 地址解析请求消息
消息 英文全称 含义
LRQ Location Request 网守向上一级网守发出地址解析请求
LCF Location Confirm 上一级网守对LRQ消息的确认回答,并给出地址解析结果
LRJ Location Reject 上一级网守对LRQ消息的拒绝回答,并给出拒绝原因

6. 呼叫脱离消息
消息 英文全称 含义
DRQ Disengage Request 网关与网守之间的呼叫脱离请求消息。当该消息由网关发起时,则应同时传递计费信息。计费信息放在“非标准数据”(NonStandard Data)字段中
DCF Disengage Confirm 网守对DRQ消息的确认回答
DRJ Disengage Reject 网守对DRQ消息的拒绝回答,并给出拒绝原因

7. 状态消息
消息 英文全称 含义
IRQ Info Request 网守向网关发的状态请求消息
IRR Info Request Response 网关根据ACF命令设定的间隔或IRQ请求向网守发送的状态回应消息
IACK Info Acknowledgement 对IRR消息的证实消息
INAK Information Negative Acknowledgement 对IRR消息的拒绝消息

8. 带宽改变消息
消息 英文全称 含义
BRQ Bandwidth Request 网关与网守之间的带宽改变的请求消息
BCF Bandwidth Confirm 网关与网守之间的带宽改变的确认消息
BRJ Bandwidth Reject 网关与网守之间的带宽改变的拒绝消息

9. 网关资源可利用性消息
消息 英文全称 含义
RAI Resource Availability Indication 网关向网守发送的资源可利用性报告
RAC Resource Availability Confirmation 网守对RAI消息的确认消息

10. RAS定时器修改消息
消息 英文全称 含义
RIP RAS Timers and Request in Progress 对RAS消息和后续的重试计数的响应

11. 顶级网守间消息
消息 英文全称 含义
业务请求 Service Request 顶级网守间业务请求消息
业务确认 Service Confirmation 收到业务请求的顶级网守对Service Request消息的确认回答,并建立业务关联关系
业务拒绝 Service Rejection 顶级网守对Service Request消息的拒绝回答,并给出拒绝原因
描述器ID请求 Descriptor ID Request 顶级网守向别的顶级网守请求描述器ID
描述器ID确认 Descriptor ID Confirmation 顶级网守对Descriptor ID Request消息的确认回答,并给出该顶级网守的描述器ID列表
描述器ID拒绝 Descriptor ID Rejection 顶级网守对Descriptor ID Request消息的拒绝回答,并给出拒绝原因
描述器请求 Descriptor Request 顶级网守向另一个顶级网守请求特定描述器的内容
描述器确认 Descriptor Confirmation 顶级网守对Descriptor Request消息的确认回答,并给出描述器的具体内容
描述器拒绝 Descriptor Rejection 顶级网守对Descriptor Request消息的拒绝回答,并给出拒绝原因
地址解析请求 Access Request 顶级网守间的地址解析请求
地址解析确认 Access Confirmation 顶级网守对地址解析请求的确认回答
地址解析拒绝 Access Rejection 顶级网守对地址解析请求的拒绝回答

7.2.3 消息流程
1. 网守的发现

图7-3 网守的发现
(1) 网关(或H.323终端)在启动后,首先向网守发送GRQ(GetKeeper Request)消息,寻找网守;
(2) 网守对网关(终端)信息进行分析,确定是本区域网关(终端),发GCF确认;否则发GRJ拒绝。
2. 节点登记与注销

图7-4 节点登记与注销
(1) 寻找网守成功,网关(终端)再通过RRQ向网守注册;
(2) 网守对网关(终端)信息进行分析,确定是本区域网关(终端),发RCF确认,注册成功;否则发RRJ拒绝,注册失败。
(3) 网关(终端)退出服务,向网守发送URQ,请求注销登记;
(4) 网守回UCF(或URJ)进行确认(或拒绝)。
3. 呼叫接入与退出

图7-5 呼叫接入与退出
(1) 终端发起呼叫时,网关(终端)向网守发送ARQ请求用户接入认证/地址解析;
(2) 网守回送ACF确认回答,并给出地址解析结果,对于卡号用户,还需要给出用户余额和最长通话时长。
(3) 呼叫完毕,网关(终端)向网守发送DRQ请求呼叫脱离;
(4) 网守回送DCF进行确认。
7.3 Q.931
7.3.1 消息结构
Q.931消息编码采用文本格式,主要由消息名和一系列必配/选配的参数构成,不同的消息会有不同参数,表7-2以Setup消息为例描述Q.931消息结构。
表7-2 Setup消息的主要内容
信息单元 必备(M)/任选(O) 长度
Protocol discriminator M 1
Call reference M 3
Message type M 1
Sending complete O 1
Bearer capability M 5 ~6
Extended facility O 8 ~*
Facility O 8 ~*
Notification Indicator O 2 ~*
Display O 2 ~82
Keypad facility O 2 ~34
Signal O 2 ~3
Calling party number O 2 ~131
Called party number O 2 ~131
User-to-User M 2 ~131

一个Setup消息实例如下:
Q.931
Protocol discriminator : Q.931
Call reference value length: 2
Call reference value: 018A
Message Type: Setup (0x05)
Bearer Capability
Display
Called Party Number
User-user
Information element : user-user
Length: 149
Protocol discriminator: X.208 and X.209 coded user information
ITU-T Recommendation H.225.0
h323_uu_pdu(H323-UU-PDU)
h323_message_body(setup)
setup
protocolIdentifer: 0.0.8.2250.0.2
sourceaddress: (AliasAddress)
e164 : 07551680052
sourceInfo(EndpointType)
Vendor(VendorIdentifier)
vendor(H221NonStandard)
t35CountryCode: 28
t35Extension:21
manufacturercode:555
productId: Huawei H.323 Protocol Stack
versionId: Huawei H.323 Stack version 1.1
mcu(McuInfo)
mc: False
undefinedNode: False
destinationAddress(AliasAddress)
e164 : 075582882200
destCallSingalAddress
ipAddress:
ip: 172.20.1.45
port: 1720
activeMC: False
conferenceID: 8CBFDA-3030-E030-8314-AC1401A006
conferenceGoal: (invite)
invite
callType: pointerToPointer
sourcecallSignalAddress:
ipAddress:
ip: 172.20.1.60
port: 1720
callIdentifer:
guid: 8CBFDA-3030-E030-8314-AC1401A006
mediawaitForConnect: False
canOverLapsend: False
h245Tunneling:False
7.3.2 Q.931消息
1. 顶级网守间消息
消息 中文描述 含义
Setup 呼叫建立 主叫发给被叫的消息,表示希望建立通话
Call Proceeding 呼叫进程 被叫发给主叫的消息,表示呼叫正在处理
Alerting 提醒 被叫发给主叫的消息,表示被叫用户已振铃
Progress 进展 用户或网络发送的消息,说明一个呼叫的进展情况
Connect 连接 被叫发给主叫的消息,表示被叫用户已摘机
Notify 通知 用户或网络发送的消息,用以对状态询问(Status Inquiry)消息进行响应或在呼叫期间对特定错误情况进行报告
Status 状态 顶级网守向另一个顶级网守请求特定描述器的内容
Status Inquiry 状态询问 用户或网络发送的消息,用以从一个同等的三层实体请求状态信息
User Information 用户信息 用户或网络发送的附加消息,用以提供呼叫建立或各种与呼叫相关的信息
Release Complete 释放完成 由先挂机的一方发给另外一方,表示释放过程已完成
7.3.3 消息流程
1. 基本呼叫建立流程(直接路由)

图7-6 基本呼叫建立流程(直接路由)
(1) 主叫(终端1)发起呼叫,通过RAS消息(ARQ)接入,在收到网守的ACF消息后,解析出翻译后的地址,与被叫(终端2)建立TCP连接;
(2) 终端1通过Q.931消息发送Setup消息给对端,对端一般回应Call Proceeding、Alerting、Connect消息;
(3) 主叫收到Connect后,进入H.245协商阶段;另外,主叫、被叫都可以发送Release消息,结束本次呼叫。
2. 基本呼叫建立流程(GK路由)

图7-7 基本呼叫建立流程(GK路由)
(1) 主叫(终端1)发起呼叫,通过RAS消息(ARQ)接入,在收到网守的ACF消息后,解析出翻译后的地址(需要GK路由),与GK建立TCP连接;
(2) 终端1通过Q.931消息发送Setup消息给GK,GK回应Call Proceeding消息;
(3) GK与被叫(终端2)建立TCP连接,发送Setup消息给终端2,终端2一般回应Call Proceeding、Alerting、Connect消息;
(4) GK传送Alerting、Connect消息给终端1;
(5) 主叫收到Connect后,进入H.245协商阶段;另外,主叫、被叫都可以发送Release消息,结束本次呼叫。
3. 呼叫断开流程

图7-8 呼叫断开流程
(1) 主被叫任何一端挂机,送Release Complete消息给对端;
(2) 主被叫间断开TCP连接。
7.4 H.245
H.245协议详细说明了H.323节点的信令消息以及流程的语法格式和语义,而这些消息和流程将用于通讯过程中间或者开始的时候进行带内协商。这些消息覆盖了终端的接收与发送能力,来自接收端的模式要求,逻辑信道信令以及控制和指令。同时为了保障可靠的语音通讯和数据通讯,H.245协议详细说明了经过认可的信令流程。
H.245协议要求其所采用的传输层是可靠的,也就是说,这一传输层能够提供可靠的数据传送。H.245信令建立在两个H.323节点之间,每个节点必须为其参与的每个呼叫建立正确的H.245控制信道,通过该信道传送H.245消息和流程,指定消息交换以及用户操作。H.245协议规定了许多独立的协议实体,支持端到端的信令。H.245控制信道是用来承载控制信息用以对H.323实体的操作,这些控制主要包括如下三个:
 主从决定
决定两方谁是主、谁是从。H.245主从决定消息流程用于解决下述情况的冲突:一是会议中两个节点都是MC,二是两个节点间尝试建立双向信道。两个节点在masterSlaveDetermination消息中交换随机数,以决定主从节点。
 能力交换
进行能力协商,获得双方都可接受的编解码类型。
 打开或关闭逻辑通道
打开RTP/RTCP通道,为通话作准备。
H.245消息分为以下四种:请求,回复,命令和指示。请求和回复被协议实体所使用。请求信息要求接受者做相应的动作,包括一个立即的回复。回复信息用于答复相应的请求。命令信息要求相应的动作,但是不要求回复,指示信息仅仅通知,不要求动作与回复。H.323终端必须对所有H.245命令和请求有反应,必须发送指示消息反应终端状态。
7.4.1 消息结构
H.245消息编码采用文本格式,主要由消息名和一系列必配/选配的参数构成,不同的消息会有不同参数,表7-3以OLC消息为例描述H.245消息结构。
表7-3 OLC消息的主要内容
参数 必备(M)/任选(O)
ForwardLogicalChannalNumber M
ForwardLogicalChannalParameters M
ReverseLogicalChannalParameters O
SeparateStack O
EncryptionSync O

一个OpenLogcialChannel (OLC)消息实例如下:
ITU-T Recommendation H.245
request
openLogicalChannel
forwardLogicalChannelNumber: 2
forwardLogicalChannelParameters
dataType(audioData)
audioData:
g7231
maxAl_sduAudioFrames:1
silenceSuppression: False
multiplexParameters(h2250LogicalChannelParemeter)
h225LogicalChannelParameters
sessionID: 1
mediaChannel: (unicastAddress)
unicastAddress:
ipAddress:
network:172.20.1.198
tsapIdentifer:40000
mediaGuaranteedDelivery: False
mediaControlChannel:
unicastAddress:
ipAddress:
network:172.20.1.198
tsapIdentifer:40001
mediaGuaranteedDelivery: False
7.4.2 H.245消息
1. 终端能力设定
消息 英文全称 含义
TCS Terminal Capability Set 能力交换请求,告诉对方本端支持的接收能力
TCSA Terminal Capability Set Acknowledge 能力交换请求响应
TCSR Terminal Capability Set Reject 能力交换请求拒绝

2. 主从决定
在建立H.245通道过程中,可以使用主从决定,也可以不使用,对于IP电话,H.245体制建议不采用此流程。
消息 英文全称 含义
MSD Master Slave Determination 主从确定请求
MSDA Master Slave Determination Acknowledge 主从确定请求响应
MSDR Master Slave Determination Reject 主从确定请求拒绝
3. 打开逻辑通道
消息 英文全称 含义
OLC Open Logical Channel 打开逻辑通道请求消息
OLCA Open Logical Channel Acknowledge 打开逻辑通道请求响应消息
OLCR Open Logical Channel Reject 打开逻辑通道请求拒绝消息

4. 结束会话
消息 英文全称 含义
ESC End Session Command 结束会话命令,即关闭H.245通道

5. 关闭逻辑通道
消息 英文全称 含义
CLC Close Logical Channel 关闭逻辑通道命令
CLCA Close Logical Channel Ack 关闭逻辑通道响应消息

7.4.3 消息流程
1. 能力交换(CapabilityExchange)

图7-9 能力交换流程
2. 主从确定(MasterSlaveDetermination)

图7-10 主从确定流程
3. 打开逻辑通道(OpenLogicalChannel)

图7-11 打开逻辑通道流程
4. 关闭逻辑通道(CloseLogicalChannel)

图7-12 关闭逻辑通道流程
5. 结束会话过程(EndSession)

图7-13 结束会话流程
7.5 信令配合
H.323呼叫流程分为正常启动方式和快启方式,一个完整的H.323呼叫需要RAS、Q.931和H.245协议相配合共同完成。
1. 典型呼叫流程(正常启动)
正常启动的呼叫流程如图7-14所示,SoftX3000做为GK。

图7-14 典型呼叫流程(正常启动)
(1) 主叫(终端1)发起呼叫,通过RAS消息(ARQ)接入,在收到网守的ACF消息后,解析出翻译后的地址(需要GK路由),与GK建立TCP连接;
(3) 终端1通过Q.931消息发送Setup消息给GK,GK回应Call Proceeding消息;
(4) GK与被叫(终端2)建立TCP连接,发送Setup消息给终端2,终端2一般回应Call Proceeding、Alerting、Connect消息(此间终端2通过RAS认证接入);
(5) GK传送Alerting、Connect消息给终端1;
(6) 主叫收到Connect后,进入H.245协商阶段(包括能力交换、主从确定),之后打开逻辑通道进行通话;
(7) 通话结束,进行一系列释放操作:关闭逻辑通道,断开H.245 TCP连接,断开Q.931 TCP连接,结束本次呼叫。
2. 典型呼叫流程(快启)
H.323快启的呼叫流程如图7-15所示,SoftX3000做为GK。

图7-15 典型呼叫流程(快启)
H.323快启呼叫流程与正常启动过程相似,只是不进行H.245协商过程。


推荐阅读
author-avatar
du-qhy
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有