Kako namestiti zvezdico na CentOS/RHEL 8/7


Asterisk je odprtokodni okvir, ki se uporablja za izdelavo komunikacijskih aplikacij. Z njim lahko lokalni računalnik ali strežnik spremenite v komunikacijski strežnik. Uporablja se za napajanje sistemov IP PBX, prehodov VoIP, konferenčnih strežnikov in drugih rešitev. Uporabljajo ga vse vrste organizacij po vsem svetu, nazadnje pa je brezplačen in odprtokoden.

V tej vadnici vam bomo pokazali, kako namestiti Asterisk na CentOS 8/7 (navodila delujejo tudi na RHEL 8/7), preden pa začnemo, bomo morali narediti nekaj priprav, da bo Asterisk po namestitvi deloval brez težav. .

1. korak: Onemogočite SELinux na CentOS -u

To naredite tako, da v svoj sistem vnesete SSH in s svojim priljubljenim urejevalnikom besedila ukazne vrstice odprete/etc/selinux/config in onemogočite SELINUX.

# vim /etc/selinux/config

Vrstica SELinux bi morala izgledati tako:

SELINUX=disabled

Zdaj znova zaženite sistem. Ko se SSH znova vrne v ta sistem.

2. korak: Namestite potrebne pakete

Asterisk ima kar nekaj zahtev, ki jih je treba namestiti. Za namestitev potrebnih paketov lahko uporabite naslednji ukaz yum, kot je prikazano.

# 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

Preden nadaljujemo, ustvarimo novega uporabnika s privilegiji sudo, imenovanega »zvezdica«, ga bomo uporabili za nastavitev zvezdice v sistemu.

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

Nato namestite PJSIP, brezplačno odprtokodno večpredstavnostno komunikacijsko knjižnico, ki izvaja standardne protokole, kot so SIP, SDP, RTP, STUN, TURN in ICE. Gonilnik kanala Asterisk SIP bi moral izboljšati jasnost klicev.

Za pridobitev najnovejše različice najprej ustvarimo začasni imenik, v katerem bomo paket zgradili iz vira.

$ mkdir ~/build && cd ~/build

Zdaj pojdite na ukaz wget za prenos paketa neposredno v terminal.

Upoštevajte, da je pri pisanju tega članka najnovejša različica 2.8, kar se lahko v prihodnosti spremeni, zato uporabite najnovejšo različico:

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

Ko je prenos končan, izvlecite datoteko in se pomaknite v ta imenik.

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

Naslednji korak je priprava paketa za sestavljanje. Uporabite lahko naslednji ukaz:

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

Ne bi smeli videti nobenih napak ali opozoril. Prepričajte se, da so izpolnjene vse odvisnosti:

$ make dep

In zdaj lahko dokončamo namestitvene knjižnice in povežemo knjižnice z:

$ make && sudo make install && sudo ldconfig

Na koncu se prepričajte, da so vse knjižnice nameščene in prisotne:

$ ldconfig -p | grep pj

Morali bi dobiti naslednji izhod:

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

3. korak: Namestite zvezdico na CentOS 8/7

Zdaj smo pripravljeni za začetek namestitve Asteriska. Vrnite se v naš imenik ~/build:

$ cd ~/build

Pojdite na ukaz wget za prenos datoteke v terminal.

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

S pisanjem te vadnice je najnovejša različica Asterisk 16. Prepričajte se, da prenašate najnovejšo različico Asteriska, ko sledite korakom.

Zdaj izvlecite arhiv in se pomaknite do novo ustvarjenega imenika:

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

To je čas, da omenite, da boste morali, če želite omogočiti podporo za predvajanje glasbe mp3, medtem ko je odjemalec na čakanju, namestiti še nekaj odvisnosti. Ti koraki so neobvezni:

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

Po drugem koraku bi morali dobiti rezultate, podobne tem:

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čnite tako, da zaženete konfiguracijski skript, da paket pripravite na sestavljanje:

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

Če dobite manjkajoče odvisnosti, jih namestite. V mojem primeru sem dobil naslednjo napako:

configure: error: patch is required to configure bundled pjproject

Če želite to narediti, preprosto zaženite:

# yum install patch 

In znova zaženite konfiguracijski skript. Če je vse potekalo brez napak, boste videli naslednji posnetek zaslona.

Zdaj pa začnimo postopek izdelave:

$ make menuselect

Po nekaj sekundah bi morali dobiti seznam funkcij, ki jih želite omogočiti:

Če poskušate uporabiti glasbo na čakanju, morate v razdelku\"Dodatki" omogočiti funkcijo\"format_mp3". Shranite svoj seznam in zaženite naslednji ukaz:

$ make && sudo make install

Za namestitev vzorčnih konfiguracijskih datotek uporabite spodnji ukaz:

$ sudo make samples

Če želite zagnati zvezdico pri zagonu, uporabite:

$ sudo make config

Posodobite lastništvo naslednjih imenikov in datotek:

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

Na koncu preizkusimo našo namestitev z:

$ sudo service asterisk start
$ sudo asterisk -rvv

Videti bi morali podoben izhod:

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>

Če želite videti seznam razpoložljivih vrst ukazov:

asterisk*CLI> core show help

Če želite zapreti poziv Asterisk, preprosto vnesite:

asterisk*CLI> exit

Zvezdica bo še vedno delovala v ozadju.

Zdaj imate delujoč strežnik Asterisk in lahko začnete povezovati telefone in razširitve ter prilagodite svojo konfiguracijo svojim potrebam. Za več podrobnosti o tem, kako to doseči, je priporočljivo uporabiti stran Asterisk Wiki. Če imate kakršna koli vprašanja ali pripombe, nam to sporočite v spodnjem razdelku za komentarje.