Sådan installeres Asterisk på CentOS/RHEL 8/7


Asterisk er en open source-ramme, der bruges til opbygning af kommunikationsapplikationer. Du kan bruge den til at vende en lokal computer eller server til kommunikationsserveren. Det bruges til at drive IP-PBX-systemer, VoIP-gateways, konferenceservere og andre løsninger. Det bruges af alle slags organisationer verden over og endelig, men ikke sidst er det gratis og open source.

I denne vejledning skal vi vise dig, hvordan du installerer Asterisk på CentOS 8/7 (instruktion fungerer også på RHEL 8/7), men inden vi starter, bliver vi nødt til at foretage nogle forberedelser, så Asterisk kan køre problemfrit efter installationen .

Trin 1: Deaktiver SELinux på CentOS

For at gøre dette skal du SSH til dit system og bruge din foretrukne kommandolinjeteksteditor, åbne/etc/selinux/config og deaktivere SELINUX.

# vim /etc/selinux/config

SELinux-linjen skal se sådan ud:

SELINUX=disabled

Genstart nu dit system. Når det kommer tilbage SSH igen til dette system.

Trin 2: Installer påkrævede pakker

Asterisk har en hel del krav, der skal installeres. Du kan bruge følgende yum-kommando til at installere de nødvendige pakker som vist.

# yum install -y epel-release dmidecode gcc-c++ ncurses-devel libxml2-devel make wget openssl-devel newt-devel kernel-devel sqlite-devel libuuid-devel gtk2-devel jansson-devel binutils-devel libedit libedit-devel

Inden vi fortsætter videre, skal du oprette en ny bruger med sudo-rettigheder kaldet “stjerne”, vi bruger denne bruger til at konfigurere en stjerne på systemet.

# adduser asterisk -c "Asterisk User"
# passwd asterisk 
# usermod -aG wheel asterisk
# su asterisk

Dernæst skal du installere PJSIP, et gratis open source multimediekommunikationsbibliotek, der implementerer standardbaserede protokoller såsom SIP, SDP, RTP, STUN, TURN og ICE. Det er Asterisk SIP-kanaldriveren, der skal forbedre klarheden i opkaldene.

For at få den nyeste version skal vi først oprette en midlertidig mappe, hvor vi bygger pakken fra kilden.

$ mkdir ~/build && cd ~/build

Gå nu til wget-kommandoen for at downloade pakken direkte i terminalen.

Bemærk, at ved at skrive denne artikel er den nyeste version 2.8, dette kan ændre sig i fremtiden, og sørg derfor for at bruge den nyeste version:

$ wget https://www.pjsip.org/release/2.9/pjproject-2.9.tar.bz2

Når downloadet er afsluttet, skal du udpakke filen og skifte til den mappe.

$ tar xvjf pjproject-2.9.tar.bz2
$ cd pjproject-2.9

Det næste trin er at forberede pakken, der skal kompileres. Du kan bruge følgende kommando:

$ ./configure CFLAGS="-DNDEBUG -DPJ_HAS_IPV6=1" --prefix=/usr --libdir=/usr/lib64 --enable-shared --disable-video --disable-sound --disable-opencore-amr

Du bør ikke se nogen fejl eller advarsler. Sørg for, at alle afhængigheder er opfyldt:

$ make dep

Og nu kan vi fuldføre installations- og linkbibliotekerne med:

$ make && sudo make install && sudo ldconfig

Endelig skal du sikre dig, at alle biblioteker er installeret og til stede:

$ ldconfig -p | grep pj

Du skal få følgende output:

