通过WebSocket进行SIP转换为真正的SIP

通过WebSocket进行SIP转换为真正的SIP,websocket,sip,webrtc,sip-server,Websocket,Sip,Webrtc,Sip Server,我正在尝试实现一个sip服务器,用于从HTMLsip客户端(使用sipml5创建)连接到。在我进行这项研究的过程中,我遇到了sip over web sockets,这可能对我很有用,但是,我不确定通过sip overweb sockets连接到兼容服务器的用户代理是否能够成功地使用不兼容服务器呼叫某个用户(即通过web套接字从SIP呼叫到真正的SIP) 我知道webrtc2sip可以用于连接到传统网络,但如果可能的话,我宁愿避免使用另一个代理。那么,是否可以使用SIP通过websockets连

我正在尝试实现一个sip服务器,用于从
HTML
sip客户端(使用sipml5创建)连接到。在我进行这项研究的过程中,我遇到了sip over web sockets,这可能对我很有用,但是,我不确定通过sip over
web sockets
连接到兼容服务器的用户代理是否能够成功地使用不兼容服务器呼叫某个用户(即通过
web套接字从SIP呼叫到真正的SIP)


我知道
webrtc2sip
可以用于连接到传统网络,但如果可能的话,我宁愿避免使用另一个代理。那么,是否可以使用
SIP
通过
websockets
连接到兼容的
SIP
服务器,然后从该用户代理向不支持
SIP>的另一个用户代理进行呼叫web套接字
进行编码而不使用
网关

Mobicents
SIP
servlet示例已经为您提供了一个
B2BUA
应用程序。媒体是对等的(或通过
TURN
中继服务器)但如果您需要桥接到媒体服务器,您确实可以修补
SDP
主体,使各方的媒体通过媒体服务器(待定,它支持来自WebRTC的媒体相关编解码器,
DTLS-SRTP
等)添加会议、录制类型的功能。

你说得对,Websockets上的SIP是一个草案,而不是规范。我不知道有多少SIP供应商支持这个草案

可能的解决方案是真正的websocket SIP网关。例如,Flashphoner Web Call Server被实现为一个网关,通过带浏览器的websocket工作,并通过SIP(TCP和UDP)与SIP服务器工作。因此,它与任何支持RFC3261-标准SIP规范的服务器兼容

简要的信令方案是:

浏览器-[Websockets]-网络呼叫服务器-[SIP TCP,UDP]-任何SIP服务器

简短的流媒体方案:


浏览器-[WebRTC=SRTP、DTLS、ICE、STUN]-网络呼叫服务器-[RTP UDP]-任何SIP/RTP服务器

另一种方法是使用kamailio,因为它了解SIP和ws-SIP

当你说“实现一个sip服务器”时,它是一个简单的注册服务器还是代理服务器,或者你想要cal控制逻辑/存在其他功能


在所有情况下,kamailio都满足所有要求,而且是开源的。

您可以使用支持传统SIP(通过TCP/UDP)和WebSocket的SIP服务器来实现网关功能。启用技术的一个示例是Mobicents SIP servlet(请参阅)。创建网关是否会像通过同时支持这两种代理的代理连接用户代理一样简单,或者某些头需要修补/媒体编码等?答案取决于您的端点(sipml5和一些其他未指定的SIP UAs)的互操作性。为了明确起见,您需要在Mobicents SIP servlet中实现代理。毕竟,网关功能必须在某个地方完成。