鍍金池/ 教程/ 物聯(lián)網(wǎng)/ SIP消息
SIP網(wǎng)絡(luò)元素
只回應(yīng)頭字段
只請(qǐng)求頭字段
SIP響應(yīng)代碼
SIP頭
SIP基本呼叫流程
SIP消息
請(qǐng)求和響應(yīng)頭字段
SIP教程

SIP消息

SIP消息有兩種類型:請(qǐng)求和響應(yīng)。

  • 一個(gè)請(qǐng)求的打開行包含定義,其中該請(qǐng)求是要被發(fā)送的方法,它定義請(qǐng)求,以及請(qǐng)求URI。

  • 同樣響應(yīng)的打開行包含一個(gè)響應(yīng)代碼。

請(qǐng)求方法

SIP請(qǐng)求是用于建立通信的代碼。為了補(bǔ)充它們,SIP響應(yīng)其通常指示請(qǐng)求是成功還是失敗。

有一些命令稱作方法,使SIP消息可行。

  • METHODS 可被視為SIP請(qǐng)求,因?yàn)樗鼈円髮⒁扇〉牧硪粋€(gè)用戶代理或服務(wù)器的特定動(dòng)作。

  • METHODS 被區(qū)分為兩種類型:

    • 核心方法
    • 擴(kuò)展方法

核心方法

有六個(gè)核心的方法如以下所討論。

INVITE

INVITE被用于發(fā)起會(huì)話使用用戶代理。換言之,一個(gè)INVITE方法用于建立用戶代理之間的媒體會(huì)話。

Invite
  • INVITE可以包含在郵件正文中主叫者的媒體信息。

  • 會(huì)話被認(rèn)為是如果INVITE已經(jīng)獲得了成功響應(yīng)(2xx)上建立或ACK已發(fā)送。

  • 一個(gè)成功的INVITE請(qǐng)求建立這一直持續(xù)到BYE發(fā)送到終止會(huì)話的兩個(gè)用戶代理之間的對(duì)話。

  • 一個(gè)發(fā)送的INVITE內(nèi)已建立的對(duì)話被稱為一個(gè)re-INVITE請(qǐng)求。

  • re-INVITE請(qǐng)求用于改變?cè)跁?huì)話特性或刷新一個(gè)對(duì)話的狀態(tài)。

INVITE實(shí)例

下面的代碼演示了INVITE如何被使用。

INVITE sips:Bob@TMC.com SIP/2.0
Via: SIP/2.0/TLS client.ANC.com:5061; branch = z9hG4bK74bf9
Max-Forwards: 70
From: Alice <sips:Alice@atlanta.com> ;tag = 1234567
To: Bob <sips:Bob@TMC.com>
Call-ID: 12345601@ANC.com
CSeq: 1 INVITE
Contact: <sips:Alice@client.ANC.com>
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
Supported: replaces
Content-Type: application/sdp
Content-Length: ...
v = 0
o = Alice 2890844526 2890844526 IN IP4 client.ANC.com
s = Session SDP
c = IN IP4 client.ANC.com
t = 3034423619 0
m = audio 49170 RTP/AVP 0
a = rtpmap:0 PCMU/8000

BYE

BYE用于終止已建立的會(huì)話的方法。這是可以通過主叫方或被叫方結(jié)束會(huì)話被發(fā)送SIP請(qǐng)求。

  • 它不能由代理服務(wù)器發(fā)送。
  • BYE請(qǐng)求通常路線端到端,繞過代理服務(wù)器。
  • BYE不能被發(fā)送到一個(gè)等待INVITE或未確定會(huì)話。

REGISTER

REGISTER請(qǐng)求執(zhí)行的用戶代理的注冊(cè)。這個(gè)請(qǐng)求是由用戶代理發(fā)送到注冊(cè)服務(wù)器。

  • REGISTER請(qǐng)求可以被轉(zhuǎn)發(fā)或代理,直到它到達(dá)指定域的權(quán)威注冊(cè)機(jī)構(gòu)。

  • 它所攜帶的AOR(記錄地址)在為正在注冊(cè)的用戶的頭。

  • REGISTER請(qǐng)求中包含的時(shí)間段(3600秒)。

  • 一個(gè)用戶代理可以代表其他用戶發(fā)送代理注冊(cè)請(qǐng)求。這就是所謂的第三方注冊(cè)。在這里,從標(biāo)簽中包含方提交的注冊(cè)代表確定To頭部分的URI。

CANCEL

CANCEL用于終止未建立會(huì)話。用戶代理使用此請(qǐng)求取消更早啟動(dòng)暫停呼叫的嘗試。

  • 它可以通過一個(gè)用戶代理或代理服務(wù)器來發(fā)送。

  • CANCEL是一個(gè)逐跳轉(zhuǎn)發(fā)請(qǐng)求,也就是說,它通過用戶代理之間的元件和接收由下一狀態(tài)元素所產(chǎn)生的反應(yīng)。

Hop By Hop

ACK

ACK用于確認(rèn)最后的響應(yīng)的INVITE方法。ACK總是在INVITE的方向。 ACK可能包含的SDP主體(媒體特性),如果它不在INVITE可用。

