SIP 消息

2018-12-28 18:08 更新

SIP消息有兩種類型 - 請求響應(yīng)

  • 請求的開始行包含定義請求的方法,以及定義請求發(fā)送位置的Request-URI。

  • 類似地,響應(yīng)的開始行包含響應(yīng)代碼。

請求方法

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

這些稱為方法的SIP請求使得SIP消息可行。

  • 方法可以被認(rèn)為是SIP請求,因?yàn)樗鼈冋埱笥闪硪粋€(gè)用戶代理或服務(wù)器采取的特定動(dòng)作。

  • 方法分為兩種類型 -

    • 核心方法

    • 擴(kuò)展方法

核心方法

下面討論六種核心方法。

INVITE

INVITE用于發(fā)起與用戶代理的會(huì)話。換句話說,INVITE方法用于在用戶代理之間建立媒體會(huì)話。

  • INVITE可以在消息正文中包含呼叫者的媒體信息。

  • 如果INVITE已經(jīng)接收到成功響應(yīng)(2xx)或者已經(jīng)發(fā)送了ACK,則認(rèn)為會(huì)話被建立。

  • Invite
  • 成功的INVITE請求在兩個(gè)用戶代理之間建立對話,其繼續(xù),直到發(fā)送BYE以終止會(huì)話。

  • 在已建立的對話中發(fā)送的INVITE被稱為 re-INVITE

  • Re-INVITE用于更改會(huì)話特征或刷新對話框的狀態(tài)。

INVITE示例

以下代碼顯示如何使用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@TTP.com>;tag = 1234567 
   To: Bob<sips:Bob@TMC.com>
   Call-ID: 12345601@192.168.2.1  
   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ì)話的方法。 這是一個(gè)SIP請求,可以由主叫方或被叫方發(fā)送以結(jié)束會(huì)話。

  • 它不能由代理服務(wù)器發(fā)送。

  • BYE請求通常繞過代理服務(wù)器端到端路由。

  • BYE不能發(fā)送到掛起的INVITE或未建立的會(huì)話。

REGISTER

REGISTER請求執(zhí)行用戶代理的注冊。此請求由用戶代理發(fā)送到注冊服務(wù)器。

  • REGISTER請求可以被轉(zhuǎn)發(fā)或代理,直到它到達(dá)指定域的權(quán)威注冊器。

  • 它在正在注冊的用戶的 To 頭中攜帶AOR(記錄地址)。

  • REGISTER請求包含時(shí)間段(3600秒)。

  • 一個(gè)用戶代理可以代表另一個(gè)用戶代理發(fā)送REGISTER請求。 這稱為第三方注冊。 這里, From 標(biāo)簽包含代表 To 標(biāo)頭中標(biāo)識的一方提交注冊的一方的URI。

CANCEL

CANCEL用于終止未建立的會(huì)話。用戶代理使用此請求取消之前發(fā)起的待處理呼叫嘗試。

  • 它可以由用戶代理或代理服務(wù)器發(fā)送。

  • CANCEL是逐跳請求,即,它通過用戶代理之間的元素并接收由下一個(gè)有狀態(tài)元素產(chǎn)生的響應(yīng)。

Hop By Hop

ACK

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

SDP Ack
  • ACK可以不被用于修改已經(jīng)在初始INVITE中發(fā)送的媒體描述。

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

  • 對于2xx響應(yīng),ACK是端到端的,但是對于所有其他最終響應(yīng),當(dāng)涉及狀態(tài)代理時(shí),其工作在逐跳基礎(chǔ)上。

OPTIONS

OPTIONS方法用于向用戶代理或代理服務(wù)器查詢其功能,并發(fā)現(xiàn)其當(dāng)前可用性。 對請求的響應(yīng)列出了用戶代理或服務(wù)器的功能。 代理永遠(yuǎn)不會(huì)生成OPTIONS請求。

擴(kuò)展方法

Subscribe

用戶代理使用SUBSCRIBE來建立訂閱,以獲得關(guān)于特定事件的通知。

  • 它包含一個(gè) Expires 頭字段,用于指示訂閱的持續(xù)時(shí)間。

  • 在該時(shí)間段過去之后,訂閱將自動(dòng)終止。

  • 訂閱在用戶代理之間建立對話。

  • 您可以在到期時(shí)間之前在對話框中發(fā)送另一個(gè)SUBSCRIBE再次重新訂閱。

  • 將收到來自用戶的訂閱的200 OK。

  • 用戶可以通過發(fā)送另一個(gè)SUBSCRIBE方法取消訂閱,Expires值為0(零)。

Example Subscribe

NOTIFY

NOTIFY用于由用戶代理獲取特定事件的發(fā)生。通常,當(dāng)訂閱者和通知者之間存在訂閱時(shí),NOTIFY將在對話框中觸發(fā)。

  • 每個(gè)NOTIFY將得到200 OK響應(yīng),如果它被通知器接收。

  • NOTIFY包含指示事件的 Event 頭字段和指示訂閱當(dāng)前狀態(tài)的 subscriptionstate 頭字段。

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

PUBLISH

PUBLISH由用戶代理用于向服務(wù)器發(fā)送事件狀態(tài)信息。

Publish
  • 當(dāng)有多個(gè)事件信息來源時(shí),PUBLISH是最有用的。

  • PUBLISH請求類似于NOTIFY,除了它不是在對話框中發(fā)送。

  • PUBLISH請求必須包含 Expires 頭字段和 Min-Expires 頭字段。

REFER

REFER由用戶代理使用來引用另一個(gè)用戶代理來訪問對話框的URI。

  • REFER必須包含 Refer-To 標(biāo)題。 這是REFER的必需標(biāo)題。

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

  • A 202已接受將觸發(fā)REFER請求,其指示其他用戶代理已接受引用。

INFO

INFO由用戶代理用來向與其建立媒體會(huì)話的另一用戶代理發(fā)送呼叫信令信息。

  • 這是一個(gè)端到端的請求。

  • 代理將始終轉(zhuǎn)發(fā)INFO請求。

UPDATE

如果會(huì)話未建立,UPDATE用于修改會(huì)話的狀態(tài)。 用戶可以使用UPDATE更改編解碼器。

Update

如果建立了會(huì)話,則使用重新邀請來改變/更新會(huì)話。

PRACK

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

  • 通常,當(dāng)客戶端接收到包含 RSeq 可靠序列號和支持的:100rel 頭部的臨時(shí)響應(yīng)時(shí),PRACK就會(huì)生成。

  • PRACK在 rack 標(biāo)題中包含(RSeq&amp; plus; CSeq)值。

  • PRACK方法適用于所有臨時(shí)響應(yīng),除了100 Trying響應(yīng),其從未可靠地傳送。

  • PRACK可以包含消息體; 它可以用于提供/應(yīng)答交換。

MESSAGE

它用于使用SIP發(fā)送即時(shí)消息。IM通常包括從事文本會(huì)話的參與者實(shí)時(shí)交換的短消息。

Message
  • MESSAGE可以在對話框內(nèi)或?qū)υ捒蛲獍l(fā)送。

  • MESSAGE的內(nèi)容作為 MIME 附件在郵件正文中傳送。

  • 通常接收到 200 OK 響應(yīng)以指示消息已在其目的地傳送。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號