libpjsua2.so.2 (libc6,x86-64) => /lib64/libpjsua2.so.2
	libpjsua2.so (libc6,x86-64) => /lib64/libpjsua2.so
	libpjsua.so.2 (libc6,x86-64) => /lib64/libpjsua.so.2
	libpjsua.so (libc6,x86-64) => /lib64/libpjsua.so
	libpjsip.so.2 (libc6,x86-64) => /lib64/libpjsip.so.2
	libpjsip.so (libc6,x86-64) => /lib64/libpjsip.so
	libpjsip-ua.so.2 (libc6,x86-64) => /lib64/libpjsip-ua.so.2
	libpjsip-ua.so (libc6,x86-64) => /lib64/libpjsip-ua.so
	libpjsip-simple.so.2 (libc6,x86-64) => /lib64/libpjsip-simple.so.2
	libpjsip-simple.so (libc6,x86-64) => /lib64/libpjsip-simple.so
	libpjnath.so.2 (libc6,x86-64) => /lib64/libpjnath.so.2
	libpjnath.so (libc6,x86-64) => /lib64/libpjnath.so
	libpjmedia.so.2 (libc6,x86-64) => /lib64/libpjmedia.so.2
	libpjmedia.so (libc6,x86-64) => /lib64/libpjmedia.so
	libpjmedia-videodev.so.2 (libc6,x86-64) => /lib64/libpjmedia-videodev.so.2
	libpjmedia-videodev.so (libc6,x86-64) => /lib64/libpjmedia-videodev.so
	libpjmedia-codec.so.2 (libc6,x86-64) => /lib64/libpjmedia-codec.so.2
	libpjmedia-codec.so (libc6,x86-64) => /lib64/libpjmedia-codec.so
	libpjmedia-audiodev.so.2 (libc6,x86-64) => /lib64/libpjmedia-audiodev.so.2
	libpjmedia-audiodev.so (libc6,x86-64) => /lib64/libpjmedia-audiodev.so
	libpjlib-util.so.2 (libc6,x86-64) => /lib64/libpjlib-util.so.2
	libpjlib-util.so (libc6,x86-64) => /lib64/libpjlib-util.so
	libpj.so.2 (libc6,x86-64) => /lib64/libpj.so.2
	libpj.so (libc6,x86-64) => /lib64/libpj.so

Trin 3: Installer Asterisk på CentOS 8/7

Vi er nu klar til at starte installationen af Asterisk. Naviger tilbage til vores ~/build-bibliotek:

$ cd ~/build

Gå til wget-kommandoen for at downloade filen i terminalen.

$ wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz

Ved skrivningen af denne vejledning er den seneste Asterisk-version 16. Sørg for, at du downloader den nyeste version af Asterisk, når du følger trinene.

Uddrag nu arkivet og naviger til den nyoprettede mappe:

$ tar -zxvf asterisk-16-current.tar.gz
$ cd asterisk-16.5.1

Det er på tide at nævne, at hvis du ønsker at aktivere mp3-support til at afspille musik, mens klienten er på hold, skal du installere et par flere afhængigheder. Disse trin er valgfri:

$ sudo yum install svn
$ sudo ./contrib/scripts/get_mp3_source.sh

Efter det andet trin skal du få output svarende til disse:

A    addons/mp3
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
A    addons/mp3/MPGLIB_README
A    addons/mp3/common.c
A    addons/mp3/huffman.h
A    addons/mp3/tabinit.c
Exported revision 202.

Start med at køre konfigurationsscriptet for at forberede pakken til kompilering:

$ sudo contrib/scripts/install_prereq install
$ ./configure --libdir=/usr/lib64 --with-jansson-bundled

Hvis du får manglende afhængigheder til at installere dem. I mit tilfælde fik jeg følgende fejl:

configure: error: patch is required to configure bundled pjproject

For at gå rundt om dette skal du bare køre:

# yum install patch 

Og kør konfigurationsscriptet igen. Hvis alt gik perfekt uden fejl, vil du se følgende skærmbillede.

Lad os nu starte byggeprocessen:

$ make menuselect

Efter et par sekunder skal du få en liste over funktioner, der skal aktiveres:

Hvis du forsøger at bruge musik i venteposition, skal du aktivere funktionen "format_mp3" fra afsnittet "Tilføjelser". Gem din liste, og kør følgende kommando:

$ make && sudo make install

Brug kommandoen nedenfor for at installere eksemplet på konfigurationsfiler:

$ sudo make samples

For at starte Asterisk ved opstart skal du bruge:

$ sudo make config

Opdater ejerskabet af følgende kataloger og filer:

$ sudo chown asterisk. /var/run/asterisk
$ sudo chown asterisk. -R /etc/asterisk
$ sudo chown asterisk. -R /var/{lib,log,spool}/asterisk

Lad os endelig teste vores installation med:

$ sudo service asterisk start
$ sudo asterisk -rvv

Du skal se output svarende til denne:

Asterisk 16.5.1, Copyright (C) 1999 - 2018, Digium, Inc. and others.
Created by Mark Spencer <[email >
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.
=========================================================================
Connected to Asterisk 16.5.1 currently running on centos8-tecmint (pid = 9020)
centos8-tecmint*CLI>

Hvis du vil se en liste over tilgængelige kommandoer, skal du skrive:

asterisk*CLI> core show help

For at afslutte Asterisk-prompten skal du blot skrive:

asterisk*CLI> exit

Asterisk kører stadig i baggrunden.

Nu har du en kørende Asterisk-server, og du kan begynde at forbinde telefoner og udvidelser og justere din konfiguration efter dine behov. For flere detaljer om, hvordan du opnår dette, anbefales det at bruge Asterisk Wiki-siden. Hvis du har spørgsmål eller kommentarer, så lad os det vide i kommentarfeltet nedenfor.