Szukaj

Instalacja Asterisk 20 ze źródła na Rocky 9

Instalacja Asterisk 20 ze źródła na Rocky 9

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, UbuntuCentOS 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.

 

PLIK INSTALATORA

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!

Jeżeli z przyzwyczajenia wykonałeś polecenie 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
				
			
Gratuluję!

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.

Share this post

Masz pytania lub potrzebujesz oferty?

Skontaktuj się z naszym doradcą.

Popularne wpisy

Powiązane posty

Projekt wystartował!

Monitorowanie i raportowanie Twojego serwera VoIP