Asterisk to otwarte oprogramowanie do tworzenia i zarządzania centralami telefonicznymi oraz platformami do komunikacji głosowej i wideo.
Dzięki swojej elastyczności i możliwościom dostosowania do różnych potrzeb, Asterisk jest popularnym narzędziem do tworzenia niestandardowych systemów telekomunikacyjnych i call center. Może być wykorzystywany zarówno w małych firmach, jak i w dużych przedsiębiorstwach, gdzie potrzebne są zaawansowane rozwiązania telekomunikacyjne.
Co więcej ten darmowy system telefonii internetowej można zainstalować na darmowej dystrybucji Linuxa: Rocky 9. Dystrybucja Rocky 9 obecnie nie współpracuje z Oracle VM VirtualBox, dlatego jeżeli myślisz o środowisku wirtualizacji wybierz Hyper-V lub Proxmox. Zobacz nasz artykuł o instalacji Rocky 9 na Proxmox. Jeżeli preferujesz inną dystrybucję Linuxa możesz też zobaczyć nasze artykuły o instalacji Asteriska na Debianie, Ubuntu, CentOS 7 oraz CentOS Stream 8. Kliknij w jeden z tych linków, aby zobaczyć jak przeprowadzić instalację na innych Linux’ach.
Spis treści
Podpowiedź
Zamiast wykonywać wszystkie poniższe instrukcje, możesz również użyć naszego pliku instalatora, który instaluje Asterisk 20 ze źródła.
1) Wstępne wymagania
Upewnij się, że uruchamiasz wszystkie polecenia jako użytkownik ’root
’. Uruchom polecenie ’su
’ i wprowadź hasło roota.
su
Zaktualizuj system i zainstaluj wymagane zależności. Zainstaluj przy okazji jakiś wygodny edytor tekstu na przykład nano oraz aplikacje wget i tar do ściągnięcia i rozpakowania instalatora. Jeżeli przyzwyczajeni jesteśmy do instalatora yum to tutaj będziemy już korzystali z menadżera pakietów DNF, który jest jego nowszym odpowiednikiem.
dnf -y update
dnf -y install nano wget tar epel-release chkconfig libedit-devel
2) Wyłączenie SELinux
Najpierw koniecznie wyłącz moduł bezpieczeństwa jądra Linuksa – SELinux. Jeżeli teraz tego nie zrobisz to napotkasz później problemy, np. z odtwarzaniem nagrań.
Polecenie sestatus
pokaże aktualny status SELinux:
sestatus
W celu wyłączenia SELinux, dokonaj zmian w pliku /etc/selinux/config
nano /etc/selinux/config
Zmień zasadę działania z wymuszania (ang. enforcing) na wyłączone (ang. disabled).
SELINUX=disabled
Podpowiedź
zamiast edycji pliku /etc/selinux/config
możesz po prostu wpisać komendę:
sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
3) Restart systemu
Tylko ponowne uruchomienie systemu jest sposobem na trwałe wyłączenie SELinux.
reboot
Podpowiedź
Możesz też wstrzymać się z restartem i tymczasowo wyłączyć SELinux na zapomocą polecenia:
setenforce 0
Po restarcie polecenie ’sestatus
’ powinno pokazać, że SELinux jest wyłączony
sestatus
4) Konfigurowanie zależności oprogramowania
Najpierw pobierz źródła systemu Asterisk. Katalog /usr/src
to wygodne miejsce do przechowywania wszystkich instalek.
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz
tar zxvf asterisk-20-current.tar.gz
rm -rf asterisk-20-current.tar.gz
cd asterisk-20*/
Przed kontynuacją instalacji musimy dodać wszystkie zależności z załadowanych wcześniej repozytoriów.
contrib/scripts/install_prereq install
Ostatecznie możemy skonfigurować naszego asteriska pod końcową kompilację.
Rocky 9 wymaga systemu 64-bitowego, więc dodajemy opcję --libdir=/usr/lib64
, aby skonfigurować polecenie.
Ze względu na to, że chan_pjsip
wymaga pewnych dodatkowych bibliotek, dodajemy jeszcze dwie kolejne opcje --with-jansson-bundled --with-pjproject-bundled
Nasze polecenie konfiguratora będzie następujące:
./configure --libdir=/usr/lib64 --with-pjproject-bundled --with-jansson-bundled
Po bezbłędnym przejściu konfiguracji oprogramowania zobaczymy logo systemu asterisk.
5) Kompilacja i instalacja
Teraz możemy po prostu wykonać polecenie make
bez parametrów i skompilować oprogramowanie. Oczywiście lepiej mieć możliwość wyboru dodatkowych opcji, funkcji, aplikacji, kodeków dlatego proponuję użycie make menuselect
. Wyświetli ono menu, w którym możesz po prostu wybrać to, czego potrzebujesz.
make menuselect
W trakcie procesu możesz zaznaczyć lub odznaczyć wybrane opcje np. użyj ODBC zamiast magazynu FILE dla poczty głosowej.
Czasami system nie pozwoli wybrać pewnych modułów. Ale pokazuje również, które zależności są wymagane.
Gdy zaznaczysz odpowiednie opcje pamiętaj aby wybrać przycisk Save & Exit
wychodząc z konfiguratora.
Zwróć uwagę, że pewne opcje mogą być niedostępne. Jeżeli chciałbyś skorzystać z modułu chan_mobile
do połączenia się z asteriskiem przez bluetooth
musisz najpierw zainstalować obsługę bluetooth
w systemie rocky 9
a potem wrócić do tego konfiguratora. Inaczej zobaczysz obrazek podobny do poniższego.
Zachęcam Cię do zajrzenia do naszego posta:
Podłącz swoją komórkę do RasPBX przez Bluetooth (z chan_mobile)
Wyjaśniamy tam jak połączyć się się z Raspberry Pi przez bluetooth wykorzystując właśnie do tego moduł chan_mobile
Po wyborze odpowiednich opcji i zależności wykonaj samo polecenie make
przygotuj się do właściwej instalacji. Ten i następny proces może zająć kilka minut.
make
System podpowie Ci, co dalej. Wywołanie make install
ostatecznie zainstaluje Asteriska na twoim serwerze.
make install
Po udanej instalacji otrzymamy okienko z informacją podobną do poniższej. Zacznijmy od zrobienia przykładowych plików z make samples
. Spowoduje to utworzenie wszystkich plików z dokumentacją.
make samples
Przenieś przykładowe pliki do nowego folderu (np. /etc/asterisk/samples/
) i utwórz podstawową konfigurację za pomocą make basic-pbx
.
mkdir /etc/asterisk/samples
mv /etc/asterisk/*.* /etc/asterisk/samples/
make basic-pbx
Asterisk jest już gotowy (nie ma o tym informacji o tym na ekranie głównym). Niestety nie ma jeszcze plików startowych. W systemie CentoOS można wykonać make config
, ale Rocky 9 tego nie rozumie. Musimy wykorzystać systemd do zarządzania usługą asterisk. W tym celu stworzymy plik asterisk.service
i wpiszemy do niego niezbędne informacje.
touch /usr/lib/systemd/system/asterisk.service
cat <<'EOF' >/usr/lib/systemd/system/asterisk.service
[Unit]
Description=Asterisk PBX and telephony daemon.
#After=network.target
#include these if asterisk need to bind to a specific IP (other than 0.0.0.0)
Wants=network-online.target
After=network-online.target network.target
[Service]
Type=simple
Environment=HOME=/var/lib/asterisk
WorkingDirectory=/var/lib/asterisk
ExecStart=/usr/sbin/asterisk -mqf -C /etc/asterisk/asterisk.conf
ExecReload=/usr/sbin/asterisk -rx 'core reload'
ExecStop=/usr/sbin/asterisk -rx 'core stop now'
LimitCORE=infinity
Restart=always
RestartSec=4
# Prevent duplication of logs with color codes to /var/log/messages
StandardOutput=null
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
Zachęcam Cię do zajrzenia do naszego posta:
Dostosuj swoją usługę systemd Asteriska w CentOS
Wyjaśniamy tam szczegółowo jak korzystać zarządzania usługami z wykorzystaniem systemd
i jakie wynikają z tego korzyści
6) Uruchomienie Asteriska
Teraz możesz dodać do autostartu usługę asteriska, wystartować ją i sprawdzić jej status.
systemctl enable asterisk.service
systemctl start asterisk
systemctl status asterisk
Jeśli widzisz active (running)
to właśnie uruchomiłeś Asterisk’a!
make config
i spróbujesz wystartować usługę asterisk to niestety otrzymasz błąd:
Failed to start asterisk.service
: Unit asterisk.service
not found.
Jeżeli najpierw spróbujesz dodać usługę asteriska do autostartu a potem będziesz chciał ja uruchomić, również pojawią się błędy w rodzaju:
Job for asterisk.service failed because the control process exited with error code.
Próba wywołania samej konsoli asterisk również zakończy się niepowodzeniem:
Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl/ exist?)
Restart systemu operacyjnego tym razem nie okaże się uniwersalnym lekarstwem. Sprawdzenie statusu naszej usługi pokaże jej niedostępność Dzieje się tak dlatego, że Rocky 9 nie tworzy plików startowych przy użyciu make config
. Należy wykorzystać opisany w punkcie 5 tego posta systemd
Wcześniej jednak usuń błędnie stworzone powiązania.
systemctl disable asterisk.service
Aby się przekonać, że asterisk jest prawidłowo zainstalowany i ma powiązane odpowiednie biblioteki wywołaj jeszcze poniższe polecenie:
ldd /usr/sbin/asterisk
Zobaczysz listę podobną do poniższej:
Jak wspomnieliśmy wcześniej, polecamy zajrzeć do tego posta, żeby utworzyć własny plik startowy.
Po poprawnym uruchomieniu usługi asterisk możesz jeszcze wejść do katalogu /etc/asterisk
i przejrzeć wszystkie przykładowe pliki.
cd /etc/asterisk
ls
Następnie możesz uruchomić centralę poleceniem asterisk -r
i rozpocząć pracę.
asterisk -r
Czy wiesz co tak na prawdę dzieje się na Twojej centrali? Wypróbuj nasze autorskie oprogramowanie VOIPERO.
System niedawno wystartował i teraz jest udostępniany całkowicie za darmo. Instalacja i konfiguracja zajmuje kilka minut
Dowiedz się jakie możliwości ma system VOIPERO jeżeli chodzi o raportowanie i monitorowanie na żywo systemów VoIP bazujących na asterisku.