5.3 ServiceChangeDelay
ServiceChangeDelay用于提供 ServiceChange命令生效和 MG或终结点上 ServiceStates属性被改变之前的延时。ServiceChange命令被应答就如同接收到该消息时被执行一样,但是 MG或终结点实际上并不改变状态直到ServiceChangeDelay期满。等于 0的ServiceChangeDelay就等同于没有 ServiceChangeDelay,但在与 ServiceChangeMethod= "Graceful"同时使用时例外。参见 4以了解 ServiceChangeDelay用不同 ServiceChangeMethods上产生的效果。
5.4 ServiceChangeAddress
ServiceChangeAddress参数的使用在 7.2.8描述。 ServiceChangeAddress的使用是不推荐的。如果该阐述出现了,则该参数仅仅用于根终结点上的 ServiceChange命令,而且任何新的事务将被发送至所指定的新地址和/或新端口号。应答应回送至相应的请求所发出的地址。
5.5 ServiceChangeProfile
ServiceChangeProfile参数允许 MGC和MG去协商H.248 Profile以用于控制联系。 MGC仍将审计 MG以确定其他被支持的MG能力。ServiceChangeProfile应仅仅在注册和重新注册命令中被发送。
5.6 ServiceChangeVersion
ServiceChangeVersion用于协商 H.248协议版本以用于 MGC和MG之间。ServiceChangeVersion在初始注册中必选项,而且应该在任何其他注册命令中被发送,这些命令需要进行协议版本协商。 ServiceChangeVersion不应在非注册命令中发送。参见 3.1的注册程序。
5.7 ServiceChangeMgcID
MGC可能在去往 Root终结点的ServiceChange命令中发送该参数。在注册尝试中一旦接收到到该参数,则MG应尝试向指定地址的 MGC进行注册。当接收到来自 MG的主控MGC发出的ServiceChange Handoff命令时, MG应使用11.5所描述的程序。
5.8 TimeStamp
可选TimeStamp参数的使用在 7.2.8中描述。TimeStamp参数对 ServiceChange命令的执行没有任何影响,但对于某些其他目的的ServiceChange命令接收者而言可能有用,诸如计费或定时协调。
6 ServiceChange 对 TerminationState
在TerminationState描述符中的 ServiceStates属性保持有终结点状态的当前值。 ServiceStates可能采用三个值:"InService", "OutOfService", and "Test"。
MGC应仅仅使用 Modify命令来设置ServiceStates属性成Test或从Test状态转移时设置。对于 ServiceStates属性的所有其他修改都是对协议的损坏并应该接收到差错代码 401("Protocol Error")。为了从状态"InService"转移到"OutOfService"或反过来,必须使用ServiceChange命令。
对于Test状态的终结点, MG应向MGC仅发送 ServiceChangeMethod="Forced"或"Graceful"的 ServiceChanges。随后的ServiceChanges命令将终结点的ServiceState属性设置为 "InService"。
接收者应该进行每一次合理的尝试以接受ServiceChange命令,但在某些情况下,拒绝该命令是有正当理由的。例如,如果 MG发送ServiceChange命令使终结点开始进入业务态,但 MGC由于缺乏预置资源或其他原因没有足够的资源分配给该终结点,则 MGC可能拒绝该命令。如果接收实体拒绝了 ServiceChange命令,则终结点的状态应保持不变。发送端可以选择等待一定长度的事件并再次尝试,或等待接收者尝试改变终结点的状态。使终结点OutOfService的请求应该被处理。
表 2显示了什么命令可以用于影响终结点上的状态改变。
表2/H.248.1 –状态转移命令及其影响表2/H.248.1 –状态转移命令及其影响
| 当前状态 | 新状态 | 命令 | MGC允许? | MG允许? |
|---|---|---|---|---|
| InService | Test | ServiceChange | 不可能 | 不可能 |
| Modify | 是 | 不可能 | ||
| InService | OutOfService | ServiceChange | 是, 但仅用于物理和 Root终结点 | 是 |
| Modify | 否 | 不可能 | ||
| OutOfService | InService | ServiceChange | 是, 但不能用在 Root终结点 | 是 |
| Modify | 否 | 不可能 | ||
| OutOfService | Test | ServiceChange | 不可能 | 不可能 |
| Modify | 是 | 不可能 | ||
| Test | InService | ServiceChange | 否 | 否 |
| Modify | 是 | 不可能 |
| Test | OutOfService | ServiceChange | 否 | 是 |
|---|---|---|---|---|
| Modify | 是 | 不可能 |