SS_010030_C H248协议原理
2.4.5 AuditValue 命令
AuditValue命令MGCMGAddModifysubtractMoveAuditValue?MGC→MG,?获得终端的当前信息,事件,信号信息以及统计信息28
22
第2章 H248协议组成
2.4.6 AuditCapability 命令
AuditCapability命令MGCMGAddModifysubtractMoveAuditValueAuditCapability?MGC→MG,?获取一个媒体网关的容量性能指标1 2.4.7 Notify 命令
Notify 命令MGCMGAddModifysubtractMoveAuditValueAuditCapabilityNotify?MG→MGC,?媒体网关通过此命令通知媒体网关控制器在其内部发生的事件(比如用户提机)。28
23
SS_010030_C H248协议原理
2.4.8 ServiceChange 命令
ServiceChange命令MGCMGAddModifysubtractMoveAuditValueAuditCapabilityNotifyServiceChange31?MGC?MG?MGC→MG?启动服务?退出服务?MG→MGC ?启动服务?退出服务?注册
24
第2章 H248协议组成
2.5 H248基于事务的消息传递机制
2.5.1 事务通信机制
事务通信机制特点:支持多个命令的并行发送,提高协议的传送效率。即多个命令组合成事务(Transaction)事务Action1Command1TopologyDescriptorCommand1Command3Command2Command4Command2Action2事务标识Action3同一Action中的所有命令控制范围为同一Context因此通常每个命令都带有ContextID中兴通讯学院<本文中的所有信息归中兴通讯股份有限公司所有,未经允许,不得外传>univ.zte.com.cnuniv.zte.com.cn30 MG 和MGC 之间的一组命令组成了事务(Transaction)。
每个Transaction 由一个TransactionID来标识事务由TransactionID 标识,TransactionID 是由事务发起方分配并在发送方范围内的唯一值。如果TransationRequest 的TransactionID 丢失,TransactionReply 则带回一个Error 描述符指示TransationRequest 中的TransactionID 丢失,其中包含的TransactionID 填0。
Transaction 由一个或者多个动作(Action)组成。一个Action 又由一系列命令以及对关联属性进行修改和审计的指令组成,这些命令、修改和审计操作都局限在一个关联之内。因而每个动作通常指定一个关联标识。但是有两种情况动作可以不指定关联标识符,一是当请求对关联之外的终端进行修改或审计操作时,另一种情况是当MGC 要求MG创建一个新关联时。事务、动作和命令之间的关系示意图如上图所示。
25
SS_010030_C H248协议原理
2.5.2 事务响应
事务响应发送方接受方TransactionRequestTransactionReply/TransactioinPendingTransactionResponseAck34 事务由TransactionRequest(事务请求)发起。对TransactionRequest 的响应放在一个单独的TransactionReply(事务应答)里面。在收到TransactionReply 之前,可能会先出现一些TransactionPending(事务处理中)消息。事务保证对命令的有序处理。即在一个事务中的命令是顺序执行的。各个事务之间则不保证顺序,即各个事务可以按任意顺序执行,也可以同时执行。如果一个事务中有一个命令执行失败,那么这个事务中的所有剩余命令都将停止执行。如果命令中包含通配形式的TerminationID,则对每一个与通配值匹配的TerminationID执行此命令。TransactionReply 包含对应每个与通配值匹配的TerminationID返回的一个响应;即使对其中一个或多个终端产生了错误码。如果与通配值匹配的终端在执行命令时发生了错误,则对此终端之后的所有通配值终端的命令将不再执行。但当命令标记为“Optional(可选)”时,处理的方式将会不同,即:如果一个可选命令执行失败,该事务中的后续命令仍可继续执行。如果中间某个命令执行失败,MG 在继续处理命令前应尽可能恢复该失败命令执行前所处的状态。TransactionReply 包含相应的TransactionRequest 中的所有命令的执行结果,其中包括成功执行的命令返回值,以及所有执行失败的命令的命令名和Error 描述符。TransactionPending 命令是用来周期性地通知接收者一个事务尚未结束,尚处于正在积极处理过程中。具体实现上,对每个事务都应该设置一个应用层定时器等待TransactionReply。当
26