2013-11-21 38 views
4

我试图实现一个SIP服务器连接到从一个HTML sip客户端(使用sipml5)。在我这样做的研究过程中,我遇到了一些可能对我有用的网络套接字,但是我不确定一个用户代理连接到兼容服务器的web-sockets是否能够成功拨打电话某些人使用不兼容的服务器(即从SIP呼叫web-sockets到真正的SIP)。SIP over websockets to true SIP

我知道webrtc2sip可以用于连接传统网络,但我宁愿避免使用其他代理,如果可能的话。那么,是否有可能使用SIP而不是web-sockets连接到兼容的SIP服务器,然后通过此用户代理拨打另一个不支持SIP而不是web-sockets而不使用gateway

+1

您可以使用支持传统SIP(通过TCP/UDP)和WebSockets实现网关功能的SIP服务器。一个支持技术的例子是Mobicents SIP Servlets(请参阅https://code.google.com/p/sipservlets/wiki/Welcome?tm=6)。 – yotommy

+0

会使一个网关就像连接用户代理一样简单,虽然支持两个或某些头的代理需要修补/媒体编码/等。 – awriis

+0

对此的回答取决于您的端点(sipml5和其他未指定的SIP UA)的互操作性。要清楚,你需要在Mobicents SIP Servlets中实现一个代理。毕竟,网关功能必须在某处完成。 – yotommy

回答

1

Mobicents SIP Servlets示例已经为您提供了一个B2BUA应用程序。媒体是对等的(或通过TURN中继服务器),但是如果您需要连接到媒体服务器,则确实可以修补SDP正文以使每个媒体的媒体都通过媒体服务器(等待其支持与媒体相关的媒体来自WebRTC,DTLS-SRTP等的编解码器)来添加会议,记录功能的类型。

3

你说得对,SIP over Websockets是草案,而不是规范。我不认识很多支持这个草案的SIP供应商。

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

简要信令方案是:

浏览器 - [的WebSockets] - 网络电话服务器 - [SIP TCP,UDP] - 任何SIP服务器

简要流方案:

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

0

另一种方法是使用kamailio,因为它理解bo喝了一口,喝了一口。

当你说“实施SIP服务器”是一个简单的注册器或代理服务器,或者你想要校准控制逻辑/存在其他功能?

在所有情况下,kamailio满足所有要求,此外它是开源的。