還有一些實(shí)體,幫助SIP創(chuàng)建網(wǎng)絡(luò)。在SIP內(nèi)每個(gè)網(wǎng)絡(luò)元件被標(biāo)識(shí)SIP URI(統(tǒng)一資源標(biāo)識(shí)符),它是像一個(gè)地址或標(biāo)識(shí)。下面是網(wǎng)絡(luò)元素:
它是端點(diǎn)和SIP網(wǎng)絡(luò)中最重要的網(wǎng)絡(luò)元件中的一個(gè)。端點(diǎn)可以啟動(dòng),修改或終止會(huì)話。用戶代理的SIP網(wǎng)絡(luò)的最智能設(shè)備或網(wǎng)絡(luò)元件。它可能是一個(gè)軟件電話,移動(dòng)電話或平板電腦。
用戶代理在邏輯上分成兩部分:
用戶代理客戶端(UAC) - 發(fā)送請(qǐng)求和接收響應(yīng)的實(shí)體。
用戶代理服務(wù)器(UAS)- 接收一個(gè)請(qǐng)求,并發(fā)送應(yīng)答的實(shí)體。
SIP是基于客戶端 - 服務(wù)器架構(gòu),其中來電者的電話作為其發(fā)起呼叫,被叫方的電話作為其響應(yīng)呼叫服務(wù)器的客戶端。
它是采用一個(gè)請(qǐng)求從用戶代理,并將其轉(zhuǎn)發(fā)給另一個(gè)用戶的網(wǎng)絡(luò)元件。
基本上是一個(gè)代理服務(wù)器的作用是很象一個(gè)路由器。
它具有一定的智能,以了解一個(gè)SIP請(qǐng)求,并將其推進(jìn),在URI的幫助下推送。
代理服務(wù)器位于兩個(gè)用戶代理之間。
有可能是在源和目的地之間,最大能有70個(gè)代理服務(wù)器。
有兩種類型的代理服務(wù)器:
無狀態(tài)代理服務(wù)器 - 它簡單地轉(zhuǎn)發(fā)接收到的消息。這種類型的服務(wù)器不存儲(chǔ)呼叫或事務(wù)處理信息。
狀態(tài)代理服務(wù)器- 這種類型的代理服務(wù)器的跟蹤每個(gè)請(qǐng)求和響應(yīng)的接收,并可以根據(jù)需要在將來使用。它可重發(fā)的請(qǐng)求時(shí),如果沒有從在時(shí)間上響應(yīng)另一側(cè)。
在注冊(cè)服務(wù)器接受來自用戶代理的注冊(cè)請(qǐng)求。它可以幫助用戶在自己的網(wǎng)絡(luò)中進(jìn)行身份驗(yàn)證。它存儲(chǔ)的URI和用戶數(shù)據(jù)庫的位置在同一域內(nèi)幫助其他SIP服務(wù)器。
看看下面的例子,顯示SIP注冊(cè)的過程。
在這里,主叫方想要向TMC域名注冊(cè)。所以它發(fā)送一個(gè)REGISTER請(qǐng)求TMC的注冊(cè)服務(wù)器和服務(wù)器返回200 OK響應(yīng),因?yàn)樗跈?quán)客戶端。
重定向服務(wù)器接收請(qǐng)求,并期待在由注冊(cè)商創(chuàng)建的位置數(shù)據(jù)庫請(qǐng)求的接收人。
重定向服務(wù)器使用數(shù)據(jù)庫獲取的位置信息,并響應(yīng)使用3xx(重定向響應(yīng))給用戶。我們將在本教程后面討論響應(yīng)代碼。
定位服務(wù)器提供了對(duì)來電者的可能位置的重定向和代理服務(wù)器的信息。
只有一個(gè)代理服務(wù)器或重定向服務(wù)器可以聯(lián)系一個(gè)位置服務(wù)器。
下圖描述了每個(gè)網(wǎng)絡(luò)元素在建立會(huì)話所扮演的角色。
SIP被構(gòu)造為分層協(xié)議,這意味著它的行為是在一組相當(dāng)獨(dú)立的處理階段來描述與每個(gè)階段之間只有松散耦合。
SIP的最下層是它的語法和編碼。它的編碼是用擴(kuò)充Backus-Naur 范式語法(BNF)指定。
在第二個(gè)層次是傳送層。它定義了一個(gè)客戶端發(fā)送請(qǐng)求和接收響應(yīng)以及一個(gè)服務(wù)器如何接收請(qǐng)求和發(fā)送響應(yīng)通過網(wǎng)絡(luò)。所有的SIP元素包含一個(gè)傳輸層。
接下來是處理層。事務(wù)是由一個(gè)客戶端的事務(wù)(使用傳輸層)發(fā)送一個(gè)請(qǐng)求到服務(wù)器事務(wù),連同所有響應(yīng)從服務(wù)器事務(wù)回客戶端發(fā)送的請(qǐng)求。通過一系列的交易,一個(gè)用戶代理客戶端(UAC)完成任何任務(wù)發(fā)生。無狀態(tài)代理不包含事務(wù)層。
事務(wù)層以上的層稱為事務(wù)用戶。每個(gè)SIP實(shí)體,除了無狀態(tài)代理,都是一個(gè)事務(wù)用戶。