Thursday, June 12, 2008

Hardware Recommendations for Asterisk Installation

1. Basic Rules

Often people use low-cost (and of course low-quality) PCs bought from a supermarket or discount store, most of these PCs have much more parts included than you will need to build a PBX system. We made the experience that a real server works best, even if it is a low cost one. The most important thing about these servers is that they are produced by a major hardware supplier (like HP, IBM, etc.). For an overview of what hardware works pretty good, please consult http://www.voip-info.org/wiki/view/Asterisk+hardware. Another important thing about motherboards is the fact that they should not use shared interrupts on the PCI slots (in case you might need to use PCI cards for ISDN or analog lines/phones).

2. Motherboard

Recommendations are based on our experiences . All the motherboards recommended are Asterisk supported motherboards .A true server motherboard, like those from Intel, is most suitable for production servers. The alternative to build the machine on your own is to buy a server from a major hardware supplier like the HP ProLiant DL- or ML-Series, that can be used out of the box. There are several models (starting with the Proliant DL/ML-Series 300), that already contain a hardware RAID controller for mirroring the hard drives.

Of course it is possible to use any workstation motherboard from Asus or MSI, but these, as our experiences show, are not really suitable for prodution servers, because they mostly use shared interrupts on their PCI slots, which cause major problems when dealing with ISDN and/or analog cards that are used with Asterisk.

3.CPU

Try not to use Celeron CPUs, they have less Level2 cache which can be problematic. Also Hyperthreading CPUs are not suitable. If you want to install a PBX system on a machine with a Hyperthreading CPU, disable Hyperthreading in BIOS.

Please also keep in mind that an i386 based processor will only be able to deal with max. 4GB memory, for bigger installations, Intel XEON with EM64T or AMD Opterons are necessary.

4.Memory (RAM)

A Linux based system normally does not need oversized memory like Windows based systems do. For small installations (up to 20 extensions) 512MB is more than enough. Of course this has to be calculated with the additional applications you run on the server, that provide functionalities like soundfile-conversion of recordings etc.

When dealing with more extensions, 2GB of memory should be used. Also one or two processor(s) of the Intel XEON or AMD Opteron will be necessary to provide adequate processing power and minimized processing delays.

5.Hard disks

Several harddrive manufactorers offer hard disks with higher reliability (e.g. Seagate ES and ES.2 series drives) specially for servers without being really more expensive than desktop drives. A PBX system based on Asterisk will typically not stress the harddrives, but in case you loose data, it can stress you, trust me. So using a RAID controller that offers RAID1 (disk mirroring) should be your first joice. Out of the box servers normally already have a hardware RAID controller on their motherboard. In case you do not have or cannot put a RAID controller into your PBX machine, a software RAID1 is the absolute minimum of fault tolerance.

An absolute sin is to use hard disks you accidentally found somewhere in your desk drawer. Always try to use new hard disks of the same model and size when doing mirroring.

6.Power supplies

Redundant power supplies are usually available for mid-range servers and above of the major manufacturers. On small installation sites sometimes it is not possible to connect 2 power supplies to 2 different power circuits, but keep in mind that als one of the power supplies could fail, an electrical power outage is not the only disaster that can happen.

7. Local network connectivity

When installing a mid range system or above, physically splitting the VoIP network from the rest of the network makes sense, especially when the existing network is not a state-of-the-art one that uses 100Mbps instead of 1Gb. Physically splitting is meant to introduce VLANs (on the same manageable network switch) or to use different switches for the VoIP traffic only. The latter possibility also offers the advantage that you can power the VoIP devices using PoE (Power over Ethernet) and you get rid of the power supplies for these devices and of the need to have free power outlets everywhere you install a phone. We usually use managed Linksys PoE layer2 switches (SRW208P and SRW224P) in combination with Snom 3x0 phones. The Linksys switches have 2 x 1Gb uplinks that can be used to connect the PBX system to. If you decide to split the VoIP network, you should ensure a second ethernet interface is present in your server. This configuration is necessary because you will need to access your PBX machine for offering services to your client PCs like enable the downloading of recordings via a webserver running on the PBX server.

