I have had problems for a long time when using asterisk on a non-dedicated server. This post is to share my experiences and perhaps gain a few more …
First of all my configuration: I have AMD Athlon 64 3.0 Ghz computer with kernel 2.6.18, connected through Tiny Billion 128 TA ISDN modem with a Siemens Gigaset.
I use asterisk-1.4-beta3, with latest misdn drivers, and I use SIP to connect to Voipbuster (outgoing) and Budgetphone (incoming).
I have 2Mbs internet connection with 40-50ms reported monitor times to my sip-providers.
The problem was that when my machine is used by another application (VDR, a digital video recorder) the voice quality used to drop to unacceptable levels, while CPU was still idle for 85% or so. Also disk was used heavily, but no unacceptable waiting times there.
It’s difficult to describe, but in the sound samples seem to get lost; a single spike is a hindrance but it can still be understood what is said, multiple spikes make it hard or impossible to understand what is said.
So what I did, I surfed around & experimented for months, and these are my results:
- First of all, I upgraded from old 2.4 kernel to current 2.6.18; this didn’t do much, until I enabled the preemptive possibilities in the kernel. This both improved responsiveness on all my applications as improved sound quality a little.
- I read asterisk did not like Framebuffer, so I disabled this in the kernel (later I understood you can disable this by leaving out the vga= line in lilo.conf), but this did not seem to make much difference
- I reduced the udma levels of my harddisks from udma4 to udma2; BIG improvement, now understandable voice quality, however still not acceptable quality to end-users.
- I changed the Timer Frequency of the kernel from 250Hz to 1000Hz, but this didn’t improve anything.
- I tried using ztdummy, but this only binds to zaptel and not to any of my usb-modules. I read this means it doesn’t do anything then, and indeed, it doesn’t improve anything. So I skipped all zaptel stuff, simplifies installation a lot.
- I wrote a small script that, when calling, disables use of powernowd, a small applications that saves a lot of power (and heat) when your computer is idling a lot. This also is a major improvement!
- I upgrade from asterisk-1.2 to 1.4, this also gives some improvement.
So the good news is I now have fully acceptable voice quality, the bad news is that I artificially have to slow down my harddisks (why, can’t really understand this…) and have to have a process running in the background to decide whether to save energy or to place phone-calls.
Anyone who has similar of different experience, or any ideas to further improve voice quality or speeding up my disks without losing voice quality, please post them in this thread…