侧边栏壁纸
博主头像
suke博主等级

做最坏的打算,做最多的努力

  • 累计撰写 49 篇文章
  • 累计创建 32 个标签
  • 累计收到 84 条评论

SIP - (Session Description Protocol)-SDP

suke
2022-04-01 / 0 评论 / 0 点赞 / 98 阅读 / 2,438 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-04-02,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

SDP 代表会话描述协议。它用于以参与者通过网络理解的格式描述多媒体会话。根据该描述,一方决定是否加入会议或何时或如何加入会议。

sdp参数解析

  • 会议的所有者通过发送包含会话描述的多播消息在网络上做广告,例如所有者的名称、会话的名称、编码、时间等。根据这些信息,广告的接收者就参加会议作出决定。

  • SDP 通常包含在通常称为 SIP 的会话发起协议的主体部分中。

  • SDP 在 RFC 2327 中定义。SDP 消息由一系列称为字段的行组成,其名称由单个小写字母缩写,并按所需的顺序排列以简化解析。

SDP的目的

SDP 的目的是在多媒体会话中传达有关媒体流的信息,以帮助参与者加入或收集特定会话的信息

  • SDP 是一个简短的结构化文本描述。

  • 它传达了会话的名称和目的、媒体、协议、编解码器格式、时间和传输信息。

  • 临时参与者检查这些信息并决定是否加入会话以及如果决定加入会话的方式和时间。

  • 该格式具有 = 形式的条目,其中 定义唯一的会话参数,而 为该参数提供特定值。

SDP消息的一般形式是 - x = 参数 1 参数 2 … 参数 N

  • 该行以单个小写字母开头,例如 x。字母和 = 之间永远没有空格,每个参数之间只有一个空格。每个字段都有定义数量的参数。

会话描述参数

会话描述(* 表示可选)

 v =(协议版本)
 o =(所有者/创建者和会话标识符)
 s =(会话名称)
 i =* (会话信息)
 u =*(描述的URI)
 e =*(电子邮件地址)
 p =*(电话号码)
 c =*(连接信息 - 如果包含在所有媒体中,则不需要)
 b =*(带宽信息)
 z =*(时区调整)
 k =*(加密密钥)
 a =*(零个或多个会话属性行)

协议版本

v= 字段包含 SDP 版本号。因为 SDP 的当前版本是 0,所以有效的 SDP 消息总是以 v = 0 开头。

起源

o= 字段包含有关会话发起者和会话标识符的信息。该字段用于唯一标识会话。

该字段包含 o= username session-id version network-type address-type

举例子:o=00000 0 0 IN IP4 192.168.9.5
username 参数包含发起者的登录名或主机。

session-id 参数是网络时间协议 (NTP) 时间戳或用于确保唯一性的随机数。

version 是一个数字字段,每次更改会话都会增加,也建议使用 NTP 时间戳。

对于Internet,network-type 始终为 IN。对于 IPv4 或 IPv6 地址,address-type 参数是 IP4 或 IP6,采用点分十进制形式或完全限定的主机名。

会话名称和信息

s= 字段包含会话的名称。它可以包含任何非零数量的字符。可选的 i= 字段包含有关会话的信息。它可以包含任意数量的字符。

  • 可选的 u= 字段包含一个统一资源指示符 (URI),其中包含有关会话的更多信息

  • 可选的 e= 字段包含会话主机的电子邮件地址。可选的 p= 字段包含电话号码。

连接数据

c= 字段包含有关媒体连接的信息

举列子:c=IN IP4 192.168.99.53
该字段包含 -c =network-type address-type <连接地址>

network-type参数被定义为 Internet 的 IN 。

address-type 定义为 IPv4 地址的 IP4 和 IPv6 地址的 IP6 。

connection-address 是将发送媒体数据包的IP 地址或主机,可以是多播或单播。如果是多播,则连接地址字段包含 连接地址=基本多播地址/ttl/地址数 其中ttl是生存时间值,地址数表示从基本多播地址开始包含多少个连续多播地址。

带宽

可选的 b= 字段包含有关所需带宽的信息。它的形式是 -b=修饰符:带宽 - 值

时间、重复时间和时区

t= 字段包含会话的开始时间和停止时间。

t=开始时间停止时间

可选的 r= 字段包含有关可以在 NTP 或天 ( d )、小时 ( h ) 或分钟 ( m ) 中指定的重复时间的信息。

可选的z = 字段包含有关时区偏移的信息。如果正在发生的会话跨越从夏令时到标准时间的变化,则使用此字段,反之亦然。

媒体公告

可选的m = 字段包含有关媒体会话类型的信息。该字段包含 -m=媒体端口传输格式列表

媒体参数是音频、视频、文本、应用程序、消息、图像或控件。port 参数包含端口号。

传输参数包含使用的传输协议或 RTP 配置文件。

格式列表包含有关媒体的更多信息。通常,它包含在 RTP 音频视频配置文件中定义的媒体负载类型。

Example:

 m = audio 49430 RTP/AVP 0 6 8 99
 

这三个编解码器之一可用于音频媒体会话。如果打算建立三个音频通道,则将使用三个单独的媒体字段。

属性

可选的 a= 字段包含前面媒体会话的属性。此字段可用于扩展 SDP 以提供有关媒体的更多信息。如果 SDP 用户不完全理解,可以忽略属性字段。媒体字段中列出的每种媒体有效负载类型可以有一个或多个属性字段。

SDP 中的属性可以是会话级别,或媒体层面。
会话级别意味着该属性列在 SDP 中的第一个媒体行之前。如果是这种情况,则该属性适用于其下方的所有媒体行。

媒体级别意味着它在媒体行之后列出。在这种情况下,该属性仅适用于该特定媒体流。

SDP 可以包括会话级别和媒体级别属性。如果相同的属性同时出现,则媒体级别属性会覆盖该特定媒体流的会话级别属性。请注意,连接数据字段也可以是会话级别或媒体级别。

SDP 示例

下面给出了一个示例会话描述,取自 RFC 2327

v = 0
o = mhandley2890844526 2890842807 IN IP4 126.16.64.4
s = SDP Seminar
i = A Seminar on the session description protocol
u = http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps
e = mjh@isi.edu(Mark Handley)
c = IN IP4 224.2.17.12/127
t = 2873397496 2873404696
a = recvonly
m = audio 49170 RTP/AVP 0
m = video 51372 RTP/AVP 31
m = application 32416udp wb
a = orient:portrait

原文地址

0

评论区