0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SIP協(xié)議的定義及基本流程

jf_78858299 ? 來源:CallMe阿堃 ? 作者:CallMe阿堃 ? 2023-05-19 10:26 ? 次閱讀

定義

SIP 協(xié)議,即會(huì)話發(fā)起協(xié)議(Session Initiation Protocol), 是一個(gè)應(yīng)用層的 點(diǎn)對(duì)點(diǎn)協(xié)議 ,用于初始、管理和終止網(wǎng)絡(luò)中的語音和視頻會(huì)話, 屬于 GB28181 的核心之一。

SIP 協(xié)議是由IETF組織提出的IP電話信令協(xié)議,IETFRFC2543中對(duì)它的定義是一個(gè)基于文本的應(yīng)用層控制協(xié)議, 獨(dú)立于底層傳輸協(xié)議:TCP/UDP/SCTP, 用于建立、修改和終止 IP 網(wǎng)上的雙方或多方多媒體會(huì)話。借鑒了 HTTPSMTP 等協(xié)議,支持代理、重定向及登記定位用戶等功能, 支持用戶移動(dòng)。

SIP協(xié)議通過與 RTP/RTCP、SDPRTSP 等協(xié)議及 DNS 配合, 從而支持語音、視頻、數(shù)據(jù)、E-mail、 狀態(tài)、IM、聊天、游戲等應(yīng)用場(chǎng)景。

它可在 TCPUDP 之上傳送,由于 SIP 本身具有握手機(jī)制,一般情況下首選 UDP傳輸協(xié)議。

從打電話的角度去理解SIP協(xié)議,推薦閱讀:深入淺出SIP協(xié)議

本篇文章針對(duì)sip協(xié)議的應(yīng)用場(chǎng)景是建立在GB28181協(xié)議的基礎(chǔ)上來進(jìn)行理解和解讀的,如果理解有誤,還請(qǐng)各位網(wǎng)友不吝指教!在評(píng)論區(qū)留下您的寶貴建議,謝謝!

基本流程

sip協(xié)議的網(wǎng)絡(luò)元素:

  • 用戶代理
  • 代理服務(wù)器
  • 注冊(cè)服務(wù)器
  • 重定向服務(wù)器
  • 位置服務(wù)器

圖片

上圖簡(jiǎn)單的勾勒出了sip協(xié)議網(wǎng)絡(luò)元素之間的關(guān)系,同時(shí)通過上圖也可以了解到sip會(huì)話的基本呼叫流程:

  • 用戶代理B向注冊(cè)服務(wù)器發(fā)送Register請(qǐng)求,攜帶contact地址;
  • 隨后注冊(cè)服務(wù)器將B的地址,記錄到位置服務(wù)器;
  • 用戶代理A向代理服務(wù)器發(fā)送invite請(qǐng)求啟動(dòng)與用戶代理B的會(huì)話;
  • 代理服務(wù)器會(huì)先向A發(fā)送響應(yīng)100 Trying信息以避免A重傳invite消息;
  • 然后代理服務(wù)器向位置服務(wù)器搜索B的地址,獲取到地址后會(huì)進(jìn)一步轉(zhuǎn)發(fā)Ainvite請(qǐng)求;
  • 通過上一步代理服務(wù)器將A的請(qǐng)求轉(zhuǎn)發(fā)到B,B向代理服務(wù)器響應(yīng)180 Ringing信息;
  • 代理服務(wù)器將B的響應(yīng)信息轉(zhuǎn)發(fā)給A,B向代理服務(wù)器響應(yīng)200 OK信息;
  • 緊接著AB發(fā)送ACK請(qǐng)求,一個(gè)會(huì)話至此建立完成。

關(guān)于GB28181的"客戶端對(duì)實(shí)時(shí)音視頻點(diǎn)播"的流程,本質(zhì)除sip服務(wù)器以外的都是sip客戶端, 也可以理解為客戶端對(duì)媒體發(fā)送端的基本呼叫流程,如下圖:

圖片

GB28181標(biāo)準(zhǔn)中 中心信令服務(wù)器 (center control server)就是一個(gè)基于sip協(xié)議設(shè)計(jì)的負(fù)責(zé)核心sip信令應(yīng)用處理的SIP服務(wù)器, 信令安全路由網(wǎng)關(guān) (secure signal routing gateway)是一種具有安全功能的sip服務(wù)器。

"組成中心信令控制的邏輯實(shí)體包括代理服務(wù)器、注冊(cè)服務(wù)器、重定向服務(wù)器、背靠背用戶代理等的一種或者幾種,是負(fù)責(zé)核心SIP信令應(yīng)用處理的SIP服務(wù)器" --引自《GB/T 28181-2016 公共安全視頻監(jiān)控聯(lián)網(wǎng)系統(tǒng) 信息傳輸、交換、控制技術(shù)要求》

協(xié)議結(jié)構(gòu)


sip協(xié)議包括六個(gè)主要請(qǐng)求和六類響應(yīng)消息:

請(qǐng)求:

  • INVITE
  • BYE
  • REGISTER
  • CANCEL
  • ACK
  • OPTIONS

響應(yīng):

  • 1xx: 臨時(shí)/信息響應(yīng)
  • 2xx: 成功響應(yīng)
  • 3xx: 重定向響應(yīng)
  • 4xx: 客戶端故障響應(yīng)
  • 5xx: 服務(wù)器故障響應(yīng)
  • 6xx: 全局故障響應(yīng)

下面是GB28181協(xié)議標(biāo)準(zhǔn)下較常用的的sip請(qǐng)求:

INVITE

INVITE請(qǐng)求在GB28181協(xié)議中是視頻點(diǎn)播(包括實(shí)時(shí)預(yù)覽和歷史回放)流程中最重要的一個(gè)環(huán)節(jié),在invite請(qǐng)求中會(huì)包含SDP協(xié)議的內(nèi)容。SDP協(xié)議(Session Description Protocol)是用來描述媒體數(shù)據(jù)是如何使用的,它由3個(gè)部分組成,可分為:

  • 第1部分是Session description
    • v= (protocol version)
    • o= (owner/creator and session identification)
    • s= (session name)
    • i= (session information)
    • u= (URI of description)
    • e= (email address – contact detail)
    • p= (phone number – contact detail)
    • c= (connection information – not required if included in media description)
    • b= (session bandwidth information)
    • z= (time zone adjustments)
    • k= (encryption key)
    • a= (zero or more session attribute lines)
  • 第2部分是Time description
    • t= (time the session is active)
    • r= (repeat times)
  • 第3部分是Media description
    • m= (media name/ transport address)
    • i= (media title)
    • c= (connection information – not required if included in session description)
    • b= (bandwidth information)
    • k= (encryption key)
    • a= (zero or more media attribute lines)

sdp字段的具體細(xì)節(jié)可參考鏈接:

sdp會(huì)話描述協(xié)議

sdp協(xié)議參考文獻(xiàn):

《GB/T 28181-2016 公共安全視頻監(jiān)控聯(lián)網(wǎng)系統(tǒng) 信息傳輸、交換、控制技術(shù)要求》附錄FSDP定義

下面是在GB28181協(xié)議中視頻點(diǎn)播流程中的invite數(shù)據(jù)包:

圖片

BYE

BYE包是用來終止已經(jīng)建立的會(huì)話,通常出現(xiàn)BYE包的場(chǎng)景是媒體接收端主動(dòng)發(fā)起實(shí)時(shí)音視頻點(diǎn)播流程時(shí)出現(xiàn)。它不能由代理服務(wù)器發(fā)送,也不能發(fā)送到掛起的INVITE或者未建立的會(huì)話。

具體的數(shù)據(jù)包流程分析如下圖:

圖片

REGISTER

通過抓包可以查看到GB28181一個(gè)完整的基本注冊(cè)流程:

圖片

GB28181中它是采用RFC 3261規(guī)范中基于數(shù)字摘要的CRAM機(jī)制來進(jìn)行注冊(cè),基本注冊(cè)流程如下圖:

圖片

具體的數(shù)據(jù)包分析如下圖:

圖片

CANCEL

主要是用來終止未建立的會(huì)話。用戶代理使用此請(qǐng)求取消之前發(fā)起的待處理的invite。它可以由用戶代理或代理服務(wù)器發(fā)送。

ACK

ACKRFC-3262規(guī)范中是一個(gè)請(qǐng)求,它只有在INVITE請(qǐng)求中出現(xiàn),當(dāng)INVITE請(qǐng)求響應(yīng)是200 OK時(shí), 后續(xù)的ACK則是一個(gè)獨(dú)立事務(wù)。

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1335

    瀏覽量

    78863
  • UDP
    UDP
    +關(guān)注

    關(guān)注

    0

    文章

    318

    瀏覽量

    33832
  • 傳輸協(xié)議
    +關(guān)注

    關(guān)注

    0

    文章

    71

    瀏覽量

    11410
  • SCTP
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    8123
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    SIP協(xié)議在嵌入式Linux中的實(shí)現(xiàn)

    嵌入式系統(tǒng)由于本身資源的限制,現(xiàn)有的SIP協(xié)議直接應(yīng)用于嵌入式便攜設(shè)備還有困難。為滿足SIP協(xié)議在嵌入式系統(tǒng)中的商用要求,設(shè)計(jì)出一個(gè)簡(jiǎn)化的SIP
    發(fā)表于 10-12 12:22 ?2188次閱讀
    <b class='flag-5'>SIP</b><b class='flag-5'>協(xié)議</b>在嵌入式Linux中的實(shí)現(xiàn)

    信令控制協(xié)議sip

      SIP(Session Initiation Protocol)是一個(gè)應(yīng)用層的信令控制協(xié)議。用于創(chuàng)建、修改和釋放一個(gè)或多個(gè)參與者的會(huì)話。這些會(huì)話可以好似Internet多媒體會(huì)議、IP電話或
    發(fā)表于 08-06 06:29

    嵌入式SIP協(xié)議棧怎么設(shè)計(jì)?

    ,憑借SIP自身的特性可有效提高嵌入式網(wǎng)絡(luò)設(shè)備的互操作性和接入網(wǎng)絡(luò)的便利性。但SIP協(xié)議本身只給出SIP消息的文法定義以及自然語言描述的消息
    發(fā)表于 10-29 08:14

    SIP協(xié)議在嵌入式環(huán)境下有什么應(yīng)用?

    ,憑借SIP自身的特性可有效提高嵌入式網(wǎng)絡(luò)設(shè)備的互操作性和接入網(wǎng)絡(luò)的便利性。但SIP協(xié)議本身只給出SIP消息的文法定義以及自然語言描述的消息
    發(fā)表于 03-27 07:26

    如何實(shí)現(xiàn)WebRTC協(xié)議SIP協(xié)議互通

    一、WebRTC協(xié)議SIP協(xié)議互通的需求來源目前在國(guó)內(nèi)需要WebRTC協(xié)議SIP協(xié)議互通的場(chǎng)
    發(fā)表于 09-04 16:04

    支持SIP協(xié)議的軟交換控制設(shè)計(jì),

    軟交換技術(shù)是下一代網(wǎng)絡(luò)的核心技術(shù)。而SIP 協(xié)議由于其簡(jiǎn)單、易于擴(kuò)展、便于實(shí)現(xiàn),逐漸成為NGN 和3G 領(lǐng)域的重要協(xié)議。根據(jù)SIP 的基本功能,按照模塊化設(shè)計(jì)思想,提出支持
    發(fā)表于 09-12 16:12 ?17次下載

    SIP協(xié)議性能測(cè)試的方法

    介紹了SIP協(xié)議(Session Initiation Protocol)的相關(guān)知識(shí),在其基礎(chǔ)上探討了SIP協(xié)議性能測(cè)試的方法。該方法中提出了基于基本呼叫
    發(fā)表于 01-05 11:18 ?32次下載

    SIP協(xié)議,什么是SIP協(xié)議

    SIP協(xié)議,什么是SIP協(xié)議 SIP協(xié)議是NGN中的重要協(xié)
    發(fā)表于 04-07 16:12 ?2264次閱讀

    SIP協(xié)議的應(yīng)用及技術(shù)支持

     在統(tǒng)一通信中,我們通常會(huì)是用SIP協(xié)議。那么不禁會(huì)這樣問,我們?yōu)槭裁匆褂?b class='flag-5'>SIP協(xié)議,SIP協(xié)議
    發(fā)表于 07-23 11:30 ?1303次閱讀

    SIP協(xié)議在3G網(wǎng)絡(luò)中的應(yīng)用

      會(huì)話起始協(xié)議SIP是3G的IP多媒體子系統(tǒng)中提供多媒體業(yè)務(wù)的核心技術(shù)。文章首先介紹了SIP的基本工作原理,然后對(duì)3GPPUMTSR5定義的IMS進(jìn)行了簡(jiǎn)要描述,最后詳細(xì)闡述了
    發(fā)表于 09-12 09:39 ?1586次閱讀
    <b class='flag-5'>SIP</b><b class='flag-5'>協(xié)議</b>在3G網(wǎng)絡(luò)中的應(yīng)用

    自己動(dòng)手寫SIP協(xié)議

    本文由作者的本科畢設(shè)論文改寫而成。由于時(shí)間倉促及作者水平所限,本文中的SIP協(xié)議棧尚不能實(shí)用,僅供初學(xué)SIP協(xié)議的朋友們?nèi)雮€(gè)門而已。不足之處還請(qǐng)多多包涵。
    發(fā)表于 05-31 16:18 ?64次下載
    自己動(dòng)手寫<b class='flag-5'>SIP</b><b class='flag-5'>協(xié)議</b>棧

    基于改進(jìn)SIP密鑰協(xié)議SIP安全認(rèn)證模型

    針對(duì)現(xiàn)有SIP(會(huì)話初始協(xié)議)認(rèn)證機(jī)制不能抵抗臨時(shí)秘密泄露攻擊和系統(tǒng)開銷大的問題,提出了一種基于改進(jìn)SIP協(xié)議SIP安全認(rèn)證模型。借鑒原有
    發(fā)表于 06-17 11:54 ?8次下載

    FreeSwitch的sip協(xié)議協(xié)議詳解.pdf

    FreeSwitch的sip協(xié)議協(xié)議詳解.pdf
    發(fā)表于 12-30 11:28 ?3次下載

    SIP協(xié)議的基本信息及優(yōu)勢(shì)

    因?yàn)?b class='flag-5'>SIP協(xié)議是參考了HTTP協(xié)議發(fā)展而來,因此會(huì)話的基本特性也可以通過HTTP協(xié)議的會(huì)話來理解。會(huì)話實(shí)現(xiàn)的就是一個(gè)數(shù)據(jù)交互,雙方的數(shù)據(jù)交換至少包括會(huì)話的ID、生命周期、定時(shí)器、結(jié)束的
    的頭像 發(fā)表于 05-19 10:46 ?1439次閱讀
    <b class='flag-5'>SIP</b><b class='flag-5'>協(xié)議</b>的基本信息及優(yōu)勢(shì)

    SiP系統(tǒng)級(jí)封裝設(shè)計(jì)仿真技術(shù)流程

    SiP仿真設(shè)計(jì)流程介紹
    發(fā)表于 04-26 17:34 ?2次下載