我正在努力使一个sip客户端可以打电话。作为公司的服务器,我公司使用星号(VOS3000)。服务器不支持Web套接字。现在我想知道是否有任何方法可以使用javascript来制作sip客户端。
可能是愚蠢的,但是我正在考虑一个解决方案,例如制作节点js sip服务器(可能使用sip.js),然后所有到达此服务器的请求都将重定向到我的星号服务器。可能吗?
或任何其他解决方法?
最佳答案
我不熟悉VOS3000,但Asterisk 11版及更高版本已通过WebSockets支持WebRTC和SIP(版本越新越好)。但是,如果VOS3000基于较旧版本的Asterisk或由于其他原因而陷入困境,则可以为WebRTC呼叫设置网关。您可以选择一些合理的方向。
B2BUA-您可以运行新版本的Asterisk(或FreeSWITCH),并使其在sip.js调用与您的VOS3000之间架桥。它基本上只是充当呼叫的中间人,并向基于sip.js的应用程序讲WebRTC,向VOS3000讲标准的旧SIP。如果VOS3000不支持WebRTC编解码器(如果不是用于视频,至少用于语音),则这可能是两条途径中比较容易的方法,并且具有能够进行语音编解码器转换的优点。
代理+媒体网关-您可以运行类似Kamailio的代理,以将SIP信令从WebSockets上的SIP代理到UDP上的SIP,并使用rtpengine将WebRTC DTLS-SRTP转换为RTP。这样可以更好地扩展/执行性能,但是要正确设置它要复杂得多。如果需要,它也不会为您提供编解码器翻译。
如果您不想自己操作,也可以通过服务提供商为您提供呼叫网关。
虽然sip.js可以在node.js上很好地运行,并且对于在节点上运行的自定义内容确实非常有效,并且还需要充当SIP用户代理(无论出于何种原因),但需要对整个网关和/或代理进行编码当其他选项可用时,这似乎需要大量工作。
关于javascript - 是否可以通过 Node js服务器将sip请求转发到另一个 Asterisk 服务器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39305380/