[关闭]
@chenlai89 2017-05-03T10:43:10.000000Z 字数 1258 阅读 1208

信令设计

未分类


在 WebRTC 中, 信令没有标准化,可以自由选择。
原因是 WebRTC 最初设计是针对浏览器,信令的代码可以从服务获取,并能保证一致性,所以不需要制定标准。

信令的作用

协商媒体功能和设置。

信令最主要的作用在于,参与传输对等连接之间交换会话描述符(SDP)中包含的信息。SDP 中包含 RTP 媒体占配置媒体会话所需的全部信息,包括媒体类型(音频,视频,数据)、所用的编解码器(opus,G.711等)、用于编解码器的各个参数或设置,以及有关带宽的信息。此外,信令通道还用于交换候选地址,以便进行 ICE 打洞, 候选地址包括潜在IP地址和UDP端口。另外,SDP中必须包含用于SRTP的密钥材料。

标识和验证会话参与者的身份。

  1. 标准信令协议(sip或Jingle)提供参与者身份标识。
  2. 网站身份注册登录用户,作为标识。
  3. 通过媒体通道建立过程,产生的媒体路径作为唯一标识。

控制媒体会话、指示进度、更改会话和终止会话。

当会话双方同时尝试建立或更改会话时,实施双占用分解。

信令选择:

专有协议

专有协议可以很简单,适合演示双向视频通话功能,效果,可基于机基于 Http 或 Websocket 等通用传输协议。

需要重新实现标准信令所具备的功能。

标准信令协议

例如SIP/jingle;

  1. 标准信令协议提供完全定义的状态机

  1. 能够处理双占用分解等一些呼叫过程中一些复杂情形,

WebSocket SIP

通常用于 VOIP 和 视频会议系统,可以使用 UDP、TCP、SCTP、 或 TLS 作为传输机制。

开源的 WebScoket SIP 方案
JsSIP、sipML5、WebRTCComm、ASterisk、OverSIP、Kamailio、OfficeSIP

WebSocket Jingle

可以利用 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 服务器 信令延迟端并可保护信令隐私
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注