Since writing my original article some time ago about the setup of SOHO Asterisk, much as changed in the Asterisk world. Digium has released hardware with more reliable drivers, echo cancellation has gotten better, and the systems I have setup since then have taught me a few things. So to answer the same question as before...

How do I build an echo-free and trouble-free system??

With the improvement to Asterisk both in the SIP protocol and echo cancellation, it is now quite possible to build a rock solid system that is completely VoIP on the customer side. Mind you, if you want reliability, you need to buy decent equipment. I know many people may disagree with me here, but you just are not going to get that level of reliability with a $50 VoIP phone. Here are my recommendations on hardware:

Core PC: Via EPIA /w 400Mhz or 1.0GHz C3 Processor, 512MB RAM - 1GB RAM, HDD Optional (I'll get to that in a bit)

PSTN Interface: Digium TDM400P (Supports 1-4 FXO/FXS lines depending on your needs)

Phones: Polycom or Snom phones (yes I know they are expensive but they are worth it)

Wifi Phone: I have gone back an forth on UTStarcom phones. Their original F1000s were a bit unstable especially when using WPA encryption, but the new F1000g's and F3000s are great phones. Linksys also makes a good phone the WIP-300. Bad news is that battery life is horrible on them and their range is not as good as the UTStarcoms

WiFi AP: Linksys WAP54G /w hacked firmware of your choice (you are definitely going to want to play with the power output settings on this). The newer WAP54GPs are nice, but their max power output seems to be clamped at around 25mw. Hoping to see some hacked firmware soon that allows for more editing of that.

POE Switch: Netgear FS726TP or FSM7352PS (depends on how much scalability you want) or Linksys SRW224P

Power: APC 600VA or higher UPS (You REALLY need this)

Before you do anything to setup this system, make sure you have a professionally wired network. Slapping a bunch of Cat5e anywhere might be fine for that gaming network you set up in college, but VoIP is quite a bit more picky. Remember you are trying to send audio in realtime over a technology that wasn't ever really designed for realtime. Some of the biggest problems occur from running cables next to fluorescent lighting and other noise generating sources.

Now assuming you have a solid network infrastructure built, you can patch that over to your PoE switch. Generally you are going to want to have a separate VLAN for your phones and data networks. Even in a small environment, it is good to set that up now so it can scale with you. Some may debate this, but for systems 20 phones or less, QoS really isn't needed — especially if you have separate VLANs for your data and phone networks.

OK with the base network built, you are now ready to start building a phone system. Your best start on this is reading the Asterisk Handbook and other docs available on http://www.asterisk.org. Instead of re-hashing that here, I'll point out a few things it took me a bit to learn.

1) There are two factors that determine how powerful your Core PC needs to be - Number of Phones AND amount of transcoding. You could probably run up to 100 phones on a 400Mhz system if you went all ulaw -> ulaw for your VoIP Codec. This of course it not necessarily practical on a network standpoint however. Generally I'll run up 12 phones ulaw for the 400 Mhz system and 20 phones on the 1GHz system and use ulaw as the codec. Of course there is going to be some processing for things like voicemail, conferencing, etc. If you need and want to support more phones and codecs than that, it would really probably be a good time to start looking to a 1U Single or Dual Processor Server.

2) Digium cards HATE and I do mean HATE heat. Make sure whatever computer or server you select has as much air distribution as possible. Also, don't put the box in the same room as your furnace (you'd be surprised how many clients I have gone into and seen this). If you can't achieve either of these, you are better off either using Digiums T1/E1 cards and a PRI line OR a channel bank for your FXO needs. They tend to hold up to higher temperatures better. Ignoring this part leads to unstable systems. (I found this out the hard way)

3) Digium Cards don't share well in some systems. Make sure whatever system you put this into has free IRQs. The cards like to have their own IRQs or they sometimes crash the system. This is especially true of the quad T1/E1 cards as they generate 1k+ interrupts per second (and that's just at idle with drivers loaded). Installing more than two cards tends to be a challenge because of this, so if you are going for future scalability, consider that NOW.

4) Consider using a Compact Flash based configuration. Check out http://www.astlinux.org. Very nice little asterisk implementation and you can run the whole thing with a Compact Flash card (to boot) and a USB memory stick (for configuration data). It generates less heat, and you don't have to worry about HDD failure. Remember USB sticks have a limited lifetime also. The CF card should last you the life of the system as you don't really write to it. Make sure you make backups of your configs in any case. Astlinux gives you a web-interface to do this.

5) Get familiar with ztmonitor (it's a part of the zaptel distribution) Balancing your in and out levels on your lines is what is going to get rid of your echo. You want to make sure both input and output received and transmitted by the card are as close to the same as possible. Call up a friend and run ztmonitor -v on the channel you are trying to balance. Watch the levels as you both talk and adjust the rxgain and txgain in zapata.conf as appropriate. ZAPTEL NEEDS TO BE RESTARTED BEFORE THESE CHANGES TAKE EFFECT!

Now there are some real benefits of going with SNOM phones over other cheapo varieties. My experience with many of the other low cost phones is that they look and feel like low cost phones. Some even I would swear were made by Fisher-Price. If you are building this for yourself, this may be fine. If you are building for a client, wouldn't it be embarrassing to have them point that out? Many people think because they are going open-source for their phone system that it should cost next to nothing. Get that out of your head. You always get what you pay for. This is not to say there aren't some other good phones on the market. I also recommend the Polycom (somewhat cheaper but fairly decent) and Cisco Phones (far too expensive). Here is what you get for spending the extra bucks.

  • Excellent Intercom Support (my wife really hates that one)
  • Stable Working Line Indication Lights
  • Remotely Rebootable and Configurable
  • http html config files (you can really have some fun if you know PHP/mySQL by dynamically creating configs on the fly)
  • A nice solid, stable and professional looking phone.

Remember this configuration is not for every situation. If you are building a system for yourself, you may want to play around with a few different configurations both VoIP or non-VoIP. If you are doing this for a client, their final configuration is going to be based off their needs. Some offices may not be conducive to running a network and an Analog system may be a better fit. Any way you install it, remember you are representing Asterisk to the market. The more rock solid systems that are in place around the world, the more credibility it will have to non-techies.

Of course as always, your mileage may vary.

If you'd rather have a system built for you, we offer some different options at Our Website

Written By:

Raymond McKay
RAYNET Technologies LLC

This page has been viewed 27477 times since Thu 15 of Dec, 2005 (19:47 UTC)

Created by: raymckay, Last modification: Fri 13 of Apr, 2007 (16:30 UTC)
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+