SIP Websocket 到 UDP 代理服务器

SIP Websocket 到 UDP 代理服务器

有一家提供 SIP 电话的 ATS 提供商。据我所知,它通过 UDP 提供电话,sip 服务器登录密码对于每个内部呼叫线路。

我想写一个具有浏览器呼叫功能的网站。据我了解,搜索网络后,我无法直接通过 UDP 进行完整的呼叫(包括音频流)。对于 UDP 连接,我需要 Zoiper 或 Microsip 之类的程序。

相反,正如我所读到的,我应该有类似代理 SIP 服务器的东西,它将是浏览器(可以使用 Websocket、WebRTC 协议)和 SIP 服务器(可以使用 UDP)之间的网关。在网站上,我可能会使用韓國,这里是带有数据的示例代码,我需要连接到未来的代理服务器

var socket = new JsSIP.WebSocketInterface('wss://sip.myhost.com');
var configuration = {
  sockets  : [ socket ],
  uri      : 'sip:[email protected]',
  password : 'superpassword'
};

我读过关于 Asterisk、Freeswitch 和一些其他 SIP 服务器的文章,但是,首先,我从来没有使用过这样的东西,而且我不擅长 Linux,其次,我没有找到关于 Websocket-UDP 代理的主题。

我还需要服务器一次处理多个调用(流),不知道这是否是默认功能,所以提一下。

目前我有一台装有 Ubuntu 22.04 的 VPS,上面安装了 FastPanel,并且准备好了具有 root 权限的 SSH 连接。有人可以指导我如何实现 SIP 代理功能吗?

答案1

可以使用 Kamailio SIP 代理/服务器和 RTPEngine 构建 SIP over websocket(webrtc)和 SIP over UDP 之间的网关,以下示例可以作为一个很好的起点:

在网上搜索应该会发现其他使用 Kamailio+RTPengine 实现此目的的示例。系统默认应支持同时进行多通通话。

如果需要在 WebRTC 端接听电话,则 JS 电话应用程序必须通过代理注册,主注册服务器必须支持 SIP 路径扩展。kamailio.cfg 可能也需要更新才能使用小路要添加和处理的模块小路標軸。

顺便说一句,如果您想在 WebRTC 端使用不同的协议(例如自定义 JSON 信令),请查看 Janus Gateway 项目。

相关内容