简介
本文档介绍如何配置enableDelayQuickReinvite,以防止应用服务器(AS)在ACK后过快发送re-INVITE。
先决条件
- 基本会话初始协议(SIP)知识
- 基本AS知识
- BroadWorks bwcli基础知识
要求
- 可以使用AS bwcli和管理员用户
- 能够查看AS XSLogs
使用的组件
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
在某些呼叫方案中,AS需要启动重新连接,为此,AS会向两端发送重新邀请。当AS需要在建立会话后触发重新连接时(例如,呼叫中心、寻线组的呼叫,或涉及“单击拨号”或“呼叫录音”功能的呼叫)发生此情况。
当AS需要发送re-INVITE后ACK在同一对话框中发送后,AS通常在发送re-INVITE的同一时刻发送re-INVITE,这可能导致远程设备无法按顺序接收ACK和re-INVITE。
发生这种情况时,在挂起ACK之前收到re-INVITE的设备可以拒绝重新INVITE,通常错误代码为500(但这可能因远程设备实施而异)。
配置
有两个用于配置此功能的参数,它们都位于bwcli中的AS_CLI/Interface/SIP>。
- enableDelayQuickReInvite是打开或关闭功能的主开关。接受的值为true和false。
- delayQuickReInviteMilliseconds是在ACK之后添加的延迟的值(以毫秒(ms)为单位)。值范围为100毫秒至10000毫秒。
要配置此功能,请打开AS bwcli,以管理员用户身份登录,然后导航到AS_CLI/Interface/SIP>:
AS_CLI> cd /Interface/SIP
AS_CLI/Interface/SIP>
首先运行get命令检查两个参数的当前值。默认情况下,enableDelayQuickReInvite被禁用(false),delayQuickReInviteMilliseconds的默认值为1000(1000ms或1秒)。
为了增强可读性,省略部分get命令输出。
AS_CLI/Interface/SIP> get
...
enableDelayQuickReInvite = false
delayQuickReInviteMilliseconds = 1000
...
然后配置delayQuickReInviteMilliseconds参数。您可以接受默认值,也可以使用最适合您环境的默认值。建议使用尽可能低的值,因此建议从100ms的值开始,仅在不足以解决问题的情况下才增加该值。
AS_CLI/Interface/SIP> set delayQuickReInviteMilliseconds 100
...Done
一旦配置了delayQuickReInviteMilliseconds的值,就可以启用enableDelayQuickReInvite。
AS_CLI/Interface/SIP> set enableDelayQuickReInvite true
...Done
验证
配置完成后,再次运行呼叫方案,以确定AS会增加ACK与重新INVITE之间的延迟。例如,如果AS已配置为添加100ms,您可以预计延迟至少为100ms,但可能比延迟高几毫秒。
100毫秒通常足以防止ACK和re-INVITE接收顺序混乱,但根据网络环境和信令路径中涉及的SIP实体,该值可能更高。
故障排除
如果设备仍然以500错误代码做出响应,且ACK和re-INVITE已按正确顺序传送,则需要对设备进行进一步调查。
在AS上使用XSLogs验证AS是否按配置添加了延迟,并使用数据包捕获或设备日志确保延迟足够让消息按正确顺序传送。
请注意,这仅当AS在发送ACK之后发送re-INVITE时有效,但在AS收到ACK且导致AS发送重新INVITE时无效。