[Asterisk-Dev] Increasing reliability on lossy connections

Michael Giagnocavo mgg-digium at atrevido.net
Wed Jan 12 18:36:05 MST 2005


>1) Using iaxclient with 5-8% packet loss, and Speex or iLBC (soon other 
>codecs) should be very usable,   You can even use it with 20% packet 
>loss and have a totally intelligible conversation (assuming a 
>well-distributed loss profile, i.e. the test program I've used uses 
>rand() to determine when to drop packets.  If you're dropping many 
>sequential packets, you're going to be in trouble).

Yes, if I could use a different codec, I would. But my hardphone only
allows: G723, ULAW/ALAW, G729, and GSM. 

>2) Repeating each packet is a wasteful way to provide redundancy; a 
>better way is to use FEC, (think RAID for packets), where you can, for 
>example, send 5 packets for every 3 real packets, and survive the loss 
>of any 2 of this set of 5, and still have no lost data.  (or any 
>numbers you want to choose here).  Generally, you tack the FEC stuff 
>onto subsequent packets, so you don't actually send more packets, just 
>make some bigger.  All this comes at some cost in latency, though.  
>(you could do 5:4 instead of 5:3, and only have 25% more packets)..

That's a very cool idea, even though it needs a non-trivial implementation.
Of course, if I'm going to send 66% more packets, sending duplicates 66% of
the time would also work somewhat, reducing a 5% loss to 1.7%, which I think
G729 could handle o.k.... right?

I know, still not anything elegant, but there's something to be said for
ease of implementation.

-Michael





More information about the asterisk-dev mailing list