@chenlai89
2017-05-03T10:43:10.000000Z
字数 1258
阅读 1208
未分类
在 WebRTC 中, 信令没有标准化,可以自由选择。
原因是 WebRTC 最初设计是针对浏览器,信令的代码可以从服务获取,并能保证一致性,所以不需要制定标准。
信令最主要的作用在于,参与传输对等连接之间交换会话描述符(SDP)中包含的信息。SDP 中包含 RTP 媒体占配置媒体会话所需的全部信息,包括媒体类型(音频,视频,数据)、所用的编解码器(opus,G.711等)、用于编解码器的各个参数或设置,以及有关带宽的信息。此外,信令通道还用于交换候选地址,以便进行 ICE 打洞, 候选地址包括潜在IP地址和UDP端口。另外,SDP中必须包含用于SRTP的密钥材料。
专有协议可以很简单,适合演示双向视频通话功能,效果,可基于机基于 Http 或 Websocket 等通用传输协议。
需要重新实现标准信令所具备的功能。
例如SIP/jingle;
通常用于 VOIP 和 视频会议系统,可以使用 UDP、TCP、SCTP、 或 TLS 作为传输机制。
开源的 WebScoket SIP 方案
JsSIP、sipML5、WebRTCComm、ASterisk、OverSIP、Kamailio、OfficeSIP
可以利用 Jingle 将 SDP 会话描述符映射成 XML 格式,通过 TCP 或者 TLS 传输到 XMPP 服务器
开源的 XMPP 栈:
Strophe、node-xmpp、dojox-xmpp、frabjous、jQuery-XMPP-plugin
就是,先通过信令服务器建立DataChannel, 再利用 DataChannel 传输音视频信令以及其他信令功能。
好处:
1. 降低延时。
DataChannel 建立在应答呼叫之前,当用户接受会话之后,可以以相当快的速度添加语音和视频。
2. 尽可能对服务器资源的消耗,对服务器的要求极少。
3. 能自我组织,自我扩展和保护隐私。
坏处:
1. 可能会占用成员资源。
2. 成员不稳定会到导致信令传输打断。
| 方案 | 服务器要求 | 优点 |
|---|---|---|
| WebSocket 代理 | 提供服务器代码的 WebSocket 服务器 | 无需信令基础框架 |
| XML HTTP 请求 | 提供服务器代码的 Web 服务器 | 无需信令基础架构 |
| SIP | 支持 SIP WebSocket 传输的SIP 注册/代理服务器 | 易于与 SIP 终端或基础架构互操作, 无需服务器代码 |
| Jingle | 支持 XMPP WebSocket 传输的 XMPP 服务器 | 易于与 Jingle 终端或基础架构互操作,无需服务器代码 |
| 数据通道 | 用于建立数据通道的 WebSocket 或 Web 服务器 | 信令延迟端并可保护信令隐私 |