Sip 如何在阻塞网络中隧道voip流量

Sip 如何在阻塞网络中隧道voip流量,sip,vpn,tunneling,Sip,Vpn,Tunneling,我有一个Android VOIP应用程序。由于一些网络阻塞了VOIP通信,我想找到一些绕过这一阻塞的方法。我认为VPN可以做到这一点,但没有任何VPN解决方案可以轻松实现。使用Android提供的VPN API,您需要自己实现几乎所有的功能(例如,没有任何协议实现) 那么,有没有其他方法来实现我所需要的呢?可能是SSH隧道或任何其他类型的隧道 任何类型的建议都会有帮助,因为我不知道从哪里开始。一个绕过此限制的简单方法是使用其他端口传输VoIP数据;很可能您的ISP不会阻止所有端口。一些网站提供了

我有一个Android VOIP应用程序。由于一些网络阻塞了VOIP通信,我想找到一些绕过这一阻塞的方法。我认为VPN可以做到这一点,但没有任何VPN解决方案可以轻松实现。使用Android提供的VPN API,您需要自己实现几乎所有的功能(例如,没有任何协议实现)

那么,有没有其他方法来实现我所需要的呢?可能是SSH隧道或任何其他类型的隧道


任何类型的建议都会有帮助,因为我不知道从哪里开始。

一个绕过此限制的简单方法是使用其他端口传输VoIP数据;很可能您的ISP不会阻止所有端口。一些网站提供了一个出站代理服务器,您可以使用它来传输SIP数据。只需在Outbound Proxy server字段中输入其中一个选项(希望如此),这将有助于您的案例


如果一个端口不工作,请尝试其他端口,例如,您的ISP可能已阻止端口53,但端口1812可能仍处于打开状态。要找出哪个端口处于打开状态,可以在命令提示符下使用“netstat–a”命令。开放端口的状态应为“正在侦听”或“已建立”。

您可以使用Android SDK中的VPN服务对象将应用程序连接到现有的VPN服务提供商。一旦连接,所有网络流量都将通过VPN;当用户挂断电话时,您可以断开VPN。你可以通过编程来完成所有这些。这种方法的唯一问题是,在通话过程中,所有流量都通过VPN。

许多国家在过去几年中实施了非常严格的VoIP阻塞。例如,在伊朗,所有具有VoIP特征的流(大约3-60 kbits,相同的上传和下载)现在都被阻止。在其他国家,VoIP并没有完全被阻止,但质量降低(丢弃一些数据包,改变其他数据包的延迟)。这是因为通常拥有互联网网络的公司也拥有电信基础设施,这样试图让客户远离VoIP。随着各种深度数据包检测软件和设备的不断改进,传统的VPN很容易被过滤。加密通常是不够的,您还必须混淆VoIP流量。即便如此,VoIP服务器也很容易找到,流量也会降低

如果您需要克服所有这些问题,我可以推荐以下几点:

  • 将信令(SIP)与媒体(RTP)复用和/或将多个流用于媒体
  • 使用强加密
  • 使用不同的上游和下游
  • 在某些位置,UDP被阻止,因此您必须通过TCP或HTTP实现RTP
  • 使用某种分布式网络来避免IP/域检测和阻塞
我建议检查以下各项:

  • 看看解密有多容易,所以传统的VPN几乎是无用的:
  • 关于模糊处理的一篇好文章:
  • 体面的实施:

我最近在同一个课题上做了一项研究。不幸的是,我发现只有商业解决方案可以解决这些问题。看起来很有希望,但在我的测试之后,目前还不能用于高质量的VoIP。如果一个更简单的解决方案可以满足您的需求,那么我仍然建议使用专门的VoIP软件,例如,而不是通用VPN

到目前为止,找到了最好的解释。从头开始启动任务列表。当做