歡迎訪問新悅網絡設備有限公司
什么是 SIP 協(xié)議?
定義: SIP會話發(fā)起協(xié)議是基于 IP 的電話應用程序的信令協(xié)議。信令協(xié)議為通信提供控制層,例如語音呼叫的建立和釋放。
SIP架構
最簡單的,SIP 架構由 SIP 用戶代理和服務器組成。
用戶代理是通信的端點。用戶代理的示例有軟件電話、IP 電話或移動電話。需要 SIP 服務器來定位其他用戶代理。此外,SIP服務器還可以提供其他服務,例如計費和SIP轉發(fā)。
SIP 協(xié)議基礎知識
SIP 是一種應用層協(xié)議,與 HTTP 等基于文本的應用層協(xié)議非常相似。事實上,它也使用請求和響應消息事務和標頭字段。下面顯示了用戶代理 A 向用戶代理 B 發(fā)起的呼叫的請求和響應消息事務。
對于傳輸,SIP 可以在 TCP、UDP 或 SCTP 傳輸層協(xié)議上運行。以下是 SIP 請求消息示例。
INVITE sip:0097239287044@sip.cybercity.dk SIP/2.0
Via: SIP/2.0/UDP 192.168.1.2:5060;branch=z9hG4bKnp85213694-430aa1de192.168.1.2;rport
From: "arik" <sip:voi18062@sip.****.dk>;tag=51449dc
To: <sip:0097239287044@sip.****.dk>
Call-ID: 85216695-42dcdb1d@192.168.1.2
CSeq: 1 INVITE
User-Agent: Nero SIPPS IP Phone Version 2.0.51.16
Expires: 120
Accept: application/sdp
Content-Type: application/sdp
Content-Length: 270
Contact: <sip:voi18062@192.168.1.2>
Max-Forwards: 70
Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY, INFO
為了進行比較,這里有一個 HTTP 請求消息
GET /download.html HTTP/1.1
Host: www.ethereal.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://www.ethereal.com/development.html
SIP 請求方法
SIP 借用了 HTTP 的 Method 字段來同樣確定請求的類型。SIP 有 14 種方法請求類型。最常用的方法是語音呼叫期間使用的 INVITE、ACK、BYE 和 REGISTER。SIP 請求消息的第一行包括方法類型和請求 URI(請求的當前目的地)。
SIP請求方法表
SIP 請求標頭
標頭字段用于配置 SIP 請求消息。以下是請求消息的一些常見標頭。還有更多可用的標頭。
常見的SIP請求頭
SIP 尋址和 SIP URI
To、From 和 Contact 標頭字段中使用的 SIP URI 表示用戶的 SIP 號碼。它與電子郵件地址非常相似。它由三個部分組成<protocol:user@gateway>。該協(xié)議可以是 sip 或 sips,其中后者使用 TLS 進行保護。該用戶是SIP網關或服務器上的唯一用戶。
SIP 響應狀態(tài)代碼
再次與 HTTP 類似,SIP 響應提供狀態(tài)代碼來指示 SIP 請求的結果。下面列出了常見的 SIP 響應狀態(tài)碼。
常見 SIP 響應狀態(tài)代碼
SIP 消息正文內容和 SDP
SIP 與內容無關。盡管它以語音呼叫信令而聞名,但它也用于建立消息傳遞、視頻會議、短信等會話。SIP 消息正文確定正在建立的媒體會話的類型。消息正文通常包含在 SIP 邀請請求中,作為初始會話建立的一部分。
會話描述協(xié)議 (SDP) 是一種用于 VoIP 的特殊內容類型。內容類型指定為 application/sdp。在以下 SIP Invite 消息中,SDP 指定 VoIP 呼叫可用的語音編解碼器。
帶有 SDP 消息正文的 SIP 邀請
INVITE sip:0097239287044@sip.cybercity.dk SIP/2.0
Via: SIP/2.0/UDP 192.168.1.2:5060;branch=z9hG4bKnp85213694-430aa1de192.168.1.2;rport
From: "arik" <sip:voi18062@sip.cybercity.dk>;tag=51449dc
To: <sip:0097239287044@sip.cybercity.dk>
Call-ID: 85216695-42dcdb1d@192.168.1.2
CSeq: 1 INVITE
User-Agent: Nero SIPPS IP Phone Version 2.0.51.16
Expires: 120
Accept: application/sdp
Content-Type: application/sdp
Content-Length: 270
Contact: <sip:voi18062@192.168.1.2>
Max-Forwards: 70
Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY, INFO
v=0
o=SIPPS 85214742 85214739 IN IP4 192.168.1.2
s=SIP call
c=IN IP4 192.168.1.2
t=0 0
m=audio 30000 RTP/AVP 0 8 97 2 3
a=rtpmap:0 pcmu/8000
a=rtpmap:8 pcma/8000
a=rtpmap:97 iLBC/8000
a=rtpmap:2 G726-32/8000
a=rtpmap:3 GSM/8000
a=fmtp:97 mode=20
a=sendrecv
SIP VoIP 會話呼叫流程
現(xiàn)在我們已經掌握了基礎知識,讓我們將所有內容放在一起以建立 SIP 呼叫流程以建立 VoIP 呼叫。建立呼叫有四個基本部分:注冊、呼叫建立、VoIP 呼叫和呼叫終止。
A:注冊
當用戶代理(例如軟件電話)啟動時,它需要向 SIP 服務器注冊才能被其他用戶代理找到。SIP 注冊請求消息用于此目的。它通過“To”和“From”SIP URI 提供位置綁定。或者,可以通過“聯(lián)系人”字段提供附加綁定。
SIP注冊消息
REGISTER sip:sip.cybercity.dk SIP/2.0
Via: SIP/2.0/UDP 192.168.1.2;branch=z9hG4bKnp151248737-46ea715e192.168.1.2;rport
From: <sip:voi18063@sip.cybercity.dk>;tag=903df0a
To: <sip:voi18063@sip.cybercity.dk>
Call-ID: 578222729-4665d775@578222732-4665d772
Contact: <sip:voi18063@192.168.1.2:5060;line=9c7d2dbd8822013c>;expires=1200;q=0.500
Expires: 1200
CSeq: 68 REGISTER
Content-Length: 0
Max-Forwards: 70
User-Agent: Nero SIPPS IP Phone Version 2.0.51.16
B:呼叫建立
呼叫建立就是奇跡發(fā)生的地方。這里有幾個步驟,所以讓我們按順序一一介紹。
- SIP 邀請請求- SIP 邀請開始呼叫建立嘗試。此消息包含被叫方(To 字段中的 SIP URI)。該信息從呼叫者發(fā)送到 SIP 服務器,在該服務器中查找被呼叫者。在較大的網絡中,如果被叫方不在本地,SIP 服務器可能需要咨詢其他 SIP 服務器。一旦找到被叫方,就會轉發(fā)邀請。對于 VoIP,邀請還包括帶有 VoIP 呼叫參數(shù)的 SDP 消息正文。
- SIP 響應 100(嘗試) - 此消息從 SIP 服務器發(fā)送到被叫方以確認邀請請求。
- SIP 響應 180(振鈴) - 此消息表明被叫方收到了邀請,并且他們的用戶代理正在提醒用戶。
- SIP 響應 200(確定) - 用戶接聽時,會發(fā)回 200 響應以確認呼叫。此外,被叫方還發(fā)送帶有其 VoIP 呼叫參數(shù)的 SDP 消息正文。由于此消息和來自呼叫者的初始邀請,已發(fā)生 VoIP 呼叫參數(shù)的交換和協(xié)商。
- SIP Ack 請求- 最后,呼叫者通過返回給被叫者的 Ack 請求進行確認。然后,被叫方向主叫方發(fā)起 VoIP 呼叫。
C:網絡電話呼叫
VoIP 呼叫本身使用 RTP實時傳輸協(xié)議在用戶代理之間傳輸。該協(xié)議用于通過 IP 網絡傳送音頻和視頻數(shù)據(jù)。附加協(xié)議 RTCP(RTP 控制協(xié)議)用于為 RTP 傳輸提供統(tǒng)計和控制。我們將在即將發(fā)布的博客中介紹 RTP 和 RTCP。
- 05-19
- 05-19
- 05-19
- 05-12
- 05-12
- 05-12
- 05-06
- 05-06
最新內容
- 04-14
- 02-17
- 11-11
- 10-21
- 09-23
- 08-02
- 07-24
- 07-18
知識庫