我正在评估这个项目的可行性。我希望能够在两个 Asterisk PBX 之间建立加密的 VoIP 呼叫。
我计划通过两台 Asterisk 服务器之间的加密 VPN 隧道建立传统 IAX 呼叫。服务器通过传统模拟电话线连接,能够相互拨号并建立 PPP 连接。通过普通 PPP 链路拨打电话时,我得到了可接受的结果。
但是我在通过 OpenVPN 隧道进行呼叫时遇到了问题。呼叫成功,但 RTP 音频数据包被丢弃,我一直收到 UDP4 没有可用缓冲区空间的提示。我已经调整了内核和 openvpn 上的多个参数和设置,但仍然不起作用。
有谁知道还有什么其他方法可以实现这一点吗?它应该能够在由 2 个调制解调器连接的两个 Linux 服务器上创建一个加密隧道。TCP 隧道不可接受,因为 VoIP 呼叫是 UDP。
答案1
恐怕你的主要问题就是带宽。在最佳条件下,你将使用超过一半的拨号带宽用于普通 VoIP。再加上加密开销,你将非常接近最大值。这将使它很容易受到线路噪声和其他干扰的影响。
答案2
加密不应该大幅增加加密对象的大小。两端的处理器可能无法跟上加密/解密负载。另外,您添加的 VPN 或其他东西是否优先考虑 TCP 数据包而不是 UDP?您是否尝试过通过更快的链接运行 VPN-VOIP?如果可行,请尝试减慢链接速度,直到它开始失败。然后您就会知道您距离目标还有多远。您可能还会有一些关于如何修复它的线索。
答案3
加密确实会增加带宽。这可能会很显著。说加密不会增加带宽的人没有进行过任何实际测试。Voip 也不是很高效 - 通常,良好的信号质量会消耗比原来分配给模拟信道的 56k 带宽多得多的带宽。开放式 vpn 很好,但真正的加密会从流中吸取额外的字节。如果您不介意很容易破解的伪安全(仍然算作加密),请尝试使用 PPTP 作为您的链接。
顺便说一句,与普遍看法相反,在一些相当重要的问题领域,P=NP。如果你试图让黑衣人远离你的闲聊,你就是在浪费时间。