Es wird vorausgesetzt, dass der Server (Linux, Debian Bookworm) bereits fertig installiert und exklusiv für CalloraCTI gedacht ist. Im Fall eines Raspberry Pi wäre das ein 'Lite' Image. Wenn du Linux auf x64 Hardware installierst, eine Installation ohne zusätzliche Pakete.
System ist fertig hoch gefahren
feste IP Adresse ist vergeben
SSH ist aktiviert
Dein Lieblingseditor ist installiert.
Es wird vorausgesetzt, dass dei Fritz!Box fertig eingerichtet ist:
VoIP Rufnummer sind angelegt und erfolgreich beim Provider registiert
Heimnetz -> Netzwerkeinstellungen -> weitere Einstellungen -> Heinnetzfreigaben: Zugriff für Apps erlauben ist aktiviert
Wenn du bereits einen Server für andere Dienste nutzt, kannst du diese Anleitung möglicherweise nicht verwenden, ohne dein System zu beschädigen.
Als IP Adresse verwende ich in dieser Anleitung 192.168.178.10. Sofern du SIP-DECT verwendest, wird die IP Adresse 192.168.178.11 für den OMM verwendet. Diese Angaben musst du natürlich auf dein Netzwerk anpassen.
Ich verwende in dieser Anleitung den Haupt-Benutzer der Fritz!Box. Wie dein Benutzer heißt, kannst du unter System -> Fritz!Box-Benutzer sehen (fritzXXXX).
Diese Anleitung kommt ohne sudo aus. Es wird grundsätzlich als 'root' gearbeitet.
Alle Daten (z.B. IP Adresse, Benutzer, Kennwörter) die du durch sinnvolle eigenen Daten ersetzen musst, stehen in eckigen Klammern:
[192.168.178.10]bedeutet also, dass du dort dein IP Adresse, in diesem Fall die des Servers eintragen musst.
Diese Anleitung berücksichtigt nur die Einrichtung ohne TLS und nur http. Sofern du https und eine eigene Domain mit Zertifikaten von LetsEncrypt nutzen möchtest, ist das aber auch möglich.
apt -y install nginx php8.2-cli php8.2-mysql php8.2-soap php8.2-xml php8.2-curl php8.2-cgi php8.2-fpm php-phpseclib3 mariadb-server mariadb-client dnsmasq git
Für die Einbindung von Fritz!DECT:
apt -y install netcat-openbsd
Das Passwort für 'root' entspricht dem Kennwort des Benutzers root.
mysql -u root -p
MariaDB> CREATE DATABASE callora;
MariaDB> CREATE USER 'callora'@'localhost' IDENTIFIED BY 'mein-passwort';
MariaDB> GRANT ALL PRIVILEGES ON callora.* TO 'callora'@'localhost';
MariaDB> FLUSH PRIVILEGES;
MariaDB> exit
Als Vorlage für dnsmasq kannst du dieses Beispiel verwenden.
#dnsmasq config
port=53
listen-address=127.0.0.1,[192.168.178.10]
interface=[eth0]
domain-needed
bogus-priv
expand-hosts
no-resolv
# DNS Anfragen leiten wir an die Fritz!Box weiter
server=[192.168.178.1]
# enable DNS Cache and adjust cache-size
cache-size=1000
# Wir übernehmen die DHCP Range der Fritz!Box
dhcp-range=192.168.178.20,192.168.178.200,12h
dhcp-leasefile=/var/lib/misc/dnsmasq.leases
dhcp-authoritative
# Feste IP Adresse für OMM
dhcp-host=[08:00:xx:xx:xx:xx],OMM,[192.168.178.11]
#DHCP Optionen Mitel
dhcp-option=vendor:AastraIPPhone6905,2,"http://[192.168.178.10]/prov/"
dhcp-option=vendor:AastraIPPhone6910,2,"http://[192.168.178.10]/prov/"
dhcp-option=vendor:AastraIPPhone6915,2,"http://[192.168.178.10]/prov/"
dhcp-option=vendor:AastraIPPhone6920,2,"http://[192.168.178.10]/prov/"
dhcp-option=vendor:AastraIPPhone6930,2,"http://[192.168.178.10]/prov/"
dhcp-option=vendor:AastraIPPhone6940,2,"http://[192.168.178.10]/prov/"
dhcp-option=vendor:AastraIPPhone6863i,2,"http://[192.168.178.10]/prov/"
dhcp-option=vendor:AastraIPPhone6865i,2,"http://[192.168.178.10]/prov/"
dhcp-option=vendor:AastraIPPhone6867i,2,"http://[192.168.178.10]/prov/"
dhcp-option=vendor:AastraIPPhone6869i,2,"http://[192.168.178.10]/prov/"
dhcp-option=vendor:AastraIPPhone6873i,2,"http://[192.168.178.10]/prov/"
#DHCP Optionen Mitel SIP-DECT
dhcp-option=vendor:OpenMobility,10,[192.168.178.11]
dhcp-option=224,"OpenMobilitySIP-DECT"
dhcp-option=vendor:OpenMobility,2,"http://[192.168.178.10]/prov/"
#DHCP Optionen Yealink
dhcp-option=66,"http://[192.168.178.10]/prov/"
#DHCP Optionen Snom
dhcp-option=vendor:snomD713,66,"http://[192.168.178.10]/prov/"
dhcp-option=vendor:snomD715,66,"http://[192.168.178.10]/prov/"
dhcp-option=vendor:snomD716,66,"http://[192.168.178.10]/prov/"
dhcp-option=vendor:snomD735,66,"http://[192.168.178.10]/prov/"
dhcp-option=vendor:snomD785,66,"http://[192.168.178.10]/prov/"
dhcp-option=vendor:snomD812,66,"http://[192.168.178.10]/prov/"
dhcp-option=vendor:snomD815,66,"http://[192.168.178.10]/prov/"
dhcp-option=vendor:snomD862,66,"http://[192.168.178.10]/prov/"
dhcp-option=vendor:snomD865,66,"http://[192.168.178.10]/prov/"
Als /etc/dnsmasq.d/callora.conf speichern und dnsmasq neu starten:
systemctl restart dnsmasq
Spätestens jetzt solltest du in der Fritz!Box unter Heimnetz -> Netzwerk -> Netzwerkeinstellungen -> weitere Einstellungen -> IPv4 Adressen den DHCP Server deaktivieren. Die Deaktivierung des Fritz!Box DHCP hat weitreichende Auswirkungen auf die Funktion der Fritz!Box, insbesodere im Bereich VPN. Bitte beachte dies bei zukünftigen Änderungen.
Die Konfigurationdatei für die Standard nginx Konfiguration muss angepasst werden:
/etc/nginx/sites-available/default
Als Vorlage kann dieses Beispiel dienen:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php
server_name _;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
}
CalloraCTI von GitHub klonen und Rechte anpassen:
cd /var/www/html
rm index.nginx-debian.html
git clone https://github.com/chstoltz/CalloraCTI.git
chown -R www-data:www-data *
Im Webbrowser http://[192.168.178.10]/web/install.php aufrufen und die Konfiguration vornehmen. Die Einstellungen für die Datenbank hast du oben selbst vorgenommen.
Nach Abschluss muss die Datei installer.php gelöscht werden:
rm /var/www/html/web/install.php
Im Webbrowser http://[192.168.178.10]/index.php aufrufen. Die Standardzugangsdaten lauten:
Benutzername: admin
Passwort: admin
Im Anschluss bitte die Grundkonfiguration vornehmen und das Menü von links nach rechts abarbeiten. Bitte erst jetzt die Telefone einschalten.
Damit die DECT Telefone der Fritz!Box ebenfalls überwacht werden, muss die Datei callmonitor.sh im Hintergrund mitlaufen. Das kann z.B. über einen CronJob passieren. Zuerst aber die Datei editieren und die IP Adresse der Fritz!Box, sowie die Pfadangabe der eigenen Umgebung anpassen.
chmod +x [/var/www/html/scripts]/callmonitor.sh
echo "@reboot [/var/www/html/scripts]/callmonitor.sh" >> /var/spool/cron/crontabs/www-data
chown www-data:crontab /var/spool/cron/crontabs/www-data
chmod 600 /var/spool/cron/crontabs/www-data
Damit ist die Installation abgeschlossen.
Verzeichnisstruktur: