The topics covered in this chapter are:
Installing Elastix Unified Communications Server software
Inserting the CD-ROM in the desired server or host
Choosing the system language
Choosing the keyboard type
Partitioning the hard disk
Configuring the network interfaces
Selecting a proper time zone
Entering the password for the user root
Logging into the system for the first time
There is a revolution going on in the telecommunications field these days. The world is getting smaller, bandwidth is growing, and protocols are getting increasingly standardised, open, and stable.
It was in 1999 when Mark Spencer began a very important project: Asterisk PBX. The advantages of open source licensing allowed this project to develop features unachievable using traditional telephony devices, at very competitive prices.
Nowadays, enterprises are not merely looking for telephonic solutions (PBX) anymore; they are looking for integrated, complete, and out-of-the box solutions that allow them be as productive as possible. They want to keep their co-workers connected, reachable, and available at all times. If a CTO calls any coworker and the call is not answered, because the person was at the lobby receiving a customer, it will be routed to this coworker's cellular phone, which happens to have a Session Initiation Protocol (SIP) client registered to the PBX using the wireless LAN of the building.
The cost of this call is almost $0. However, if this coworker does not answer his cell phone, this call can be forwarded to a voicemail. The Voicemail System can send the voice message to an e-mail and when this person arrives at the office, he will have the "message waiting" indicator LED on his phone notifying him that he has a voice message.
We all know that Asterisk runs on Linux and has gained so much attention that it has made system administrators, integrators, developers, and tech-savvy individuals see a big opportunity in business, but sometimes their knowledge of Linux is limited. This has led to projects such as FreePBX, Trixbox, AsteriskNOW, Elastix, and PBX in a Flash that fulfill the need to configure and administer Asterisk PBX without being a Linux expert.
However, Edgar and José Landívar of Palosanto Solutions went far beyond this. In March 2006, they released the first version of Elastix. This first version was only a visual reporting tool, and by December 2006, Elastix was officially released as a Unified Communications suite using Linux CentOS as the operating system.
The project began to gain attention because all the communications software was completely integrated and available with the PBX engine. There was no need to recompile the fax system, for example. You just had to configure it. There was no need to recompile the drivers for a public switched telephone network (PSTN) card. You only had to install it physically on your server (or PC), Web-GUI would detect the card, and you would be able to configure it as well.
In many Latin American countries, digital E1 telephony lines use a very old and limited protocol called Multi-Frequency Compelled R2 (MFC/R2 or just R2). In order to make this kind of telephony lines and cards support MFC/R2 for Asterisk, there is a module from an abstraction layer called Unicall (by Steve Underwood) that must be downloaded and compiled; after this patch, Asterisk has to be recompiled. This situation was very stressful for many aficionados. However, thanks to Palosanto Solution's view, since the first release of Elastix, this library has been compiled and installed. Users just needed to configure all the parameters to have their R2 E1 lines work with Asterisk.
Later, with the help of Moisés Silva (the creator of the Openr2:MFC/R2 signaling library), the support for MFC/R2 protocol was much easier. Providing support for the Spanish language gave Elastix a big advantage over other open source telephony distributions. This innovative "vision" has made this project very important these days in the open source telephony solutions community. Today, Palosanto Solutions have achieved a long list of awards and more than one million downloads.
Elastix is an open source unified communications platform that uses Community Enterprise Operating System Linux(CentOS) as the operating system. The best way to describe Elastix is with the following diagram:

