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.comjako lokalny DNS - [ ] WireGuard VPN — bezpieczny dostęp z zewnątrz jako alternatywa dla otwartego SIP
Architektura docelowa

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ż
- Frigate NVR na Proxmox — instalacja i konfiguracja — ten sam Akuvox R20A jako kamera w systemie NVR z detekcją obiektów
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