From: Steve K. <st...@st...> - 2004-10-18 16:29:52
|
Added CC: to list; others may be interested in this. Michael Van Donselaar wrote: >On Mon, 18 Oct 2004 12:10:50 -0400, Steve Kann <st...@st...> wrote: > ><lots of snippage> > > > >>So, to summarize: >> >>1) Dan couldn't make iLBC work at all (but only tried app_echo), but >>Michael seemed to use it OK. >> >> > >I have recent reports from some users on dialup that the quality improvement is >"great!" > > > >>Dan: Try using something other than app_echo: perhaps app_echo is >>sending frames to you in the wrong format or something? Do you get that >>message repeatedly, or not? >> >>Also, just to make it easy, I'd copy the ilbc directory from asterisk >>CVS HEAD, instead of decoding it yourself, just to make sure that you're >>extracting it properly. >> >> > >I copied the ilbc directory from the build I used on my asterisk server, >CVS-12/22/03-22:47:35 > >That code is pretty stable in the asterisk tree isn't it? > No, it changed a couple of days ago, actually. (a slightly different API to iLBC; added new parameters). I guess the total actual bandwidth for iLBC is slightly less than for GSM, but only because it uses 30ms frames, and not 20ms frames. In the current code, you can probably improve things for modem users by changing this: /* find mimumum frame size */ toRead = 160; /* default */ To something like this: /* find mimumum frame size */ toRead = 320; /* default */ And then you'd get 40ms minimum frame sizes on outgoing (iLBC would then use 60ms, speex/gsm/ulaw would use 40ms). You could use 480, and get them all to use 60ms. Basically, the overhead of IP+UDP+IAX2 at 20ms is like 12kbps; if you use 40ms frames, it drops to 6kbps, etc.. (and it's all really the IP+UDP headers, the IAX2 headers are tiny). As you can see, this makes more difference than the codecs do. -SteveK |