Tento článek popisuje, jak nainstalovat open source komunikační software Asterisk na RHEL 8 / CentOS 8; vzhledem k tomu, že Asterisk a další důležité závislosti nejsou dostupné jako RPM balíčky z repozitářů, je potřeba je zkompilovat ze zdrojů.
V tomto tutoriálu se naučíte:
- Jaké jsou předpoklady pro instalaci Asterisk
- Jak zkompilovat Asterisk ze zdrojů
- Jak spustit Asterisk
- Jak překonfigurovat nebo odebrat Asterisk
- Jak získat přístup k rozhraní příkazového řádku Asterisk
Výstup spuštění služby Asterisk systemd na RHEL 8 / CentOS 8
Požadavky na software a použité konvence
Kategorie | Požadavky, konvence nebo použitá verze softwaru |
---|---|
Systém | RHEL 8 / CentOS 8 |
Software | Hvězdička, pjsip, libedit |
Jiné | nakonfigurována místní nebo vzdálená úložiště; správné systémové datum a časové pásmo. |
Konvence | # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí sudo příkaz$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel |
Úvod
Asterisk je software s otevřeným zdrojovým kódem privátní pobočkové ústředny (PBX) a jako takový je jeho hlavním účelem navazování a ovládání telefonních hovorů mezi různými systémy, prostřednictvím tradičních linek PSTN nebo moderních koncových bodů VoIP.
V této příručce se přesvědčíme bude nainstalován v RHEL 8 / CentOS 8 spolu s běžnými komponentami.
Instalace Asterisk na RHEL 8 / CentOS 8 – krok za krokem.
Poslední verzi – 16.3.0 uvedeme v době psaní tohoto návodu.
- Předpoklady
Potřebujeme nainstalovat níže uvedené balíčky včetně
systemd-devel
pokud chceme spustit Asterisk jako službu systemd.# dnf -y install wget bzip2 tar sqlite-devel ncurses-devel systemd-devel
A vyvinout ze zdrojů:
# dnf -y install binutils gcc gcc-c++ kernel-devel autoconf automake libtool
Od této chvíle musíme vše instalovat ze zdrojů, takže to udělejme ze společné složky
# mkdir -p /root/src && cd /root/src
Nejprve zkompilujeme
libedit
, náhrada nebo alternativa k editaci z příkazového řádku GNU readline.# cd /root/src # wget http://thrysoee.dk/editline/libedit-20190324-3.1.tar.gz # tar xzvf libedit-20190324-3.1.tar.gz # cd libedit-20190324-3.1 # ./configure && make && make install
- Instalace volitelných komponent
Následující komponenty jsou volitelné, ale v reálném scénáři jsou velmi často potřeba.DAHDI
(Digium/Asterisk Hardware Device Interface):je to rámec pro propojení s digitálními telefonními kartami v Asterisku.
Pojďme si to nainstalovat.# cd /root/src # wget https://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz # tar zxvf dahdi-linux-complete-current.tar.gz && cd dahdi-linux-complete-3.0.0+3.0.0 # make all && make install && make install-config # cd /etc/dahdi && cp system.conf.sample system.conf # systemctl enable dahdi && systemctl start dahdi # modprobe dahdi # modprobe dahdi_transcode
LibPRI je knihovna, která přidává podporu pro ISDN (PRI a BRI), v podstatě je potřeba při instalaci ISDN karty pro komunikaci se staršími systémy.
Instalace:
# cd /root/src/ # wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.6.0.tar.gz # tar xzvf libpri-1.6.0 && cd libpri-1.6.0 # make && make install
- Instalace Asterisk
Nyní je čas zkompilovat hlavní aplikaci ze zdrojů – jak již bylo zmíněno.
Tím se nainstaluje také knihovna SIPpjsip
do systému.# cd /root/src/ # wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16.3.0.tar.gz # tar xzvf asterisk-16.3.0.tar.gz # wget https://raw.githubusercontent.com/asterisk/third-party/master/pjproject/2.8/pjproject-2.8.tar.bz2 # mv pjproject-2.8.tar.bz2 /tmp # cd asterisk-16.3.0 # ./configure # make && make install && make install-logrotate
Pomocí
make install-logrotate
zajistíme, že soubory protokolu aplikace budou rotovány. - Konfigurace Asterisk
V Asterisk je mnoho konfiguračních souborů, hlavní jeasterisk.conf
; k instalaci výchozí verze všech z nich musíme spustit:# cd /root/src/asterisk-16.3.0/ # make samples
V tuto chvíli, protože některé moduly nebo funkce vyžadují další konfiguraci nebo závislosti, je lepší je deaktivovat.
To však není povinné, nejsou to základní součásti bránící spuštění Asterisku.#cd /etc/asterisk # cp modules.conf modules.conf.org # echo "noload => res_config_ldap.so" >>modules.conf # echo "noload => res_pjsip_transport_websocket.so" >>modules.conf # echo "noload => cdr_sqlite3_custom.so" >>modules.conf # echo "noload => cel_sqlite3_custom.so" >>modules.conf # echo "noload => res_config_sqlite3.so" >>modules.conf # echo "noload => cdr_pgsql.so" >>modules.conf # echo "noload => cel_pgsql.so" >>modules.conf # echo "noload => res_config_pgsql.so" >>modules.conf sed -i.org 's/enabled = yes/enabled = no/' ari.conf
Poté je čas připravit servisní soubory systemd:
# cd /root/src/asterisk-16.3.0/contrib/systemd # cp asterisk* /usr/lib/systemd/system
Služba Asterisk by měla z bezpečnostních důvodů běžet jako běžný uživatel, takže musíme přidat ID služby, které se bude jmenovat
asterisk
jak je uvedeno v konfiguračním souboru systemd.# useradd -m -c "asterisk user"
Pak změňme některá oprávnění:
chown -R asterisk:asterisk /var/log/asterisk/* chown asterisk:asterisk /var/log/asterisk/.
- Spuštění Asterisku
SELinux zabrání spuštění Asterisku, takže jej přepneme dopermissive mode
kvůli jednoduchosti.# setenforce 0 # sed -i.org 's/enforcing/permissive/' /etc/sysconfig/selinux
Konečně můžeme spustit Asterisk
# systemctl enable asterisk # systemctl start asterisk
Asterisk můžete také spustit přímo bez systemd zadáním:
# /usr/sbin/asterisk -mqf -C /etc/asterisk/asterisk.conf
nebo lépe
# asterisk -vvvc
získat podrobné informace.
Výstup hvězdička při přímém spuštění - Překonfigurování Asterisk
Astering je možné kdykoli překonfigurovat odebráním nebo (znovu) přidáním jakékoli funkce.
Stačí zastavit službu, přejít do zdrojové složky a spustitmake menuselect
. Vyberte nabídku s hvězdičkou# systemctl stop asterisk # cd /root/src/asterisk-16.3.0/ # make menuselect
Pokud jste provedli nějakou změnu, musíte uložit konfiguraci před odchodem z menu-select menu.
Poté je nutné znovu zkompilovat Asterisk, jak je vysvětleno výše. Je lepší provést jakoukoli změnu nejprve v testovacím prostředí. - Odstranění Asterika
Pokud budete někdy potřebovat odstranit Asterisk ze systému – včetně Dahdi a libpri – zde jsou kroky:# systemctl stop dahdi # systemctl stop asterisk # cd /root/src/asterisk-16.3.0 # make uninstall-all cd /root/src/libpri-1.6.0 && make uninstall
- Přístup k rozhraní Asterisk CLI
Tento software má také svůj shell, abychom k němu mohli přistupovat – jakmile je Asterisk spuštěn – musíme zadat:# asterisk -r
Asterisk CLI
Závěr
Asterisk jsme úspěšně zkompilovali ze zdrojů a spustili jej, nicméně na získání pracovního prostředí to nestačí; obvykle po instalaci přidáte své koncové body SIP úpravou konfiguračního souboru sip.conf
– nebo prostřednictvím zmíněného CLI – a nakonfigurujte libovolné rozšíření v souboru extensions.conf
. Oba soubory jsou v /etc/asterisk.