We will show you how to install Asterisk on CentOS 7. Asterisk is an open source software implementation of a telephone private branch exchange (PBX) and includes many features such as: voicemail, conference calling, call recorder, automatic call distribution, interactive voice response, real time monitoring and debugging console etc.
Table of Contents
1. Login via SSH and update the OS
Make sure your server OS is fully up-to-date:
yum clean all
yum update
2. Install all required packages and dependencies
Install all required packages and dependencies on your Asterisk VPS:
cd /opt
git clone git://github.com/asterisk/pjproject pjproject
cd pjproject/
./configure --libdir=/usr/lib64 --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr
make dep
make
make install
ldconfig
4. Install SRTP
cd /opt
wget https://downloads.sourceforge.net/project/srtp/srtp/1.4.4/srtp-1.4.4.tgz
tar zxvf srtp-1.4.4.tgz
cd srtp
autoconf
./configure CFLAGS=-fPIC --prefix=/usr
make
make runtest
make install
ldconfig
5. Install jansson
cd /opt
wget http://www.digip.org/jansson/releases/jansson-2.7.tar.gz
tar zvxf jansson-2.7.tar.gz
cd jansson-2.7
autoreconf -i
./configure --prefix=/usr/ --libdir=/usr/lib64
make
make install
ldconfig
6. Install Lame
cd /opt
wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
tar zxvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure
make
make install
7. Install Asterisk
Add a new user named ‘asterisk’:
adduser asterisk -M -c "Asterisk User"
cd /opt
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
tar zxvf asterisk-13-current.tar.gz
cd asterisk-13*
contrib/scripts/install_prereqinstall ./configure --libdir=/usr/lib64 contrib/scripts/get_mp3_source.sh make menuselect
8. Configure Asterisk
Choose which modules to build, select ‘Save & Exit’ and continue with the installation:
make
make install
make config
ldconfig
chkconfig asterisk off
Set permissions of certain files and directories related to Asterisk:
Edit the PHP configuration file and set the upload_max_size value to 128 MB or higher.
vi /etc/php.ini
upload_max_filesize = 128M
Edit the main Apache configuration file (/etc/httpd/conf/httpd.conf) and change user and group from ‘apache’ to ‘asterisk’. Also, change ‘AllowOverride None’ directive to ‘AllowOverride All’.
Restart the Apache web server for the changes to take effect:
systemctl restart httpd.service
10. Configure MariaDB
Log in to the MariaDB server using the ‘root’ user login credentials and create new user and two databases:
mysql -u root -p
MariaDB [(none)]> CREATE DATABASE asterisk;
MariaDB [(none)]> CREATE DATABASE asteriskcdrdb;
MariaDB [(none)]> CREATE USER 'asterisk'@'localhost' IDENTIFIED BY 'Y0uR-PASSW0RD';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON asterisk.* TO 'asterisk'@'localhost';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO 'asterisk'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> quit;
Do not forget to replace ‘Y0uR-PASSW0RD’ with a strong password.
That is it. The Asterisk and installation is complete.
Of course you don’t have to install Asterisk on CentOS 7 yourself if you use one of our CentOS 7 VPS Hosting services, in which case you can simply ask our expert Linux admins to install Asterisk on CentOS 7for you. They are available 24×7 and will take care of your request immediately.
PS. If you liked this on how to install Asterisk on CentOS 7, post please share it with your friends on the social networks using the buttons on the left or simply leave a reply below. Thanks.
14 thoughts on “How to Install Asterisk on CentOS 7”
ok thank you i’ve reinstall and i’ve notice srtp warning shutdown, now i found the sip.conf, so where i must to configure the registration user , in config/samples or in /etc/asterisk ? because i’ve create user and dialplan on etc/asterisk/ sip.conf and extensions.conf my softphone can’t registration
thank you
Our tutorial is tested and working without a problem. Have you made sure that you’ve followed the instructions correctly?
Please try doing all of the described steps again and be more careful.
I do not see anything about installing httpd or MariaDB as requirement, but is does pop up in the configuration instructions later on. Is this an oversight, or do you asume a certain level of installed apllications on the host?
Great article. Thank you
Thanks for this! followed everything that’s written here and it works 100%
I’ve followed all steps but i can’t found the sip.conf and extensions. Conf, so where i can create users
You can find the configuration files in the
/etc/asterisk
directory.yes i see, but still not found the sip and extension.conf, i’ve installed the asterisk
Please check in the /opt/asterisk-13.17.0/configs/samples/ directory.
ok thank you i’ve reinstall and i’ve notice srtp warning shutdown, now i found the sip.conf, so where i must to configure the registration user , in config/samples or in /etc/asterisk ? because i’ve create user and dialplan on etc/asterisk/ sip.conf and extensions.conf my softphone can’t registration
thank you
You should edit the configuration files in the
/etc/asterisk
directory and then restart Asterisk for the changes to take effect.Before installing SRTP, we must replace “nano /opt/srtp/test/rtpw_test.sh” RTPW=rtpw by RTPW=./rtpw
there’s no file under /var/run called asterisk ???
Our tutorial is tested and working without a problem. Have you made sure that you’ve followed the instructions correctly?
Please try doing all of the described steps again and be more careful.
I do not see anything about installing httpd or MariaDB as requirement, but is does pop up in the configuration instructions later on. Is this an oversight, or do you asume a certain level of installed apllications on the host?
Hi Robert,
Installing Apache and MariaDB on CentOS 7 is explained in one of our previous blog posts.
Hi! I’m stuck at Step 8 in “make” since it says “collect2: error: ld terminated with signal 11 [Segmentation fault], core dumped”.
I am currently using the latest Linux kernel.