簡介
本文說明如何配置enableDelayQuickReinvite,以防止應用伺服器(AS)在ACK後過快傳送re-INVITE。
必要條件
- 基本作業階段啟始通訊協定(SIP)知識
- 基本AS知識
- 基本BroadWorks bwcli知識
需求
- 可以使用AS bwcli和管理員使用者
- 能夠檢視AS XSLogs
採用元件
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
背景資訊
在某些呼叫方案中,AS需要啟動重新連線,為此,它將向兩端傳送重新邀請。當會話建立後,AS需要觸發重新連線時,就會發生這種情況。例如,對於呼叫中心、尋線組的呼叫,或者涉及按一下撥號或呼叫記錄功能的呼叫。
當AS需要在ACK在同一個對話方塊中傳送後傳送re-INVITE時,AS通常在傳送ACK的同時傳送re-INVITE,這會導致遠端裝置無法按順序接收ACK和re-INVITE。
發生這種情況時,在待定ACK之前接收re-INVITE的裝置可以拒絕該re-INVITE,通常具有500個錯誤代碼(但這可能因遠端裝置實施而異)。
設定
有兩個引數用於配置此功能,它們都位於AS_CLI/Interface/SIP>的bwcli中。
- enableDelayQuickReInvite是開啟或關閉功能的主開關。接受的值為true和false。
- delayQuickReInviteMilliseconds是在ACK之後新增的延遲的值(以毫秒(ms)為單位)。值範圍為100ms到10000ms。
若要設定此功能,請開啟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,但可能比延遲高幾毫秒。
100ms通常足以防止ACK和re-INVITE接收順序混亂,但根據網路環境和信令路徑中涉及的SIP實體,該值可能更高。
疑難排解
如果裝置仍以500錯誤代碼做出響應,並且ACK和re-INVITE已按正確順序傳送,則需要對裝置進行進一步調查。
使用AS上的XSLogs驗證AS是否按配置新增了延遲,並使用資料包捕獲或裝置日誌確保延遲足夠讓消息按正確的順序傳送。
請注意,這僅當AS在傳送ACK之後傳送re-INVITE時有效,但當AS收到ACK並導致AS傳送re-INVITE時無效。