As you can see, the elements involved in Elastix's architecture allow any user or enterprise to use the PBX as a gateway to the PSTN, and incorporate many other tools, programs, and elements to communicate in a more efficient way.
For example, users can receive a fax in their e-mail account, or they can have remote extensions in order to integrate all office branches and use them as a single entity to reduce call costs.
Users can also start video calls and video conferences by using their own devices such as cell phones and tablets.
Elastix's main features can be grouped in general as IP-PBX, fax, e-mail, collaboration, and messaging features. The following sections list these features, among others.
The following table lists Elastix's general features:
The following table lists Elastix's telephony features:
The following table lists all the features related to instant messaging:
Elastix Unified Communications Server's operating system is CentOS Linux. To install it, we need a PC or server and a bootable CD-ROM with Elastix Unified Communications System. The most common installation process is via CD-ROM. However, it is possible to install Elastix by using a USB device or virtualization software. For the purposes of this book, we will be working with Elastix Stable Release 2.5.0, which can be downloaded from www.elastix.org.
Depending on the hardware specifications, we have to choose between a 32-bit and a 64-bit distribution. Considering that 32-bit operating systems cannot work with more than 4 GB RAM computers, it is always desirable to work with 64-bit operating systems in order to have a more stable and reliable system.
The minimum system requirements for a small office with 12 analog lines (or trunks) and perhaps 12 extensions are as follows:
CPU Speed: 1 GHz
RAM: 1 GB RAM
Hard Disk: At least 80 GB
It is very important to create a very good design for any Unified Communications System from the beginning. It does not matter how many features your system may have (which involves the PBX part) or how amazing it is, if the voice quality is poor, the chances of replacing your system with another solution are very high.
The main elements to cover when designing a VoIP solution are as follows:
Resources of the hardware on which the Elastix Unified Communications System will be installed
Quality of service in the LAN/VLAN
Number of simultaneous (or concurrent) calls expected
Number and type of external lines and internal endpoints
Transcoding, recording calls, conferencing, and queues, as they demand more resources than a regular two-way call
Additional services such as an e-mail service and a DHCP service
Before installing Elastix Unified Communications Server, it is necessary to check whether the PC or the server has CD-ROM booting capabilities. If this booting option is not available, please try using a USB device or an external CD-ROM device.
In order to check the booting capabilities of a PC/server, we must access its BIOS (which stands for Basic Input Output System (BIOS) and follow its menu either to check it or enable it. This is usually done by pressing the Delete, F1, F2, or Esc key.
After downloading the Elastix Unified Communications Server software, the file will be saved as an ISO image. It is mandatory to "burn" this image to a CD by using burning software and selecting the BURN ISO IMAGE or BURN ISO or BURN IMAGE option.
Turn on the destination device (PC or Server).
Place the CD into the CD tray immediately after turning on the PC/server. If all goes well, we will see the following screen:
Press the Enter key at the boot prompt to start the installation process.
We can wait for 15 seconds or simply press the Enter key, and the installation process will start automatically. However, we will describe the options accessible with the F1, F4, F3, F4, and F5 keys. The first option F1-Main will allow us to return to the Main Booting Menu. The F2-Options are the Installer Boot Options.

In this option, it is possible to select booting options such as to disable hardware probing (linux noprobe), enable rescue mode (linux rescue) and so on. To enable any of these booting options, we just type the desired option after the boot prompt and press Enter. Sometimes, when the Advanced Programmable Interrupt Controller (APIC) is present on newer motherboards and causes some problems during installation, it has been known to cause problems on older hardware. In order to avoid such issues, it is better to disable it. This can be done by typing linux noapic
or linux acpi=off
. This is useful on some older systems and is a requirement for using advanced power management (APM). This will disable the hyper-threading support of our processor. The F3-General option will display the General Boot Help.

The F4-Kernel provides Kernel Parameter Help. To pass an option to the kernel, we use the format: linux <options>
.

The F5-Rescue option is used for rescuing an already-installed system.

The next screen is the Choose a Language screen. On this screen, we choose the language that we will use during the installation process. As shown at the bottom of the screen, the Tab key allows us to jump between options. The Spacebar key will let us select any option with * and may work as the Enter key. The F12 key will select the highlighted option and go to the following screen.
Here are the steps to select the system's installation language:
Select the language you would like to use by using the arrow keys from the keyboard.
Press Tab to move to the OK button.
Once the OK button is highlighted, press the Spacebar key or Enter.
These steps are shown in the following screen-shot:

After the previous step, the following screen may or may not appear; it depends on the hard disk status of the PC/server. If the hard disk has not being partitioned or does not have a valid partition table, it will indicate the need to initialize the disk. The YES option is already highlighted. Press Enter to proceed.

The next screen is the Partitioning Type screen. It displays the hard disk or disks detected by the installation script. If the PC/server has a RAID array of disks, the installation program will also display it on this screen as a single hard disk. The installation program was created to automatically partition the selected disk. To deploy an efficient Elastix Unified Communications Server installation, it is highly recommended to dedicate the entire hard disk space.
Here are the steps to partition a disk:
Use the arrow keys from the keyboard to move the selection up to Remove all partitions on selected drives and create default layout. as shown in the next screenshot. If we have multiple drives in our system, we need to make sure that it has chosen the correct drive.
Use Tab to move to the OK button.
Press the Spacebar key or Enter.
The next image asks you to confirm the hard disk that will be formatted, as all previous data will be erased.
Tip
If your server or system has a RAID system, in most cases it is already configured from the factory, so there is no need to make any special configurations when installing Elastix. CentOS Linux sees your RAID system as a single hard disk. We need to make sure the hard disk to be formatted is equal to your RAID free space.
Choose No in the Review Partition Layout with the Tab key and then press Enter.
The next screen is the Configure Network Interface screen. It is very important to configure at least one network interface in order to have Elastix working properly.

On this screen, all the Ethernet or network interface cards detected by the installation program will appear. Select with the arrow keys the first one on the top of the list (eth0).
Select the Activate on boot option to activate the card whenever the system is restarted or initialized.
Select IPv4 support (Enable IPv4 support).We leave IPv6 support not enabled.
The next screen is called IPv4 Configuration for eth0. In this section, the main characteristics of IP addressing for the Ethernet Interfaces are set and configured. We must decide between provisioning an IP address for the Ethernet card via a DHCP server or configuring it statically (Static). It is highly recommended to assign a static IP address to the system to ensure the correct performance of all services. If the IP address is assigned via DHCP, there is a risk that the system could get a different IP address at the next restart. This can lead to the IP phones never registering, for example.
To configure a static IP address, it is imperative to know which IP address, net mask, gateway, and DNS will be used. To add these values, use the arrow keys to move to the desired option and press Enter to add/edit them. At the end, we press Tab to highlight the OK button and press Enter to go to the next step.
In the Miscellaneous Network Settings, we must add the Network Gateway IP address and the primary and secondary DNS addresses in order to route all packets through the LAN. At the end, we press Tab to highlight the OK button and press Enter to set these parameters and proceed to the Hostname Configuration screen.
On the next screen, we declare the name of the system. It could be elastix-server or elastix-pbx or whatever name you decide, just to identify the server on the network. If we select the option to name the system automatically via DHCP, the LAN DHCP will assign the name of the server if this option has already been set in the DHCP server.
If not, our server will have the name localhost. We select the manually option with the Spacebar, then go to the editing section with the Tab key and type the desired name for our system. Finally, we press Tab to highlight the OK button and press Enter.
After setting the server's time zone, the most critical screen will be displayed, called Root Password. Here, the password is set for the super-administrator user of the system (root). If this section is skipped or the password is forgotten, the system's security and operations are compromised. Although there are some tricks to changing the root password even if the system is in production, it is better to set this password at this time. We will use a complex but easy-to-remember password. This password is case sensitive, so we check whether the Caps Lock key is enabled or disabled.
Type the password twice in the relevant boxes. When finished, use the Tab key to move to the OK button and press Enter.

After this step, a variety of screens will appear. These screens will inform you that the Elastix System is being installed and its status (Dependency Check, Formatting, and Package Installation).

When the Package Installation screen appears, it means that all packages needed for the system are being installed. The following screens show, the number of packages already installed and to be installed, the amount of time elapsed, and the remaining time to end the installation.




Finally, the installation program will ask us to remove the CD-ROM, as it will reboot the server.

When the system is rebooted for the first time, you will notice the status of services that are starting (OK or FAIL). Sometimes, the FAIL status is displayed because your system is searching for telephony cards that are not physically installed, but their drivers are being loaded.

As soon as the reboot process is finished, a script will be executed. This script will guide us through the process of setting the MySQL database administrator password and Elastix Web Login, FreePBX, VTiger, FOP, and A2 Billing administrator user (admin) password.
The screen that asks for this setting is as follows. Remember that we need to introduce these passwords twice and that these passwords should be different from the root's password. The following screen is for introducing the MySQL database root password for the admin user:
Validate the MySQL root password for the admin user:
Set the admin password for Elastix Web Login, FreePBX, VTiger, FOP, and A2Billing.
Finally, when all these steps are done, we will see the login prompt as follows:
We will log in at the login prompt with the following credentials and actions:
User: root
Password: (The one we entered in the Root Password screen)
After doing this, we will see the following screen that confirms that our installation was successful. Notice that it shows the IP address of our Elastix server:
As you can see, installing Elastix Unified Communications Server is simple process. It demands the knowledge of few parameters to install it and there is no need to recompile or compile elements or modules. Nevertheless configuring it makes the difference between an excellent communications platform or a bad one.