Asterisk 18 VoIP Server installeren op CentOS 8

Asterisk is een krachtige digitale PBX en VoIP server die onder een open-source licentie wordt uitgebracht, zodat je hem gratis kunt gebruiken. VoIP is een technologie die gebruikt wordt om telefoongesprekken tot stand te brengen en te regelen tussen meerdere eindpunten. Het wordt gebruikt in VoIP gateways, conferentieservers, call centers, carriers, en overheidsinstellingen over de hele wereld. Het draait op Linux, BSD, en OS X en stelt je in staat om van je lokale systeem of server een communicatieserver te maken.

In dit bericht leggen we uit hoe je Asterisk op CentOS 8 server kunt installeren.

Vereisten

  • Een server die CentOS 8 draait.
  • Een root wachtwoord is op de server ingesteld.

Aan de slag

Standaard is SELinux ingeschakeld in CentOS 8. Je zult het dus eerst moeten uitschakelen. Om het uit te schakelen, bewerk je het SELinux configuratiebestand:

nano /etc/selinux/config

Verander de volgende regel:

SELINUX=disabled

Bewaar en sluit het bestand en herstart dan je systeem om de veranderingen toe te passen.

Installeer Vereiste Gereedschappen

Asterisk vereist verschillende pakketten die je in je server moet installeren. Installeer eerst de EPEL repository met het volgende commando:

dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

Schakel vervolgens de PowerTools repo in met het volgende commando:

dnf config-manager --set-enabled PowerTools

Installeer vervolgens andere pakketten en ontwikkelingshulpmiddelen met het volgende commando:

dnf install wget gcc gcc-c++ svn make bzip2 patch libedit-devel uuid-devel libuuid-devel libxml2-devel sqlite sqlite-devel nano openssl openssl-devel -y
dnf groupinstall "Development Tools"

Als alle benodigde pakketten geïnstalleerd zijn, kun je verder gaan met de volgende stap.

Installeer Jansson en PJSIP

Vervolgens moet je Jansson op je systeem installeren. Het wordt gebruikt voor het coderen en decoderen van mediagegevens.

Download het eerst van de Git repository met het volgende commando:

git clone https://github.com/akheron/jansson.git

Verander vervolgens de directory in de gedownloade directory en compileer het met het volgende commando:

cd jansson
autoreconf -i
./configure --prefix=/usr/
make
make install

Vervolgens moet je PJSIP op je systeem installeren. Het is een bibliotheek die gebruikt wordt om het SIP, SDP, RTP, STUN, TURN, en ICE protocol te implementeren.

Download het eerst met het volgende commando:

cd
git clone https://github.com/pjsip/pjproject.git

Verander vervolgens de directory in de gedownloade directory en compileer het met het volgende commando:

cd pjproject
./configure CFLAGS="-DNDEBUG -DPJ_HAS_IPV6=1" --prefix=/usr --libdir=/usr/lib64 --enable-shared --disable-video --disable-sound --disable-opencore-amr
make dep
make
make install
ldconfig

Als je klaar bent, kun je verder gaan met de installatie van Asterisk.

Installeer Asterisk

Navigeer eerst naar je thuismap en download de nieuwste versie van Asterisk met het volgende commando:

cd
wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz

Als de download voltooid is, pak je het gedownloade bestand uit met het volgende commando:

tar -xvzf asterisk-18-current.tar.gz

Verander vervolgens de directory in de uitgepakte directory met het volgende commando:

cd asterisk-18.4.0/

Configureer vervolgens Asterisk met het volgende commando:

./configure --libdir=/usr/lib64

Je zou de volgende uitvoer moeten zien:

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 :

Voer vervolgens het volgende commando uit om extra add-ons die je met Asterisk wilt installeren te installeren.

make menuselect

Je zou de volgende pagina moeten zien:

Maak menuselect

Kies Add-ons en druk op Enter. Je zou de volgende pagina moeten zien:

Kies Add-ons

Kies je gewenste add-ons en druk op Enter om ze te selecteren en druk dan op ESC om terug te keren naar het hoofdmenu:

Kies Asterisk invoegtoepassingen

Kies je gewenste Core geluidspakket en druk op Enter om het te selecteren. Druk daarna op ESC om terug te keren, kies MOH pakketten zoals hieronder:

Asterisk Geluid Pakketten

Kies je gewenste pakketten en druk op Enter om ze te selecteren. Druk daarna op ESC om terug te keren, kies Extra pakketten zoals hieronder:

Kies extra pakketten

