1

We're using G711a as a codec, and I wanted to bond ADSL lines to give me the maximum possible upstream. I know that there can be issues of packet re-ordering etc; what is the 'right' way to do this? (other than getting a leased line).

3
  • Of all the traffic you could shove over a bonded connection, G711a is one of the least likely to be usable on the other end.
    – Caleb
    Apr 16, 2011 at 10:15
  • What would you recommend?
    – chrism2671
    Apr 18, 2011 at 5:37
  • Any real time stream data is going to struggle over a bonded network, and G711a is a hog and so will be more symptomatic. I would try to use a compressed protocol so the data fit on one line or the other, then load balance instead of bond. See my answer...
    – Caleb
    Apr 18, 2011 at 7:24

5 Answers 5

1

Have you considered keeping this whole problem simply by using some kind of load balancing instead of bonding? Your packets will be much happier if each session is on one line or another. Using a lighter weight (compressed) audio codec on a single shared line should give you better quality calls than a heavy weight one like G711 where the packets are split and moved over a bonded line.

1
  • This is what we did in the end. We had problems with G729 because of a poor implementation on some old linksys phones. We separated it out onto two physical networks and it makes a lot more sense, and keeps it simple. Everything is pretty much working smoothly now! Thank-you!
    – chrism2671
    Apr 20, 2011 at 9:47
1

Hi we have used a bonded service from BE broadband and VOIP which has been very sucessful and cost effective compared to leased line see link below

BE Broadband Line Bonding

0

A true bonding is difficult to achieve, but one way to get close to it is Multilink PPP.

It needs an endpoint on which you will terminate the ppp sessions, and this endpoint can be either in the ISP network or on the internet (such as a server/router in your datacenter).

This is quite easy to get it running as you don't need anything from the provider.

3
  • 1
    and btw, don't use G711 on the wan. only on a lan.
    – petrus
    Apr 16, 2011 at 10:20
  • What would you recommend?
    – chrism2671
    Apr 18, 2011 at 5:37
  • g729, AMR... there's plenty of it that don't require 80kb/s+ bandwidth. See the wikipedia MOS page for more codecs.
    – petrus
    Apr 18, 2011 at 10:18
0

Reordering of packets should not be a problem as G711 implementations will have a configurable jitter buffer of up to several hundred milliseconds and take care of reordering themselves - as long as the packets will arrive early enough not to get dropped.

Nontheless, I'd opt for the KISS principle and not operate a PPP tunnel myself if other simpler options are available. If your provider will not support MPPP, you might check out if just exposing several IP addresses for your gateway (one address per link) and pointing your users to these addresses alternately (e.g. by using DNS round-robin) and use some smarter routing to make upstream packets take the same outbound interface the downstream packets arrived through - using Linux some "ip route" / "ip rule" (maybe in conjunction with iptables and the MARK target) commands would take care of that.

0

Compressed audio like g729 is still noticeable and requires all kinds of changes on PBX and/or phones.

Multilink PPP is great except it doesn't handle failing legs (eg: packet loss) very well, or connections with different speeds. And it won't work with legs from different carriers.

If you know your way around with Linux, you can use Netfilter, connection tracking, mod_statistic, and connmark to set a fwmark for each new UDP session, and then send it to random WAN leg. So each VoIP call would be pinned to one of the connections to avoid packet reordering.

Disclaimer: we have built a per-packet bonding solution which solves the above issues.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .