Skúšal som pôvodne inštalovať Asterisk na Ubuntu 25.4, ale boli s tým nemalé problémy.

Tak nakoniec som nainštaloval Asterisk na

  • Rasberry Pi 5
  • 16 GB RAM
  • Ubuntu Server 24.10

Inštalácia požadovaných závyslostí

Ako prvé je potrebné urobiť update

sudo apt update -y
sudo apt install sox pkg-config libedit-dev unzip git gnupg2 curl libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev build-essential libjansson-dev libxml2-dev uuid-dev subversion -y

Inštalácia Asterisk

Stiahneme najnovšiu verziu Asterisk

wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-22-current.tar.gz

Po dokončení sťahovania extrahujte stiahnutý súbor pomocou nasledujúceho príkazu:

sudo tar -xvzf asterisk-22-current.tar.gz

Ďalej zmeňte adresár na extrahovaný adresár a nainštalujte požadované závislosti pomocou nasledujúceho príkazu:

cd asterisk-22.*/
sudo contrib/scripts/get_mp3_source.sh 
sudo contrib/scripts/install_prereq install

Ďalej spustite nasledujúci príkaz na konfiguráciu Asterisku:

sudo ./configure

Ďalej nastavte možnosti ponuky pomocou nasledujúceho príkazu:

sudo make menuselect

Povoliť požadované doplnky:

Povoliť základné zvukové moduly

Povoliť balíčky MOH

Extra zvukové balíčky

Po nainštalovaní všetkých komponentov zostavte Asterisk pomocou nasledujúceho príkazu:

sudo make -j2

Ďalej nainštalujte Asterisk pomocou nasledujúceho príkazu:

sudo make install

Ďalej nainštalujte konfigurácie a vzorky pomocou nasledujúceho príkazu:

sudo make samples
sudo make config
sudo ldconfig

Konfigurácia Asterisk

Ďalej musíte pre Asterisk vytvoriť samostatného používateľa a skupinu. Môžete ich vytvoriť pomocou nasledujúceho príkazu:

sudo groupadd asterisk
sudo useradd -r -d /var/lib/asterisk -g asterisk asterisk

Ďalej pridajte do skupiny Asterisk niekoľko požadovaných používateľov pomocou nasledujúceho príkazu:

sudo usermod -aG audio,dialout asterisk

Ďalej nastavte správne povolenia a vlastníctvo pomocou nasledujúceho príkazu:

sudo chown -R asterisk:asterisk /etc/asterisk
sudo chown -R asterisk:asterisk /var/{lib,log,spool}/asterisk
sudo chown -R asterisk:asterisk /usr/lib/asterisk

Ďalej upravte súbor /etc/default/asterisk a nastavte používateľa Asterisk, ako predvoleného používateľa (len odkomentujeme):

sudo vim /etc/default/asterisk
AST_USER="asterisk"
AST_GROUP="asterisk"

Uložíme

Následne upravíme asterisk.conf (odkomentujeme)

sudo vim /etc/asterisk/asterisk.conf
runuser = asterisk ; The user to run as.
rungroup = asterisk ; The group to run as.

Aby sa zmeny prejavili, tak je potrebné Asterisk reštartovať, a povoliť mu aby sa spúšťal už púri boote

sudo systemctl restart asterisk
sudo systemctl enable asterisk

Overme, či systém je funkčný

systemctl status asterisk

Je možné, že narazíte na chybu

radcli: rc_read_config: rc_read_config: can't open /etc/radiusclient-ng/radiusclient.conf: No such 
file or directory

Riešenie chyby „radcli: can’t open /etc/radiusclient-ng/radiusclient.conf“

Problém

Asterisk hlásil chybu pri štarte:

radcli: rc_read_config: rc_read_config: can't open /etc/radiusclient-ng/radiusclient.conf: No such file or directory

Asterisk sa snažil načítať RADIUS klientsky konfiguračný súbor zo starého umiestnenia, ktoré neexistuje.
Krok 1: Overenie a úprava konfiguračných súborov Asterisk

Skontroloval som konfiguráciu, kde je uvedená cesta k radiusclient.conf:

grep radiuscfg /etc/asterisk/*.conf

Výsledok ukázal, že cesta bola zmenená na:

radiuscfg => /etc/radcli/radiusclient.conf

Čo znamená, že konfigurácia Asterisku už správne ukazuje na nový umiestnený súbor.
Krok 2: Overenie existencie konfiguračného súboru

Skontrolovali sme, či súbor /etc/radcli/radiusclient.conf existuje:

ls -l /etc/radcli/radiusclient.conf

Ak súbor neexistoval, je potrebné ho vytvoriť alebo nainštalovať balík radcli.

Krok 3: Vytvorenie symbolického linku pre starú cestu

Asterisk a radcli stále hľadali súbor na pôvodnej ceste /etc/radiusclient-ng/radiusclient.conf. Preto som vytvoril symbolický odkaz:

Vytvorili sme chýbajúci adresár:

sudo mkdir -p /etc/radiusclient-ng

Vytvorili symbolický link:

sudo ln -s /etc/radcli/radiusclient.conf /etc/radiusclient-ng/radiusclient.conf

Overili správne vytvorenie linku:

ls -l /etc/radiusclient-ng/radiusclient.conf

Výstup: radiusclient.conf -> /etc/radcli/radiusclient.conf

Krok 4: Reštart služby Asterisk

Po vytvorení linku sme reštartovali Asterisk:

sudo systemctl restart asterisk

Krok 5: Overenie vyriešenia chyby

Pozreli sme logy, či sa chyba stále zobrazuje:

sudo journalctl -u asterisk -b | grep radcli

Prípadne použili príkaz

systemctl status asterisk
asterisk.service - LSB: Asterisk PBX
Loaded: loaded (/etc/init.d/asterisk; generated)
Active: active (running) since Tue 2025-06-17 10:47:08 UTC; 11min ago
Invocation: ea6279a91a0f40e2911a44bf9b0e4c3e
Docs: man:systemd-sysv-generator(8)
Tasks: 74 (limit: 18705)
Memory: 52.4M (peak: 53.2M)
CPU: 11.112s
CGroup: /system.slice/asterisk.service
└─73774 /usr/sbin/asterisk -U asterisk -G asterisk

Jun 17 10:47:08 ibasterisk systemd[1]: Starting asterisk.service - LSB: Asterisk PBX...
Jun 17 10:47:08 ibasterisk asterisk[73758]: * Starting Asterisk PBX: asterisk
Jun 17 10:47:08 ibasterisk asterisk[73758]: ...done.
Jun 17 10:47:08 ibasterisk systemd[1]: Started asterisk.service - LSB: Asterisk PBX.
ivan@ibasterisk:~/asterisk-22.4.1/freepbx$ systemctl status asterisksy^?
Invalid unit name "asterisksy^?" escaped as "asterisksy\x7f" (maybe you should use systemd-escape?).
Unit asterisksy\x7f.service could not be found.
ivan@ibasterisk:~/asterisk-22.4.1/freepbx$ systemctl status asterisk
● asterisk.service - LSB: Asterisk PBX
Loaded: loaded (/etc/init.d/asterisk; generated)
Active: active (running) since Tue 2025-06-17 10:47:08 UTC; 12min ago
Invocation: ea6279a91a0f40e2911a44bf9b0e4c3e
Docs: man:systemd-sysv-generator(8)
Tasks: 75 (limit: 18705)
Memory: 52.4M (peak: 53.2M)
CPU: 11.260s
CGroup: /system.slice/asterisk.service
└─73774 /usr/sbin/asterisk -U asterisk -G asterisk

Jun 17 10:47:08 ibasterisk systemd[1]: Starting asterisk.service - LSB: Asterisk PBX...
Jun 17 10:47:08 ibasterisk asterisk[73758]: * Starting Asterisk PBX: asterisk
Jun 17 10:47:08 ibasterisk asterisk[73758]: ...done.
Jun 17 10:47:08 ibasterisk systemd[1]: Started asterisk.service - LSB: Asterisk PBX.

Ďalej sa pripojte k rozhraniu príkazového riadka Asterisku pomocou nasledujúceho príkazu:

sudo asterisk -r

Teraz z toho choďte von.

exit 

Inštalácia FreePBX

Aby sme mohli pristupovať na Asterisk prostredníctvom Web GUI je potrebné doinštalovať FreePBX

apt install mariadb-server apache2 php libapache2-mod-php php-intl php-mysql php-curl php-cli php-zip php-xml php-gd php-common php-mbstring php-xmlrpc php-bcmath php-json php-sqlite3 php-soap php-zip php-ldap php-imap php-cas -y

Po nainštalovaní všetkých balíkov si stiahnite najnovšiu verziu FreePBX pomocou nasledujúceho príkazu:

sudo wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-17.0-latest.tgz

Po stiahnutí extrahujte stiahnutý súbor pomocou nasledujúceho príkazu:

sudo tar -xvzf freepbx-17.0-latest.tgz

Ďalej zmeňte adresár na extrahovaný adresár a nainštalujte balík Node.js pomocou nasledujúceho príkazu:

cd freepbx
sudo apt install nodejs npm -y

Ďalej nastavte požadované povolenia pomocou nasledujúceho príkazu:

sudo ./install -n

Ďalej nainštalujte balík pm2 pomocou nasledujúceho príkazu:

sudo fwconsole ma install pm2

Ďalej zmeňte používateľa Apache na Asterisk a zapnite možnosť AllowOverride pomocou nasledujúceho príkazu:

sudo sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf
sudo sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf

Ďalej nastavte upload_max_filesize na súbor php.ini pomocou nasledujúceho príkazu:

sudo sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php/*/apache2/php.ini
sudo sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php/*/cli/php.ini

Ďalej povoľte modul prepisovania Apache a reštartujte službu Apache pomocou nasledujúceho príkazu:

sudo a2enmod rewrite
sudo systemctl restart apache2

Prístup cez WEB prehliadač

Otvorte si webový prehliadač zistite IP adresu daného servera

http://X.X.X.X/admin

Po Vyplnení pokračujte v konfigurácií

Kliknite na tlačítko Apply

Potom sa Vám zobrazí úvodné okno

Znovu kliknite na Apply v pravom hornom rohu

Môžeme urobiť, prvé testovanie klapiek, či funguje správne:

SIP (Session Initiation Protocol) Protokol pre inicializáciu relácií

  • zahájenie hovoru
  • modifikácia hovoru
  • ukončenie hovoru

Problém s prenosom hlasu

Ak máte správne nastavené pripojenie telefónov na telefónnu ústredňu (či už ide o smartfóny alebo VoIP telefóny) a:

  • zariadenia sa úspešne zaregistrujú,
  • pri prichádzajúcom hovore zvonia,
  • ale po zdvihnutí hovoru nie je nič počuť (ani z jednej strany),

pravdepodobne ide o problém s RTP prenosom (hlasom) cez sieť.

Aby ste tento problém vyriešili, je potrebné skontrolovať a nastaviť nasledovné:

Ako prvé si otvorte asterisk konzolu

sudo asterisk -r

zvoľte príkaz

rtp set debug on

Nechajte približne 30 sekúnd bežať hovor, nech sa nazbierajú logy

Príklad výpisu

RTP Packet Debugging Enabled
[2025-06-25 18:14:11] NOTICE[1198]: res_pjsip_sdp_rtp.c:146 rtp_check_timeout: Disconnecting channel 'PJSIP/1001-00000003' for lack of audio RTP activity in 36 seconds
[2025-06-25 18:14:11] NOTICE[1198]: res_pjsip_sdp_rtp.c:146 rtp_check_timeout: Disconnecting channel 'PJSIP/1000-00000002' for lack of audio RTP activity in 36 seconds

Je potrebné sa prihlásiť do Asterisk-u cez web

X.X.X.X/admin

Potom choďte do Settings

A nastavte NAT Settings

  • External Address Vašu verejnú IP adresu
  • Local Networks

Príklad konfigurácie

Teraz to uložte a vyskúšajte urobiť hovor 🙂