8.Internet connectivity

In case you plan to receive or send phone calls via the internet from or to an ISP using VoIP, it is a good idea to rent a second internet line for the VoIP traffic only. Otherwise you will end up in a very bad voice quality everytime when someone downloads data from or uploads data to the internet. The other option is to implement a traffic shaper on the internet gateway.

Often companies do have multiple branch offices that need to be connected via VoIP. You should consider using a VPN solution because many ISPs priorize the RTP traffic much lower than the rest because of leak of bandwidth, and as the voice traffic between 2 VoIP phones is of type RTP, the voice connection might get delayed or stuttering.

9.Telephony cards

Basically we have to seperate two technologies: analog and digital. Analog telephony cards are used to connect traditional subscriber lines or analog phones to the PBX system. They (mostly) have RJ11 (6 pin) connectors, where only the middle two ones are used. Digital telephony cards are mainly used for ISDN Basic Rate Interfaces (BRI, 2 voice channels per line) and ISDN Primary Rate Interfaces (PRI, 23 voice channels for T1 or 30 voice channels for E1 per line). ISDN BRI interfaces have RJ45 (8 pin) connectors, ISDN PRI interfaces have either coaxial or RJ45 connectors.

We have tried most of the cards that are compatible with Asterisk PBX, most of them worked properly. We mainly use those low-cost single ISDN BRI cards based on the HFC chipset (around 25 Euro or 30 US$), junghanns.net QuadBri carss (4xISDN S0), the Digium E1/T1 cards as well as the OpenVox analog cards. If you use HFC-based cards like the junghanns.net QuadBri, you have to use the software patches provided by and available at junghanns.net website. When using the Digium E1/T1 PCI cards, you have to take care about the voltage on the PCI bus of your server. A description which card to use, can be found here.


Configuration examples

Here are some examples like we successfully use it at customers sites:

Asterisk basd PBX-system for 16 extensions VoIP


Asterisk based PBX system for 190 extensions VoIP

  • HP ProLiant DL360, 4GB RAM, 2 x Intel XEON DualCore, 2.33GHz
  • 2 x 142GB SAS hard disks(hardware RAID1)
  • redundant power supplies
  • Digium TE410P 4 x ISDN E1 card
  • Snom 370 and Snom 320 VoIP Phones
  • 10 x Linksys SRW224P, managed 24 port 10/100 and 2 ports 10/100/1000 PoE switch
  • 4 x Linksys SRW2048, managed 48 port 10/100/1000 backbone switch

  • Debian Linux 4.0 (Etch)
  • Asterisk 1.4.17 (BriStuffed)
  • IAX2 uplink to ZaKoVoIP for outbound calls

Asterisk based IVR and CallCenter infrastructure

  • HP ProLiant DL360, 1 x Intel XEON 2.33GHz, 2GB RAM (media gateway)
  • 2 x 142GB SAS hard disks (hardware RAID1)
  • redundant power supplies
  • Digium TE410P 4 x ISDN E1 card
  • HP ProLiant DL360, 2 x Intel XEON 2.66GHz, 4GB RAM (application server)
  • 2 x 142GB SAS hard disks (hardware RAID1)
  • redundant power supplies
  • HP ProLiant DL380, 2 x Intel XEON 2.66GHz, 4GB RAM (database server)
  • 6 x 142GB SAS hard disks (hardware RAID1, hardware RAID 5 + spare)
  • redundant power supplies
  • Linksys SRW2048, managed 48 port 10/100/1000 backbone switch
  • 2 x Linksys SRW2024, managed 24 port 10/100/1000 switch

  • Debian Linux 4.0 (Etch)
  • Asterisk 1.2.26.1 - ZaKoTel optimized build

Use a hardware that is ment to be a server with apropriate CPU(s) and memory to get rid of headache with not working PBX systems.