Asterisk PBX is software implementation of Personal Branch Exchange (PBX). In this guide you will learn how to install Asterisk PBX server on CentOS 8.
Table of Contents:
What is PBX? :
PBX is a telephone exchange or switching system that serves a private organization and permits sharing of central office trunks between internally installed telephones, and provides intercommunication between those internal telephones within the organization without the use of external lines. The central office lines provide connections to the public switched telephone network (PSTN) and the concentration aspect of a PBX permits the shared use of these lines between all stations in the organization. Its intercommunication ability allows two or more stations to directly connect while not using the public switched telephone network. This method reduces the number of lines needed from the organization to the public switched telephone network.
What is Asterisk PBX? :
Asterisk is a software implementation of a private branch exchange (PBX). In conjunction with suitable telephony hardware interfaces and network applications, Asterisk is used to establish and control telephone calls between telecommunication endpoints, such as customary telephone sets, destinations on the public switched telephone network (PSTN), and devices or services on voice over Internet Protocol (VoIP) networks. Its name comes from the asterisk (*) symbol for a signal used in dual-tone multi-frequency (DTMF) dialing.
Asterisk was created in 1999 by Mark Spencer of Digium, which since 2018 is a division of Sangoma Technologies Corporation. Originally designed for Linux, Asterisk runs on a variety of operating systems, including NetBSD, OpenBSD, FreeBSD, macOS, and Solaris, and can be installed in embedded systems based on OpenWrt (Open Wireless Router). (Source: Wikipedia)
Asterisk PBX is available in Community and Commercial editions.Asterisk Community edition is a free software and distributed under GPLv2 license. Whereas, Asterisk Commercial edition provides enterprise features but have a licensing cost.
Asterisk PBX Features:
Some popular features of Asterisk PBX are.
- Voice over IP (VoIP)
- Voice Mail
- Conference Calling
- Interactive Voice Response (Phone Menus)
- Automatic Call Distribution
- Supports common VoIP, ISDN protocols
Complete list of Asterix PBX features is available on their official website.
Environment Specification:
We are using a minimal CentOS 8 virtual machine with following specifications.
- CPU - 3.4 Ghz (2 cores)
- Memory - 2 GB
- Storage - 20 GB
- Operating System - CentOS 8.2
- Hostname – asterisk-pbx.centlinux.com
- IP Address - 192.168.116.236 /24
Update CentOS 8 Software Packages:
Connect with asterisk-pbx.centlinux.com as root user by using a ssh client.
By following the best practice, update your Linux server packages before installing Asterisk PBX software.
Use dnf command to update software packages in your Linux server.
[root@asterisk-pbx ~]# dnf update -y
Last metadata expiration check: 0:00:30 ago on Wed 25 Nov 2020 08:24:39 PM PKT.
Dependencies resolved.
Nothing to do.
Complete!
All packages in our Linux server are already up-to-date.
Check Kernel version of Linux server.
[root@asterisk-pbx ~]# uname -r
4.18.0-193.28.1.el8_2.x86_64
Check Linux operating system version.
[root@asterisk-pbx ~]# cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)
Downloading Asterisk PBX 18:
Asterisk PBX 18 is a free software and you can download Asterisk PBX from their official website or Asterisk GitHub Repository.
Open Asterisk PBX website in a web browser and copy the URL of Asterisk PBX software. Currently Asterisk PBX 18 is the latest version, and it is available for download.
Use wget command to download the Asterisk PBX 18 from the copied URL.
[root@asterisk-pbx ~]# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz
--2020-11-25 20:55:00-- http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz
Resolving downloads.asterisk.org (downloads.asterisk.org)... 76.164.171.238, 2001:470:e0d4::ee
Connecting to downloads.asterisk.org (downloads.asterisk.org)|76.164.171.238|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 27886299 (27M) [application/x-gzip]
Saving to: âasterisk-18-current.tar.gzâ
asterisk-18-current 100%[===================>] 26.59M 949 B/s in 82s
2020-11-25 20:56:24 (331 KB/s) - âasterisk-18-current.tar.gzâ saved [27886299/27886299]
Extract the downloaded tarball by using tar command.
[root@asterisk-pbx ~]# tar xf asterisk-18-current.tar.gz
Installing Asterisk PBX Prerequisites Packages:
Asterisk PBX software comes with a well written script that can be used to install prerequisite software packages on Linux server.
Execute this script and install all prerequisite packages in one go.
[root@asterisk-pbx ~]# cd asterisk-18.1.0/contrib/scripts/
[root@asterisk-pbx scripts]# ./install_prereq install
...
elfutils-libelf-devel-0.178-7.el8.x86_64
emacs-filesystem-1:26.1-5.el8.noarch
fftw-3.3.5-11.el8.x86_64
fftw-devel-3.3.5-11.el8.x86_64
fftw-libs-3.3.5-11.el8.x86_64
fftw-libs-double-3.3.5-11.el8.x86_64
fftw-libs-long-3.3.5-11.el8.x86_64
fftw-libs-quad-3.3.5-11.el8.x86_64
fftw-libs-single-3.3.5-11.el8.x86_64
flex-2.6.1-9.el8.x86_64
fontconfig-2.13.1-3.el8.x86_64
fontpackages-filesystem-1.44-22.el8.noarch
fribidi-1.0.4-8.el8.x86_64
gcc-8.3.1-5.el8.0.2.x86_64
gcc-c++-8.3.1-5.el8.0.2.x86_64
gd-2.2.5-6.el8.x86_64
gdk-pixbuf2-2.36.12-5.el8.x86_64
gdk-pixbuf2-modules-2.36.12-5.el8.x86_64
ghc-srpm-macros-1.4.2-7.el8.noarch
glibc-devel-2.28-101.el8.x86_64
glibc-headers-2.28-101.el8.x86_64
go-srpm-macros-2-16.el8.noarch
google-droid-sans-fonts-20120715-13.el8.noarch
graphite2-1.3.10-10.el8.x86_64
graphviz-2.40.1-40.el8.x86_64
gtk-update-icon-cache-3.22.30-5.el8.x86_64
gtk2-2.24.32-4.el8.x86_64
harfbuzz-1.7.5-3.el8.x86_64
hicolor-icon-theme-0.17-2.el8.noarch
isl-0.16.1-6.el8.x86_64
jansson-devel-2.11-3.el8.x86_64
jasper-libs-2.0.14-4.el8.x86_64
jbig2dec-libs-0.14-4.el8_2.x86_64
jbigkit-libs-2.1-14.el8.x86_64
kernel-headers-4.18.0-193.28.1.el8_2.x86_64
keyutils-libs-devel-1.5.10-6.el8.x86_64
krb5-devel-1.17-18.el8.x86_64
lcms2-2.9-2.el8.x86_64
libICE-1.0.9-15.el8.x86_64
libSM-1.2.3-1.el8.x86_64
libX11-1.6.8-3.el8.x86_64
libX11-common-1.6.8-3.el8.noarch
libXau-1.0.8-13.el8.x86_64
libXaw-1.0.13-10.el8.x86_64
libXcomposite-0.4.4-14.el8.x86_64
libXcursor-1.1.15-3.el8.x86_64
libXdamage-1.1.4-14.el8.x86_64
libXext-1.3.3-9.el8.x86_64
libXfixes-5.0.3-7.el8.x86_64
libXft-2.3.2-10.el8.x86_64
libXi-1.7.9-7.el8.x86_64
libXinerama-1.1.4-1.el8.x86_64
libXmu-1.1.2-12.el8.x86_64
libXpm-3.5.12-8.el8.x86_64
libXrandr-1.5.1-7.el8.x86_64
libXrender-0.9.10-7.el8.x86_64
libXt-1.1.5-12.el8.x86_64
libXxf86misc-1.0.4-1.el8.x86_64
libXxf86vm-1.1.4-9.el8.x86_64
libcap-devel-2.26-3.el8.x86_64
libcom_err-devel-1.45.4-3.el8.x86_64
libcurl-devel-7.61.1-12.el8.x86_64
libdatrie-0.2.9-7.el8.x86_64
libevent-devel-2.1.8-5.el8.x86_64
libfontenc-1.1.3-8.el8.x86_64
libgcrypt-devel-1.8.3-4.el8.x86_64
libgpg-error-devel-1.31-1.el8.x86_64
libgs-9.25-5.el8_1.1.x86_64
libical-3.0.3-3.el8.x86_64
libical-devel-3.0.3-3.el8.x86_64
libicu-devel-60.3-2.el8_1.x86_64
libidn-1.34-5.el8.x86_64
libijs-0.35-5.el8.x86_64
libjpeg-turbo-1.5.3-10.el8.x86_64
libkadm5-1.17-18.el8.x86_64
libmcpp-2.7.2-20.el8.x86_64
libmpc-1.0.2-9.el8.x86_64
libpaper-1.1.24-22.el8.x86_64
libpq-12.4-1.el8_2.x86_64
libpq-devel-12.4-1.el8_2.x86_64
libquadmath-8.3.1-5.el8.0.2.x86_64
librsvg2-2.42.7-3.el8.x86_64
libselinux-devel-2.9-3.el8.x86_64
libsepol-devel-2.9-1.el8.x86_64
libserf-1.3.9-8.module_el8.0.0+45+75bba4f4.x86_64
libstdc++-devel-8.3.1-5.el8.0.2.x86_64
libthai-0.1.27-2.el8.x86_64
libtiff-4.0.9-17.el8.x86_64
libuuid-devel-2.32.1-22.el8.x86_64
libverto-devel-0.3.0-5.el8.x86_64
libwebp-1.0.0-1.el8.x86_64
libxcb-1.13.1-1.el8.x86_64
libxcrypt-devel-4.1.1-4.el8.x86_64
libxml2-devel-2.9.7-7.el8.x86_64
libxslt-devel-1.1.32-4.el8.x86_64
libzstd-devel-1.4.2-2.el8.x86_64
lm_sensors-devel-3.4.0-21.20180522git70f7e08.el8.x86_64
lm_sensors-libs-3.4.0-21.20180522git70f7e08.el8.x86_64
m4-1.4.18-7.el8.x86_64
make-1:4.2.1-10.el8.x86_64
mariadb-connector-c-3.0.7-1.el8.x86_64
mariadb-connector-c-config-3.0.7-1.el8.noarch
mcpp-2.7.2-20.el8.x86_64
mysql-common-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64
mysql-devel-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64
mysql-libs-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64
net-snmp-agent-libs-1:5.8-14.el8_2.1.x86_64
net-snmp-devel-1:5.8-14.el8_2.1.x86_64
net-snmp-libs-1:5.8-14.el8_2.1.x86_64
newt-devel-0.52.20-11.el8.x86_64
ocaml-srpm-macros-5-4.el8.noarch
openblas-srpm-macros-2-2.el8.noarch
openjpeg2-2.3.1-6.el8.x86_64
openldap-devel-2.4.46-11.el8_1.x86_64
openssl-devel-1:1.1.1c-15.el8.x86_64
pango-1.42.4-6.el8.x86_64
patch-2.7.6-11.el8.x86_64
pcre2-devel-10.32-1.el8.x86_64
pcre2-utf16-10.32-1.el8.x86_64
pcre2-utf32-10.32-1.el8.x86_64
perl-CPAN-Meta-2.150010-396.el8.noarch
perl-CPAN-Meta-Requirements-2.140-396.el8.noarch
perl-CPAN-Meta-YAML-0.018-397.el8.noarch
perl-Carp-1.42-396.el8.noarch
perl-Data-Dumper-2.167-399.el8.x86_64
perl-Digest-1.17-395.el8.noarch
perl-Digest-MD5-2.55-396.el8.x86_64
perl-Encode-4:2.97-3.el8.x86_64
perl-Encode-Locale-1.05-9.el8.noarch
perl-Errno-1.28-416.el8.x86_64
perl-Exporter-5.72-396.el8.noarch
perl-ExtUtils-Command-1:7.34-1.el8.noarch
perl-ExtUtils-Install-2.14-4.el8.noarch
perl-ExtUtils-MakeMaker-1:7.34-1.el8.noarch
perl-ExtUtils-Manifest-1.70-395.el8.noarch
perl-ExtUtils-ParseXS-1:3.35-2.el8.noarch
perl-File-Path-2.15-2.el8.noarch
perl-File-Temp-0.230.600-1.el8.noarch
perl-Getopt-Long-1:2.50-4.el8.noarch
perl-HTTP-Tiny-0.074-1.el8.noarch
perl-IO-1.38-416.el8.x86_64
perl-IO-Socket-IP-0.39-5.el8.noarch
perl-IO-Socket-SSL-2.066-4.el8.noarch
perl-JSON-PP-1:2.97.001-3.el8.noarch
perl-MIME-Base64-3.15-396.el8.x86_64
perl-Math-BigInt-1:1.9998.11-7.el8.noarch
perl-Math-Complex-1.59-416.el8.noarch
perl-Mozilla-CA-20160104-7.el8.noarch
perl-Net-SSLeay-1.88-1.el8.x86_64
perl-PathTools-3.74-1.el8.x86_64
perl-Pod-Escapes-1:1.07-395.el8.noarch
perl-Pod-Perldoc-3.28-396.el8.noarch
perl-Pod-Simple-1:3.35-395.el8.noarch
perl-Pod-Usage-4:1.69-395.el8.noarch
perl-Scalar-List-Utils-3:1.49-2.el8.x86_64
perl-Socket-4:2.027-3.el8.x86_64
perl-Storable-1:3.11-3.el8.x86_64
perl-Term-ANSIColor-4.06-396.el8.noarch
perl-Term-Cap-1.17-395.el8.noarch
perl-Test-Harness-1:3.42-1.el8.noarch
perl-Text-ParseWords-3.30-395.el8.noarch
perl-Text-Tabs+Wrap-2013.0523-395.el8.noarch
perl-Time-HiRes-1.9758-1.el8.x86_64
perl-Time-Local-1:1.280-1.el8.noarch
perl-URI-1.73-3.el8.noarch
perl-Unicode-Normalize-1.25-396.el8.x86_64
perl-constant-1.33-396.el8.noarch
perl-devel-4:5.26.3-416.el8.x86_64
perl-interpreter-4:5.26.3-416.el8.x86_64
perl-libnet-3.11-3.el8.noarch
perl-libs-4:5.26.3-416.el8.x86_64
perl-macros-4:5.26.3-416.el8.x86_64
perl-parent-1:0.237-1.el8.noarch
perl-podlators-4.11-1.el8.noarch
perl-srpm-macros-1-25.el8.noarch
perl-threads-1:2.21-2.el8.x86_64
perl-threads-shared-1.58-2.el8.x86_64
perl-version-6:0.99.24-1.el8.x86_64
pixman-0.38.4-1.el8.x86_64
platform-python-devel-3.6.8-23.el8.x86_64
popt-devel-1.16-14.el8.x86_64
python-rpm-macros-3-38.el8.noarch
python-srpm-macros-3-38.el8.noarch
python3-pyparsing-2.1.10-7.el8.noarch
python3-rpm-generators-5-6.el8.noarch
python3-rpm-macros-3-38.el8.noarch
qt5-srpm-macros-5.12.5-3.el8.noarch
redhat-rpm-config-122-1.el8.noarch
rpm-devel-4.14.2-37.el8.x86_64
rust-srpm-macros-5-2.el8.noarch
slang-devel-2.3.2-3.el8.x86_64
sqlite-devel-3.26.0-6.el8.x86_64
subversion-1.10.2-1.module_el8.0.0+45+75bba4f4.x86_64
subversion-libs-1.10.2-1.module_el8.0.0+45+75bba4f4.x86_64
systemtap-sdt-devel-4.2-6.el8.x86_64
unbound-devel-1.7.3-11.el8_2.x86_64
unixODBC-2.3.7-1.el8.x86_64
unixODBC-devel-2.3.7-1.el8.x86_64
unzip-6.0-43.el8.x86_64
urw-base35-bookman-fonts-20170801-10.el8.noarch
urw-base35-c059-fonts-20170801-10.el8.noarch
urw-base35-d050000l-fonts-20170801-10.el8.noarch
urw-base35-fonts-20170801-10.el8.noarch
urw-base35-fonts-common-20170801-10.el8.noarch
urw-base35-gothic-fonts-20170801-10.el8.noarch
urw-base35-nimbus-mono-ps-fonts-20170801-10.el8.noarch
urw-base35-nimbus-roman-fonts-20170801-10.el8.noarch
urw-base35-nimbus-sans-fonts-20170801-10.el8.noarch
urw-base35-p052-fonts-20170801-10.el8.noarch
urw-base35-standard-symbols-ps-fonts-20170801-10.el8.noarch
urw-base35-z003-fonts-20170801-10.el8.noarch
utf8proc-2.1.1-4.module_el8.0.0+45+75bba4f4.x86_64
xorg-x11-font-utils-1:7.5-40.el8.x86_64
xorg-x11-fonts-ISO8859-1-100dpi-7.5-19.el8.noarch
xorg-x11-server-utils-7.7-27.el8.x86_64
xz-devel-5.2.4-3.el8.x86_64
zip-3.0-23.el8.x86_64
zlib-devel-1.2.11-16.el8_2.x86_64
Complete!
#############################################
## install completed successfully
#############################################
To enable mp3 support for playing music while the client is on hold, you are required to install a few more dependencies. Luckily, Asterisk PBX provides a script for the same. Execute it now.
[root@asterisk-pbx scripts]# ./get_mp3_source.sh
A addons/mp3
A addons/mp3/MPGLIB_README
A addons/mp3/common.c
A addons/mp3/huffman.h
A addons/mp3/tabinit.c
A addons/mp3/Makefile
A addons/mp3/README
A addons/mp3/decode_i386.c
A addons/mp3/dct64_i386.c
A addons/mp3/MPGLIB_TODO
A addons/mp3/mpg123.h
A addons/mp3/layer3.c
A addons/mp3/mpglib.h
A addons/mp3/decode_ntom.c
A addons/mp3/interface.c
Exported revision 202.
Asterisk PBX server also required libedit and libedit-devel packages not available in standard yum repositories. Therefore, you have to install these packages from rpmfind website as follows.
[root@asterisk-pbx scripts]# cd ~/asterisk-18.1.0
[root@asterisk-pbx asterisk-18.1.0]# dnf install -y https://www.rpmfind.net/linux/centos/8-stream/PowerTools/x86_64/os/Packages/libedit-devel-3.1-23.20170329cvs.el8.x86_64.rpm https://www.rpmfind.net/linux/centos/8-stream/BaseOS/x86_64/os/Packages/libedit-3.1-23.20170329cvs.el8.x86_64.rpm
Last metadata expiration check: 0:08:21 ago on Wed 25 Nov 2020 09:51:09 PM PKT.
libedit-devel-3.1-23.20170329cvs.el8.x86_64.rpm 28 kB/s | 44 kB 00:01
libedit-3.1-23.20170329cvs.el8.x86_64.rpm 75 kB/s | 102 kB 00:01
Package libedit-3.1-23.20170329cvs.el8.x86_64 is already installed.
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
libedit-devel x86_64 3.1-23.20170329cvs.el8 @commandline 44 k
Installing dependencies:
ncurses-c++-libs x86_64 6.1-7.20180224.el8 BaseOS 58 k
ncurses-devel x86_64 6.1-7.20180224.el8 BaseOS 527 k
Transaction Summary
================================================================================
Install 3 Packages
Total size: 629 k
Total download size: 585 k
Installed size: 1.0 M
Downloading Packages:
(1/2): ncurses-c++-libs-6.1-7.20180224.el8.x86_ 653 B/s | 58 kB 01:30
(2/2): ncurses-devel-6.1-7.20180224.el8.x86_64. 4.5 kB/s | 527 kB 01:57
--------------------------------------------------------------------------------
Total 4.9 kB/s | 585 kB 01:58
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : ncurses-c++-libs-6.1-7.20180224.el8.x86_64 1/3
Installing : ncurses-devel-6.1-7.20180224.el8.x86_64 2/3
Installing : libedit-devel-3.1-23.20170329cvs.el8.x86_64 3/3
Running scriptlet: libedit-devel-3.1-23.20170329cvs.el8.x86_64 3/3
Verifying : ncurses-c++-libs-6.1-7.20180224.el8.x86_64 1/3
Verifying : ncurses-devel-6.1-7.20180224.el8.x86_64 2/3
Verifying : libedit-devel-3.1-23.20170329cvs.el8.x86_64 3/3
Installed:
libedit-devel-3.1-23.20170329cvs.el8.x86_64
ncurses-c++-libs-6.1-7.20180224.el8.x86_64
ncurses-devel-6.1-7.20180224.el8.x86_64
Complete!
All prerequisites has been installed successfully.
Installing Asterisk PBX on CentOS 8:
Now, you can start setup of Asterisk PBX from extracted directory.
[root@asterisk-pbx asterisk-18.1.0]# ./configure --libdir=/usr/lib64 --with-jansson-bundled
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether char is unsigned... no
checking for uname... /usr/bin/uname
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking how to run the C preprocessor... gcc -E
checking how to run the C++ preprocessor... g++ -E
checking for a sed that does not truncate output... /usr/bin/sed
checking for egrep... grep -E
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for gawk... gawk
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln -s works... yes
checking for ranlib... ranlib
checking for GNU make... make
checking for egrep... (cached) /usr/bin/grep -E
checking for strip... strip
checking for ar... ar
checking for bison... /usr/bin/bison
checking for cmp... /usr/bin/cmp
checking for cat... /usr/bin/cat
checking for cut... /usr/bin/cut
checking for flex... /usr/bin/flex
checking for grep... (cached) /usr/bin/grep
checking for python2.7... no
checking for python2... no
checking for python... no
checking for python3... no
checking for find... /usr/bin/find
checking for basename... /usr/bin/basename
checking for dirname... /usr/bin/dirname
checking for sh... /bin/sh
checking for ln... /usr/bin/ln
checking for doxygen... :
checking for dot... /usr/bin/dot
checking for wget... /usr/bin/wget
checking for curl... /usr/bin/curl
checking for xmllint... /usr/bin/xmllint
checking for xmlstarlet... no
checking for xml... no
checking for bash... /bin/sh
checking for git... :
checking for alembic... :
checking for bzip2... /usr/bin/bzip2
checking for tar... /usr/bin/tar
checking for patch... /usr/bin/patch
checking for sed... (cached) /usr/bin/sed
checking for nm... /usr/bin/nm
checking for ldconfig... /usr/sbin/ldconfig
checking for sha1sum... /usr/bin/sha1sum
checking for openssl... /usr/bin/openssl
checking for bison that supports parse-param... /usr/bin/bison
checking for soxmix... no
checking for md5... no
checking for md5sum... md5sum
checking for a sed that does not truncate output... (cached) /usr/bin/sed
checking whether gcc is Clang... no
checking whether pthreads work with -pthread... yes
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking whether more special flags are required for pthreads... no
checking for PTHREAD_PRIO_INHERIT... yes
checking for RAII support... checking for gcc -fnested-functions... no
checking for clang strsep/strcmp optimization... no
checking for embedded jansson (may have to download)... configuring
[jansson] Downloading https://raw.githubusercontent.com/asterisk/third-party/master/jansson/2.12/jansson-2.12.tar.bz2 to /tmp/jansson-2.12.tar.bz2
[jansson] Verifying /tmp/jansson-2.12.tar.bz2
[jansson] Verify successful
[jansson] Verifying /tmp/jansson-2.12.tar.bz2
[jansson] Verify successful
[jansson] Unpacking /tmp/jansson-2.12.tar.bz2
[jansson] Applying patches /root/asterisk-18.1.0/third-party/jansson/patches /root/asterisk-18.1.0/third-party/jansson/source
No patches in /root/asterisk-18.1.0/third-party/jansson/patches
[jansson] Rebuilding
[jansson] Configuring
checking for bundled jansson... yes
checking for embedded pjproject (may have to download)... configuring
[pjproject] Downloading https://raw.githubusercontent.com/asterisk/third-party/master/pjproject/2.10/pjproject-2.10.tar.bz2 to /tmp/pjproject-2.10.tar.bz2
[pjproject] Verifying /tmp/pjproject-2.10.tar.bz2
[pjproject] Verify successful
[pjproject] Verifying /tmp/pjproject-2.10.tar.bz2
[pjproject] Verify successful
[pjproject] Unpacking /tmp/pjproject-2.10.tar.bz2
[pjproject] Applying patches /root/asterisk-18.1.0/third-party/pjproject/patches /root/asterisk-18.1.0/third-party/pjproject/source
[pjproject] Applying user.mak
[pjproject] Applying custom include file patches/config_site.h
[pjproject] Applying custom include file patches/asterisk_malloc_debug.h
[pjproject] Rebuilding
[pjproject] Configuring with --prefix=/opt/pjproject --disable-speex-codec --disable-speex-aec --disable-bcg729 --disable-gsm-codec --disable-ilbc-codec --disable-l16-codec --disable-g722-codec --disable-g7221-codec --disable-opencore-amr --disable-silk --disable-opus --disable-video --disable-v4l2 --disable-sound --disable-ext-sound --disable-sdl --disable-libyuv --disable-ffmpeg --disable-openh264 --disable-ipp --disable-libwebrtc --without-external-pa --without-external-srtp --disable-resample --disable-g711-codec --enable-epoll
checking for bundled pjproject... yes
checking for gawk... (cached) gawk
checking for curl-config... /usr/bin/curl-config
checking for the version of libcurl... 7.61.1
checking for libcurl >= version 7.10.1... yes
checking whether libcurl is usable... yes
checking for curl_free... yes
checking for size_t... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking for ANSI C header files... (cached) yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for sys/types.h... (cached) yes
checking for netinet/in.h... yes
checking for arpa/nameser.h... yes
checking for netdb.h... yes
checking for resolv.h... yes
checking for arpa/nameser.h... (cached) yes
checking assert.h usability... yes
checking assert.h presence... yes
checking for assert.h... yes
checking ctype.h usability... yes
checking ctype.h presence... yes
checking for ctype.h... yes
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking float.h usability... yes
checking float.h presence... yes
checking for float.h... yes
checking grp.h usability... yes
checking grp.h presence... yes
checking for grp.h... yes
checking for inttypes.h... (cached) yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking locale.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
checking math.h usability... yes
checking math.h presence... yes
checking for math.h... yes
checking pwd.h usability... yes
checking pwd.h presence... yes
checking for pwd.h... yes
checking for netinet/in.h... (cached) yes
checking regex.h usability... yes
checking regex.h presence... yes
checking for regex.h... yes
checking sched.h usability... yes
checking sched.h presence... yes
checking for sched.h... yes
checking stdarg.h usability... yes
checking stdarg.h presence... yes
checking for stdarg.h... yes
checking for stdint.h... (cached) yes
checking stdio.h usability... yes
checking stdio.h presence... yes
checking for stdio.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking sys/file.h usability... yes
checking sys/file.h presence... yes
checking for sys/file.h... yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking sys/resource.h usability... yes
checking sys/resource.h presence... yes
checking for sys/resource.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking for sys/stat.h... (cached) yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for sys/types.h... (cached) yes
checking sys/un.h usability... yes
checking sys/un.h presence... yes
checking for sys/un.h... yes
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking time.h usability... yes
checking time.h presence... yes
checking for time.h... yes
checking for unistd.h... (cached) yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking libintl.h usability... yes
checking libintl.h presence... yes
checking for libintl.h... yes
checking malloc.h usability... yes
checking malloc.h presence... yes
checking for malloc.h... yes
checking for netdb.h... (cached) yes
checking stddef.h usability... yes
checking stddef.h presence... yes
checking for stddef.h... yes
checking for strings.h... (cached) yes
checking sys/event.h usability... no
checking sys/event.h presence... no
checking for sys/event.h... no
checking utime.h usability... yes
checking utime.h presence... yes
checking for utime.h... yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for LIBEDIT... no
checking for history_init in -ledit... no
checking for neon-config... no
checking for neon-config... no
checking for net-snmp-config... /bin/net-snmp-config
checking for newtBell in -lnewt... yes
checking newt.h usability... yes
checking newt.h presence... yes
checking for newt.h... yes
checking for ub_ctx_delete in -lunbound... yes
checking unbound.h usability... yes
checking unbound.h presence... yes
checking for unbound.h... yes
checking for unbound version >= 1.5... yes
checking for SQLConnect in -lodbc... yes
checking sql.h usability... yes
checking sql.h presence... yes
checking for sql.h... yes
checking for ogg_stream_init in -logg... no
checking for backtrace in -lexecinfo... no
checking for backtrace in -lc... yes
checking execinfo.h usability... yes
checking execinfo.h presence... yes
checking for execinfo.h... yes
checking for ba2str in -lbluetooth... no
checking for bs_version in -lbeanstalk... no
checking linux/soundcard.h usability... yes
checking linux/soundcard.h presence... yes
checking for linux/soundcard.h... yes
checking for pg_config... /usr/bin/pg_config
checking for PQescapeStringConn in -lpq... yes
checking for pg_encoding_to_char within Postgres headers... yes
checking for poptStrerror in -lpopt... yes
checking popt.h usability... yes
checking popt.h presence... yes
checking for popt.h... yes
checking for PORTAUDIO... no
checking for Pa_GetDeviceCount in -lportaudio... no
checking for pri_connected_line_update in -lpri... no
checking for resample_open in -lresample... no
checking for fftw_malloc in -lfftw3... yes
checking fftw3.h usability... yes
checking fftw3.h presence... yes
checking for fftw3.h... yes
checking for sf_open in -lsndfile... no
checking for minimum version of SpanDSP... no
checking for ss7_set_isup_timer in -lss7... no
checking for openr2_chan_new in -lopenr2... no
checking for opus_encoder_create in -lopus... no
checking for op_open_callbacks in -lopusfile... no
checking for luaL_newstate in -llua5.4... no
checking for luaL_newstate in -llua5.3... no
checking for luaL_newstate in -llua5.2... no
checking for luaL_newstate in -llua5.1... no
checking for luaL_newstate in -llua... no
checking for rc_read_config in -lfreeradius-client... no
checking for rc_read_config in -lradiusclient-ng... no
checking for rc_read_config in -lradcli... no
checking for codec2_create in -lcodec2... no
checking for cpg_join in -lcpg... no
checking for corosync_cfg_state_track in -lcfg... no
checking for speex_encode in -lspeex... no
checking for speex_preprocess_ctl in -lspeex... no
checking for speex_preprocess_ctl in -lspeexdsp... no
checking for sqlite_exec in -lsqlite... no
checking for sqlite3_open in -lsqlite3... yes
checking sqlite3.h usability... yes
checking sqlite3.h presence... yes
checking for sqlite3.h... yes
checking for crypt in -lcrypt... yes
checking crypt.h usability... yes
checking crypt.h presence... yes
checking for crypt.h... yes
checking for crypt... no
checking for crypt_r in -lcrypt... yes
checking for AES_encrypt in -lcrypto... yes
checking openssl/aes.h usability... yes
checking openssl/aes.h presence... yes
checking for openssl/aes.h... yes
checking for SSL_connect in -lssl... yes
checking openssl/ssl.h usability... yes
checking openssl/ssl.h presence... yes
checking for openssl/ssl.h... yes
checking for BIO_meth_new in -lssl... yes
checking for openssl/ssl.h... (cached) yes
checking osp/osp.h usability... no
checking osp/osp.h presence... no
checking for osp/osp.h... no
checking for srtp_init in -lsrtp2... no
checking for srtp_init in -lsrtp... no
checking for GMIME... no
checking for GMIME... no
checking for GMIME... no
checking for GMIME... no
checking for GMIME... no
checking for malloc in -lhoard... no
checking for dbinit in -lsybdb... no
checking for tone_zone_find_by_num in -ltonezone... no
checking for tone_zone_find in -ltonezone... no
checking for vorbis_info_init in -lvorbis... no
checking for OV_CALLBACKS_NOCLOSE declared in vorbis/vorbisfile.h... no
checking for vpb_open in -lvpb... no
checking for compress in -lz... yes
checking zlib.h usability... yes
checking zlib.h presence... yes
checking for zlib.h... yes
checking whether ODBC has support for Unicode types... yes
checking linux/compiler.h usability... no
checking linux/compiler.h presence... no
checking for linux/compiler.h... no
checking for linux/ixjuser.h... no
checking for MSG_NOSIGNAL in sys/socket.h... yes
checking for SO_NOSIGPIPE in sys/socket.h... no
checking for sdl-config... no
checking for IMG_Load in -lSDL_image... no
checking for sws_getContext in -lavcodec... no
checking linux/videodev.h usability... no
checking linux/videodev.h presence... no
checking for linux/videodev.h... no
checking for XOpenDisplay in -lX11... no
checking for XOpenDisplay in -lX11... (cached) no
checking for /sbin/launchd... no
checking for GTK2... no
checking for SYSTEMD... no
checking for LOG_AUTH in syslog.h... yes
checking for LOG_AUTHPRIV in syslog.h... yes
checking for LOG_CRON in syslog.h... yes
checking for LOG_DAEMON in syslog.h... yes
checking for LOG_FTP in syslog.h... yes
checking for LOG_KERN in syslog.h... yes
checking for LOG_LPR in syslog.h... yes
checking for LOG_MAIL in syslog.h... yes
checking for LOG_NEWS in syslog.h... yes
checking for LOG_SYSLOG in syslog.h... yes
checking for LOG_UUCP in syslog.h... yes
checking for bridges/bridge_softmix/include/hrirs.h... yes
checking for mandatory modules: JANSSON PJPROJECT... ok
configure: creating ./config.status
config.status: creating build_tools/menuselect-deps
config.status: creating makeopts
config.status: creating include/asterisk/autoconfig.h
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for GNU make... make
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for size_t... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for asprintf... yes
checking for getloadavg... yes
checking for setenv... yes
checking for strcasestr... yes
checking for strndup... yes
checking for strnlen... yes
checking for strsep... yes
checking for unsetenv... yes
checking for vasprintf... yes
checking for newtBell in -lnewt... yes
checking newt.h usability... yes
checking newt.h presence... yes
checking for newt.h... yes
checking for initscr in -lncurses... yes
checking ncurses.h usability... yes
checking ncurses.h presence... yes
checking for ncurses.h... yes
checking for keypad in -ltinfo... yes
checking for ncurses.h... (cached) yes
checking for a sed that does not truncate output... /usr/bin/sed
checking for xml2-config... /bin/xml2-config
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for GTK2... no
configure: creating ./config.status
config.status: creating makeopts
config.status: creating autoconfig.h
configure: Menuselect build configuration successfully completed
.$$$$$$$$$$$$$$$=..
.$7$7.. .7$$7:.
.$$:. ,$7.7
.$7. 7$$$$ .$$77
..$$. $$$$$ .$$$7
..7$ .?. $$$$$ .?. 7$$$.
$.$. .$$$7. $$$$7 .7$$$. .$$$.
.777. .$$$$$$77$$$77$$$$$7. $$$,
$$$~ .7$$$$$$$$$$$$$7. .$$$.
.$$7 .7$$$$$$$7: ?$$$.
$$$ ?7$$$$$$$$$$I .$$$7
$$$ .7$$$$$$$$$$$$$$$$ :$$$.
$$$ $$$$$$7$$$$$$$$$$$$ .$$$.
$$$ $$$ 7$$$7 .$$$ .$$$.
$$$$ $$$$7 .$$$.
7$$$7 7$$$$ 7$$$
$$$$$ $$$
$$$$7. $$ (TM)
$$$$$$$. .7$$$$$$ $$
$$$$$$$$$$$$7$$$$$$$$$.$$$$$$
$$$$$$$$$$$$$$$$.
configure: Package configured for:
configure: OS type : linux-gnu
configure: Host CPU : x86_64
configure: build-cpu:vendor:os: x86_64 : pc : linux-gnu :
configure: host-cpu:vendor:os: x86_64 : pc : linux-gnu :
The next step in the build process is to tell Asterisk PBX, which modules to compile and install, as well as set various compiler options. These settings are all controlled via a menu-driven system called Menuselect. To access the Menuselect system, execute the following command.
[root@asterisk-pbx asterisk-18.1.0]# make menuselect
CC="cc" CXX="g++" LD="" AR="" RANLIB="" CFLAGS="" LDFLAGS="" make -C menuselect CONFIGURE_SILENT="--silent" cmenuselect
make[1]: Entering directory '/root/asterisk-18.1.0/menuselect'
gcc -g -D_GNU_SOURCE -Wall -DHAVE_NCURSES -I/usr/include/libxml2 -c -o menuselect.o menuselect.c
gcc -g -D_GNU_SOURCE -Wall -DHAVE_NCURSES -c -o strcompat.o strcompat.c
gcc -g -D_GNU_SOURCE -Wall -DHAVE_NCURSES -c -o menuselect_curses.o menuselect_curses.c
gcc -o cmenuselect menuselect.o strcompat.o menuselect_curses.o -lncurses -ltinfo -lxml2 -lz -llzma -lm -ldl
make[1]: Leaving directory '/root/asterisk-18.1.0/menuselect'
CC="cc" CXX="g++" LD="" AR="" RANLIB="" CFLAGS="" LDFLAGS="" make -C menuselect CONFIGURE_SILENT="--silent" nmenuselect
make[1]: Entering directory '/root/asterisk-18.1.0/menuselect'
gcc -g -D_GNU_SOURCE -Wall -DHAVE_NCURSES -c -o menuselect_newt.o menuselect_newt.c
gcc -o nmenuselect menuselect.o strcompat.o menuselect_newt.o -lnewt -lxml2 -lz -llzma -lm -ldl
make[1]: Leaving directory '/root/asterisk-18.1.0/menuselect'
CC="cc" CXX="g++" LD="" AR="" RANLIB="" CFLAGS="" LDFLAGS="" make -C menuselect CONFIGURE_SILENT="--silent" gmenuselect
make[1]: Entering directory '/root/asterisk-18.1.0/menuselect'
make[1]: Nothing to be done for 'gmenuselect'.
make[1]: Leaving directory '/root/asterisk-18.1.0/menuselect'
make[1]: Entering directory '/root/asterisk-18.1.0'
Generating input for menuselect ...
CC="cc" CXX="g++" LD="" AR="" RANLIB="" CFLAGS="" LDFLAGS="" make -C menuselect CONFIGURE_SILENT="--silent" menuselect
make[2]: Entering directory '/root/asterisk-18.1.0/menuselect'
gcc -g -D_GNU_SOURCE -Wall -DHAVE_NCURSES -c -o menuselect_stub.o menuselect_stub.c
gcc -o menuselect menuselect.o strcompat.o menuselect_stub.o -lxml2 -lz -llzma -lm -ldl
make[2]: Leaving directory '/root/asterisk-18.1.0/menuselect'
menuselect/menuselect --check-deps menuselect.makeopts
menuselect/menuselect --check-deps menuselect.makeopts
menuselect changes saved!
make[1]: Leaving directory '/root/asterisk-18.1.0'
Select the required addons/modules that you want to install with Asterisk PBX server.
Compile and build the Asterisk PBX software based on the above configurations.
[root@asterisk-pbx asterisk-18.1.0]# make
...
Building Documentation For: third-party channels pbx apps codecs formats cdr cel bridges funcs tests main res addons
+--------- Asterisk Build Complete ---------+
+ Asterisk has successfully been built, and +
+ can be installed by running: +
+ +
+ make install +
+-------------------------------------------+
Install the Asterisk PBX software on your Linux server.
[root@asterisk-pbx asterisk-18.1.0]# make install
...
+---- Asterisk Installation Complete -------+
+ +
+ YOU MUST READ THE SECURITY DOCUMENT +
+ +
+ Asterisk has successfully been installed. +
+ If you would like to install the sample +
+ configuration files (overwriting any +
+ existing config files), run: +
+ +
+ For generic reference documentation: +
+ make samples +
+ +
+ For a sample basic PBX: +
+ make basic-pbx +
+ +
+ +
+----------------- or ---------------------+
+ +
+ You can go ahead and install the asterisk +
+ program documentation now or later run: +
+ +
+ make progdocs +
+ +
+ **Note** This requires that you have +
+ doxygen installed on your local system +
+-------------------------------------------+
Install Asterisk PBX sample configuration files.
[root@asterisk-pbx asterisk-18.1.0]# make samples
...
Updating asterisk.conf
/usr/bin/install -c -d "/var/spool/asterisk/voicemail/default/1234/INBOX"
build_tools/make_sample_voicemail "//var/lib/asterisk" "//var/spool/asterisk"
Installing file phoneprov/000000000000.cfg
Installing file phoneprov/000000000000-directory.xml
Installing file phoneprov/000000000000-phone.cfg
Installing file phoneprov/polycom_line.xml
Installing file phoneprov/polycom.xml
Installing file phoneprov/snom-mac.xml
Install Asterisk sample files to configure basic PBX.
[root@asterisk-pbx asterisk-18.1.0]# make basic-pbx
Installing basic-pbx config files...
Installing file configs/basic-pbx/asterisk.conf
Installing file configs/basic-pbx/cdr.conf
Installing file configs/basic-pbx/cdr_custom.conf
Installing file configs/basic-pbx/confbridge.conf
Installing file configs/basic-pbx/extensions.conf
Installing file configs/basic-pbx/indications.conf
Installing file configs/basic-pbx/logger.conf
Installing file configs/basic-pbx/modules.conf
Installing file configs/basic-pbx/musiconhold.conf
Installing file configs/basic-pbx/pjsip.conf
Config file configs/basic-pbx/pjsip_notify.conf is unchanged
Installing file configs/basic-pbx/queues.conf
Installing file configs/basic-pbx/README
Installing file configs/basic-pbx/voicemail.conf
Updating asterisk.conf
Create OS User for Asterisk PBX:
Create OS user and group to own Asterisk PBX software directory.
[root@asterisk-pbx asterisk-18.1.0]# groupadd asterisk
[root@asterisk-pbx asterisk-18.1.0]# useradd -r -d /var/lib/asterisk -g asterisk asterisk
[root@asterisk-pbx asterisk-18.1.0]# usermod -aG audio,dialout asterisk
Change owner to asterisk user of following directories.
[root@asterisk-pbx asterisk-18.1.0]# chown -R asterisk.asterisk /etc/asterisk /var/{lib,log,spool}/asterisk /usr/lib64/asterisk
Edit following configuration file by using vim text editor.
[root@asterisk-pbx asterisk-18.1.0]# vi /etc/sysconfig/asterisk
And add following configurations therein to set default user for Asterisk PBX.
AST_USER="asterisk"
AST_GROUP="asterisk"
Edit asterisk.conf file in vim text editor.
[root@asterisk-pbx asterisk-18.1.0]# vi /etc/asterisk/asterisk.conf
And add following directives to set default user to own Asterisk PBX processes.
runuser = asterisk ; The user to run as.
rungroup = asterisk ; The group to run as.
Enable and start Asterisk PBX service.
[root@asterisk-pbx ~]# systemctl enable --now asterisk
Check the status of asterisk.service.
[root@asterisk-pbx ~]# systemctl status asterisk.service
â asterisk.service - LSB: Asterisk PBX
Loaded: loaded (/etc/rc.d/init.d/asterisk; generated)
Active: active (running) since Thu 2020-11-26 19:30:25 PKT; 13s ago
Docs: man:systemd-sysv-generator(8)
Process: 1806 ExecStop=/etc/rc.d/init.d/asterisk stop (code=exited, status=0/>
Process: 1832 ExecStart=/etc/rc.d/init.d/asterisk start (code=exited, status=>
Main PID: 1863
Tasks: 2 (limit: 5879)
Memory: 18.1M
CGroup: /system.slice/asterisk.service
ââ1861 /bin/sh /usr/sbin/safe_asterisk
ââ1892 sleep 4
Nov 26 19:30:25 asterisk-pbx.centlinux.com systemd[1]: asterisk.service: Killin>
Nov 26 19:30:25 asterisk-pbx.centlinux.com systemd[1]: asterisk.service: Killin>
Nov 26 19:30:25 asterisk-pbx.centlinux.com systemd[1]: Stopped LSB: Asterisk PB>
Nov 26 19:30:25 asterisk-pbx.centlinux.com systemd[1]: asterisk.service: Found >
Nov 26 19:30:25 asterisk-pbx.centlinux.com systemd[1]: This usually indicates u>
Nov 26 19:30:25 asterisk-pbx.centlinux.com systemd[1]: Starting LSB: Asterisk P>
Nov 26 19:30:25 asterisk-pbx.centlinux.com asterisk[1832]: Starting asterisk:
Nov 26 19:30:25 asterisk-pbx.centlinux.com systemd[1]: asterisk.service: Can't >
Nov 26 19:30:25 asterisk-pbx.centlinux.com systemd[1]: asterisk.service: Superv>
Nov 26 19:30:25 asterisk-pbx.centlinux.com systemd[1]: Started LSB: Asterisk PB>
Accessing Asterisk CLI:
Connect to Asterisk CLI by using following command.
[root@asterisk-pbx ~]# asterisk -r
Asterisk 18.1.0, Copyright (C) 1999 - 2018, Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Running as user 'asterisk'
Running under group 'asterisk'
Connected to Asterisk 18.1.0 currently running on asterisk-pbx (pid = 2350)
asterisk-pbx*CLI>
Let's execute some common commands on Asterisk CLI.
asterisk-pbx*CLI> core show channels
Channel Location State Application(Data)
0 active channels
0 active calls
0 calls processed
asterisk-pbx*CLI> core show uptime
System uptime: 1 hour, 29 minutes, 59 seconds
Last reload: 1 hour, 29 minutes, 59 seconds
asterisk-pbx*CLI> quit
Asterisk cleanly ending (0).
Executing last minute cleanups
Asterisk PBX server has been installed on Linux server and working fine.
Conclusion:
In this guide, you have learned how to install Asterisk PBX server on CentOS 8. To configure Asterisk as a PBX for your corporate environment, you might read Asterisk: The Definitive Guide: Open Source Telephony for the Enterprise by O'Reilly Media.
No comments:
Post a comment