Kies je gewenste pakketten en druk op Enter om ze te selecteren. Druk dan op de ESC toets. Je zou de volgende pagina moeten zien:

Bewaar bouwveranderingen

Druk op S om de veranderingen op te slaan en af te sluiten.

Voer vervolgens het volgende commando uit om alle vereiste afhankelijkheden te installeren:

contrib/scripts/get_mp3_source.sh

Bouw vervolgens de Asterisk met het volgende commando:

make

Je zou de volgende uitvoer moeten zien:

 +--------- Asterisk Build Complete ---------+
 + Asterisk has successfully been built, and +
 + can be installed by running:              +
 +                                           +
 +                make install               +
 +-------------------------------------------+

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    +
 +-------------------------------------------+

Installeer vervolgens de Asterisk met het volgende commando:

make samples
make config
ldconfig

Configureer Asterisk

Vervolgens moet je een speciale gebruiker aanmaken om Asterisk te draaien. Je kunt een gebruiker en groep aanmaken met het volgende commando:

groupadd asterisk
useradd -r -d /var/lib/asterisk -g asterisk asterisk

Voeg vervolgens audio en dialout gebruiker toe aan de Asterisk groep met het volgende commando:

usermod -aG audio,dialout asterisk

Stel vervolgens het eigendom van de Asterisk mappen in op de asterisk gebruiker met het volgende commando:

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

Bewerk vervolgens het bestand /etc/sysconfig/asterisk:

nano /etc/sysconfig/asterisk

Haal het commentaar weg op de volgende regels:

AST_USER="asterisk"
AST_GROUP="asterisk"

Bewaar en sluit het bestand en bewerk dan het bestand /etc/asterisk/asterisk.conf:

nano /etc/asterisk/asterisk.conf

Maak het commentaar op de volgende regels ongedaan:

runuser = asterisk ; The user to run as.
rungroup = asterisk ; The group to run as.

Sla het bestand op en sluit het als je klaar bent. Herstart dan de Asterisk dienst om de veranderingen toe te passen.

systemctl restart asterisk

Schakel vervolgens de Asterisk service in om te starten bij het herstarten van het systeem:

systemctl enable asterisk

Om de status van de Asterisk service te controleren, voer je het volgende commando uit:

systemctl status asterisk

Je zou de volgende uitvoer moeten krijgen:

? asterisk.service - LSB: Asterisk PBX
   Loaded: loaded (/etc/rc.d/init.d/asterisk; generated)
   Active: active (running) since Sat 2021-05-22 08:19:08 EDT; 15s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 70883 ExecStart=/etc/rc.d/init.d/asterisk start (code=exited, status=0/SUCCESS)
 Main PID: 70914 (asterisk)
    Tasks: 81 (limit: 25014)
   Memory: 36.8M
   CGroup: /system.slice/asterisk.service
           ??70912 /bin/sh /usr/sbin/safe_asterisk
           ??70914 /usr/sbin/asterisk -f -vvvg -c

May 22 08:19:08 centos8 systemd[1]: Starting LSB: Asterisk PBX...
May 22 08:19:08 centos8 asterisk[70883]: Starting asterisk:

Verifieer Asterisk

Op dit punt is Asterisk geïnstalleerd en geconfigureerd. Je kunt nu Asterisk verifiëren met het volgende commando:

asterisk -rvv

Als alles in orde is, zou je de volgende uitvoer moeten krijgen:

Asterisk 18.4.0, Copyright (C) 1999 - 2021, Sangoma Technologies Corporation and others.
Created by Mark Spencer <[email protected]>
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.4.0 currently running on centos8 (pid = 70914)
centos8*CLI> 

Voer nu het volgende commando uit om kernkanalen te tonen:

centos8*CLI> core show channels

Je zou de volgende uitvoer moeten zien:

Channel              Location             State   Application(Data)             
0 active channels
0 active calls
0 calls processed

Om de uptime van Asterisk weer te geven, voer je het volgende commando uit:

centos8*CLI> core show uptime

Je zou de volgende uitvoer moeten zien:

System uptime: 1 minute, 33 seconds
Last reload: 1 minute, 33 seconds

Om de Asterisk CLI te verlaten, voer je het volgende commando uit:

centos8*CLI> quit

Conclusie

In de bovenstaande gids heb je geleerd hoe je Asterisk versie 18 kunt downloaden en compileren op een CentOS 8 server. Je kunt Asterisk nu integreren met andere platforms en een VoIP-gebaseerde toepassing bouwen.