1、SIP Registration
SIP 注冊服務(wù)器是終端用戶實現(xiàn)注冊功能,認(rèn)證相關(guān)功能所必須的一步,通過SIP成功驗證,可以完成對終端功能所進行的驗證,允許用戶執(zhí)行相關(guān)的功能支持。用戶可以參考RFC 3840 中的contact的功能描述,了解完整的功能支持列表。用戶的終端啟動以后,SIP電話注冊時,用戶可以通過檢查Registration的注冊包的Contac的消息中看到用戶終端所顯示的功能狀態(tài)信息。例如,圖例中的mobility表示是一臺固定終端支持audio,actor=principal表示是一個人。

持。用戶可以參考RFC 3840 中的contact的功能描述,了解完整的功能支持列表。用戶的終端啟動以后,SIP電話注冊時,用戶可以通過檢查Registration的注冊包的Contac的消息中看到用戶終端所顯示的功能狀態(tài)信息。例如,圖例中的mobility表示是一臺固定終端支持audio,actor=principal表示是一個人。
2、SIP Re-registration
通過字面的意思讀者也可以了解到,終端的形式或者狀態(tài)發(fā)送了改變以后,需要重新注冊(同樣一個帳號,可能原來是物理終端,現(xiàn)在換成了軟電話形式或者在家辦公),執(zhí)行所謂的Re-registration 流程,保證終端用戶可以再次執(zhí)行所支持的功能。

3、SIP proxy server
SIP proxy 服務(wù)器是用來轉(zhuǎn)發(fā)請求到下一個服務(wù)器,它可以解析請求消息,如果有必要的話,它也rewrite 請求消息,然后轉(zhuǎn)發(fā)到下一個服務(wù)器。當(dāng)然,它也可以發(fā)起請求和響應(yīng)消息,可以作為客戶端或服務(wù)器端使用。
典型的SIP Proxy 之間的終端呼叫流程如下:

它支持兩種狀態(tài)的處理:
- Stateful Proxy: 簡單來說,它可以保持或記憶所有進入的會話和出去的會話。當(dāng)然,此場景可以支持多種業(yè)務(wù)處理,例如,計費,呼叫/忙狀態(tài)響應(yīng)等等業(yè)務(wù)。如果用戶使用Kamailio的話,這些狀態(tài)信息都存儲在內(nèi)存中。

- Stateless Proxy:簡單來說,一旦生成新的出局的請求,馬上清除所有經(jīng)過(歷史)的會話。此場景可用于大并發(fā)場景,proxy處理的流程比較簡單。更多的作用在于呼叫的均衡負(fù)載處理或者重定位的處理。Proxy 負(fù)責(zé)查詢到終端用戶的信息,然后呼叫方再次對被呼叫方再次發(fā)起一個INVITE,然后進行對對點呼叫,降低了Proxy的負(fù)載,最終提高了并發(fā)量的處理。
- 比較簡單通俗的比喻是:Stateless Proxy是一個網(wǎng)絡(luò)中的switch,它實現(xiàn)簡單的轉(zhuǎn)發(fā)處理;而Stateful Proxy是一個網(wǎng)絡(luò)防火墻,它則可以對SIP header實現(xiàn)查看,修改,路由,涉及到了SIP dialog 和BYE整個過程處理。
4、Location Server
一般來說,我們通常很難發(fā)現(xiàn)一個物理的Location 服務(wù)器,事實上,市場上很多公司提供這樣的解決方案。Location 服務(wù)器的作用在于通過location 服務(wù)器的數(shù)據(jù)庫查找用戶的服務(wù)器所屬信息,它用來支持SIP Proxy和重定向服務(wù)器的邏輯處理。它可以提供對proxy 服務(wù)器和注冊服務(wù)器的以下要求:
- 注冊服務(wù)器通過查詢Location 服務(wù)器來獲得客戶端的注冊消息。
- Proxy 服務(wù)器可以通過Location 服務(wù)器數(shù)據(jù)庫查詢所提供的服務(wù)消息,如果獲得了SIP URL和SIP INVITE消息以后,則發(fā)送此消息到目的地地址。
- 事實上,Location 服務(wù)器提供了多種查詢服務(wù)來查詢最終客戶端的信息,它可以支持LDAP協(xié)議查找,也可以支持DNS服務(wù)器來查找。

以下討論介紹了一個如何實現(xiàn)DNS查找來呼叫另外一個終端的實現(xiàn)路徑:首先客戶A 對客戶B 通過Proxy 服務(wù)器發(fā)起一個INVITE 消息,Proxy服務(wù)器通過DNS服務(wù)器查詢這個客戶B的URL地址,DNS通過URL地址查詢到IP地址以后,回復(fù)給Proxy服務(wù)器,Proxy服務(wù)器然后對此IP地址發(fā)起一個INVITE 請求,此Proxy根據(jù)所屬用戶地址對終端B 發(fā)起一個INVITE 請求,最終實現(xiàn)呼叫流程。

我們在本章節(jié)中介紹了幾種服務(wù)器的類型和各自扮演的角色。在實際場景中可能幾個服務(wù)器都集合為一臺服務(wù)器來實現(xiàn)某些功能。用戶可以根據(jù)自己的需求做進一步的分析和學(xué)習(xí)。
關(guān)注公眾微信號:asterisk-cn 獲得更多有價值的企業(yè)通信行業(yè)技術(shù)分享,訪問技術(shù)論壇獲得技術(shù)幫助:www.issabel.cn/forum