Megaco学习笔记之transactions

8.2.1 事务请求(TransactionRequest)

  • MG和MGC之间的一组命令组成事务(transaction),一个transaction由事务标识符进行标识,事务标识符是由事务发起方进行分配且在发送方范围内具有唯一值。
  • Transaction由一个或多个动作(Action)组成,而Action又由在一个关联中的一系列命令(command)组成。Action由ContextID来标识。但当要求对关联之外的一个终结点进行修改(Modify)或当MGC要求MG创建(Add)一个新关联时,动作不存在与之相对应的ContextID。
  • 如果事务请求中未包含事务标识符,则事务响应返回一个差错描述符用于指示事务请求未包含标识符,
    且响应方相应所使用的事务响应中事务标识符必须设置为0。

8.2.2 事务响应(TransactionReply)

  • 如果消息中所包含的事务请求超过了接收方的处理能力,则接收方将返回差错描述符413(“消息所包
    含的事务数目超过最大值”
  • 如果某个命令执行失败,将返回差错描述符。同时,该命令所在关联后的其他命令将停止执行,未执行的命令将不产生命令响应。
  • 如果某个命令为可选,当该命令执行失败时,则该事务中该命令所在关联后的所有命令将继续执行,并在发送差错之后继续返回相应的命令响应。
  • 如果请求接收方能够识别接收的关联标识符,但是执行关联标识符时发生差错,则返回的关联响应
    中将包含执行失败的关联标识符和一个差错描述符,其中差错代码为422(动作发生句法差错)。
  • 如果请求接收方无法识别所接收的所有关联标识符,则事务响应将包含事务标识符和一个差错描述符,其中差错代码为422(动作句法差错)。
  • 如果请求接收方在执行一个事务时无法确认某个动作是否合法,则返回的事务响应中将包含事务标识符和一个差错描述符,差错代码为422(动作句法差错)。
  • 如果请求接收方无法确认某个动作的最后部分是否合法,但是动作可以分解执行,则请求接收方在执行动作中发生差错之前的部分之后,返回差错代码422(动作句法差错)作为该事务的最后响应。
  • 如果请求接收者无法确认所接收的事务是否合法,则返回一个事务标识符为空的事务响应和一个差错描述符,差错代码为403(事务请求句法差错)。
  • 如果请求接收方无法确认某个事务的最后部分是否合法,但是可以识别一个或多个动作,则接收方在处理可以识别的动作之后,返回一个差错代码403(事务请求句法差错)作为该事务的最后一个动作响应。
  • 如果接收方无法识别任何一个动作,则仅返回差错代码403(事务请求句法差错)。
  • 如果请求接收者无法确认所接收事务中的某个终结点标识符是否合法,则返回的关联响应将包含个差错描述符,差错代码为442(命令发生句法差错)。
    • 如果请求接收方无法确认某个命令的最后部分是否合法,则返回一个包含差错描述符的命令响应作为该动作的最后响应,差错代码为442(命令发生句法差错)

8.2.3 事务正处理(TransactionPending)

  • TransactionPending 消息由接收方发送。该消息用于表示一个事务正在被处理,然而事务处理还未最后完成。发送该消息的目的是用于当一个事务正在被处理且还需一些时间才能执行完成时,以避免发送方认为事务请求已经丢失。
  • 事务标识符( TransactionID ) 务必与事务请求中的事务标识符相同。
  • “NormalMGExecution”属性由媒体网关控制器设置时,该参数用于指示在指定的时间间隔内媒体网关控制器应该期望从媒体网关接收到任何一个事务的事务响应。另外一个根终结点的
    “NormalMGCExecution”属性由媒体网关控制器设置时,该参数用于指示在指定的时间间隔内(网路时延除外)媒体网关期望从媒体网关控制器接收到任何一个事务的事务响应。
    “MGProvisionalResponseTimer”参数用于指示在一段时间间隔内,如果事务请求处理尚未完成,则媒体网关控制器期望从媒体网关接收到事务正处理消息(该参数值可以设置“NormalMGExecution”参数值和网络时延的总和或者稍小于其总和)。“MGProvisionalResponseTimer”参数对于媒体网关的意义类似。事务发送方可能会接收到一个事务的多个事务正处理(TransactionPending)消息。当接收方处于“事务正处理状态”时,接收到一个重复的事务请求时,则接收方应立即发送一个重复的事务正处理消息,或者等待定时器超时后发送另外一个事务正处理消息。
  • 根终结点的“MGOriginatedPendingLimit”属性由媒体网关控制器设置,用于指示媒体网关控制器可
    以接收的来自媒体网关的事务正处理消息的数目。当超出该参数值时,媒体网关必须停止事务处理,并返回一个事务响应,否则,媒体网关控制器将判断事务处理发生故障。
    根终结点的“MGCOriginatedPendingLimit”属性由媒体网关控制器设置,用于指示媒体网关可以接收的来自媒体网关控制器的事务正处理消息的数目。当超出该参数值时,媒体网关控制器必须停止事务处理,并返回一个事务响应,否则,媒体网关将判断事务处理发生故障。
  • 由于命令处理时间过长或差错发生(如命令被环回),可能导致MGOriginatedPendingLimit 和MGCOriginatedPendingLimit属性发生超出门限。此时,事务请求的接收方应返回一个事务响应,且包含差错描述符和相应的消息响应参数“命令过长”或“命令导致差错”。该事务的后续命令必须被停止处理。此时,必须返回差错代码 506 (事务正处理消息数目超出) 。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值