New Install Asterisk 18 from source on CentOS Stream 8
Since Centos 7/8 approaches it’s EOL, below you will find all necessary commands and files to new install Asterisk 18 from source on Centos 8 Stream.Installing Asterisk 20 From source On Rocky 9
Prerequisites
First of all make sure that you run all command as root user. Just run su command and enter root password.
Update the system and install required dependencies.
yum -y update
yum-y install nano wget tar ncurses-develConfiguring dependencies
First download Asterisk sources. /usr/src is a very convenient place to store all source files.
cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz
tar zxvf asterisk-18-current.tar.gz
rm -rf asterisk-18-current.tar.gz
cd asterisk-18*/Just a Note:
Now (compared to eg. Asterisk 11) you don’t have to name all required dependencies (eg. make gcc gcc-c++ lynx bison ncurses-devel). You do all that with pre-created script. To be able to download more resources (like opus codec or spandsp for faxing) add EPEL repository first.
yum -y install epel-release # optional
contrib/scripts/install_prereq installSince CentOS Stream 8 required 64bit system we can just add --libdir=/usr/lib64 to configure command.
Since chan_pjsip requires some additional libraries you may want to add --with-jansson-bundled --with-pjproject-bundled to configure command.
Just a note:
Beginning with Asterisk 15.0.0, it is enabled by default but can be disabled with the --without-pjproject-bundled option to ./configure.
./configure --libdir=/usr/lib64If you see “Please install the “libedit” development package” error it means that you need to install libedit-devel package first. You may download it with PowerTools repo with command and then you need to run ./configure once again.
dnf --enablerepo=powertools install -y libedit-develThen you could just make and this would compile your software. But it’s better to be able to select some additional options, functions, applications, codecs, etc…..
To do that use make menuselect option. It will show you a menu in which you may simply select what you need.
make menuselectmakeThe system tells you what to next. This will finally install Asterisk on your server.
make installIf you selected format_mp3 just follow on-screen instructions.
contrib/scripts/get_mp3_source.shmake samplesmake configtouch /usr/lib/systemd/system/asterisk.service
cat <<'EOF' >/usr/lib/systemd/system/asterisk.service
[Unit]
Description=Asterisk PBX and telephony daemon.
#After=network.target
#include these if asterisk need to bind to a specific IP (other than 0.0.0.0)
Wants=network-online.target
After=network-online.target network.target
[Service]
Type=simple
Environment=HOME=/var/lib/asterisk
WorkingDirectory=/var/lib/asterisk
ExecStart=/usr/sbin/asterisk -mqf -C /etc/asterisk/asterisk.conf
ExecReload=/usr/sbin/asterisk -rx 'core reload'
ExecStop=/usr/sbin/asterisk -rx 'core stop now'
LimitCORE=infinity
Restart=always
RestartSec=4
# Prevent duplication of logs with color codes to /var/log/messages
StandardOutput=null
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOFNow you can add the asterisk service to the startup, start it and check its status.
systemctl enable asterisk.service
systemctl start asterisk
systemctl status asterisk