FreePBX 17 na Proxmox + Wideodomofon Akuvox R20A — kompletny poradnik

FreePBX 17 na Proxmox + Wideodomofon Akuvox R20A — kompletny poradnik

FreePBX 17 na Proxmox + Wideodomofon Akuvox R20A

Dlaczego FreePBX, a nie 3CX?

Poprzednia konfiguracja opierała się na 3CX, który był pierwszym wyborem ze względu na prostotę instalacji i wsparcie dla urządzeń SIP. Problem pojawił się gdy chciałem podłączyć wideodomofon Akuvox R20A — darmowa licencja 3CX nie obsługuje tego urządzenia. Opcje były dwie: płatna licencja 3CX lub przejście na open source.

Wybór padł na FreePBX 17 z Asteriskiem 22 z kilku powodów:

  • Całkowicie darmowy do użytku domowego
  • Pełna obsługa urządzeń SIP bez ograniczeń licencyjnych
  • Oficjalny skrypt instalacyjny na Debianie 12 — prosta instalacja
  • Ogromna społeczność i dokumentacja
  • Brak chmury — wszystko lokalnie

Wymagania i środowisko

Sprzęt (VM na Proxmox)

Zasób Wartość
Proxmox VE 8.x
CPU 2 vCPU (typ: host)
RAM 4 GB
Dysk 32 GB (VirtIO Block)
Sieć VirtIO, bridge vmbr0
BIOS SeaBIOS, Machine: q35

Oprogramowanie

Komponent Wersja
System operacyjny Debian 12.13.0 (Bookworm)
FreePBX 17.0.28
Asterisk 22.7.0
Wideodomofon Akuvox R20A
Klient Android Linphone 6.x / Linhome
⚠️ Ważne: FreePBX 17 działa wyłącznie na Debianie 12. Debian 13 (Trixie) nie jest obsługiwany.

Krok 1 — Tworzenie VM na Proxmox

W Proxmox utwórz nową VM z następującymi ustawieniami:

General:
- Name: freepbx
- Start at boot: ✅

OS:
- ISO: debian-12.13.0-amd64-netinst.iso
- Type: Linux, Version: 6.x Kernel

System:
- Machine: q35
- SCSI Controller: VirtIO SCSI
- Qemu Agent: ✅

Disks:
- Bus: VirtIO Block, Size: 32GB, Cache: Write back

CPU: 2 cores, Type: host

Memory: 4096 MB

Network: VirtIO, bridge vmbr0

Pobieranie ISO Debian 12

W Proxmox: local → ISO Images → Download from URL:

https://cdimage.debian.org/cdimage/archive/12.13.0/amd64/iso-cd/debian-12.13.0-amd64-netinst.iso

Krok 2 — Instalacja Debian 12

Podczas instalacji:

  • Język: English (zalecane — brak problemów z polskimi znakami w logach)
  • Hostname: freepbx
  • Domain: (puste)
  • Partycjonowanie: Guided — całe dysk, wszystko w jednej partycji
  • Software selection: tylko SSH server + standard system utilitiesżadnego GUI!

Po instalacji zaloguj się przez SSH i zainstaluj QEMU Guest Agent:

apt update && apt install -y qemu-guest-agent
systemctl enable --now qemu-guest-agent

Krok 3 — Instalacja FreePBX 17

Instalacja przez oficjalny skrypt Sangoma. Zalecane uruchomienie w screen żeby nie przerwać przy zerwaniu SSH:

apt install -y screen wget
screen -S freepbx
cd /tmp
wget https://github.com/FreePBX/sng_freepbx_debian_install/raw/master/sng_freepbx_debian_install.sh \
     -O sng_freepbx_debian_install.sh
bash sng_freepbx_debian_install.sh
Instalacja trwa 30–60 minut w zależności od łącza i specyfikacji VM.

Jeśli SSH się zerwie, wróć komendą: screen -r freepbx

Po instalacji

Otwórz w przeglądarce http://IP_VM i utwórz konto administratora.


Krok 4 — Rozwiązanie problemów po instalacji

Problem: Brak menu admina po zalogowaniu

Po utworzeniu konta przez UI, użytkownik admin miał pustą kolumnę sections w bazie danych — brak uprawnień do menu.

Rozwiązanie:

mysql -u root asterisk -e "UPDATE ampusers SET password_sha1=SHA1('TWOJE_HASLO'), sections='*' WHERE username='admin';"

