How to Install Asterisk on CentOS 7

how to install asterisk on centos 7

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.

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:

yum groupinstall core base "Development Tools"
yum install lynx bison php-mbstring php-pear php-gd php-xml libsepol-devel libtiff-devel openssl-devel subversion e2fsprogs-devel keyutils-libs-devel krb5-devel libogg libogg-devel libtool libtool-ltdl-devel kernel-headers kernel-devel tftp-server ncurses-devel sendmail sendmail-cf sox newt-devel libtiff-devel subversion doxygen texinfo mysql-connector-odbc unixODBC-devel sox gnutls-devel ncurses-devel net-snmp-devel neon-devel uuid-devel libuuid-devel audiofile-devel gtk2-devel speex-devel gsm-devel sqlite-devel perl-DateManip spandsp-devel freetds-devel iksemel-devel corosynclib-devel lua-devel radiusclient-ng-devel libxslt-devel portaudio-devel libical-devel gmime-devel bluez-libs-devel jack-audio-connection-kit-devel libedit-devel jansson-devel libsrtp-devel

3. Install pjproject

cd /opt 
git clone git:// pjproject 
cd pjproject/ 
./configure --libdir=/usr/lib64 --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr
make dep 
make install 

4. Install SRTP

cd /opt  
tar zxvf srtp-1.4.4.tgz
cd srtp 
./configure CFLAGS=-fPIC --prefix=/usr  
make runtest
make install

5. Install jansson

cd /opt 
tar zvxf jansson-2.7.tar.gz 
cd jansson-2.7
autoreconf -i
./configure --prefix=/usr/ --libdir=/usr/lib64
make install 

6. Install Lame

cd /opt 
tar zxvf lame-3.99.5.tar.gz 
cd lame-3.99.5
make install

7. Install Asterisk

Add a new user named ‘asterisk’:

adduser asterisk -M -c "Asterisk User"
cd /opt
tar zxvf asterisk-13-current.tar.gz
cd asterisk-13*
contrib/scripts/install_prereq install ./configure --libdir=/usr/lib64 contrib/scripts/ make menuselect

8. Configure Asterisk

Choose which modules to build, select ‘Save & Exit’ and continue with the installation:

make install 
make config 
chkconfig asterisk off

Set permissions of certain files and directories related to Asterisk:

chown asterisk. /var/run/asterisk
chown asterisk. -R /etc/asterisk
chown asterisk. -R /var/{lib,log,spool}/asterisk
chown asterisk. -R /usr/lib64/asterisk
chown asterisk. -R /var/www/

9. Configure PHP

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)]> quit;

Do not forget to replace ‘Y0uR-PASSW0RD’ with a strong password.

Enable log file rotation:

vi /etc/logrotate.d/asterisk

add the following lines:

/var/log/asterisk/full {
        rotate 5
        create 0640 asterisk asterisk
        /usr/sbin/asterisk -rx 'logger reload' > /dev/null 2> /dev/null || true

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 7 for 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”

  1. I’ve followed all steps but i can’t found the sip.conf and extensions. Conf, so where i can create users

  2. 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.

    • 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?

  3. 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.


Leave a Comment

To prove you are human please solve the following *