2017.08.23 12:51
http://kb.cloudatcost.com/uncategorized/how-to-install-and-setup-asterisk-14-pbx-on-centos-7/
We will be using CentOS 7 for Asterisk setup with minimal installed packages so need to ensure system is up to date and you have root privelges on the system for the installation of different required packages.
Execute the following command below to update your system
yum update
Installing the required Packages
yum install gcc gcc-c++ php-xml php php-mysql php-pear php-mbstring mariadb-devel mariadb-server mariadb sqlite-devel lynx bison gmime-devel psmisc tftp-server httpd make ncurses-devel libtermcap-devel sendmail sendmail-cf caching-nameserver sox newt-devel libxml2-devel libtiff-devel audiofile-devel gtk2-devel uuid-devel libtool libuuid-devel subversion kernel-devel kernel-devel-$(uname -r) git subversion kernel-devel php-process crontabs cronie cronie-anacron wget vim
Once the required packages are installed you can see the updates including all its required dependencies.
We need to enable and start mariadb on boot
systemctl enable mariadb
systemctl start mariadb
You can check the status of mariadb
systemctl status mariadb
● mariadb.service – MariaDB database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2016-11-21 06:05:29 EST; 2 days ago
Main PID: 1948 (mysqld_safe)
CGroup: /system.slice/mariadb.service
├─1948 /bin/sh /usr/bin/mysqld_safe –basedir=/usr
└─2801 /usr/libexec/mysqld –basedir=/usr –datadir=/var/lib/mysql –plugin-dir=/usr/lib64…
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
Once mariadb is setup and running we can change the root password for it, remove test database and remove ananymous user and disallow remote user login.
Execute the command as given below:
mysql_secure_installation
Cleaning up…
All done! If you’ve completed all of the above steps, your MariaDB
installation should now be secure.
Furthemore, we need to install libjansson.
Jansson is a C library for encoding, decoding and manipulate JSON data.
we can download unpack and compile it using the command given below:
wget http://www.digip.org/jansson/releases/jansson-2.7.tar.gz
Once done you can see the file as jansson-2.7.tar.gz which we can extract by executing
tar -xzvf jansson-2.7.tar.gz
When it is extracted successfully we can see the file named jansson-2.7
Again we need to compile this file by executing command after changing directory to this jansoon-2.7 file as given below:
./configure –prefix=/usr
make clean
make && make install
ldconfig
Finally, its time to install Asterisk 14.2.0
We will go with the latest package from their official web link http://downloads.asterisk.org/pub/telephony/asterisk/
We will be using wget command to download its package as shown below
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-14-current.tar.gz
Now if you list the file you can see the tar file as asterisk-14.2.0-rc1.tar.gz
again we will follow the same method as above to extract it as shown below
tar -xzvf asterisk-14.2.0-rc1.tar.gz
once it is done you can ls to see asterisk-14.2.0-rc1
cd asterisk-14.2.0-rc1
./configure –libdir=/usr/lib64
Once it is installed you will see something like above image as shown.
Furthermore, we need to setup asterisk modules which is given below stepwise:
Asterisk Main menu : Just execute the command shown below and choose the appropriate options
[root@ns1 asterisk-14.2.0-rc1]# make menuselect
You can add something or remove, when you select a module there is a brief description of its purpose. In the Add-ons to enable mp3 support module select ‘format_mp3’ as shown above.
next move to core sound packages and select the formats of audio packets as shown in the image.
select all the packages from the “Music On Hold Packages” and then form the “Extra Sound Packages choose the 4 that includes a first module containing EN and the choose the “Save and Exit” button to proceed for the next step.
We need to load mp3 libraries which can be done executing the command below
[root@ns1 asterisk-14.2.0-rc1]# contrib/scripts/get_mp3_source.sh
To install the module
[root@ns1 asterisk-14.2.0-rc1]# make
[root@ns1 asterisk-14.2.0-rc1]# make install
Here we will run the below commands to install sample configuration files as indicated above
[root@ns1 asterisk-14.2.0-rc1]# make samples
[root@ns1 asterisk-14.2.0-rc1]# make config
Setup user for Asterisk
useradd -m asterisk
chown asterisk.asterisk /var/run/asterisk
chown -R asterisk.asterisk /etc/asterisk
chown -R asterisk.asterisk /var/{lib,log,spool}/asterisk
chown -R asterisk.asterisk /usr/lib64/asterisk
systemctl restart asterisk
[root@ns1 asterisk-14.2.0-rc1]# systemctl status asterisk
● asterisk.service – LSB: Asterisk PBX
Loaded: loaded (/etc/rc.d/init.d/asterisk)
Active: active (running) since Thu 2016-11-24 06:34:16 EST; 11s ago
Docs: man:systemd-sysv-generator(8)
Process: 22113 ExecStop=/etc/rc.d/init.d/asterisk stop (code=exited, status=0/SUCCESS)
Process: 3236 ExecStart=/etc/rc.d/init.d/asterisk start (code=exited, status=0/SUCCESS)
Main PID: 3261 (asterisk)
CGroup: /system.slice/asterisk.service
├─3259 /bin/sh /usr/sbin/safe_asterisk
└─3261 /usr/sbin/asterisk -f -vvvg -c
Nov 24 06:34:16 ns1.rajkishormaharjan.com.np systemd[1]: Starting LSB: Asterisk PBX…
Nov 24 06:34:16 ns1.rajkishormaharjan.com.np asterisk[3236]: Starting asterisk:
Nov 24 06:34:16 ns1.rajkishormaharjan.com.np systemd[1]: PID file /var/run/asterisk/asterisk.pid not readable (yet?) after start.
Nov 24 06:34:16 ns1.rajkishormaharjan.com.np systemd[1]: asterisk.service: Supervising process 3261 which is not our child. We’ll most likely not notice when it exits.
Nov 24 06:34:16 ns1.rajkishormaharjan.com.np systemd[1]: Started LSB: Asterisk PBX.
Setup Asterisk Database
We will need to connect to the MYSQL mariadb and create new user and database and provide the privileges needed with the following commands.
[root@ns1 asterisk-14.2.0-rc1]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 19334
Server version: 5.5.50-MariaDB MariaDB Server
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
MariaDB [(none)]>create user ‘asterisk’@’localhost’ identified by ‘******’;
MariaDB [(none)]>create database asterisk;
MariaDB [(none)]>create database cdrdb;
MariaDB [(none)]>GRANT ALL PRIVILEGES ON asterisk.* TO asterisk@localhost IDENTIFIED BY ‘******’;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON cdrdb.* TO asterisk@localhost IDENTIFIED BY ‘******’;
MariaDB [(none)]>flush privileges;
MariaDB [(none)]> exit
Bye
To launch Asterisk
[root@ns1 asterisk-14.2.0-rc1]# asterisk -r