是否可以通过节点 js 服务器将 sip 请求转发到另一个星号服务器?
Is it possible to forward sip requests via a node js server to another asterisk server?
我正在努力制作一个用于通话的 sip 客户端。作为服务器,我公司使用星号(VOS3000)。服务器不支持网络套接字。现在我想知道在我的情况下是否有任何方法可以使用 javascript 创建一个 sip 客户端。
可能很愚蠢,但我正在考虑一个解决方案,比如制作一个节点 js sip 服务器(可能使用 sip.js),然后所有到达此服务器的请求都将被重定向到我的星号服务器。可能吗?
或任何其他解决方法?
我对 VOS3000 不熟悉,但是 Asterisk 11 及以上版本支持 WebRTC 和 SIP over WebSockets(版本越新越好)。但是如果 VOS3000 是基于旧版本的 Asterisk 或者你被卡住了,你可以为 WebRTC 调用设置一个网关。您可以走一些合理的方向。
B2BUA - 您可以 运行 一个新版本的 Asterisk(或 FreeSWITCH)并让它在 sip.js 调用和您的 VOS3000 之间桥接调用。它基本上只是充当呼叫的中间人,并向基于 sip.js 的应用程序发送 WebRTC,向 VOS3000 发送标准的旧 SIP。如果 VOS3000 不支持 WebRTC 编解码器(如果不支持视频,至少支持语音),这可能是两条路线中更容易的一个,并且具有能够进行语音编解码器转换的优势。
代理+媒体网关 - 你可以运行像Kamailio这样的东西来代理从SIP over WebSockets到SIP over UDP的SIP信号,并使用rtpengine将WebRTC DTLS-SRTP转换为RTP .这会 scale/perform 更好,但要正确设置要复杂得多。如果您需要,它也不会为您提供编解码器翻译。
如果您不想自己操作,也有一些服务提供商会为您接听电话。
虽然 sip.js 将 运行 在 node.js 上运行得很好并且这对于在节点上 运行ning 并且还需要充当SIP 用户代理(无论出于何种原因),编写整个网关 and/or 代理在其他选项可用时似乎需要大量工作。
我正在努力制作一个用于通话的 sip 客户端。作为服务器,我公司使用星号(VOS3000)。服务器不支持网络套接字。现在我想知道在我的情况下是否有任何方法可以使用 javascript 创建一个 sip 客户端。
可能很愚蠢,但我正在考虑一个解决方案,比如制作一个节点 js sip 服务器(可能使用 sip.js),然后所有到达此服务器的请求都将被重定向到我的星号服务器。可能吗?
或任何其他解决方法?
我对 VOS3000 不熟悉,但是 Asterisk 11 及以上版本支持 WebRTC 和 SIP over WebSockets(版本越新越好)。但是如果 VOS3000 是基于旧版本的 Asterisk 或者你被卡住了,你可以为 WebRTC 调用设置一个网关。您可以走一些合理的方向。
B2BUA - 您可以 运行 一个新版本的 Asterisk(或 FreeSWITCH)并让它在 sip.js 调用和您的 VOS3000 之间桥接调用。它基本上只是充当呼叫的中间人,并向基于 sip.js 的应用程序发送 WebRTC,向 VOS3000 发送标准的旧 SIP。如果 VOS3000 不支持 WebRTC 编解码器(如果不支持视频,至少支持语音),这可能是两条路线中更容易的一个,并且具有能够进行语音编解码器转换的优势。
代理+媒体网关 - 你可以运行像Kamailio这样的东西来代理从SIP over WebSockets到SIP over UDP的SIP信号,并使用rtpengine将WebRTC DTLS-SRTP转换为RTP .这会 scale/perform 更好,但要正确设置要复杂得多。如果您需要,它也不会为您提供编解码器翻译。
如果您不想自己操作,也有一些服务提供商会为您接听电话。
虽然 sip.js 将 运行 在 node.js 上运行得很好并且这对于在节点上 运行ning 并且还需要充当SIP 用户代理(无论出于何种原因),编写整个网关 and/or 代理在其他选项可用时似乎需要大量工作。