1.
SIP1.1. 概況1.1.1.
SIP系統的基本組成
(1)使用者代理程式 User Agent
在SIP中,使用者代理程式(UA)是端點實體。使用者代理程式通過交換請求和響應初始和終止會話。UA作為一應用程式,它包含使用者代理程式客戶機和使用者代理程式伺服器,
如下:
· 使用者代理程式客戶機(UAC):客戶機應用程式,它初始SIP請求。
· 使用者代理程式伺服器(UAS):伺服器應用程式,當接收到SIP請求時它聯絡使用者並且代表使用者返回一響應。
在SIP網路中具有UA功能的裝置是:工作站,IP電話,電話網關,呼叫代理,自動應答服務。
(2)Proxy 伺服器 Proxy Server
Proxy 伺服器是同時作為伺服器和客戶機的中間實體,其目的是代表其他客戶機產生請求。具有解析名字的能力,能夠代理前面的使用者向下一跳伺服器發出呼叫請求。然後伺服器決定下一跳的地址,這有點類似另一個動態路由協議BGP (Border Gateway Protocol).
(3)重新導向伺服器 Redirect Server
在獲得了下一跳的地址後,立刻告訴前面的使用者,讓該使用者直接向下一跳地址發出請求而自己則退出對這個呼叫的控制,訪問這樣的伺服器就像訪問一個資料庫一樣。
(4)註冊伺服器 Register Server
用來完成對UAS的登入,在SIP系統的網元中,所有UAS都要在某個登入伺服器中登入,以便UAC通過伺服器能找到它們,只接收UAC發送的登記請求。註冊伺服器通常和Proxy 伺服器或重新導向伺服器處於同一物理實體中。
註冊伺服器是接受REGISTER請求的伺服器,其目的是根據使用者在請求中規定的聯絡資訊更新位置資料庫。
SIP通過E-mail形式的地址來標明使用者地址。每一使用者通過一等級化的URL來標識,它通過諸如使用者電話號碼或主機名稱等元素來構造(例如:SIP:user@company.com)。因為它與E-mail地址的相似性,SIP
URLs容易與使用者的E-mail地址關聯。
(5)定位服務器 Location Server
它可以把各個登入伺服器的內容匯總起來,便於SIP伺服器尋找。它可以作為一個全域的資料庫,作用就像DNS,它的訪問和接入可以是非SIP的,如Finger或LDAP。定位服務器可以在物理上與SIP網路伺服器(Proxy 伺服器或重新導向伺服器)處於同一位置,也可以是單獨配置的。
1.1.2.
要求方法及其響應
INVITE |
發起呼叫 |
1XX 進展指示 |
ACK |
響應應答,確認INVITE的最終應答。 |
2XX 成功 |
REGISTER |
使用者登記,註冊位置服務。 |
3XX 重新導向 |
OPTIONS |
能力詢問,查詢另一方能力。 該訊息可以作為心跳訊息,用來確認對端實體是否存活,兩個實體之間是否可達。 |
4XX 用戶端錯誤 |
CANCEL |
取消呼叫,撤消搜尋和響鈴。 |
5XX 伺服器錯誤 |
BYE |
結束通話 |
6XX 全域錯誤 |
其他請求訊息:
INFO:
發送會話中資訊而不改變工作階段狀態。
PRACK:
與ACK作用相同,但是用於臨時響應。
SUBSCRIBE:該方法用來向遠端端點預訂其狀態變化的通知。
NOTIFY:
該方法發送訊息以通知預訂者它所預定的狀態的變化。
UPDATE:
允許客戶更新一個會話的參數而不影響該會話的目前狀態。
MESSAGE:
通過在其請求體中承載立即訊息內容實現立即訊息。
REFER:
其功能是指示接受方通過使用在請求中提供的聯絡地址資訊聯絡第三方。
1.2. 格式1.2.1.
SIP格式
每條SIP訊息由以下三部分組成:
(1)起始行(Start Line):每個SIP訊息由起始行開始。起始行傳達訊息類型(在請求中是方法類型,在響應中是響應代碼)與協議版本。起始行可以是一請求行(請求)或狀態行(響應)。
(2)SIP頭:用來傳遞訊息屬性和修改訊息意義。它們在文法和語義上與HTTP頭域相同(實際上有些頭就是借自HTTP),並且總是保持格式:<名字>:<值>。
(3)訊息體:用於描述被初始的會話(例如,在多媒體會話中包括音頻和視頻編碼類別型,採樣率等)。訊息體能夠顯示在請求與響應中。SIP清晰區別了在SIP起始行和頭中傳遞的信令資訊與在SIP範圍之外的會話描述資訊。可能的體類型就包括本文將要描述的SDP會話描述協議。