SDP AckSDP Acknowledgement
  • ACK可能不被用于修改一個(gè)已經(jīng)發(fā)送的初始INVITE的媒體描述。

  • 有狀態(tài)代理接收ACK必須確定是否將ACK應(yīng)下游轉(zhuǎn)發(fā)到另一個(gè)代理或用戶代理。

  • 對(duì)于2xx應(yīng)答,ACK是端到端的,但對(duì)于所有其他最終響應(yīng),它可以在逐跳轉(zhuǎn)發(fā)基礎(chǔ)上參與狀態(tài)代理時(shí)。

OPTION

OPTIONS方法用于查詢的用戶代理或圍繞其功能的代理服務(wù)器,并發(fā)現(xiàn)其當(dāng)前的可用性。于請(qǐng)求的響應(yīng)列出了用戶代理或服務(wù)器的功能。代理從未產(chǎn)生OPTIONS請(qǐng)求。

擴(kuò)展方法

訂閱

訂閱所使用的用戶代理商建立了訂閱獲取通知的有關(guān)特定事件的目的。

  • 它有一個(gè)時(shí)間周期,在Expires頭字段,指示存在一個(gè)訂閱的所需的持續(xù)時(shí)間。

  • 在指定的時(shí)間段過后,訂閱將自動(dòng)終止。

  • 成功訂閱建立用戶代理之間的對(duì)話。

  • 訂閱可以通過發(fā)送到期時(shí)間之前對(duì)話框中的另一個(gè)訂閱刷新。

  • 服務(wù)器接受訂閱返回一個(gè)200 OK。

  • 用戶可以通過發(fā)送另一個(gè)使用訂閱方法退訂過期值為0(零)。

Example Subscribe

NOTIFY

NOTIFY是用來由用戶代理傳達(dá)的特定事件的發(fā)生。NOTIFY總是在對(duì)話中發(fā)送當(dāng)用戶與通知之間存在訂閱。

  • 200 OK響應(yīng)被接收為每個(gè)NOTIFY以指示它已收到。

  • NOTIFY請(qǐng)求包含指示,指示訂閱的當(dāng)前狀態(tài)的包和訂閱的狀態(tài)報(bào)頭字段的Event報(bào)頭字段。

  • NOTIFY總是在訂閱開始和訂閱終止發(fā)送。

PUBLISH

PUBLISH用于由用戶代理發(fā)送的事件的狀態(tài)信息,以已知作為一個(gè)事件狀態(tài)合成器的服務(wù)器。

Publish
  • Publish當(dāng)有事件信息的多種來源主要是有用的。

  • PUBLISH請(qǐng)求類似于一個(gè)NOTIFY,不同之處在于它不是在對(duì)話框發(fā)送。

  • 一個(gè)PUBLISH請(qǐng)求必須包含一個(gè)Expires頭字段和Min-Expires頭字段域。

REFER

REFER用于由一個(gè)用戶代理來指另一個(gè)用戶代理訪問URI的對(duì)話框。

  • REFER必須包含一個(gè)Refer-To頭。這是參考一個(gè)強(qiáng)制性的頭。

  • REFER可以在內(nèi)部或在對(duì)話外發(fā)送。

  • 202 Accepted 將引發(fā)REFER請(qǐng)求這表明其他用戶代理已經(jīng)接受了參考。

INFO

INFO所使用的用戶代理發(fā)送呼叫信令信息,與它建立了一個(gè)媒體會(huì)話其他用戶代理。這是一個(gè)終端到終端的請(qǐng)求,并且從不生成由代理。代理會(huì)一直轉(zhuǎn)發(fā)信息請(qǐng)求。

UPDATE

UPDATE用于修改會(huì)話的狀態(tài)不改變對(duì)話的狀態(tài)。更新用于如果會(huì)話沒有建立,并且用戶想要改變編解碼器。

Update

如果會(huì)話建立后,再邀請(qǐng)來改變/更新會(huì)話。

PRACK

PRACK用于確認(rèn)收到臨時(shí)響應(yīng)(1XX)可靠傳輸。

  • PRACK通過一個(gè)用戶代理客戶端時(shí)產(chǎn)生的臨時(shí)的響應(yīng)已經(jīng)接收到含有RSEQ可靠序列號(hào)和一個(gè) supported:100rel 頭。

  • PRACK包含架頭(RSEQ+ Cseq)值。

  • PRACK可能包含郵件正文;它可以被用于提供/應(yīng)答交換。

MESSAGE

它是用來發(fā)送即時(shí)消息或使用SIP IM。一個(gè)IM通常由短信息交換實(shí)時(shí)由從事文本會(huì)話參與者。

Message
  • 消息可以在對(duì)話中或在對(duì)話外發(fā)送。

  • 消息的內(nèi)容在郵件正文中攜帶的MIME附件。

  • 200 OK響應(yīng)被正常接收,以指示該消息已被傳送在它的目的地。


上一篇:SIP頭下一篇:SIP基本呼叫流程