在前面的講座中,我們簡單介紹了SIP協(xié)議使用SIP協(xié)議的原因。現(xiàn)在我們將繼續(xù)介紹關(guān)于SIP的基本定義和SIP架構(gòu)中的幾個基本概念。
SIP定義
根據(jù)官方RFC 3261 的定義,SIP是這樣描述的:
中文的定義大概可以解釋為:SIP是存在于應用層的控制協(xié)議,它可以實現(xiàn)創(chuàng)建,修改和結(jié)束多媒體會話例如會議或網(wǎng)絡呼叫。SIP可以邀請一個已存在的會話來實現(xiàn)媒體會議。它可以對已存在的會話中添加或移除媒體。SIP 也可以透明地支持名稱映射和重定位的服務,這樣可以支持用戶的移動性,無論用戶在何地登錄服務器,都可以實現(xiàn)用戶的身份驗證。
在以上的說明中,用戶基本上可以看到SIP可以發(fā)起呼叫,添加刪除媒體,也可以實現(xiàn)對名稱驗證和映射,同時用戶可以實現(xiàn)在不同地點,不同終端的登錄管理。
注意,圖例中標注了SIP通過UCP傳輸?shù)姆绞,也會有一些微軟的客戶也使用TCP的傳輸方式。
關(guān)于SIP中的UAC和UAS的關(guān)系,UAC為 User Agent Client, 它負責發(fā)起呼叫;而UAS為User Agent Server, 它接收一個呼叫。UA可以是UAC或者UAS。當然在現(xiàn)實環(huán)境中,如果簡單的呼叫的話,用戶不一定需要UAS,兩個UAS 之間也可以直接通過IP進行呼叫。
以下圖例可以解釋一個簡單的UAC/UAS雙方之間的通話流程。SIP UAC 發(fā)起一個INVITE 消息,UAS回復一個 200 OK,UAC 發(fā)送一個ACK 消息確認,然后開始正式的語音呼叫,雙方發(fā)送媒體流,UAS 或者UAC掛機,UAS發(fā)送一個Bye消息,最后UAC 發(fā)送一個200 OK,正式確認雙方通話結(jié)束。
SIP架構(gòu)
根據(jù)rfc3261的定義,為了實現(xiàn)SIP所描述的功能,我們現(xiàn)在看看基本的SIP架構(gòu)實現(xiàn)方式。
它包括幾個核心的要素:
- UAC,包括各種用戶終端,電腦,手機app,物理SIP電話或者軟電話等等接入終端。
- Proxy負責終端的會話管理。
- Registrar 服務器負責用戶注冊管理。
- Location 服務器負責用戶的定位管理。
- Gateway負責用戶通過落地接入PSTN網(wǎng)絡的能力處理。
這里,讀者看到的是非常具體,按照標準RFC 3261來定義的一個SIP架構(gòu)實體。當然,在實際的應用環(huán)境中,我們可能看不到這些具體的每個服務器的安裝配置。很多時候,幾個服務器可能是通過同一臺服務器來實現(xiàn)這些功能,例如注冊服務器和定位服務器可能就是一臺服務器。很多時候,因為,我們用戶更多的應用場景是在一個內(nèi)網(wǎng)呼叫,關(guān)注的也是一個單臺企業(yè)PBX功能,所以簡單的定位或者注冊實際上都在同一臺服務器完成。
SIP格式和URL的格式相同,用戶通過SIP@domain的方式來定義用戶的唯一性。具體的表現(xiàn)形式如以下圖例:
通過不同的形式來體現(xiàn)所支持的功能。
以上章節(jié)重點介紹了SIP的定義,SIP的幾個基本的概念和SIP的技術(shù)架構(gòu)中的幾個核心要素。這些基本的功能和核心要素構(gòu)成了一個簡單的SIP呼叫流程,網(wǎng)絡架構(gòu)的形式,可以幫助用戶了解基本的SIP技術(shù)特點。筆者在未來的章節(jié)中會逐步介紹更多的技術(shù)細節(jié)。
關(guān)注公眾微信號:asterisk-cn 獲得更多有價值的企業(yè)通信行業(yè)技術(shù)分享,訪問技術(shù)論壇獲得技術(shù)幫助:www.issabel.cn/forum