12 Dialogs
對用戶(hù)代理來(lái)說(shuō),一個(gè)重要的概念是 dialog。一個(gè)dialog表示兩個(gè)用戶(hù)代理之間 在特定時(shí)間內保持的一個(gè)點(diǎn)對點(diǎn)關(guān)系。 Dialog用來(lái)支持用戶(hù)代理之間一系列的消 息,并且在它們之間提供正確的請求路 由。dialog通過(guò)SIP消 息解析,表示為文本 內容。Section 8討論過(guò)針對外部dialog的 請求和響應環(huán)境中對于method獨立的UA 場(chǎng)景的處理流程。此章節討論如何使用請 求和響應來(lái)構建一個(gè)dialog,以及如何在 dialog中發(fā)送后續的請求和響應。
在每個(gè)UA中,dialog 是通過(guò)dialog ID來(lái)確 認的,它由一個(gè)Call-ID值,一個(gè)本地標簽 和遠端標簽構成。在此dialog中,每個(gè)UA涉及的dialog ID是不同的。具體來(lái)說(shuō),在-端UA的本地標簽等同于在對端點(diǎn)UA的遠 端標簽。此標簽是一個(gè)不透明度標識符 號,此標識符號支持唯一的dialog IDs生 成。
對于UAS來(lái)說(shuō),dialog ID中的Call-ID值設置為消息的Call-ID,遠端標簽設置為消息中From頭中的標簽,本地標簽設置為消息中To頭中的標簽。
Dialog ID不但關(guān)聯(lián)所有的響應消息,并且 關(guān)聯(lián)任何請求,此請求在To頭中含有一個(gè) 標簽。一個(gè)消息的dialogID計算規則取決 于SIP要素是一個(gè)UAC還是UAS。對于UAC 來(lái)說(shuō),dialog ID的Call-ID設置為此消息的 Call-ID,遠端標簽設置為消息中To頭中的 這個(gè)標簽,本地標簽設置為消息中From頭 中的標簽(此規則適用于請求和響應 中)
一個(gè)dialog包含某些特別狀態(tài)消息,這些消息用來(lái)支持在此dialog中的后續的消息傳輸。這個(gè)狀態(tài)消息由這個(gè)dialog ID,一個(gè)本地序列號(用來(lái)支持從UA發(fā)送到對端的請求的順序),一個(gè)遠端序列號(用來(lái)支持從遠端到UA請求的順序),一個(gè)本地URL,一個(gè)遠端URL,遠端目的地,一個(gè)命名為“secure”的布爾flag,和一個(gè)路由組,此路由組是一個(gè)按續排列的URL列表。路由組是一個(gè)服務(wù)器列表,請求需要通過(guò)此列表服務(wù)器路徑發(fā)送到對端。
Dialog可以是一種“早期”狀態(tài),這種早期狀態(tài)發(fā)生在當它創(chuàng )建時(shí),它攜帶了一個(gè)臨時(shí)響應,當收到一個(gè)2xx最終響應消息后,此狀態(tài)會(huì )轉化為一個(gè)“確認”狀態(tài)。在上面的dialog中,對于其他響應或者完全沒(méi)有收到任何響應,這個(gè)早期dialog就會(huì )結束。
12.1 Creation of a Dialog
Dialogs是通過(guò)具體的methods來(lái)創(chuàng )建的,由一系列對請求的非失敗響應生成。在此規范中,僅2xx和101-199響應攜帶To標簽的,請求是INVITE請求的響應將會(huì )創(chuàng )建dialog。對于由非最終響應創(chuàng )建的dialog來(lái)說(shuō),這種dialog是處于“早期”狀態(tài),稱(chēng)之為一個(gè)早期dialog。拓展可定義其他含義支持創(chuàng )建dialogs。Section 13 列出了更多細節,這些細節提供了針對INVITE method的說(shuō)明。這里,我們討論dialog狀態(tài)創(chuàng )建的流程,不依賴(lài)于這個(gè)method。
關(guān)注微信公眾號:asterisk-cn,獲得有價(jià)值的通信行業(yè)技術(shù)分享
AsteriskFreepbx/FreeSBC技術(shù)文檔: www.freepbx.org.cn
融合通信/IPPBX/FreePBX商業(yè)解決方案:www.hiastar.com
如何使用FreeSBC,qq技術(shù)分享群:334023047