

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 🙂