4. Requirements and Recommendations (需求和建议)
SDP的目的是传达多媒体会话中媒体流的信息,以允许会话描述的接收者参与会话。SDP主要用于互联网络,尽管它足够通用,可以描述其他网络环境中的会议。媒体流可以是多对多的。会话不需要持续活跃。
到目前为止,基于互联网的多播会话与许多其他形式的会议不同之处在于,任何接收流量的人都可以加入会话(除非会话流量被加密)。在这样的环境中,SDP有两个主要目的。它是传达会话存在的一种方式,也是传达足够信息以启用加入和参与会话的一种方式。在单播环境中,只有后一个目的可能相关。
SDP会话描述包括以下内容:
- 会话名称和目的
- 会话活跃的时间
- 组成会话的媒体
- 接收这些媒体所需的信息(地址、端口、格式等)
由于参与会话所需的资源可能有限,一些附加信息也可能是需要的:
- 关于会话使用的带宽的信息
- 负责会话的人的联系信息
一般来说,SDP必须传达足够的信息以使应用程序能够加入会话(加密密钥可能是例外),并向可能需要知道的任何非参与者通告将要使用的资源。(后一个特性主要在SDP与多播会话通告协议一起使用时有用。)
4.1 Media and Transport Information (媒体和传输信息)
SDP会话描述包括以下媒体信息:
- 媒体类型(视频、音频等)
- 传输协议(RTP/UDP/IP, H.320等)
- 媒体格式(H.261视频、MPEG视频等)
除了媒体格式和传输协议之外,SDP还传达地址和端口详情。对于IP多播会话,这些包括:
- 媒体的多播组地址
- 媒体的传输端口
这个地址和端口是多播流的目标地址和目标端口,无论是发送、接收还是两者兼有。
对于单播IP会话,传达以下内容:
- 媒体的远程地址
- 媒体的远程传输端口
这个地址和端口的语义取决于定义的媒体和传输协议。默认情况下,这应该 (SHOULD) 是发送数据的远程地址和远程端口。某些媒体类型可能会重新定义此行为,但这不推荐 (NOT RECOMMENDED),因为它会使实现复杂化(包括必须解析地址以打开网络地址转换 (NAT) 或防火墙针孔的中间设备)。
4.2 Timing Information (时间信息)
会话在时间上可以是有界的或无界的。无论它们是否有界,它们可能仅在特定时间活跃。SDP可以传达:
- 限定会话的任意开始和停止时间列表
- 对于每个界限,重复时间,例如"每周三上午10点持续一小时"
这些时间信息是全局一致的,与本地时区或夏令时无关(参见第5.9节)。
4.3 Private Sessions (私有会话)
可以创建公共会话和私有会话。SDP本身不区分这些;私有会话通常通过在分发期间加密会话描述来传达。如何执行加密的详情取决于用于传达SDP的机制;目前为使用SAP [14] 和 SIP [15] 传输的SDP定义了机制,将来可能会定义其他机制。
如果会话通告是私有的,则可以使用该私有通告来传达解码会议中每个媒体所需的加密密钥,包括足够的信息以了解每个媒体使用哪种加密方案。
4.4 Obtaining Further Information about a Session (获取关于会话的更多信息)
会话描述应该传达足够的信息以决定是否参与会话。SDP可能以统一资源标识符 (Uniform Resource Identifiers, URIs) 的形式包含关于会话的更多信息的附加指针。
4.5 Categorisation (分类)
当SAP或任何其他通告机制正在分发许多会话描述时,可能需要从那些不感兴趣的会话通告中过滤感兴趣的会话通告。SDP支持能够自动化的会话分类机制("a=cat:" 属性;参见第6节)。
4.6 Internationalisation (国际化)
SDP规范建议使用UTF-8编码 [5] 中的ISO 10646字符集,以允许表示许多不同的语言。然而,为了协助紧凑表示,SDP还允许在需要时使用其他字符集,如ISO 8859-1。国际化仅适用于自由文本字段(会话名称和背景信息),而不适用于整个SDP。