[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