SIP報文簡介

來源:互聯網
上載者:User
SIP報文簡介2007-07-12 13:15

完整文章請瀏覽:http://www.myjlu.com/www/list.asp?id=1311


SIP訊息

SIP訊息是SIP客戶終端和伺服器之間通訊的的基本資料單元。SIP訊息基於文本,採用UTF-8編碼(RFC 2279)中的ISO 10646字元集。SIP協議借鑒了HTTP協議(RFC 2068)的設計思想,有很多訊息格式與之相同。SIP協議支援UDP傳輸協議

SIP訊息訊息分兩類:請求訊息 和 響應訊息

請求訊息(Request):用戶端為了啟用特定操作而發給伺服器的SIP訊息,包括INVITE,ACK,OPTIONS,BYE,CANCEL和REGISTER訊息。UAC到UAS。

響應訊息(Response):伺服器向用戶端反饋對應請求的處理結果的SIP訊息,包括1xx,2xx,3xx,4xx,5xx,6xx響應訊息,UAS到UAC

SIP訊息格式與結構:

SIP訊息由三個部分組成:標識訊息類型和目的地址的起始行,攜帶訊息參數的頭部以及承載任意附加資訊的訊息體。訊息體中傳送的最重要的資訊就是由SDP(Session Description Protocol)協議描述的媒體控制資訊,供終端協商並建立媒體通道。

SIP訊息格式:由一個起始行(Start-line)、一個或多個欄位(header fields)組成的訊息頭、一個標誌訊息頭結束的空行(CRLF)以及作為可選項的訊息體(Message body)組成,其中描述的頭稱為實體頭(Entityheader)。

generic-message = start-line

*message-header

CRLF

[ message-body ]

1.起始行

起始行分請求行(Request-Line)和狀態行(Status-Line)兩種。

1.1.請求行(Request-Line:請求訊息的起始行,由請求訊息類型,請求目的發送地址Request-URI,SIP協議的版本號碼,之間用空格隔開。

請求行的6種Request Method:

INVITE:用於發起呼叫請求。INVITE訊息包括訊息頭和資料區兩部分。INVITE 訊息頭包含主、被呼叫的地址,呼叫主題和呼叫優先順序等資訊。資料區則是關於會話媒體的資訊,可由會話描述協議SDP 來實現。

BYE:當一個使用者決定中止會話時,可以使用BYE 來結束會話。

OPTIONS:用於詢問被叫端的能力資訊,但OPTIONS 本身並不能發起呼叫。

ACK對已收到的訊息進行確認應答。

REGISTER:用於使用者向SIP伺服器傳送位置資訊或地址資訊。

CANCEL:取消當前的請求,但它並不能中止已經建立的串連。

1.2.狀態行(Status-Line:響應訊息的起始行,SIP應答訊息的Status-Line由SIP-Version開始,接著是一個數字編碼的狀態代碼Status-Code,最後是一個與狀態代碼相關的描述性短語Reason-Phrase,然後由一個CRLF行結束符結束Status-Line。

SIP應答訊息的六類應答狀態編碼

1xx:臨時訊息:表示表示請求訊息已經收到,後面將繼續處理該請求。

2xx:成功訊息:表示請求已經被成功的理解、接受或執行。

3xx:重新導向訊息:表示為了完成請求還需採取更進一步的動作。

4xx:客戶機錯誤:表示該請求含有語法錯誤或在這個伺服器上不能被滿足。

5xx:伺服器錯誤:表示該伺服器不能處理一個明顯有效請求。

6xx:全域性故障:表示該請求在任何伺服器上都不能被實現。

2.訊息頭:

訊息頭的作用是進一步提供有關訊息的其他資訊,使Proxy 伺服器或客戶Proxy 伺服器更好地對訊息進行處理。訊息頭分四類:通用頭(general-header )、要求標頭(request-header )、回應標頭( response-header )和實體頭( entityheader)

四大類

general-header為描述訊息基本屬性的通用頭域,可用於請求訊息和應答訊息;訊息頭有:Call-ID,From,To,Via,Contact,CSeq,Encryption,Expires,Record-Route,Timestamp,Date,Accept,Accept-Encoding,Accept-Language

request-header為要求標頭域,只可用於請求訊息,它被用來傳遞有關應答的附加資訊,對請求進行補充說明;Subject,User-Agent,Organization,Contact,Authorization,Proxy-Authorization,Proxy-Require,Response-Key,Require,Priority,Hide,Route,Max-Forwards。

response-header為應答頭域,只可用於應答訊息,它被用來傳遞有關應答的附加資訊,對應答進行補充說明。Proxy-Authenticate,WWW-Authenticate,Retry-After,Server,Warning,Allow,Unsupported。

entity-header是訊息體頭域,用於描述訊息體內容的長度、格式和編碼類別型等屬性,可用於請求訊息或應答訊息。Content-Encoding,Content-Length,Content-Type

訊息頭格式:每個訊息頭都是一個“句子”,以CRLF行結束符表示一個頭域的結束。它們都由欄位名(field-name)和域值(field-value)兩部分組成,中間以“:”相隔。

常見訊息頭說明:

TO格式:TO:顯示名<接收者URI>;tag=n;顯示名和tag可選。接收者URI是SIP網路種唯一標識接收終端的標識符。例:TO:DENNY<SIP:caller@WORK.COM>;TAG=11111     或 TO:sip:caller@work.com

FROM: 訊息頭FROM給出標識會話發起者的URI。比如:FROM:sip:caller@work.com;tag=hyh8。tag是必需的。

CALL-ID: 用於全域唯一標識正在建立的會話的標識符。 隨機數加UAC標識資訊。

CSeq: 用於標識同一會話中不同事務的序號,通常由一個用作序號的整型數和訊息類型組成。整個會話操作過程由不同的事務組成,每一事務所涉及的訊息的CSeq序號必須相同。

Via:為響應訊息提供傳輸路徑,當請求訊息經過每一跳節點時,每一跳節點都把自身的IP地址資訊放入頂層Via中。響應訊息則沿著請求訊息記錄下的傳輸路徑反向傳輸,首先移走指明自身IP地址資訊的頂層訊息頭

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.