SIP協議學習1

2021-12-30 03:35:48 字數 2493 閱讀 6583

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協議透明地支援名字...