Elastix, the most popular choice at VOIP telephony server as well as free IP PBX.

From the version 5, Elastix is not free actually. A license key is needed to activate your server. But, don’t worry !

Elastix old version (up to 4 version) was completely free for unlimited extensions/phones. So, I’m going to setup an old version in this tutorial.

Old version of Elastix setup in these days is really tough. Because you can not download Elastix old version software from the official Elastix site (www.elastix.org) and also you might get the system update problem. But, I will guide you to install an old version with system update setup, step by step in this tutorial.


1) To get started, click here to download an Elastix old version ISO image to burn on CD/DVD, and burn it to DVD


2) Insert the Elastix image DVD disk to your cd/dvd drive


3) Start the Server/PC to begin installation


4) Press Enter to start installation


5) Choose English as your Elastix server language, and press Enter to go next


6) Select your keyboard layout and hit Enter


7) Press Enter/Yes to initialize disk partition


8) Press your keyboard’s Up arrow key to select “Remove all partitions on selected drives and create default layout.” then press your keyboard’s Right arrow key to select Yes and press Enter


9) Press your keyboard’s right arrow to select Yes to remove all old partitions and press Enter


10) Press your keyboard’s right arrow to select No to keep default partition layout


11) Press Yes/Enter to configure network


12) Enable IPV4 network support and press OK


13) Provide your real IP address details (provided by your ISP) to access Elastix server. You can also select DHCP if you are in a local network

Note: Please do not use the same IP address which is listed in the above image, this is for example only. You must use “your” Internet provider’s (ISP’s) given IP address details.


14) Give a hostname to your Elastix server


15) Press down arrow, select your timezone, then press right arrow and press OK


16) Provide a root password to access your CentOS Linux system server


17) Provide MySQL database password and press Enter

again provide the same MySQL password and press Enter


18) Provide a login password


19) Installation done. Now you can login to your Elastix from another computer by visiting your real IP address


20) Open a browser (eg. Firefox) and visit your Elastix IP address

Click “Advanced”

Click “Add Exception”

Click “Confirm Security Exception”, and you are done.


21) As the Elastix 2.4.0 version is based on Linux CentOS 5.9 version, the CentOS 5 was officially unsupported from March 31, 2017.
So, we need to configure the system update server/mirror list, so that we can use Elastix old version for life. To do this, login to your Elastix base (CentOS Linux System) as root by using PuTTy. If you are unfamiliar about basic Linux command please click here to learn the startup command of Linux and PuTTy uses.



22) Backup the old repo file and create new one, then open repo file to add base/mirror  URL:  (Enter the below commands on PuTTy to do this)

cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
cat /dev/null > /etc/yum.repos.d/CentOS-Base.repo
nano /etc/yum.repos.d/CentOS-Base.repo

Now, copy the below script and paste it to the repo file:

# CentOS-Base.repo
# This file uses a new mirrorlist system developed by Lance Davis for CentOS.
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.

name=CentOS-$releasever - Base

#released updates

name=CentOS-$releasever - Updates

#packages used/produced in the build but not released

name=CentOS-$releasever - Addons

#additional packages that may be useful

name=CentOS-$releasever - Extras

#additional packages that extend functionality of existing packages

name=CentOS-$releasever - Plus

#contrib - packages by Centos Users
name=CentOS-$releasever - Contrib

Save and quit the file.

yum -y clean all
yum -y update

If you get any error in yum update, just ignore it, and proceed to next steps…


23) Back to web access, login to Elastix admin panel on Firefox browser, and click Updates


24) Disable deprecated mirror-list and save settings


Back to PuTTy command window.


25) Clean the mirror-list cache

yum -y clean all


26) Update the CentOS system

yum -y update


27) Now, we will install Call Center and Distributed Dial Plan extension on Elastix

cd /etc/
wget http://s3-us-west-2.amazonaws.com/featoutmedia/download/callcenter.noarch.rpm
rpm -Uvh callcenter.noarch.rpm
wget http://s3-us-west-2.amazonaws.com/featoutmedia/download/dialplan.noarch.rpm
rpm -Uvh dialplan.noarch.rpm


28) Restart the server


Close the PuTTy SSH client, and wait about 5 minutes to complete the reboot process.


29) Back to web access, login to admin panel on Firefox, and activate Firewall


30) Disable online update of PBX


Additional to do: Run the commands in PuTTy

service elastix-portknock stop

chkconfig elastix-portknock off
service elastix-updaterd stop

chkconfig elastix-updaterd off


* We can always restart or shutdown the Elastix from admin panel.


Congrats ! we have completed the Elastix free PBX installation done. Configure your extensions and Enjoy !

Click here to learn how to forward conditional call from Elastix.

Follow our site to learn about Elastix features, extensions, and more.