如何使用非websockets传输使用JS的SIP库?

这个问题在Quora有人问到,但是没有答案。 有没有解决这个问题,除了改变jsSip的源代码?

问题是,大多数与webRTC一起工作的JS SIP库都是通过websockets(RFC 7118)来实现的。 同样,Chrome现在需要在https上运行getUserMedia接口,这会在SIP服务器端增加额外的要求。 SIP服务器还必须支持websockets,SRTP,DTLS等。

如果SIP呼叫是通过浏览器来完成的话,所有这些都是有意义的,无论是作为webRTC的信令机制还是通过网页的非webRTC电话呼叫。

但是,当SIP服务器在本地networking上并且必须从应用服务器发起SIP呼叫时,所有这些要求不再适用。 应该可以通过普通的UDP进行JS SIP调用,而不需要使用SIP服务器来运行http服务器,因为http服务器在我的情况下与应用服务器本身集成在一起。

Scenario 1 as supported bymost JS SIP libraries: JSSIP (in HTML page <------>websockets<---->[http-builtin with SIP server]<---->PSTN Scenario 2 which applies to the question: JSSIP (in HTML page <--https---->app-server with https-server<----local net--->[SIP server] <-----> PSTN 

看起来你已经build立了自己的,但我正在寻找一个类似的东西,发现这个: https : //github.com/davehorton/drachtio

我还没有尝试过,但它被devise为nodejs服务器上的中间件,看起来像它支持较老的非websockets模型。

我会build议获得一个WebRTC到SIP网关 ,因为这将解决您的所有问题。 使用websocket或其他协议进行信号传输与媒体处理无关。 你仍然需要DTLS / SRTP。 普通的UDP / RTP不能用于WebRTC。

Interesting Posts