Asterisk integrierten HTTP-Server auf :8089 für WebRTC /ws
Ein chan_pjsip-Transport fährt auf res_http_websocket, die wiederum benötigt, dass der eingebaute HTTP-Server von Asterisk läuft. Die Standard FreePBX 17 instal...
WSS WebRTC Transport für Browser Softphones hinzufügen
Asterisk's chan_pjsip bindet jetzt einen einfachen WebSocket Transport auf 0.0.0.0:8089 und Traefik beendet TLS bei ************ (Port 443) so kamo-internal kön...
Port 8088 direkt auf ClusterIP-Dienst auszusetzen
Service hatte nur Port 80 bis 8088 Mapping. Interne Dienstleistungen in Anspruch nehmen ************ (z.B. VOIPService API Token Anfragen) waren Timing aus, wei...
Vermisste fail2ban-config ConfigMap für k1m1 hinzufügen
Einsatzreferenzen fail2ban-config ConfigMap (jail.local + asterisk-security.conf) aber es existierte nicht, blockiert die Hülse an MountVolume.SetUp und das Ver...
Lassen /domain/ Pfad-Präfix auf Thema IngressRoute für CORS
Das Thema Konfiguration unter theme.kamocrm.com/domain/... wurde nicht von der bestehende Streckenregeln (nur / öffentlich/ und /intern/ erlaubt), also Traefik ...
Produktion scheitert2ban mit PJSIP-Gefängnchen und anhaltendem Zustand
- Fügen Sie fail2ban-configmap.yaml mit [asterisk] und [freepbx-web] Gefängnissen hinzu, schrittweise Verbot Eskalation (1h-24h-30d Decke), LAN-Akignop, und e...
Coqui TTS mit Piper TTS (en_US-norman-medium) ersetzen
Coqui VCTK-Modell hat keine benannten Lautsprecher - ersetzen mit Piper TTS, die die genaue norman[medium] Stimme. Piper-Binär (ca. 3 MB) und Modell (ca. 60 MB)...
Integrieren Coqui TTS mit Norman-Stimme (VCTK p267)
- Einsatz von coqui-tts Server (VCTK VITS-Modell, CPU-only) als ClusterIP-Dienst am Port 5002 mit Modell-Cache bei /var/lib/coqui-tts auf k1m1 - coqui_tts.agi...
LAN DNS pod für split-DNS auf k1m1 hinzufügen
Entstellt ein dnsmasq pod mit hostNetwork auf k1m1, das auf hört 192.168.4.22:53. Überrepostet pbx.k1.kluster.kamocrm.com - 192.168.4.22 So erreichen LAN-Telefo...
local_net für split-DNS / LAN Client RTP fix hinzufügen
Telefone im selben LAN wie k1m1 über split DNS verbinden (domain löst auf 192.168.4.22 intern). Ohne local_net wirbt Asterisk immer noch für die externe Domain ...
Bestehender Zauberkontakt=Speicher fix und blockiert SIP-Scanner im Start.sh
- Injizieren [res_pjsip] contact=Speicher in sorcery.conf bevor Asterisk beginnt; das Standard-Wrerei-astdb SQLite Backend lässt lautlos alle REGISTER-Kontakt...
Verschieben Sie hostPath von MinIO (rclone FUSE) nach lokal /var/lib/pbx
MinIO via rclone FUSE unterstützt POSIX chmod oder symlink() nicht benötigt durch das Modulsystem von FreePBX. Alle FreePBX und MariaDB geändert hostPath-Volume...
Wrap fwconsole/amportal via php für MinIO FUSE hostPath
/var/lib/asterisk wird von MinIO über rclone FUSE unterstützt, das nicht unterstützt POSIX chmod, so dass fwconsole-Skripte auf diesem Volume nicht ausführbar s...
PreStop-Haken und Kündigung hinzufügenGracePeriodSeconds
Container wurden in Terminierung stecken, weil Hintergrund Asterisk Prozesse weitergelaufen, nachdem apache2ctl (PID 1) beendet wurde. preStop Hook sendet SIGTE...
Bootstrap.php hinzufügen, um /etc/freepbx.conf zu regenerieren
Der Installer schreibt freepbx.conf mit datasource=' und a require_once für bootstrap.php, von welcher config.php abhängt, um die FreePBX-Klasse zu laden. Unser...
Regenerieren /etc/freepbx.conf beim Neustart
/etc ist ephemeral (kein hostPath), also /etc/freepbx.conf geschrieben Installer geht bei jedem Pod-Restart verloren. Zusätzliche Zweige zu regenerieren es von ...
Bypass start_asterisk, warten Sie stattdessen auf Steuerbuchse
start_asterisk verwendet "pidof asterisk", das ein falsches Positives auf pod zurückgibt Startt wieder, wodurch die Warte-für-Sternchen-Schleife hängt. Jetzt st...
Starten Sie Asterisk im Hintergrund, warten Sie darauf, dann installieren Sie Installer
Der Entrypoint.sh führt nicht mit dem FreePBX Installer . es startet nur Dienstleistungen. startup.sh repliziert jetzt die Eingabepunkt-Setup-Schritte, beginnt ...
Lassen Sie entrypoint handle install, not startup.sh
FreePBX Installer (php install -n) erfordert Asterisk bereits Laufen. Unser Startup.sh rief es an, bevor Asterisk begann, was "Fehler kommunizieren mit Asterisk...
Mount /etc/asterisk only, not /etc, um PHP simplexml Fehler zu beheben
Das Montieren der vollen /etc als HostPath-Volumen beschädigt PHP-Erweiterung Laden auch nach Aussaat aus dem Bild - simplexml_load_file undefiniert bei der Ins...
Reduzierung der CPU-Grenzen auf 2:1 Verhältnis, um Überbindungen zu beseitigen
Docs 4 x 1 Kern, jibri 4x2 Kern, libretranslate 2 x 1 Kern, bergamot 2 x 1 Kern, Coturn 1 x 0,5 Kern. Speichert 7,5 Kerne von Knotengrenzen.
Wechsel zu escomputern/freepbx:17 mit der richtigen Architektur
tiredofit/freepbx hat kein FreePBX 17 Bild (seit 2022 aufgegeben). escomputer/freepbx:17 (aktualisiert Apr 2026, Asterisk 21 + FreePBX 17) benötigt eine separat...
Drop Public Ad Ad Ingress; Zugriff über http://k[12]m1:8088
Admin UI ist jetzt intern-only über LAN/WireGuard auf Port 8088 (FreePBX's nginx direkt an hostNetwork gebunden). Keine Traefik-Route, keine Let's Encrypt cert,...
FreePBX 17 + Jigasi SIP Brücke auf k1m1 und k2m1
FreePBX (tiredofit/freepbx:17-latest) läuft mit hostNetwork so SIP/RTP behält echte Client IPs, die per node per node angeheftet werden. SIP on 5060 UDP/TCP (50...
Tls Import Namensgebung, Export fqdn Pfad; Mail-Route verwendet Standard TLSStore
Ein Zertifikat/Geheimnis pro FQDN, also Blatt CN entspricht SNI (Safari)
Verwenden Sie ECDSA P-256 für Zertifikate-Spezifikationen und migrieren RSA
Synchronisieren SUBDOMAINS mit Produkt DNS Aliasnamen (Apps, unterschreiben; Medien entfernen)
Entfernen Sie nicht vorhandenes Postfix-lmdb-Paket, installieren lmdb Bibliothek statt
postfix-lmdb ist kein gültiges Alpenpaket; lmdb Unterstützung ist eingebaut das Basis-Postfix-Paket. Die Hülse war CrashLoopBackOff wegen apk Ausfall.
Fügen Sie wöchentliche Bild Pflaumen und Journal Vakuum CronJob für k1m1
CronJob läuft jeden Sonntag 3 Uhr morgens, privilegiert, angeheftet auf k1m1. - crictl rmi --prune entfernt ungenutzte Containerbilder - nsenter Journal Vakuum ...
Docs Bildregistrierung beheben, Strategie hinzufügen, um coturn/postfix zu erstellen, qdrant Speicher zu erhöhen
- Docs: falsche Bildregistraturen beheben (redis.kamo.svc... ************ fügen Rekrekieren Strategie - Coturn: Rek erstellen Strategie hinzufügen, um rollende ...
Wechsel Postfix sasl_passwd von hash zu lmdb format
Alpine postfix bauen beinhaltet keine hash Unterstützung . Postmap und smtp_sasl_password_maps scheiterten still und verfehlten jedes Outbound Relais-Versuch du...
Set Traefik externalTrafficPolicy=Local, um Client IP zu erhalten
Mit der Standard-"Cluster"-Politik, kube-proxy SNATs externen Datenverkehr auf den Knoten IP vor der Zuordnung an Traefik. Das brachte Traefik zu sehen der Knot...
Geo-Datenbank-url zum Analytics-Sekret für CockroachDB Geolite Lookup hinzufügen
Kamo Analytics verwendet diese URL, um Besucher IP-Land/Region/Stadt nachzuschauen von den ************ Tischen. Verwendet Kamo-Benutzer mit Passwort auth und s...
Bereinigen Legacy Analytics Einsatz auf jedem CI-Lauf
Löschen Sie alte Analytik Bereitstellung, Service und Ingressroute, dass Konflikt mit dem Kamo-Analyse-Einsatz, der von einer eigenen CI/CD-Pipeline verwaltet w...
Strip X-Frame-Options Header in iframe-kompatibler Middleware
Setzen Sie X-Frame-Optionen auf Leerkette, um den SAMEORIGIN-Wert zu entfernen das wurde vererbt, so dass CSP-Rahmen-Ahnen zu kontrollieren iframe Einbettung st...
iframe-kompatible Middleware-Kette für Kamo-Analyse hinzufügen
Sicherheits-Header-allow-iframe hinzufügen (keine X-Frame-Optionen) und Kamo-middlewares-allow-iframe-Kette, so dass Analysen eingebettet werden können in ifram...
Bewegen Sie Kamo-Analysten zu eigenem Repo, halten Sie nur postgres in KlusterServices
- Entfernen Analytik Bereitstellung, Service und nginx-configmap (jetzt im Besitz von Kamo-Analyse-Projekt mit eigener CI/CD-Pipeline) - Analytics-ingressrout...
Reset document.title in rebrand() wenn React es überschreibt
React setzt RSC-Nützlast nach Hydratation erneut ein, um "Analytik". Fügen Sie einen Titel-Check innerhalb der MutationObserver Callback, so dass es wird jedes ...
Ersetzen Sie "analytische" Textknoten mit "Kamo Analytics" statt Clearing
Verwenden Sie TreeWalker, um alle "analytics" Textknoten von gerenderten DOM zu entfernen
Der Workspace-Nist "analytics" stammt von JS-Bundles, die nach auth, geladen werden. als Textknoten neben dem Logo SVG dargestellt. Nutzt TreeWalker zu finden u...
Fügen Sie vorsichtigen MutationObserver für Client-seitiges gerenderte Logo/Text hinzu
Login-Seite und Dashboard-Content wird von Next.js JS-Bundles gegeredet, nicht im HTML-Körper, so dass Sub_filter es nicht erreichen kann. Fügt ein Skript mit e...
Redirect favicons auf nginx Ebene, beheben RSC Nutzlast entweicht
- Servieren Sie favicon via nginx 302 umleiten statt zu versuchen, neu zu schreiben HTML/RSC-Nutzlast href strings (Reiniger, immer funktioniert) - RSC-Titele...
Verwenden Sie reinen Sub_filter-Ersatz statt MutationObserver
MutationObserver verursachte Endlosschleife (DOM-Veränderung --Beobachter-Feuer -- DOM ändern). Wechseln Sie zu direktem nginx sub_filter String-Ersatz sowohl s...
Umfassende Analytik Rebranding für Login-Seite und Dashboard
- Titel dynamisch ersetzen (handhabt "Login | Analytics", "Dashboard | Analytics" etc.) - Ersetzen Sie "analytisch" h2-Text auf Login-Seite mit Kamo Logo Bild -...
Wie, was Sie sehen Versand?
Jedes dieser Updates landet automatisch in Ihrem Arbeitsbereich. Starten Sie frei und beobachten Sie es Woche für Woche wachsen.