在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

GB28181/SIP/SDP 協議簡介(下)

jf_78858299 ? 來源:zsevenDe甲子光年 ? 作者:zsevenDe甲子光年 ? 2023-05-19 11:43 ? 次閱讀

3.SIP協議

SIP(Session initialization Protocol, 會話初始協議 )是由IETF(Internet Engineering Task Force,因特網工程任務組)制定的多媒體通信協議。

它是一個基于文本的應用層控制協議,用于創建、修改和釋放一個或多個參與者的會話。SIP 是一種源于互聯網的IP 語音會話控制協議,具有靈活、易于實現、便于擴展等特點。SIP(Session Initiation Protocol)是一種類似于http協議的純文本應用層協議。SIP可以用來控制會話的建立、取消、關閉等操作。主要可以實現以下功能:

  • 用戶定位: 檢查終端用戶的位置,用于通信;
  • 用戶有效性: 檢查用戶參與會話的意愿程度;
  • 用戶能力: 檢查媒體和媒體參數
  • 建立會話: “振鈴”,在呼叫和被叫方同時建立會話的參數;
  • 會話管理: 包括會話的傳輸和終止,修改會話參數以及請求服務

目前相關設備供應商和業務供應商聯合成立了一個關于SIP的論壇:http://www.sipforum.org,為SIP的發展提供一個自由討論、展現新思維的發展平臺

3.1 概念講述

3.1.1 SIP request

請求是SIP中一個最基本的概念之一,每一次關于SIP的操作都需要發送請求。

3.1.2 SIP response

回復和請求在SIP中一般都是成對出現,回復中的內容是對端關于請求的處理結果。

3.1.3 Transaction

SIP協議是一種事務型協議。transaction的概念建立在請求和回復之上,一個請求和相關的最終回復就組成了一個transaction。(不包括關于ACK的處理)由于在一次通話建立到結束的過程中,會有多個Transaction,所以需要對Transaction進行唯一性標記,在SIP中對Transaction進行唯一標記的是branch參數

3.1.4 TU

在具備Transaction的概念之后,就出現了Transaction user的概念,Transaction架構在Transaction 上,能夠對Transaction進行管理。

圖片

3.1.5 Client Transaction 和Server Transaction

有了Transaction的概念之后,針對請求和回復的不同就出現了client Transaction和server Transaction。CT指的是請求發起者所具有的Transaction的部分,ST是請求的接受者所具有的部分。

圖片

3.1.6 用戶代理 UA(User Agent)

UA指的是一個用戶實體。

3.1.7 UAC和UAS用戶代理服務器端(User Agent Server)

實際發起請求的用戶實體就是UAC,實際接收請求進行處理的用戶實體就是UAS。

3.1.8 INVITE

特殊請求。SIP協議中最關鍵的請求。用于發起會話。

3.1.9 session

session,在收到對應的INVITE請求的2xx回復之后,完成建立。在下一次INVITE請求的2xx回復發送或者收到后進行修改,唯一一種結束方式為發送或者收到bye請求。

3.2.0 dialog

dialog的概念和session的概念類似,不同的是dialog是針對信令交互的一種概念,而session是對實際媒體發送和接收流程的描述。dialog的建立時間也是在接收到信令的200 OK回復之后,結束也是在發送或者接收到bye請求之后。

3.2 SIP的結構

在SIP協議中主要包含以下幾種邏輯上的角色:UA、Proxy Server、 Register/Location Server、Redirect Server。

  • UA: 用戶代理(User Agent)類似于http協議中瀏覽器的角色,是用戶操作的終端界面,用戶代理需要符合SIP協議的要求,但是結合其他的協議根據不同的應用場景,會有不同的實現邏輯。比如,SIP協議結合H.323VoIP協議可以實現軟件電話功能。用戶代理分為UAC(UA Client)和UAS(UA Server)兩種邏輯實體,UAC發送SIP Request并接受Response,UAS接收SIP Request并返回Response,一個物理設備既可以是UAC同時也可以是UAS。
  • Proxy Server: 代理服務器的作用主要是轉發Request和Response給其他的Proxy Server或者UA,Proxy Server分為有狀態代理服務器(Stateful Proxy)和無狀態代理服務器(Stateless Proxy),前者會保留一次通信事務的狀態,通過一個有限狀態機來控制轉發操作,而后者不保存狀態,只是實現透明的轉發操作。
  • Registration/Location Server: 注冊和定位服務器用于登記和定位UA,在線的UA會定時的向Registration服務器發送SIP消息來表明UA當前的位置(如IP地址、端口號等),Registration服務器會將該信息存入數據庫(或者散列表)中,當其他UA向該UA發送request時就能獲得該UA的位置。
  • Redirect Server: 用于重定向,在邏輯上相當于一個特殊功能的UA。

3.3 SIP方法

在SIP的REQUEST中,核心的方法(method)定義了6種:INVITE、ACK、BYE、CANCEL、OPTIONS和REGISTER。

  • INVITE消息用于發起一個新的會話;
  • ACK消息用于完成會話的建立;
  • BYE消息用于結束一個會話;
  • CANCEL消息用于取消一個請求(一般是針對INVITE);
  • OPTIONS消息用于查詢服務器的能力;
  • REGISTER消息用于發送注冊請求消息。

SIP請求的類型,也稱作SIP方法。RFC3261 中定義了六種方法。另外八種方法有獨立的RFC擴展描述。如INFO、NOTIFY等等。

各方法含義可參考:SIP請求方法

也可移步SIP開發手冊:鏈接: https://pan.baidu.com/s/1GFCHYqumPrd5ORhyCfJAew?pwd=yxj1 提取碼: yxj1

3.4 SIP協議格式

SIP消息采用[ISO 10646]文本方式編碼,分為兩類:請求消息和響應消息。

請求消息:客戶端為了激活按特定操作而發給服務器的SIP消息。

響應消息:用于對請求消息進行響應,指示呼叫的成功或失敗狀態。

每條SIP消息由以下三部分組成:起始行( Start Line)/ 狀態行(Status-Line),SIP頭,消息體;請求消息和響應消息都包括SIP頭字段和SIP消息字段。

起始行( Start Line)/ 狀態行(Status-Line)

每個SIP消息由起始行開始。起始行傳達消息類型(在請求中是方法類型,在響應中是響應代碼)與協議版本。起始行可以是一請求行(請求)或狀態行(響應) 。

請求消息

請求消息整體格式如圖:

圖片

其中:起始行格式:命令名稱+目標URI+sip協議版本

請求消息包括以下幾種請求命令:

圖片

響應消息

響應消息的起始行為狀態行(Status-Line),狀態行由協議版本、狀態碼和狀態原因短語組成,各個部分之間用一個空格字符進行分隔。下面介紹其中的狀態碼。

SIP協議中共定義了6類狀態碼,其中狀態碼的第1位數字用于指示響應類型,后兩位數字表示具體響應。下面用“1xx”標識狀態碼為“100-199”之間的響應。

  • 1xx:臨時響應,表示請求消息正在被處理;
  • 2xx:成功響應,表示請求已被成功接收,完全理解并被接受;
  • 3xx:重定向響應,表示需采取進一步以完成該請求;
  • 4xx:客戶機錯誤,表示請求消息中包含語法錯誤信息或服務器無法完成客戶機請求;
  • 5xx:服務器錯誤,表示服務器無法完成合法請求;
  • 6xx:全局故障,表示任何服務器無法完成該請求;

響應消息整體格式如圖:

圖片

其中:起始行格式:sip協議版本+響應返回碼+描述性短句

響應消息是從100 - 699的返回碼,分別表示不同的意義。

消息返回碼可查看:SIP協議格式

SIP 頭

SIP頭域詳情可查閱:https://blog.csdn.net/qui910/article/details/122683453

用來傳遞消息屬性和修改消息意義。它們在語法和語義上與 HTTP 頭域相同(實際上有些頭就是借自 HTTP ),并且總是保持格式:<名字 >:<值>。

樣例:

圖片

下表是描述的是SIP頭格式中的各種Key值,可以大略分為4類:General通用頭域,Request請求頭域,Response響應頭域,Entity實體域。

General Request Response Entity
Accept Authorization Allow Content-encoding
Accept-encoding Contact Proxy-authenticate Content-length
Accept-language Hide Retry-after Content-type
Call-ID Max-forwards Server
Contact Organization Unsupported
Cseq Priority Warning
Date Proxy-authorization WWW-authenticate
Encryption Proxy-require
Expires Route
From Require
Record-route Response-key
Timestamp Subject
To User-agent
Via

具體詳細可參考:SIP協議-04 SIP頭域

消息體

用于描述被初始的會話(例如,在多媒體會話中包括音頻視頻編碼類型,采樣率等)。消息體能夠顯示在請求與響應中。

SIP 清晰區別了在 SIP 起始行和頭中傳遞的信令信息與在 SIP范圍之外的會話描述信息。可能的消息體類型就包括本文將要描述的SDP會話描述協議、還有基于xml的消息體。

4.SDP協議

SDP全稱是Session Description Protocol,翻譯過來就是 描述會話的協議 。主要用于兩個會話實體之間的媒體協商。

SDP描述由許多文本行組成,文本行的格式為<類型>=<值>,表示為key=value;

