sip協議學習1
sip協議是由ietf提出的在ip網路上進行多**通訊的應用層控制協議。採用分層的方法來建立服務,是應用層上的乙個控制協議,用來建立,修改和終止有多個參與者的多**會話程序。參與會話的成員可以通過組播,單播或者兩者結合的方式進行通訊。可以用來邀請乙個新的成員加入其中,也可以建立全新的會話。一般情況下,sip協議使用rtp協議傳送音訊和**流,使用sdp協議進行**描述。
sip協議首先要建立呼叫通道,由伺服器的ip位址和埠號建立客戶和伺服器端的呼叫通道,客戶端在發出自己的請求訊息中的引數告訴伺服器端它自己的**通道的ip位址和埠號,然後伺服器端在發出最終響應的時候,客戶端和伺服器端的**通道建立起來了。當伺服器端接收到客戶端發來的確認訊息後,他們才開始通訊。
sip協議採用文字格式的client/server工作方式,是乙個請求應答的協議,該協議定義了多個執行相應功能的網路實體。這些網路實體通常包含:使用者**ua和網路伺服器ns,ua又分為使用者**客戶端uac和使用者**伺服器uas,uac負責發起sip呼叫請求,uas負責對呼叫請求作出響應。網路伺服器主要為客戶**提供註冊,認證,鑑權和路由等服務。根據其功能不同,網路伺服器可分為**伺服器,重定向伺服器和註冊伺服器三種。
**伺服器主要完成訊息的**
重定向伺服器接收sip請求,把請求中的源位址對映成多個或零個新位址,返回給客戶端uac.
註冊伺服器接收客戶端的註冊請求,完成使用者位址的註冊。
sip支援三種呼叫方式:(1)由客戶端像伺服器端直接呼叫
(2)由uac在重定向伺服器的輔助下進行重定向呼叫
(3)由**伺服器代表uac向被叫發起呼叫
sip把乙個呼叫分為三個階段:呼叫建立,呼叫保護,呼叫釋放。
首先要建立呼叫通道,即乙個tcp/udp連線。因此,由伺服器的ip位址和埠號建立客戶端與伺服器端之間的呼叫信令道。然後,客戶端向伺服器端傳送訊息invite訊息,如果伺服器段同意呼叫,傳送(2),(3)訊息。其中,1xx狀態碼表示請求已收到,正在處理中,200表示請求已經完成。這時,如果客戶端突然不想參加此次會話,可以向伺服器傳送bye。
圖中3xx相應只會在用重定向伺服器出現的時候,表示對請求的重定向處理,4xx響應表示客戶端的請求有語法錯誤不能被伺服器執行。5xx響應表示伺服器出錯,不能執行合法請求。6xx響應表示所有伺服器出錯,不能執行合法請求。當客戶接受3xx,4xx,5xx響應後,可根據響應中的訊息修改訊息,並重發請求。當客戶端接受6xx響應後,結束此次呼叫。 訊息
用法invite
呼叫乙個使用者**,傳送一次呼叫。
ack確認呼叫。
bye終止呼叫。
cancel
終止還未ok的呼叫。
register
提供一項註冊服務,帶有乙個聯絡位址和可以用來代替的別名。
options
詢問乙個使用者**的「能力」(例如,該使用者**能夠識別的訊息和編碼)。
響應訊息:
訊息用法
100 trying
訊息已收到,但是終端使用者**尚未進行處理。請等待。
180 ringing
終端使用者**已經收到訊息,正在提示使用者。請等待。
200 ok
終端使用者已經接受訊息。
301 moved permanently & 302 moved temporarily
使用者**的位址已經改變,新的永久或臨時位址位於contact欄位中。
400 bad request
普通錯誤訊息。客戶端不能識別訊息。
401 unauthorized & 407
請使用證書重試。
404 not found
要聯絡的使用者不存在或尚未註冊。
408 request timeout
另一方沒有響應。這意味著sip訊息永遠不會ok。所有重試都將被丟棄。這並不意味著**響太長時間(**可以永遠響鈴)。
訊息使用類似的頭字段型別
頭欄位用法
from
sip請求的傳送者。
tosip請求的接受者。這通常與sip uri相同(可以是乙個「別名」或乙個實際位址)。
contact
使用者**的實際位址。
call-id
代表兩個使用者**之間的完整呼叫或對話。所有相關的sip訊息都使用同乙個call-id。例如,當乙個使用者**收到一條bye訊息,根據call-id,它就知道要結束通話哪次呼叫。
cseq
訊息的順序編號。這在一次對話或乙個call-id中是惟一的。這用於區別新的訊息和「重試訊息」。當一條初始訊息沒有及時ok時,重試就會進行,並會定時傳送。
content-type
訊息內payload的mime型別。
content-length
payload的大小,以位元組為單位。信封和payload之間由一空行隔開。
會話初始協議 SIP (1)
在inter inter 端點 被稱作使用者 協調這些協議來彼此發現,並就他們所希望共享的特徵化會話達成一致。為了定位預期的會話參與者,同時也是為了其他的功能,sip允許網路主機 被稱為 proxy server 建立這樣的乙個底層機制,即使用者 可以傳送註冊 邀請會話和其他的一些請求。sip對於建...
會話初始協議 SIP (1)
會話初始協議 sip 在 internet internet 端點 被稱作使用者 協調這些協議來彼此發現,並就他們所希望共享的特徵化會話達成一致。為了定位預期的會話參與者,同時也是為了其他的功能,sip允許網路主機 被稱為 proxy server 建立這樣的乙個底層機制,即使用者 可以傳送註冊 邀...
SIP協議詳解
sip 協議概念 會話啟動協議sip session initiation protocol 是乙個在ip網路上進行多 通訊的應用層控制協議,它被用來創 建 修改 和終結乙個或多個參加者參加的會話程序。sip協議可用於發起會話,也可以用於邀請成員加入已經用其它方式建立的會話。sip協議透明地支援名字...