Vyhledávání na webu

Jak nainstalovat Asterisk na CentOS/RHEL 8/7


Asterisk je open-source framework používaný pro vytváření komunikačních aplikací. Můžete jej použít k přepnutí místního počítače nebo serveru na komunikační server. Používá se k napájení systémů IP PBX, VoIP bran, konferenčních serverů a dalších řešení. Používají ho všechny druhy organizací po celém světě a konečně, ale v neposlední řadě, je to bezplatný a otevřený zdroj.

V tomto tutoriálu vám ukážeme, jak nainstalovat Asterisk na CentOS 8/7 (návod funguje také na RHEL 8/7) , ale než začneme, budeme muset udělat nějaké přípravy, aby Asterisk mohl po instalaci hladce běžet.

Krok 1: Zakažte SELinux na CentOS

Chcete-li to provést, SSH do svého systému a pomocí oblíbeného textového editoru příkazového řádku otevřete /etc/selinux/config a deaktivujte SELINUX.

vim /etc/selinux/config

Řádek SELinux by měl vypadat takto:

SELINUX=disabled

Nyní restartujte systém. Jakmile se SSH znovu vrátí do tohoto systému.

Krok 2: Nainstalujte požadované balíčky

Asterisk má několik požadavků, které je třeba nainstalovat. Následující příkaz yum můžete použít k instalaci požadovaných balíčků, jak je znázorněno.

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

Než budeme pokračovat dále, vytvořte nového uživatele s právy sudo s názvem „hvězdička“, tohoto uživatele použijeme k nastavení hvězdičky v systému.

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

Dále nainstalujte PJSIP, což je bezplatná multimediální komunikační knihovna s otevřeným zdrojovým kódem, která implementuje standardní protokoly, jako jsou SIP, SDP, RTP, STUN, TURN a ICE. Právě ovladač kanálu Asterisk SIP by měl zlepšit srozumitelnost hovorů.

Chcete-li získat nejnovější verzi, nejprve vytvořte dočasný adresář, kde sestavíme balíček ze zdroje.

mkdir ~/build && cd ~/build

Nyní přejděte na stránku stahování PJSIP a uchopte balíček nebo použijte následující příkaz wget ke stažení balíčku přímo v terminálu.

Upozorňujeme, že při psaní tohoto článku je nejnovější verze 2.8, to se může v budoucnu změnit, proto se ujistěte, že používáte nejnovější verzi:

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

Po dokončení stahování rozbalte soubor a přejděte do tohoto adresáře.

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

Dalším krokem je příprava balíčku ke kompilaci. Můžete použít následující příkaz:

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

Neměli byste vidět žádné chyby ani varování. Ujistěte se, že jsou splněny všechny závislosti:

make dep

A nyní můžeme dokončit instalaci a propojení knihoven pomocí:

make && sudo make install && sudo ldconfig

Nakonec se ujistěte, že jsou nainstalovány a přítomny všechny knihovny:

ldconfig -p | grep pj

Měli byste získat následující výstup:

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

Krok 3: Nainstalujte Asterisk na CentOS 8/7

Nyní jsme připraveni zahájit instalaci Asterisk. Přejděte zpět do našeho adresáře ~/build:

cd ~/build

Přejděte na stránku stahování Asterisk a stáhněte si nejnovější verzi nebo můžete použít následující příkaz wget ke stažení souboru v terminálu.

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

Při psaní tohoto návodu je nejnovější verze Asterisk 16. Při provádění kroků se ujistěte, že stahujete nejnovější verzi Asterisk.

Nyní rozbalte archiv a přejděte do nově vytvořeného adresáře:

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

Toto je čas zmínit, že pokud chcete povolit podporu mp3 pro přehrávání hudby, když je klient pozastaven, budete muset nainstalovat několik dalších závislostí. Tyto kroky jsou volitelné:

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

Po druhém kroku byste měli získat výstup podobný těmto:

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.

Začněte spuštěním konfiguračního skriptu pro přípravu balíčku pro kompilaci:

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

Pokud získáte nějaké chybějící závislosti, nainstalujte je. V mém případě jsem dostal následující chybu:

configure: error: patch is required to configure bundled pjproject

Chcete-li to obejít, jednoduše spusťte:

yum install patch 

A znovu spusťte konfigurační skript. Pokud vše proběhlo perfektně bez chyb, uvidíte následující snímek obrazovky.

Nyní začněme proces sestavování:

make menuselect

Po několika sekundách byste měli získat seznam funkcí, které chcete povolit:

Pokud se pokusíte použít funkci pozastavení hudby, budete muset povolit funkci „format_mp3 “ v části „Doplňky“. Uložte svůj seznam a spusťte následující příkaz:

make && sudo make install

Chcete-li nainstalovat ukázkové konfigurační soubory, použijte následující příkaz:

sudo make samples

Chcete-li spustit Asterisk při spouštění, použijte:

sudo make config

Aktualizujte vlastnictví následujících adresářů a souborů:

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

Nakonec otestujeme naši instalaci pomocí:

sudo service asterisk start
sudo asterisk -rvv

Měli byste vidět výstup podobný tomuto:

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>

Pokud chcete zobrazit seznam dostupných příkazů, zadejte:

asterisk*CLI> core show help

Chcete-li ukončit výzvu s hvězdičkou, jednoduše zadejte:

asterisk*CLI> exit

Asterisk bude stále běžet na pozadí.

Závěr

Nyní máte spuštěný server Asterisk a můžete začít připojovat telefony a pobočky a upravovat konfiguraci podle svých potřeb. Pro více podrobností, jak toho dosáhnout, doporučujeme použít stránku Asterisk Wiki. Pokud máte nějaké dotazy nebo připomínky, dejte nám prosím vědět v sekci komentářů níže.