SIP負責建立和釋放會話,一般來說,會話中包含相關的媒體,比如視頻和音頻。媒體數據是由SDP描述的。SDP一般不單獨使用,它與SIP配合使用時會放到SIP協議的body中。會話建立時,需要媒體協商,雙方才能確定對方的媒體能力以及交換媒體的數據(這就是sdp的工作)。

那為什么要去發這個描述文本呢,主要是為了解決參與會話的各成員之間能力不對等的問題,如果參加本次通話的成員都支持高質量的通話,但是我們沒有去進行協議,為了兼容性,使用的都是普通質量的通話格式,這樣就很浪費資源了。所以SDP的作用還是很有必要的。

在SIP協議的包含的內容是SDP時,應該把Content-Type設置成application/sdp。SDP協議于RFC4566中發布。

樣例:

圖片

4.1 SDP簡介

SDP是會話描述協議的縮寫,是描述流媒體初始化參數的格式,由IETF作為RFC 4566頒布。流媒體是指在傳輸過程中看到或聽到的內容,SDP包通常包括以下信息:

會話信息

  • 會話名和目的。
  • 會話活動時間。

由于參與會話的資源是受限制的,因此包括以下附加信息是非常有用的。

  • 會話使用的帶寬信息。
  • 會話負責人的聯系信息。

媒體信息

  • 媒體類型,例如視頻和音頻。
  • 傳輸協議,例如RTP/UDP/IP和H.320。
  • 媒體格式,例如H.261視頻和MPEG視頻。
  • 多播地址和媒體傳輸端口(IP多播會話)。
  • 用于聯系地址的媒體和傳輸端口的遠端地址(IP單播會話)。

SDP描述由許多文本行組成,文本行的格式為<類型>=<值>,<類型>是一個字母,<值>是結構化的文本串,其格式依<類型>而定。“=”兩側不允許有空格,一個值中的多個參數用空格分隔。

4.2 SDP協議格式

SDP會話描述由一個會話級描述(session_level description)和多個媒體級描述(media_level description)組成。會話級(session_level)的作用域是整個會話。其位置是從’v=’行開始到第一個媒體描述為止。媒體級(media_level)描述是對單個的媒體流進行描述(例如傳送單個音頻或者視頻的vlc sdp文件只有短短的幾句話,從m=開始,這其實就是個媒體機描述),其位置是從’m=’行開始到下一個媒體描述為止。總之,除非媒體部分重載,會話級的值是各個媒體的缺省默認值(就是說媒體級描述其實也是一個會話級描述,只不過沒寫出來的會話級描述參數都用的缺省值)。

詳細可參考:SDP格式詳解

v= (協議版本)
o= (所有者/創建者和會話標識符)
s= (會話名稱)
i=* (會話信息)
u=* (URI 描述)
e=* (Email 地址)
p=* (電話號碼)
c=* (連接信息 ― 如果包含在所有媒體中,則不需要該字段)
b=* (帶寬信息)
一個或更多時間描述(如下所示):z=* (時間區域調整)
k=* (加密密鑰)
a=* (0個或多個會話屬性線路)
0個或多個媒體描述(如下所示)
時間描述

t= (會話活動時間)
r=* (0或多次重復次數)
媒體描述

m= (媒體名稱和傳輸地址)
i=* (媒體標題)
c=* (連接信息 — 如果包含在會話層則該字段可選)
b=* (帶寬信息)
k=* (加密密鑰)
a=* (0個或多個會話屬性線路)

4.3 SDP實例

# 請求視頻流
INVITE sip:00000000001310018021@192.168.40.66:7100 SIP/2.0
Via: SIP/2.0/UDP 192.168.40.55:7100;rport;branch=z9hG4bK2480933505
From:
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • SiP
    SiP
    +關注

    關注

    5

    文章

    505

    瀏覽量

    105357
  • SDP
    SDP
    +關注

    關注

    0

    文章

    35

    瀏覽量

    13173
  • IETF標準
    +關注

    關注

    0

    文章

    3

    瀏覽量

    1627
收藏 人收藏

    評論

    相關推薦

    3GPP R4版本為什么使用BICC協議而不是SIP-T?

    的網絡。SIP-T的標準化由IETF組織完成,已經有相應的RFC協議SIP-T就是將SIP和ISUP消息封裝到隧道的新的協議結構。
    發表于 06-13 22:47

    Python庫的sip簡介和安裝

    Py之sip:Python庫之sip簡介、安裝、使用方法之詳細攻略
    發表于 12-25 17:17

    嵌入式SIP協議棧怎么設計?

    會話初始協議(SIP協議)是一種用于IP網絡多媒體通信的應用層控制協議,可建立、修改、和終止多媒體會話。SIP具有良好的互操作性和開放性,支
    發表于 10-29 08:14

    如何實現WebRTC協議SIP協議互通

    一、WebRTC協議SIP協議互通的需求來源目前在國內需要WebRTC協議SIP協議互通的場
    發表于 09-04 16:04

    PD連接SDP,CDP,DCP的實測波形

    簡介Battery Charging Specification 1.2在網上有中文翻譯版本,冗長晦澀,而且沒有提供實測波形。本文提供PD連接SDP,CDP,DCP的實測波形。如果你對Battery Charging Specification 1.2不是很了解,也不需要
    發表于 09-14 09:27

    嵌入式板是如何去實現gb28181開發語言的

    DSP及海思嵌入式板實現gb28181開發語言:c++運行環境:x86-linux; arm-linux協議棧:OSIP設計模式中運用了面向對象編程語言的重要特性:封裝、繼承。優點:比c語言設計模式靈活,可擴展行好。如果對此項目感興趣,一起交流開發遇到的問題。
    發表于 12-15 07:12

    關于BM-OpenCV中GB28181接口,說的是接國標流是吧?本身支持轉國標流功能嗎?

    關于BM-OpenCV中GB28181接口,說的是接國標流是吧?本身支持轉國標流功能嗎?
    發表于 09-19 06:31

    SIP協議,什么是SIP協議

    SIP協議,什么是SIP協議 SIP協議是NGN中的重要
    發表于 04-07 16:12 ?2318次閱讀

    國家標準GB/T 28181‐2011

    GB國標28181補充
    發表于 12-16 22:37 ?0次下載

    GB+28181國家標準_mydownload

    GB+28181國家標準_mydownload
    發表于 12-15 22:26 ?2次下載

    GB/T28181轉rtmp/rtsp協議,UDP轉RTMP的解決方案

    國標GB/T28181由公安部科技信息化局提出,該標準規定了城市監控報警聯網系統中信息傳輸、交換、控制的互聯結構、
    的頭像 發表于 04-02 10:11 ?3666次閱讀

    基于改進SIP密鑰協議SIP安全認證模型

    針對現有SIP(會話初始協議)認證機制不能抵抗臨時秘密泄露攻擊和系統開銷大的問題,提出了一種基于改進SIP協議SIP安全認證模型。借鑒原有
    發表于 06-17 11:54 ?8次下載

    SIP協議的定義及基本流程

    `GB28181` 的核心之一。 `SIP` 協議是由`IETF`組織提出的`IP`電話信令協議,`IETFRFC2543`中對它的定義是一個**基于文本**的應用層控制
    的頭像 發表于 05-19 10:26 ?4791次閱讀
    <b class='flag-5'>SIP</b><b class='flag-5'>協議</b>的定義及基本流程

    CAN和CANFD協議簡介

    CAN和CANFD協議簡介
    的頭像 發表于 02-19 12:08 ?1136次閱讀
    CAN和CANFD<b class='flag-5'>協議</b><b class='flag-5'>簡介</b>(<b class='flag-5'>下</b>)

    統一視頻平臺融合通信可視指揮調度平臺smarteye與國標GB28181平臺的異同與關聯

    統一視頻平臺融合通信可視指揮調度平臺smarteye與國標GB28181平臺的異同與關聯
    的頭像 發表于 12-13 09:48 ?130次閱讀
    主站蜘蛛池模板: 天天操狠狠操| 亚洲视频一区在线观看| 亚洲主播自拍| 亚洲日本黄色| 午夜免费毛片| 色综合亚洲天天综合网站| 人人天天夜夜| 国产黄色录像视频| 在线观看视频播放| 69日本xxxxxxxxx96| 日一区二区三区| www.亚洲日本| 午夜肉伦伦影院| 色屋视频| 毛片毛片免费看| 2020天天操| 丁香婷婷啪啪| 九九久久久久午夜精选| 伊人久久大| 三级电影在线观看视频| 免费观看欧美一级片| 国产色爽女小说免费看 | 69日本xxxxxxxxx30| 男女一进一出抽搐免费视频| 诱人的老师bd高清日本在线观看 | 成人手机看片| 中文字幕123区| 伊人亚洲| 欧美一级日韩在线观看| 迅雷www天堂在线资源| 色的视频网站| 好爽毛片一区二区三区四区| 又粗又爽又色男女乱淫播放男女 | 欧美xxxx色视频在线观看免费| 黄色在线视频免费看| 午夜影视免费完整高清在线观看网站| 女同国产| 亚洲免费播放| 四虎影院最新网址| 国模沟沟一区二区三区| 天天射夜夜爽|