4. 要求和建议
SDP 的目的是传达 multimedia sessions 中媒体流的信息, 使会话描述的接收者能够参与会话. SDP 主要旨在与 Internet protocols 一起使用, 但它足够通用, 也可以描述其他网络环境中的 multimedia conferences. 媒体流可以是 many-to-many. 会话不需要持续处于活动状态.
到目前为止, Internet 上基于组播的会话与许多其他会议形式不同, 因为任何接收到流量的人都可以加入会话, 除非会话流量经过加密. 在这种环境中, SDP 有两个主要用途. 它是一种传达会话存在性的方式, 也是一种传达足够信息以支持加入并参与会话的方式. 在单播环境中, 可能只有后一种用途相关.
SDP 描述包括以下内容:
- 会话名称和目的
- 会话处于活动状态的时间
- 构成会话的媒体
- 接收这些媒体所需的信息 (地址, 端口, 格式等)
由于参与会话所需的资源可能有限, 某些额外信息也可能是有用的:
- 会话将使用的带宽信息
- 会话负责人的联系信息
一般而言, SDP 必须传达足够信息, 使应用能够加入会话, 可能的例外是加密密钥. 它还必须向任何可能需要知晓的非参与者公告将要使用的资源. 后一项功能主要在 SDP 与组播会话公告协议配合使用时有用.
4.1. 媒体和传输信息
SDP 描述包括以下媒体信息:
- 媒体类型 (video, audio 等)
- 媒体传输协议 (RTP/UDP/IP, H.320 等)
- 媒体格式 (H.261 video, MPEG video 等)
除媒体格式和传输协议外, SDP 还传达地址和端口细节. 对于 IP 组播会话, 这些信息包括:
- 媒体的组播组地址
- 媒体的传输端口
无论是发送, 接收还是二者兼有, 此地址和端口都是组播流的目标地址和目标端口.
对于单播 IP 会话, 传达以下信息:
- 媒体的远端地址
- 媒体的远端传输端口
地址和端口的语义取决于上下文. 通常, 这 SHOULD 是媒体要发送到或接收自的远端地址和远端端口. 细节可能因指定的网络类型, 地址类型, 协议和媒体而异, 也可能因 SDP 是作为公告分发, 还是在 offer/answer [RFC3264] 交换中协商而异. 例如, 某些地址类型或协议可能没有端口概念. 偏离典型行为时应谨慎, 因为这会使实现复杂化, 包括必须解析地址以打开 Network Address Translation (NAT) 或防火墙 pinholes 的 middleboxes.
4.2. 定时信息
会话在时间上可以是有界的, 也可以是无界的. 无论是否有界, 它们都可能只在特定时间处于活动状态. SDP 可以传达:
- 用于限定会话边界的任意起止时间列表
- 对于每个边界, 诸如 "every Wednesday at 10am for one hour" 的重复时间
这些定时信息在全局上保持一致, 与本地时区或 daylight saving time 无关 (见 Section 5.9).
4.3. 获取会话的更多信息
会话描述可以传达足够信息, 用于决定是否参与某个会话. SDP 可以包含 Uniform Resource Identifiers (URIs) [RFC3986] 形式的附加指针, 以提供有关该会话的更多信息. 需要注意, 使用 URIs 指示远程资源受 [RFC3986] 中安全考虑事项的约束.
4.4. 国际化
SDP 规范建议使用 UTF-8 编码 [RFC3629] 的 ISO 10646 字符集, 以便表示多种不同语言. 但是, 为了支持紧凑表示, SDP 也允许在需要时使用其他字符集, 例如 [ISO.8859-1.1998]. 国际化仅适用于自由文本子字段 (会话名称和背景信息), 而不适用于 SDP 整体.