根據(jù) RFC3891的定義,Replaces header 簡單來說就是使用新的SIP dialog 替換當前的SIP dialog,通過REFER method來獲得支持。在實際的場景中,它所支持的主要功能包括:電話詢轉功能和電話駐留中的電話重接功能。這里需要特別說明的是,在Replaces header 中必須包含一個明確的from-tag和一個明確的to-tag,否則proxy不會匹配到相應的終端和事件響應消息。如果Replaces header 匹配了一個dialog中的,這個dialog可能已經結束,那么UA就會拒絕這個請求,發(fā)送一個603 Declined 響應消息。
1、電話駐留的舉例。電話駐留是PBX經常使用的功能。通常情況下,如果用戶呼叫另外一個用戶時,如果用戶忙或者到其他辦公室位置的話,可能會把通話通過電話駐留的方式,把通話暫時駐留或者?吭谙到y(tǒng)中。用戶在其他地方使用其他的電話終端再次通過系統(tǒng)熱鍵獲取重啟通話。電話駐留的使用場景則使用了replaces header來替換了當前的SIP dialog。

以下是消息內容,大家要注意查看refer,from-tag, to-tag 的消息內容:

2、電話轉接到功能也同樣使用了replaces header的方式來實現(xiàn)電話的轉接。在很多企業(yè)PBX的使用場景中,我們經?吹娇赡芤驗殡娫捪到y(tǒng)的隊列繁忙,客戶不能直接呼叫到公司服務支持熱線或服務隊列中,有時通過接線員來轉接客戶電話到系統(tǒng)的隊列中。接線員呼叫隊列,PBX會讓接線員加入到隊列中,然后接線員把客戶的通話轉入到訪問隊列。在這個場景中,replaces header 也發(fā)生了替換,同時最后增加了from-tag和to-tag。

我們通過以上兩個使用場景介紹了Replaces header 的使用方式和處理流程。用戶也可以自己通過FreePBX的場景,使用幾臺SIP話機來進行驗證,通過打印SIP log來檢查Replaces 的變化。
獲得更多有價值的行業(yè)技術新聞,請關注公眾微信號:asterisk-cn, 訪問www.issabel.cn/forum獲得技術幫助。