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

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

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

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

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

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

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