如何绑定VOIP的ADSL线路?

我们使用G711a作为编解码器,并且我想绑定ADSL线路以给我最大可能的上游。 我知道可能有分组重新sorting等问题; 什么是“正确”的方式来做到这一点? (除了租用专线)。

你是否考虑过简单地通过使用某种负载平衡而不是绑定来保持整个问题? 如果每个会话在一个或另一个线路上,您的数据包将会更加快乐。 在一条共享线路上使用较轻的(压缩的)audio编码解码器应该可以为您提供更好的质量呼叫,而不是像G711那样的重量较大的呼叫,在这种情况下,数据包被拆分并通过绑定线路移动。

嗨,我们已经使用了BE宽带和VOIP的保税服务,相比租用线路已经非常成功并且具有成本效益,请参阅下面的链接

BE宽带线路绑定

一个真正的联系是难以实现的,但接近它的一个方法是多链路PPP 。

它需要一个端点来终止ppp会话,而这个端点可以在ISPnetworking或互联网上(例如数据中心的服务器/路由器)。

这是很容易得到它运行,因为你不需要提供者的任何东西。

数据包的重新sorting不应该是一个问题,因为G711的实现将具有高达几百毫秒的可configuration的抖动缓冲区,并且重新sorting自己 – 只要数据包将足够早到达而不会被丢弃。

但是,如果其他更简单的选项可用,我会selectKISS原则,而不是自己操作PPP隧道。 如果你的提供者不支持MPPP,你可能会检查出是否为你的网关公开了几个IP地址(每个链接一个地址),并交替地指向你的用户这些地址(例如通过使用DNS循环),并使用一些更智能的路由使上游数据包采取相同的出站接口下游数据包到达 – 使用Linux一些“IP路由”/“IP规则”(也许结合iptables和MARK目标)命令将照顾。

像g729这样的压缩audio仍然很明显,需要在PBX和/或手机上进行各种更改。

多链路PPP是非常好的,除非它不能很好地处理失败的分支(例如:分组丢失)或者具有不同速度的连接。 而且它不适用于来自不同运营商的双腿。

如果你了解Linux的使用方法,你可以使用Netfilter,连接跟踪,mod_statistic和connmark为每个新的UDP会话设置一个fwmark,然后将它发送到随机的WAN分支。 因此,每个VoIP呼叫将被固定到其中一个连接以避免数据包重新sorting。

免责声明:我们已经build立了一个解决上述问题的每包绑定解决scheme。