Настойчивый контакт с магией = исправление памяти и блокировка SIP-сканера в startup.sh
Введите [res pjsip] contact=memory в sorcery.conf перед началом Asterisk; бэкэнд по умолчанию sorcery-astdb SQLite бесшумно отбрасывает все контакты REGISTER - ...
Sub-tab content fills full content-area width
Drop the centered max-width constraint (was 920 / 1200 / 680 / 720 depending on tab) on SubTabShell. The page already lives inside SettingsView's content column...
Fix attachment parsing and hasAttachment false positives
Three fixes to EmailImapService: 1. toEnvelope: narrow multipart check to multipart/mixed only — plain HTML+text emails (multipart/alternative) no longer sh...
Add download button to classic view attachment section
The classic view (MessageBrowser) had its own attachment list that was missing the download button — only the conversation view was fixed previously. Also align...
Add com.kamo.z.shared.commerce to EnableJpaRepositories scan
**************** (required by **************** in the shared library) lives under com.kamo.z.shared.commerce but was not included in the JPA repository scan, ca...
Правильный макет, прокладка и логотипы провайдера
Установка/установка интервалов: - Все шесть вкладок (Поставщики, Расширения, Пользователи телефонов, Устройства, Голосовая почта, Здоровье) Теперь оберните их с...
Correct field name and type in getFromAddresses response
Backend was sending 'email' key but frontend expected 'address', and sent type 'shared_mailbox' when frontend expected 'shared'. Also fixes hasMailboxes flag wh...
Load FROM addresses from accessible mailboxes and aliases
Replaces the broken getFromAddresses() endpoint (which sent 'email' instead of 'address') with getAccessibleMailboxes() + listMemberAliases(), matching the same...
CockroachDB-совместимый синтаксис DROP INDEX CASCADE
CockroachDB отклоняет альтернативную таблицу ... DROP CONSTRAINT для ограничений UNIQUE: нереализованный: не может отказаться от ограничения UNIQUE «uk org oau...
Скачать VOIPService Spec Md из репо
Per project convention (.md-файлы не поставляются с сервисами).
Включите com.kamo.z.shared.commerce в репозиторий
Последняя камо-общая библиотека распространяется **************************** (donotmodify.dao.services), в зависимости от конструктора ************************...
Закладки конфигурации платформы (General / VOIP & SMS / System User / Advanced)
Обертки **************** в SettingsView с четырьмя вкладками: Общий: обзор платформы только для чтения - общие организации, активный телефон-сервер Количество ...
Добавить кнопку загрузки вложения и разъединить пометку как чтение
Добавьте кнопку Download icon в каждый ряд вложений, чтобы пользователи могли нажать кнопку Загрузка файла вместо открытия только в новой вкладке - Decouple mar...
Глобальная синхронизация VOIP (Admin-tunable interval)
VoipGlobalSyncJob тикает каждую минуту и на каждом клеще читает SystemConfiguration Singleton решает, нужна ли глобальная синхронизация: Если voipSyncEnabled яв...
Конечные точки System-config + Platform-overview
Поверхность конфигурации всей платформы, закрытая существующим владельцем верхнего уровня Защита (соответствует шаблону SystemUserConfigController’s requireTopL...
Контроллеры ресурсов на уровне одной организации + агрегатная система организации + внутренняя синхронизация
Per-instance ресурс CRUD (расширения / пользователи / устройства / голосовая почта): - VoipExtensionsКонтроллер на **************** Контроллер на /api/voip/inst...
Multi-instance provider refactor + full FreePBX + Flowroute SMS
Core model change: one org → many VoipProviderInstances (was: one per org). Every provider API call is now instance-scoped. PhoneProvider interface: - New meth...
Миграция между телефонами и провайдерами SMS
Запускается после Hibernate ddl-auto: обновление создает новые таблицы (VOIP PROVIDER INSTANCE, BULK TEXT PROVIDER INSTANCE, PHONE EXTENSION, PHONE END USER, PH...
Многоканальный телефон / SMS провайдера основа схемы
- Переименовать VoipProviderConfig → VoipProviderInstance; выбросить UNIQUE(org id), добавить example name, config json, last sync at, last sync error. - Переим...
Переместить hostPath из MinIO (клон FUSE) в локальный /var/lib/pbx
MinIO через клон FUSE не поддерживает POSIX chmod или symlink() Требуется модульной системой FreePBX. Изменились все FreePBX и MariaDB Объемы hostPath от /mnt/s...
Wrap fwconsole/amportal via php for MinIO FUSE hostPath
/var/lib/asterisk поддерживается MinIO через клон FUSE. POSIX chmod, поэтому скрипты fwconsole не могут быть выполнены на этом томе. Startup.sh создает оберточн...
Добавить preStop hook и terminationGracePeriodSeconds
Контейнеры застряли в терминации из-за фона Asterisk Процессы продолжали работать после выхода apache2ctl (PID 1). Престоп-хук посылает SIGTERM до Asterisk, пре...
Добавить bootstrap.php требуется регенерировать /etc/freepbx.conf
Установщик пишет freepbx.conf с datasource='' и require once для bootstrap.php, от которого зависит загрузка класса FreePBX. Наша регенерированная версия отсутс...
Регенерировать /etc/freepbx.conf для перезапуска
/etc является эфемерным (не хост-Пат), поэтому /etc/freepbx.conf написан Установщик теряется при каждом перезапуске. Добавлена ветвь для регенерации это от env ...
Bypass start asterisk, дождитесь розетки управления
start asterisk использует «pidof asterisk», который возвращает ложный положительный результат на под Перезапускается, в результате чего петля ожидания звездочки...
Запустите Asterisk в фоновом режиме, подождите его, затем запустите установщик
Начальная точка.sh не запускает установщик FreePBX — он только запускается. услуг. Startup.sh теперь повторяет этапы настройки точки входа и запускает Asterisk ...
Пусть точка входа обрабатывает установку, а не start.sh
Установщик FreePBX (php install -n) требует наличия Asterisk. бегать. Наш стартап.sh называл его до того, как началась Asterisk. "Ошибка в общении со звездочкой...
Маунт /etc/asterisk, а не /etc для исправления ошибки simplexml
Установка полного /etc в качестве тома hostPath портит расширение PHP Загрузка даже после посева из изображения — simplexml load file не определен во время уста...
Уменьшите пределы процессора до соотношения 2:1, чтобы устранить чрезмерную приверженность
Док 4→1 ядро, джибри 4→2 ядра, либретранслировать 2→1 ядро, ядро бергамота 2→1, ядро поворота 1→0,5. Сохраняет ~7,5 ядер от пределов узлов.
Переход на escomputers/freepbx:17 с правильной архитектурой
у уставшего / freepbx нет изображения FreePBX 17 (заброшен с 2022 года). escomputers/freepbx:17 (обновленный Apr 2026, Asterisk 21 + FreePBX 17) отдельный модул...
Бросьте общедоступный вход администратора; доступ через http://k[12]m1:8088
UI администратора теперь только внутри LAN / WireGuard на порту 8088 (FreePBX) nginx связан непосредственно с hostNetwork. Нет маршрута Traefik, нет Let's Encry...
Развернуть FreePBX 17 + Jigasi SIP мост на k1m1 и k2m1
FreePBX (tiredofit/freepbx:17-latest) работает с hostNetwork, поэтому SIP/RTP Сохраняет реальные IP-адреса клиентов, прикрепленный один на узел через nodeSelect...
Parse formData перед отправкой для предотвращения бинарной коррупции
request.text() на multipart/form-data портит бинарные байты файлов; Передайте парсированные FormData как init.body так впередToApi пропускает запрос.text() и по...
Удалить MinHeight: 100vh, вызывая двойные полосы прокрутки
Высота внешней коробки: 100vh превысила кальций макета (100vh - 56px) контейнер, который вызвал как прокрутку уровня браузера, так и внутреннюю Перелив: быть ак...
Заголовок страницы редактора Drop, переименованный в General sub-tab
- Удалить заднюю стрелку IconButton + значок экрана + заголовок + подзаголовок Верхняя часть редактора модели безопасности / мастер-модели. Кнопка отмены в липк...
Бросьте устаревший заголовок колонки Pay из таблицы моделей безопасности
Когда поле «Самоплачиваемый работник» Kamo Fees было удалено, соответствие TableCell в корпусе строки был удален, но строка заголовка все еще имела <<Член коман...
Реальная причина ошибки GoDaddy 400
GoDaddy теперь возвращает HTTP 400 с кодом = UNABLE TO AUTHENTICATE «Плохой запрос: плохой запрос», когда учетная запись не соответствует их текущему Производст...
Censorship sub-tab теперь делает ATF первым в спецификации
Реорганизует цензурные субтаб-карты в соответствии с запрашиваемым заказом: 1 Алкоголь, табак и огнестрельное оружие 2 Разрешенные возрастные диапазоны членов 3...
Platform-admin view, pagination, live search, filters, org logos
Администраторы платформы (владелец организации верхнего уровня) теперь видят каждую организацию в системе через Новые конечные точки /api/security/org/all-netwo...
Добавить GET/api/security/org/all-networks для администраторов платформ
Владельцы организаций верхнего уровня теперь могут получить все организации в системе. Информация о членстве относительно абонента. Органы, в которых у абонента...
Подзагрузки в редакторе модели безопасности + очистка
- Редактор модели безопасности на **************** теперь разделен в четыре подзадачи: общая (базовая информация, видимость, кто может создать), Настройки платф...
Drop teamMemberPayFeesSetting от DataLoader
Провайдер «Мастер-модель» больше не пропускает снятые трехгосударственные платежи настройка при создании мастер-модели безопасности — поле ушло от ChildOrgSecur...
Drop teamMemberPayFeesНастройка параметра
Зеркало изменения общей библиотеки — SecurityModelController MasterModelController и AppliedModelController перестали читать и писать Разработчик:MemberPayFeesS...
Разработчик:MemberPayFeesSetting
Политика самооплаты сотрудников ушла — рефактор BillingGroup обрабатывает выставление счетов по группам, а не по модели безопасности. Удалить The TeamMemberPayF...
Eager-load domains via findByIdWithDomains, drop @Transactional
@Transactional на методе контроллера держит соединение DB открытым Вся загрузка MinIO, а также риск LazyInitializationException внутренняя GetOrganizationById т...
Удалить дубликат ?type= из apiPath
forwardToApi уже добавляет входящий поиск (?type=...) запрос URL. Встраивание ?type = второй раз в apiPath ?type=full?type=full на бэкэнде, поэтому Spring парси...
Восстановите коммутатор почтового ящика для идентификаторов членов int64
Используйте getMemberIdString для почтовых ящиков/member fetch, нормализуйте id/mailboxId от EmailService и отключить коммутатор от доступного личного почтовые ...
Видимость Alias UI + кнопка ветвей поддоменов на странице типов ветвей
SubdomainBranchesDialog: Редактор Alias заменил список чипов списком строк в стиле таблицы Члены и члены команды Checkboxs per alias — администраторы, контролир...
Фильтрация видимости Alias + автопроверка владения поддоменом
Контролер организации: - Создание Web-alias org теперь автоматически отмечает право собственности isDnsVerified=true on the created OrgDomain — с тех пор запись...
Как вы видите судоходство?
Все это приходит в ваше рабочее пространство самостоятельно. Начните с бесплатного плана и прочитайте эту страницу через месяц.
