Voice quality asterisk-1.4/misdn/voip on nondedicated server

Hello all,

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:

  1. 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.
  2. 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
  3. 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.
  4. I changed the Timer Frequency of the kernel from 250Hz to 1000Hz, but this didn’t improve anything.
  5. 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.
  6. 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!
  7. 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…

Thanks!