与Web套接字的SIP通信(Web RTC)

时间:2015-04-14 07:58:21

标签: websocket webrtc asterisk sip

Sip(会话启动协议)不理解websocket所以我们需要sip代理,它基本上是sip和websocket之间的转换器。 enter image description here

我正在遵循这种架构,用于使用网络套接字进行SIP握手。我几乎没有问题 哪个sip代理必须用于进行音频和视频通话。在Gateway to SIP模块中,我正在使用ASTERISK。星号如何用于视频通话是否有可用于视频通话的编解码器?请分享一些有用的链接。 非常感谢您的回答。

2 个答案:

答案 0 :(得分:1)

  • 这只是一种方法。有很多方法。
  • 您必须区分信令路径和媒体路径
  • 在信令路径上,您必须选择信令协议和相应的传输协议。就信令而言,浏览器可以使用Web套接字进行传输并啜饮协议。在传统SIP方面,您需要通过UDP进行SID,需要更改信令的传输,而不是信令的协议。
  • 在媒体路径上,您有两个问题:加密和编解码器。加密在webrtc中是强制性的,而不是在SIP中。您需要B2BUA才能在两个单词之间进行转换。
  • 在编解码器方面,您要么在两个单词之间选择重叠的编解码器,要么必须进行转码。这里似乎必须使用媒体服务器。如果您在会议中有多方,则需要混合音频并撰写视频以将其发送到旧版SIP,在这种情况下,您的媒体服务器应该是MCU。
  • 最终,您还有发现和身份问题。在原始握手期间,当webRTC使用ICE时,SIP期望用户ID和域(DNS条目或固定IP)。同样,您很可能需要使用B2BUA来桥接这两个世界。

Asterisk / kamailio / freeswitch可能会针对简单情况处理上述大部分内容(1对1,音频)。对于任何复杂的事情,你都是独立的。你可能想看看由asiumisk背后的公司digium制作的respoke.io。

答案 1 :(得分:1)

结帐http://jssip.net。它们提供了一个javascript API,它在客户端使用SIP over WebSocket,它们还有一个SIP代理和服务器(也适用于Asterisk,Kamailio)。它们是RFC7118“WebSocket协议作为会话启动协议(SIP)的传输”的作者。