如何在docker中的sipster/pjsip和外部世界之间实现声音连接?

如何在docker中的sipster/pjsip和外部世界之间实现声音连接?,docker,sip,voip,pjsip,Docker,Sip,Voip,Pjsip,成功安装sipster/pjsip后,我想继续并录制从sip连接到该sip服务器的声音。现在,如果我在本地arch linux机器上运行这个程序,声音会被完全录制,但是如果我在docker机器上运行同样的程序,我首先要做的就是 docker run -p 5060:5060/udp -it myContainer SIP连接正常,但没有录音 一位朋友告诉我,SIP使用RTP进行声音传输,该协议将UDP端口从16384绑定到32767 现在如果我这样做了 docker run -p 5060:5

成功安装sipster/pjsip后,我想继续并录制从sip连接到该sip服务器的声音。现在,如果我在本地arch linux机器上运行这个程序,声音会被完全录制,但是如果我在docker机器上运行同样的程序,我首先要做的就是

docker run -p 5060:5060/udp -it myContainer
SIP连接正常,但没有录音

一位朋友告诉我,SIP使用RTP进行声音传输,该协议将UDP端口从16384绑定到32767

现在如果我这样做了

docker run -p 5060:5060/udp -p 16384-32767:16384-32767/udp -it myContainer
这需要很长时间,最终会崩溃


有没有办法缩小sipster或pjsip中的RTP端口范围?我的思路是否正确,或者问题是否与docker没有声音设备有关?

docker无法同时映射许多端口。在本例中,我创建了一个rtpproxy映像,然后创建了几个docker容器实例,映射每个容器1000×1000个端口

我正在和很多人谈论这件事,每个人都说我疯了,为什么我需要10k端口。。然后我必须解释一下VoIP是如何工作的

问候


Luis

Docker可能不乐意尝试转发近四分之一的可用端口。如果使用较小的范围,它是否仍会崩溃?您确定范围正确吗?@ChrisTanner这是RTP标准的范围,参见。我不知道这个pjsip使用的是哪个部分,以及如何限制它。当然,docker(或我的Mac主机)对如此广泛的范围感到不满。它有100个端口,运行良好。所以我正在寻找缩小范围的方法。谢谢。这看起来像是一个部署到生产中的解决方案。据我所知,SIP需要一个端口来启动通信(通常为5060),然后为每个并行RTP语音连接绑定16384-3276范围内的UDP端口。在开发过程中,您可以在RTP.conf中设置一个较低的RTP范围。您可以使用10000-10100,然后使用-p 10000-10100:10000-10100/udp在docker@Luis:Nice Asterisk解决方案上使用它。但我的想法是将pjsip独立运行为node/sipster的库。但无论是在pjsip目录中还是在sipster docu中,我都无法找到相关的配置。也许这是一个必须由pjsip消费软件设置的选项,而sipster尚未实现它。@我想我现在正在绝地模式下使用pjsip来帮助您:-(对不起,您是如何使用rtpproxy映射端口的?@LuisMachadoReis