Wéi installéiere ech Asterisk op CentOS/RHEL 8/7


Asterisk ass en Open-Source Kader fir Kommunikatiounsapplikatiounen ze bauen. Dir kënnt et benotze fir e lokale Computer oder Server op de Kommunikatiounsserver ze maachen. Et gëtt benotzt fir IP PBX Systemer, VoIP Gateways, Konferenzserver an aner Léisungen z'erhalen. Et gëtt vun all Zort vun Organisatiounen weltwäit benotzt a schliisslech, awer net lescht ass et gratis an oppe Quell.

An dësem Tutorial wäerte mir Iech weisen wéi Dir Asterisk op CentOS 8/7 installéiere wëllt (Instruktioune funktionnéieren och op RHEL 8/7), awer ier mer ufänken, musse mir e puer Virbereedunge maachen, sou datt d'Asterisk no der Installatioun glat leeft .

Schrëtt 1: Desaktivéiere SELinux op CentOS

Fir dëst ze maachen, SSH op Äre System a benotzt Äre Liiblings Kommandozeil Texteditor, oppen /etc/selinux/config an deaktivéiert SELINUX.

# vim /etc/selinux/config

SELinux Linn soll esou ausgesinn:

SELINUX=disabled

Elo restart Äre System. Eemol kënnt et erëm SSH an dee System zréck.

Schrëtt 2: Installéiert erfuerderlech Packagen

Asterisk huet zimmlech e puer Ufuerderungen déi installéiert musse ginn. Dir kënnt de folgende yum Kommando benotze fir déi erfuerderlech Packagen z'installéieren wéi gewisen.

# 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

Ier mer weiderfueren, erstellt en neie Benotzer mat sudo Privilegien genannt Asterisk, mir benotze dëse Benotzer fir d'Asterisk um System opzestellen.

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

Als nächst, installéiert PJSIP, ass eng gratis Open Source Multimedia Kommunikatiounsbibliothéik déi Standardbaséiert Protokoller wéi SIP, SDP, RTP, STUN, TURN an ICE implementéiert. Et ass den Asterisk SIP Kanal Chauffer deen d'Klarheet vun den Uriff verbesseren soll.

Fir déi lescht Versioun ze kréien, loosst eis als éischt en temporäre Verzeechnes erstellen wou mir de Package aus der Quell bauen.

$ mkdir ~/build && cd ~/build

Gitt elo de wget Kommando fir de Package direkt am Terminal erofzelueden.

Notéiert datt duerch d'Schreiwen vun dësem Artikel déi lescht Versioun 2.8 ass, dëst kann an Zukunft änneren, also vergewëssert Iech déi lescht Versioun ze benotzen:

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

Wann den Download fäerdeg ass, extrahéiert d'Datei an ännert an dee Verzeichnis.

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

De nächste Schrëtt ass de Package ze preparéieren fir ze kompiléieren. Dir kënnt de folgende Kommando benotzen:

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

Dir sollt keng Feeler oder Warnungen gesinn. Vergewëssert Iech datt all Ofhängegkeete erfëllt sinn:

$ make dep

An elo kënne mir d'Installatioun an d'Bibliothéike verbannen mat:

$ make && sudo make install && sudo ldconfig

Schlussendlech gitt sécher datt all Bibliothéiken installéiert sinn a present sinn:

$ ldconfig -p | grep pj

Dir sollt déi folgend Ausgang kréien:

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

Schrëtt 3: Installéiert Asterisk op CentOS 8/7

Mir sinn elo prett fir d'Installatioun vun Asterisk unzefänken. Navigéiert zréck an eise ~/build Verzeichnis:

$ cd ~/build

Gitt op de wget Kommando fir d'Datei am Terminal erofzelueden.

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

Duerch d'Schreiwen vun dësem Tutorial ass déi lescht Asterisk Versioun 16. Vergewëssert Iech datt Dir déi lescht Versioun vun Asterisk erofluet, wann Dir d'Schrëtt befollegt.

Extrait elo d'Archiv a navigéiert an den nei erstallten Verzeechnes:

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

Dëst ass d'Zäit fir ze ernimmen, datt wann Dir mp3 Ënnerstëtzung aktivéiere wëllt fir Musek ze spillen wärend de Client am Halt ass, musst Dir e puer méi Ofhängegkeeten installéieren. Dës Schrëtt sinn fakultativ:

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

Nom zweete Schrëtt, sollt Dir Ausgab ähnlech wéi dës kréien:

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.

Fänkt un mam Konfiguratiounsskript auszeféieren fir de Package ze preparéieren fir ze kompiléieren:

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

Wann Dir fehlend Ofhängegkeete kritt fir se ze installéieren. A mengem Fall krut ech de folgende Feeler:

configure: error: patch is required to configure bundled pjproject

Fir ronderëm dëst einfach ze lafen:

# yum install patch 

A lafen de Konfiguratiounsskript nei. Wann alles perfekt ouni Feeler gaang ass, gesitt Dir de folgende Screenshot.

Elo, loosst eis de Bauprozess starten:

$ make menuselect

No e puer Sekonnen sollt Dir eng Lëscht mat Features kréien fir z'aktivéieren:

Wann Dir probéiert d'Musek am Halt ze benotzen, musst Dir d'format_mp3 Feature aus der Rubrik Add-ons aktivéieren. Späichert Är Lëscht a lafen de folgende Kommando:

$ make && sudo make install

Fir d'Probe Konfiguratiounsdateien z'installéieren, benotzt de Kommando hei ënnen:

$ sudo make samples

Fir Asterisk beim Boot ze starten, benotzt:

$ sudo make config

Update d'Besëtzer vun de folgende Verzeichnisser an Dateien:

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

Endlech, loosst eis eis Installatioun testen mat:

$ sudo service asterisk start
$ sudo asterisk -rvv

Dir sollt Ausgang ähnlech wéi dësen gesinn:

Asterisk 16.5.1, Copyright (C) 1999 - 2018, Digium, Inc. and others.
Created by Mark Spencer <mark[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>

Wann Dir eng Lëscht mat verfügbare Kommandoen wëllt gesinn, Typ:

asterisk*CLI> core show help

Fir d'Asterisk-Prompt ze verloossen, gitt einfach:

asterisk*CLI> exit

Asterisk wäert nach ëmmer am Hannergrond lafen.

Elo hutt Dir e Lafen Asterisk Server an Dir kënnt ufänken Telefonen an Extensiounen ze verbannen an Är Konfiguratioun no Äre Besoinen unzepassen. Fir méi Detailer wéi dëst z'erreechen, ass et recommandéiert d'Asterisk Wiki Säit ze benotzen. Wann Dir Froen oder Kommentarer hutt, loosst eis w.e.g. an der Kommentarsektioun hei drënner wëssen.