1.Overview:html
2.SIP協議:服務器
1)概述網絡
SIP: Session Initiation Protocol,由IETF制定,最先由MMUSIC工做組提出,如今主要由SIP工做組負責維護和後期擴展,是一種輕量級的應用層通用信令協議,用於多媒體通訊控制,可創建、修改和終止IP網上的語音和多媒體會話。session
典型的SIP梯形網絡結構:架構
SIP的Offer/Answer模型:app
也稱爲會話協商模型,以在對等功能實體之間進行會話協商經過在SIP消息的消息體中包含SDP描述完成。、dom
在會話過程當中,任何一方能夠經過Offer/Answer模型修改會話屬性。網絡傳輸協議
2)發展和應用狀況:編碼
3)相關標準:spa
a)SIP核心標準:
b)SIP擴展標準:
IETF針對SIP的不一樣應用需求制定了上百篇SIP擴展RFC,
SIP相關RFC:
3261-32xx, 33xx, 34xx, 35xx, 36xx, 37xx, 38xx, 39xx, 40xx,
41xx, 42xx, 43xx, 44xx, 45xx, 46xx, 47xx, 48xx, 49xx, 50xx,
51xx, 52xx, 53xx, 54xx, before 3261
4)SIP基本功能:
5)SIP的特色
6)網絡中元素:
SIP基本網絡模型:客戶-服務器協議,在語法和語義上與HTTP相似,SIP客戶發出請求,SIP服務器接收請求並進行響應
a)SIP用戶代理UA:
端系統中的SIP應用稱做SIP用戶代理(UA),UA = UAC + UAS,UA最基本的功能是支持SIP請求和應答的正確發送和接收。
B2BUA:在一次呼叫中既充當UAC又充當UAS角色,UAC根據UAS接收到的請求消息構造新的請求消息進行發送。
b)SIP代理服務器Proxy Server:
負責未來自客戶的請求轉發 到下一跳SIP代理服務器或重定向服務器或最終的UAS,也可能將請求分發到多個下一跳服務器。
主要功能:尋址、路由、轉發,能夠解釋、翻譯、改寫SIP請求。
分類:
c)SIP重定向服務器Redirect Server:
經過響應告訴請求的發起方下一跳服務器的地址,而後由請求發起方根據此地址向下一跳服務器從新發送請求 。
與Proxy Server的區別
d)SIP註冊服務器Register Server
經過註冊過程接收客戶當前的位置信息,並對位置服務器進行添加、修改、查詢等操做。一般與代理服務器或重定向服務器放在一塊兒。
功能:
e)位置服務器
存儲並向用戶返回可能的位置信息,在SIP網絡架構中起到重要做用的Internet公共服務器。位置服務器的信息可能來自SIP註冊服務器,也可能經過其餘渠道獲取。位置服務器與SIP服務器之間經過使用LDAP協議 進行通訊,位置服務器可能返回多個位置信息,重定向服務器和代理服務器能夠採用不一樣的方式來處理這多個位置信息。
咱們看一個呼叫的過程體會一下各個功能實體的做用:
7)SIP協議的結構及其位置
各層功能相對獨立。層與層之間鬆散耦合,SIP獨立於網絡傳輸協議。
事務用戶層
事務層
傳輸層
語法和編碼層
8)SIP消息:
a)簡述:SIP消息用於創建或終結會話,採用純文本形式,用於Internet多媒體會議,Internet電話呼叫或多媒體信息流分配。SIP中最重要的消息是邀請「INVITE」請求消息
b) 類型:
c)消息體通用結構:
SIP消息=起始行(請求行/狀態行)
一個或多個消息頭域行
CRLF(空行)
[消息體]
- start-line(起始行):在請求消息中稱爲請求行,在響應消息中稱爲狀態行,給出版本號、調用的請求操做、被邀請用戶的當前地址、響應類型等信息。
- headers 域:攜帶呼叫屬性和業務信息,用於指示客戶機/服務器如何處理消息,許多頭域來自HTTP(From, To, …)。有些是SIP特有的(Call-ID, Cseq, Via, …)。
- body 域:攜帶呼叫或會話描述,可使用SDP格式,描述會話的音頻/視頻編解碼方法、參數、地址以及會話的時間等信息。在響應消息中還多是緣由和進展指示文本。
d)SIP消息起始行:
RFC3261中定義的基本方法Method:
注:SIP方法能夠進行擴展
Request-URI 請求去往的服務器的地址
SIP-VerSIP版本號目前設爲SIP/2.0
2xx,成功響應。表示請求已成功接收、徹底理解並被接受,如200 OK
3xx,重定向響應。須要採起進一步動做來完成該請求,如30一、30二、305
4xx,客戶出錯。請求語法出錯或沒法在此服務器完成該請求,如40一、40三、407,……
5xx,服務器出錯。服務器不能完成合法的請求,如50三、504,……
6xx,全局故障。任何服務器都沒法完成該請求
注:SIP響應碼能夠進行擴展
e)SIP消息頭域:
用於攜帶呼叫屬性和業務信息,用於指示客戶或服務器如何處理消息,語法和語義相似HTTP。同一頭域名的多個頭域值能夠位於同一頭域行,頭域值之間 用逗號隔開。頭域存在多個參數時,頭域值與參數之間用逗號隔開。RFC3261定義了44個頭域,頭域的順序沒有嚴格限制,但建議將須要Proxy處理的 頭域放在前面。From、To、Call-ID、CSeq、Via和Max-Forwards這六個頭域在全部的請求消息中都必須出現。Contact頭 域在INVITE請求消息的頭域中必須出現。
通用格式:field-name: field-value *(;parameter-name=parameter-value)
f)SIP消息體:
SIP消息頭只涉及會話創建、終結和修改,並不涉及媒體控制。SIP會話的媒體類型、編碼格式、收發地址等信息由SIP的消息體(SDP)來描述。SIP請求和響應消息均可以包含消息體
SIP消息體一般在UA之間進行端到端的傳送,對中間代理透明。SDP是用於描述多媒體會話信息的協議,目的爲告知某會話的存在給出參與會話所必需的信息,包括會話的地址、時
間、媒體類型等信息。SDP定義了會話描述的統一格式,但不定義SDP消息的傳送,也不支持媒體編碼方案的協商。SDP描述的信息封裝在傳送協議中傳送。 典型的會話傳送協議包括:SAP、SIP、RTSP、HTTP、使用MIME的E-mail。採用SAP、SIP或RTSP傳送SDP信息的數據報格式。
SDP會話描述做爲消息體放在SIP消息中,只有請求消息和2xx響應消息包含SDP消息體,其它響應消息包含的消息體爲文本描述,給出呼叫進展信息和異常緣由的說明。
SIP消息體頭部中用於說明消息體類型和大小的部分:
SDP內容:
SDP格式:
SDP描述由多個文本行構成 =,純文本描述——具備可攜帶性,緊湊型編碼——各字段有嚴格的順序和格式。
SDP描述包括兩部分
g)SIP舉例:
SIP請求消息舉例——INVITE
SIP響應消息舉例——200 OK
h)SIP尋址和路由
尋址:在SIP中,用戶經過SIP/SIPS URI進行尋址,SIP URI有如下幾種形式。
路由:
UAC的路由機制--
相關頭域:
路由策略:
UAS的路由機制--應答消息根據Via頭域的值與沿着請求消息相反的路徑返回,在不要求代理轉發請求時,應答消息直接發送給請求消息的Contact頭域指示的UAC。
Proxy的路由機制--對請求消息的路由策略,根據Request-URI頭域的值進行路由,根據Route頭域的值進行路由;對應答消息的路由策略,根據Via頭域的內容進行轉發。
i)SIP的呼叫/對話/會話/事務:
Call——呼叫:在對等SIP UA之間創建的聯繫,由Call-ID惟一標識
Dialog——對話:在兩個UA之間保持必定時間的對等SIP關係,由SIP消息(如對INVITE的2xx響應)創建,由Call-ID(呼叫標識)、local tag(本地標籤)和 remote tag(遠端標籤)共同標識。
Session——會話:在對等參與者之間創建的媒體流鏈接。在使用SDP進行會話描述時,會話由SDP用戶名、session id、網絡類型、地址類型以及源域的地址元素共同定義。
SIP Transaction——SIP事務:發生在一個客戶和一個服務器之間,包括從客戶發出一個請求到服務器回送終結響應之間的全部消息。
事務是一個垂直的概念,描述了SIP實體在事務層應完成的功能(對話則描述了對等UA之間的交互關係,一個對話每每須要經過多個事務來完成)事務只存在於UA和有狀態的Proxy中。事務經過維護有限狀態機來提供相應的功能,SIP定義了四個事務狀態機。
每一個事務狀態機有自身的定時器、重傳規則、過濾規則和終止規則。
g)SIP典型流程
用戶註冊流程:
代理呼叫控制流程:
重定向呼叫控制流程:
第三方呼叫控制模型:
k)SIP在軟交換網絡中的應用
l)SIP的擴展
SIP方法擴展
INFO
UPDATE、MESSAGE
SUBSCRIBE/NOTIFY
REFER
PRACK
PUBLISH
……
SIP消息頭域和參數擴展
refered-by
Refer-to
……
SIP消息體擴展
XML消息體
Multipart消息體
ISUP消息體
3.SIP-T/SIP-I/BICC協議
1)簡介:
SIP-T--Session Initiation Protocol for Telephones,SIP協議針對電信業務的擴展,RFC337二、RFC3398。
SIP-I--SIP with Encapsulated ISUP,由ITU-T制定,是SS7 ISUP與SIP的互通協議,Q.1912。
2)目的:
使基於SIP的軟交換網絡可以與傳統電信網絡互通,使SIP網絡橋接PSTN網絡時可以透明傳遞ISUP消息。
3)內容:
制定了詳細的SIP消息與ISUP消息的映射,保證ISUP信令的透明傳遞,經過 「封裝」 的方法實現。
4)兩者區別:
SIP-T協議:制定了基本的SIP-ISUP映射規則與映射方法,描述簡單,易於理解,但可實現性差,不易操做。
SIP-I協議:繼承了SIP-T協議的規則與方法,進一步嚴格規範了消息與參數的映射,描述複雜,可操做性好,可實現性強,擴展了對補充業務的描述已經考慮了3GPP的相關內容。
5)SIP 網絡與PSTN網絡互通:
SIP-T/SIP-I協議用於指導軟交換完成SIP-ISUP的映射。
參考點A:ISUP over SIGTRAN
參考點B:Megaco/H.248
參考點D:SIP-T/SIP-T
SIP-T/SIP-I用於指導軟交換之間的交互,以透明傳遞ISUP消息。
6)BICC協議
BICC協議由ITU-T SG11定義提供承載無關的呼叫控制功能,與IETF的SIP協議相對應。
BICC協議基於ISUP標準(Q.761-765),並對其進行了加強,以支持分組網承載信息的傳送。承載信息採用BICC的APM機制
BICC CS1支持基於ATM承載上的窄帶業務的提供。BICC CS2進行了進一步的加強,能夠支持基於IP的承載信息的傳送。
BICC呼叫控制流程舉例: