iT邦幫忙

2021 iThome 鐵人賽

DAY 4
0
Software Development

新手也能打造網路電話系統-WebRTC入門與活用系列 第 4

Day 04 - 觀念篇 - Session Description Protocol

Session Description Protocol(簡稱SDP)會談描述協議是一種用於媒體協商之協議,由一行以上的UTF-8文本所構成,每行以一個字母作為開頭,後方連接等號,以表示該行的描述與參數,如下圖所示。

SDP內部描述多媒體及網路相關資訊,例如:媒體類型、媒體編解碼器、網路位址、網路頻寬、傳輸協議及會談時間等,使通話的雙方可以進行後續的多媒體傳輸,因此傳遞SDP是WebRTC重要的前置步驟。

SDP的內容與格式

SDP內的訊息大致區分為三個部分,每個部份有各自的描述內容:

  • Session description:描述此通話的重要資訊。
  • Time description:描述此通話的時間資訊。
  • Media description:描述終端裝置的媒體資訊,內部區分成視訊與音訊。

以下介紹每段描述內容的參數,星字號(*)為不一定會出現於SDP的可選參數。

Session description

    v=  (protocol version)
    o=  (owner/creator and session identifier)
    s=  (session name)
    i=* (session information)
    u=* (URI of description)
    e=* (email address)
    p=* (phone number)
    c=* (connection information - not required if included in all media)
    b=* (bandwidth information)
    One or more time descriptions (see below)
    z=* (time zone adjustments)
    k=* (encryption key)
    a=* (zero or more session attribute lines)
    Zero or more media descriptions (see below)

Time description

    t=  (time the session is active)
    r=* (zero or more repeat times)

Media description

    m=  (media name and transport address)
    i=* (media title)
    c=* (connection information - optional if included at session-level)
    b=* (bandwidth information)
    k=* (encryption key)
    a=* (zero or more media attribute lines)

SDP的類型與傳遞

SDP分為OfferAnswer兩種類型,通常由發起會談的一方建立Offer類型的SDP並傳遞至接收方後,再由接收方建立Answer類型的SDP予以回應,大致的流程如下:

https://ithelp.ithome.com.tw/upload/images/20210916/20118188DK1XRqDqxY.png

由於欲通話的雙方尚未建立對等連線,所以須搭建用於傳遞SDP資訊的伺服器,使彼此可藉由伺服器獲得對方的資訊,而在WebRTC規範中並無特別規定SDP的傳輸方式,因此可選用WebSocket、SSE或XHR等前後端溝通的通訊標準,而本系列文章將採用WebSocket以中繼彼此的SDP資訊。加入WebSocket後的流程如下:

https://ithelp.ithome.com.tw/upload/images/20210916/20118188iRQJCTVgVo.png


上一篇
Day 03 - 觀念篇 - WebRTC Protocol
下一篇
Day 05 - 觀念篇 - Interactive Connectivity Establishment
系列文
新手也能打造網路電話系統-WebRTC入門與活用30

尚未有邦友留言

立即登入留言