Увімкнути сервер Asterisk вбудованого HTTP на :8089 для WebRTC /ws
Chan pjsip `protocol=ws` транспортних поїздок на вершині res http websocket, яка в свою чергу вимагає вбудованого сервера HTTP Asterisk. Про нас За замовчування...
Додати WSS WebRTC транспорт для смартфонів
Asterisk's chan pjsip тепер зв'язує звичайний WebSocket транспортний засіб 0.0.0.0:8089 і Traefik припиняється TLS на *********** (порт 443) so kamo-internal мо...
Expose порт 8088 безпосередньо на службі кластерів
Сервіс тільки мав порт 80→8088 картографування. Внутрішні послуги з використанням ******************************************************************************...
Додати відсутній не2ban-config ConfigMap для k1m1
Посилання на розгортання не вдалося2ban-config ConfigMap (jail.local + asterisk-security.conf) але не існує, блокуючи под ГораВум. Налаштування та запобігання F...
Allow /domain / шлях префікс на тему IngressRoute для CORS
The Theme config at Theme.kamocrm.com/domain/... не був представлений існуючі правила маршруту (тільки/громадський/і/внутрішній/внутрішній/внутрішній/внутрішній...
Виробництво неможливий2ban з джейлами PJSIP і стійким станом
- Додати не2ban-configmap.yaml з [asterisk] і [freepbx-web] в'язниці, неперервне закріплення заборони (1h→24h→30d стеля), LAN ігнорувати, і Призначений для кори...
Замініть Coqui TTS з Piper TTS (en US-norman-medium)
Модель Coqui VCTK не має іменних динаміків — заміну з Piper TTS, що має точні норми [медій] голос. Piper бінарний (~3 Мб) і модель (~60 Мб) завантажуються конте...
Integrate Coqui TTS with norman voice (VCTK p267)
- Deploy coqui-tts server (VCTK VITS model, CPU-only) as ClusterIP service on port 5002 with model cache at /var/lib/coqui-tts on k1m1 - Inject coqui_tts.agi ...
Add LAN DNS pod for split-DNS on k1m1
Deploys a dnsmasq pod with hostNetwork on k1m1 that listens on 192.168.4.22:53. Overrides pbx.k1.kluster.kamocrm.com -> 192.168.4.22 so LAN phones reach the PBX...
Додати локальну мережу для спліт-DNS / LAN клієнт RTP виправити
Телефони на тій же LAN, як k1m1 з'єднання через розщеплення DNS (домен вирішується 192.168.4.22 внутрішньо). Без локальних net, Asterisk все ще рекламує зовнішн...
Персистий контакт з саркерами: фіксувати і блокувати SIP сканер в стартапі.sh
- Ін'єкційний [res pjsip] контакт=зв'язок в солярію.conf перед початком зірочки; JavaScript licenses API Веб-сайт Go1.13.8 - Блок відомий SIP-сканер 87.246.54.2...
Move hostPath від MinIO (rclone FUSE) до місцевих /var/lib/pbx
MinIO через rclone FUSE не підтримує POSIX chmod або symlink () — як Система FreePBX Змінено всі FreePBX і MariaDB href="http://realtor.if.ua/" title="Агентство...
Обгортання fwconsole/amportal через php для MinIO FUSE hostPath
/var/lib/asterisk повернувся на MinIO через Rclone FUSE, який не підтримує POSIX chmod, так що скрипти fwconsole не можуть бути зроблені виконувані на цьому об'...
Додати гачок preStop і розірванняGracePeriodSeconds
Контейнери були отримувати застряг в термінах, оскільки фон зірочка Процеси, що зберігаються після виходу apache2ctl (PID 1). preStop гак відправляє SIGTERM до ...
Додати JavaScript licenses API Веб-сайт Go1.13.8
Інсталятор пише freepbx.conf з данимиsource='' і запит once для bootstrap.php, який config.php залежить від навантаження класу FreePBX. Наша регенерована версія...
Regenerate /etc/freepbx.conf на Restart
/etc ephemeral (не хостPath), так /etc/freepbx.conf, написаний на сайті інсталятор загублений на кожному підзарядці. Додано ще відділення для регенерації він ві...
Bypass start asterisk, чекаю на контрольне гніздо замість
start asterisk використовує `pidof asterisk`, який повертає помилковий позитивний на поді перезаряджає, викликаючи очікування-для зірочки петлі, щоб повісити. Т...
Почати зірочку на фоні, чекати його, потім запустити інсталятор
Вхідна точка.sh не запустіть FreePBX інсталятор — це тільки початок послуги. стартап.sh тепер реплікує кроки налаштування початкової точки, починається Зірочка ...
Давайте ввімкнути ручку, не запустіть.sh
FreePBX інсталятор (php -n) вимагає Asterisk вже бути робота. Про це заявив наш стартап.sh. "Особливе спілкування з зіркою" Тепер стартап.sh тільки чекає MariaD...
Mount /etc / asterisk only, не /etc, для виправлення помилки PHP
Настроювання повного / т як об'єм хостПат був пошкоджений розширенням PHP завантаження навіть після висіву з зображення — simplexml load file undefined при вста...
Зменшити ліміти процесора до 2:1, щоб усунути перевищення
Docs 4→1 ядро, jibri 4→2 ядер, libretranslate 2→1 ядро, бергамот 2→1 ядро, coturn 1→0.5 ядро. Заощаджує ~7.5 ядер від меж вершини.
Switch to escomputers/freepbx:17 з правильною архітектурою
вугільний костюм / Freepbx не має FreePBX 17 зображення (з 2022). escomputers/freepbx:17 (оновлений Apr 2026, Asterisk 21 + FreePBX 17) вимагає окремий MariaDB ...
Поверніть публічний адміністратор ingress; доступ через http://k[12]m1:8088
Admin UI тепер внутрішньочервоний над LAN/WireGuard на порту 8088 (FreePBX's nginx межа безпосередньо на hostNetwork. No Трафик маршрут, без Let's Encrypt засві...
Розгортання FreePBX 17 + міст Jigasi SIP на k1m1 і k2m1
FreePBX (tiredofit/freepbx:17-latest) працює з hostNetwork так SIP/RTP зберігає реальні IP-адреси клієнтів, закріплюється один-пер-нед через nodeSelector. СИП н...
Tls імпортування на замовлення, експорт fqdn шлях; поштовий маршрут використовує за замовчуванням TLSStore
Використовуйте ECDSA P-256 для специфікації сертифіката та migrate RSA
Примітка Список SUBDOMAINS не використовується; SANs приходять з журналів Traefik
Sync SUBDOMAINS з файлами DNS aliases (адреса, запис; видалення медіа)
Remove nonexistent postfix-lmdb package, install lmdb library instead
postfix-lmdb is not a valid Alpine package; lmdb support is built into the base postfix package. The pod was CrashLoopBackOff due to apk failure.
Add weekly image prune and journal vacuum CronJob for k1m1
CronJob runs every Sunday 3am, privileged, pinned to k1m1. - crictl rmi --prune removes unused container images - nsenter journal vacuum enforces 500MB cap - CI...
Fix Docs image registry, add Recreate strategy to coturn/postfix, increase qdrant memory
- Docs: fix wrong image registry (redis.kamo.svc... → **************** add Recreate strategy - coturn: add Recreate strategy to prevent rolling update port conf...
Switch Postfix sasl_passwd from hash to lmdb format
Alpine postfix build does not include hash support — postmap and smtp_sasl_password_maps were silently failing, deferring every outbound relay attempt through s...
Set Traefik externalTrafficPolicy=Local to preserve client IP
With the default "Cluster" policy, kube-proxy SNATs external traffic to the node IP before forwarding to Traefik. That caused Traefik to see the node IP as the ...
Add geo-database-url to analytics-secret for CockroachDB geolite lookup
Kamo Analytics uses this URL to look up visitor IP→country/region/city from the **************** tables. Uses kamo user with password auth and sslmode=require (...
Clean up legacy analytics deployment on each CI run
Delete old analytics deployment, service, and ingressroute that conflict with the kamo-analytics deployment managed by its own CI/CD pipeline.
Strip X-Frame-Options header in iframe-compatible middleware
Set X-Frame-Options to empty string to remove the SAMEORIGIN value that was being inherited, allowing CSP frame-ancestors to control iframe embedding instead.
Add iframe-compatible middleware chain for kamo-analytics
Add security-headers-allow-iframe (no X-Frame-Options) and kamo-middlewares-allow-iframe chain so analytics can be embedded in iframes from internal.kamocrm.com...
Move kamo-analytics to own repo, keep only postgres in KlusterServices
- Remove analytics deployment, service, and nginx-configmap (now owned by kamo-analytics project with its own CI/CD pipeline) - Remove analytics-ingressroute ...
Reset document.title in rebrand() when React overwrites it
React re-applies RSC payload after hydration, resetting the title to "analytics". Add a title check inside the MutationObserver callback so it gets corrected ev...
Replace "analytics" text nodes with "Kamo Analytics" instead of clearing
Use TreeWalker to remove all "analytics" text nodes from rendered DOM
The workspace nav title "analytics" comes from JS bundles loaded after auth, rendered as a text node next to the logo SVG. Uses TreeWalker to find and clear all...
Add guarded MutationObserver for client-side rendered logo/text
Login page and dashboard content is rendered by Next.js JS bundles, not in the HTML body, so sub_filter can't reach it. Adds a script with a busy-flag-guarded M...
Redirect favicons at nginx level, fix RSC payload escaping
- Serve favicon via nginx 302 redirect instead of trying to rewrite HTML/RSC payload href strings (cleaner, always works) - Fix RSC title replacement with pro...
Use pure sub_filter replacements instead of MutationObserver
MutationObserver caused infinite loop (DOM change -> observer fires -> DOM change). Switch to direct nginx sub_filter string replacements targeting both static ...
Comprehensive analytics rebranding for login page and dashboard
- Replace title dynamically (handles "Login | analytics", "Dashboard | analytics" etc.) - Replace "analytics" h2 text on login page with Kamo logo image - Repla...
Як ви бачите відправлення?
Кожен з цих оновлень землі в робочому просторі автоматично. Почати вільний час і дивитися його на тиждень після тижня.