Problem: Extensions w innym miejscu menu

W FreePBX 17 Extensions zostały przeniesione z Applications do Connectivity.

Lokalizacja: Connectivity → Extensions

Problem: Asterisk nie startuje po restarcie

systemctl enable asterisk

Krok 5 — Dodanie SWAP (zalecane)

Bez SWAP przy braku pamięci RAM system może killować procesy Asteriska:

fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab

Krok 6 — Konfiguracja extensionów SIP

W FreePBX: Connectivity → Extensions → SIP [chan_pjsip] Extensions → Add Extension

Dodaj trzy extensiony:

Extension Display Name Przeznaczenie
100 Telefon Linphone/Linhome na telefonie
101 Tablet Linhome na tablecie
103 Domofon (akuvox) Akuvox R20A

Dla każdego ustaw Secret (silne hasło) i kliknij Submit → Apply Config.

⚠️ Kluczowe: Zawsze klikaj Apply Config (czerwony przycisk) po każdej zmianie — bez tego konfiguracja nie trafia do Asteriska!

Krok 7 — Konfiguracja Akuvox R20A

Znajdź IP domofonu w sieci i wejdź w panel: http://IP_AKUVOXA

Login: admin / Hasło: admin

Konto SIP (Konto → Podstawowe)

Pole Wartość
Account Active ✅ Enabled
Etykieta ekranowa Domofon
Nazwa wyświetlana Domofon
Nazwa rejestracji 103
Nazwa użytkownika 103
Hasło Secret z extensionu 103
IP serwera 192.168.1.100
Port 5060

Kodeki (Konto → Zaawansowane)

  • Audio: PCMU, PCMA, G722 — aktywne
  • Kodek wideo: H264 ✅, rozdzielczość 720P
  • DTMF Typ: RFC2833

Interkom (Interkom → Podstawowe)

  • Call Type: Group Call
  • Group Call Number: 101, 100 (tablet i telefon)
  • Call Timeout: 60 sekund

Przekaźnik (Interkom → Przekaźnik)

  • Przekaźnik A — 1 Digit DTMF: 0
  • Hold Delay: 3 sekundy

Naciśnięcie 0 podczas rozmowy otwiera drzwi.


Krok 8 — Konfiguracja klientów SIP

Linhome (zalecana — obsługa video i domofonu)

Linhome to aplikacja od producenta Linphone, zoptymalizowana pod wideodomofony SIP. Obsługuje:
- Video H.264 podczas połączenia
- DTMF do otwierania drzwi
- Powiadomienia push

Konfiguracja konta:
- Typ urządzenia: Panel wewnętrzny
- Adres SIP: sip:101@192.168.1.100
- Hasło: Secret z extensionu 101
- Transport: UDP, Port 5060

Dodanie domofonu jako urządzenie:
- Typ: Wideo-domofon
- Adres SIP: sip:103@192.168.1.100

Linphone (alternatywa)

Standardowa apka SIP — działa poprawnie dla połączeń audio. Video H.264 działa po odebraniu, ale bez Early Media (obraz przed odebraniem).


Krok 9 — Włączenie kodeków video w FreePBX

Admin → Asterisk SIP Settings → Video Codecs

Zaznacz H264 → Submit → Apply Config

Bez tego kroku video nie będzie działać mimo poprawnej konfiguracji po stronie Akuvoxa!

Krok 10 — Firewall FreePBX i Fail2Ban

Dodanie sieci lokalnych jako Trusted

fwconsole firewall trust 192.168.1.0/24
fwconsole firewall trust 192.168.50.0/24
fwconsole firewall restart

Problem: Fail2Ban blokuje bramę sieciową

Przy wielokrotnych nieudanych próbach rejestracji SIP, Fail2Ban szybko blokuje IP. Objaw: pakiety przychodzą do FreePBX (widoczne w tcpdump) ale brak odpowiedzi wychodzących.

Diagnoza:

tcpdump -i any -n port 5060
iptables -L -n --line-numbers | grep -B5 "ZABLOKOWANE_IP"

Odblokowanie:

fail2ban-client set asterisk-iptables unbanip ZABLOKOWANE_IP

Konfiguracja portów — Sophos Firewall

Dla dostępu z zewnątrz (WAN) wymagane reguły NAT/DNAT w Sophosie:

