6

Quora上有人问了这个问题,没有答案。除了更改 jsSip 的源代码之外,是否有任何解决方案?

问题是大多数与 webRTC 一起使用的 JS SIP 库都是通过 websockets (RFC 7118) 来实现的。此外,Chrome 现在要求 getUserMedia 接口在 https 上运行,这对 SIP 服务器端施加了额外的要求。SIP 服务器还必须支持 websockets、SRTP、DTLS 等。

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

但是,当 SIP 服务器在本地网络上并且必须从应用服务器发起 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  
4

2 回答 2

1

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

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

于 2017-05-19T02:05:31.273 回答
-1

我建议为此使用WebRTC 到 SIP 网关,因为这将解决您的所有问题。使用 websocket 或其他协议进行信令与媒体处理无关。您仍然需要 DTLS/SRTP。普通 UDP/RTP 不适用于 WebRTC。

于 2016-04-21T08:36:51.777 回答