1、SIP Registration
SIP 注冊服務器是終端用戶實現(xià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 服務器是用來轉(zhuǎn)發(fā)請求到下一個服務器,它可以解析請求消息,如果有必要的話,它也rewrite 請求消息,然后轉(zhuǎn)發(fā)到下一個服務器。當然,它也可以發(fā)起請求和響應消息,可以作為客戶端或服務器端使用。
典型的SIP Proxy 之間的終端呼叫流程如下:
它支持兩種狀態(tài)的處理:
- Stateful Proxy: 簡單來說,它可以保持或記憶所有進入的會話和出去的會話。當然,此場景可以支持多種業(yè)務處理,例如,計費,呼叫/忙狀態(tài)響應等等業(yè)務。如果用戶使用Kamailio的話,這些狀態(tài)信息都存儲在內(nèi)存中。
- Stateless Proxy:簡單來說,一旦生成新的出局的請求,馬上清除所有經(jīng)過(歷史)的會話。此場景可用于大并發(fā)場景,proxy處理的流程比較簡單。更多的作用在于呼叫的均衡負載處理或者重定位的處理。Proxy 負責查詢到終端用戶的信息,然后呼叫方再次對被呼叫方再次發(fā)起一個INVITE,然后進行對對點呼叫,降低了Proxy的負載,最終提高了并發(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 服務器,事實上,市場上很多公司提供這樣的解決方案。Location 服務器的作用在于通過location 服務器的數(shù)據(jù)庫查找用戶的服務器所屬信息,它用來支持SIP Proxy和重定向服務器的邏輯處理。它可以提供對proxy 服務器和注冊服務器的以下要求:
- 注冊服務器通過查詢Location 服務器來獲得客戶端的注冊消息。
- Proxy 服務器可以通過Location 服務器數(shù)據(jù)庫查詢所提供的服務消息,如果獲得了SIP URL和SIP INVITE消息以后,則發(fā)送此消息到目的地地址。
- 事實上,Location 服務器提供了多種查詢服務來查詢最終客戶端的信息,它可以支持LDAP協(xié)議查找,也可以支持DNS服務器來查找。
以下討論介紹了一個如何實現(xiàn)DNS查找來呼叫另外一個終端的實現(xiàn)路徑:首先客戶A 對客戶B 通過Proxy 服務器發(fā)起一個INVITE 消息,Proxy服務器通過DNS服務器查詢這個客戶B的URL地址,DNS通過URL地址查詢到IP地址以后,回復給Proxy服務器,Proxy服務器然后對此IP地址發(fā)起一個INVITE 請求,此Proxy根據(jù)所屬用戶地址對終端B 發(fā)起一個INVITE 請求,最終實現(xiàn)呼叫流程。
我們在本章節(jié)中介紹了幾種服務器的類型和各自扮演的角色。在實際場景中可能幾個服務器都集合為一臺服務器來實現(xiàn)某些功能。用戶可以根據(jù)自己的需求做進一步的分析和學習。
關(guān)注公眾微信號:asterisk-cn 獲得更多有價值的企業(yè)通信行業(yè)技術(shù)分享,訪問技術(shù)論壇獲得技術(shù)幫助:www.issabel.cn/forum