Port Protokół Przeznaczenie
5060 UDP SIP sygnalizacja
5060:5061 TCP SIP TCP/TLS
10000:20000 UDP RTP audio/video
⚠️ NPM (Nginx Proxy Manager) obsługuje tylko HTTP/HTTPS — nie można przez niego proxować SIP/RTP. Panel administracyjny FreePBX idzie przez NPM, ale połączenia SIP wymagają bezpośredniego NAT na routerze/firewallu.

Napotkane problemy i rozwiązania

Problem Przyczyna Rozwiązanie
Brak menu admina Pusta kolumna sections w ampusers Aktualizacja przez MySQL
"No matching endpoint found" Brak Apply Config po dodaniu extensionów fwconsole reload / Apply Config
Fail2Ban blokuje LAN Wielokrotne nieudane próby rejestracji fail2ban-client unbanip + dodanie sieci jako Trusted
Brak video H264 Kodeki video nie włączone w FreePBX Admin → SIP Settings → Video Codecs → Apply Config
Asterisk nie startuje po restarcie Serwis disabled w systemd systemctl enable asterisk
Extensions w złym miejscu menu FreePBX 17 przeniósł do Connectivity Connectivity → Extensions

Co działa ✅

  • FreePBX 17 na Proxmox (Debian 12)
  • Asterisk 22.7.0
  • Domofon Akuvox R20A zarejestrowany jako extension SIP
  • Połączenia audio między extensionami
  • Video H264 z domofonu podczas połączenia
  • Otwieranie drzwi przez DTMF (0)
  • Linphone na telefonie (extension 100)
  • Linhome na tablecie (extension 101)
  • Panel administracyjny przez domenę pbx.example.com (NPM + SSL)
  • Autostart Asteriska po restarcie VM

Co zostało do zrobienia 🔲

  • [ ] NAT zewnętrzny (Sophos DNAT) — dostęp do SIP/RTP z internetu
  • [ ] Asterisk SIP Settings — publiczne IP — konfiguracja NAT dla poprawnego działania audio z WAN
  • [ ] Early Media — obraz z kamery przed odebraniem połączenia
  • [ ] Fully Kiosk Browser — tablet jako panel domowy z automatycznym wyświetlaniem obrazu z domofonu
  • [ ] Ring Group — jednoczesne dzwonienie na telefon i tablet
  • [ ] AdGuard Home — dodanie pbx.example.com jako lokalny DNS
  • [ ] WireGuard VPN — bezpieczny dostęp z zewnątrz jako alternatywa dla otwartego SIP

Architektura docelowa

Architektura FreePBX 17 + Akuvox R20A

Przydatne komendy

# Status extensionów
asterisk -rx "pjsip show endpoints"

# Logi w czasie rzeczywistym
tail -f /var/log/asterisk/full

# Restart FreePBX (Apply Config)
fwconsole reload

# Status firewalla
fwconsole firewall status

# Lista zablokowanych IP (Fail2Ban)
iptables -L fail2ban-SIP -n

# Odblokowanie IP
fail2ban-client set asterisk-iptables unbanip ZABLOKOWANE_IP

# Sprawdzenie swap
free -h

Podsumowanie

Instalacja FreePBX 17 na Proxmox z Debianem 12 to obecnie najlepsza opcja dla domowej centrali VoIP bez ograniczeń licencyjnych. Największe pułapki to agresywny Fail2Ban blokujący LAN podczas konfiguracji, konieczność ręcznego Apply Config po każdej zmianie oraz wymóg włączenia kodeków H264 dla video.

Akuvox R20A świetnie współpracuje z FreePBX — rejestracja SIP, video H264 i DTMF do otwierania drzwi działają bez dodatkowych modułów czy licencji.


Zobacz też


Tytuł SEO: FreePBX 17 na Proxmox + wideodomofon Akuvox R20A
Meta opis: Instalacja FreePBX 17 na Proxmox (Debian 12), konfiguracja wideodomofonu Akuvox R20A — SIP, video H264, otwieranie drzwi przez DTMF, Fail2Ban.
Tagi: voip, proxmox, homelab, self-hosting, linux
URL slug: freepbx-17-proxmox-akuvox-r20a
Feature image alt: Schemat FreePBX 17 na Proxmox z wideodomofon Akuvox R20A i klientami SIP na telefonie i tablecie