Перестаньте говорить людям, чтобы они добавляли текстовый провайдер, который они уже добавили
Отчитывались от реальной установки, и отчет был прав. Организация, управляющая FreePBX добавил Telnyx в качестве текстового провайдера, открыл окно SMS и был по...
Скажите члену, что номер отсутствует, а не что его PBX не может написать
Реальная настройка: организация добавила Telnyx в качестве поставщика текстовых сообщений. Он открыл окно SMS и сказал: «Этот телефонный сервер является FreePBX...
Замороженный CHECK заблокировал создание всех провайдеров Telnyx и JustCall
Добавление поставщика текстов Telnyx 500'd. Журнал назвал его просто, и экран сказал: Ничего полезного: ограничение **************************** Неудачный ряд ...
Спросите, может ли это число писать, а не может ли эта организация
SmsGateway увеличил доступность с учетом номера (), когда маршрутизация переместилась на номер. И тогда ничто не назвало это числом - оба сайта вызовов SmsContr...
Сообщение «вы не можете написать» остановилось на один шаг от исправления
FreePBX и Teams попросили участника добавить провайдера SMS под названием Phone → Providers. Это был полный совет, пока числа не получили свой собственный текст...
Только оператор, который владеет URL-адресом веб-хука, может проверять свои сообщения
Входящий путь телефон-сервера, добавленный в предыдущем обязательстве, проверенный на соответствие Какой бы провайдер ни взял номер. Это подделка поверхности, а...
Телефонный сервер Telnyx может отправлять сообщения и никогда не получать их
Telnyx является одновременно телефонным сервером и носителем, а профиль обмена сообщениями Telnyx имеет Один веб-хук URL. Компания, которая добавила Telnyx в ка...
Заселить новое число до его сохранения, а не после
save() построил пустой OrgPhoneNumber, сохранил его, а затем заполнил E164 PHONE CANON — необязательно. Он работает сегодня, потому что UUID-генератор не нуждае...
Один отправляет контракт через все пять провайдеров и прекращает входящие тексты
На уровне абстракции SMS было пять провайдеров, не согласных с тем, как потерпеть неудачу. Входящий путь, который отбрасывал реальные сообщения клиентов в тишин...
Доказать развертывание по дайджесту, а не по тегу
Предыдущее обязательство останавливает «установленное изображение» как молчаливое бездействие. Это утверждает, что результат: после развертывания тег решается н...
Восстановление одного и того же обязательства ничего не привело к успеху
Изображение помечено фиксированным SHA, поэтому восстановление одного и того же фикса производит Идентичная ссылка на изображение. «Объектное заданное изображен...
Остановите плохой пользователь JWT от отключения софтфона каждого участника
Добыча от собственного JWT участника под названием configFactory.require (inst), который настаивает SERVICE-USER JWT на телефонном сервере присутствует и хорошо...
Свяжите сообщение о сбое входа, перенесенное обратно в перенаправление
Обратный вызов RingCentral помещает собственное предложение сервера в строку запроса так Закладка участника может сказать, что на самом деле пошло не так - почт...
Отмените регистрацию RingCentral переназначенного члена, не забывайте об этом
Оффбординг удалил ряд учетных данных участника, когда они были перемещены с телефона Сервер. Это была вся работа, в то время как учетные данные могли быть тольк...
Пусть RingCentral подписывается вместо чеканки JWT
На вкладке «Настройки телефонов» участника запросили учетные данные JWT, и это было единственным способ их соединения. RingCentral JWT принадлежит одному пользо...
Сообщите RingCentral JWT из учетных данных приложения, вставленных в его коробку
Орг вставил учетные данные своего приложения RingCentral JSON - {"clientId": ..., "clientSecret": ..., "server": ...} смазать консоль разработчика показывает на...
Пускай выкатка закончит то, что делала старая подушка
Деплойты заменили единственный блок каждой службы, в котором не было ничего, чтобы поймать запросы. Полёт. Три настройки, применяемые по всему флоту: Престоп с...
Кодировать значения запроса JustCall ровно один раз
Клиент построил свой запрос с помощью build(true), который объявляет значения уже Закодировано — так ничего и не ускользнуло. Характер, который имеет значение «...
Применяйте конфигурацию FreePBX после каждой записи, или расширение никогда не достигнет Asterisk
Расширение 8777 (Aiden Perry, kamocrm) было создано из КамоКРМ 2026-09-02 И никогда не звонил. Мутация FreePBX GraphQL «addExtension» "пользователи", "устройств...
An account with no number to text from is a 409, not a 500
Starting a text threw IllegalStateException when neither the member nor the instance had an outbound number, which Spring turned into a 500 with a stack trace. ...
Один источник истины для настроек платформы
«Тестовое соединение» сообщило об отсутствии идентификатора главной учетной записи на телефонном сервере, чей За несколько минут до этого провизия преуспела, ис...
Полупредоставленный телефонный сервер никогда не может быть закончен и говорит не то
Об этом сообщает сервер KamoPBX от одной из организаций Ошибка: Телефонный провайдер не найден: **************************** С тех пор, как он был создан. Слу...
Outbound external calls were missing from FreePBX call history
On an outbound external call FreePBX rewrites the CDR `src` to the trunk's outbound caller ID — the org's own DID — so a call ext 8080 placed to 9493747110 is r...
Запись, байты которой исчезли, отвечает 410, а не 500
Тот же раздел, что и прокси-сервер изображений и загрузка документов. Запись звонка, которая является Не в хранилище постоянно нет, и игрок, которому вручили 50...
Расширение больше не стирает каждое назначение члена
MemberVoipConfigController.put пишет задание на два места - MEMBER VOIP CONFIG и **************** *******************, а затем очистил второй проход. Нет. прова...
Дайте кодировщику текстовых разговоров тай-брейк, чтобы привязанные метки времени не сбрасывались
lastActivityAt, так что обмен разговором, который точный отметка времени был исключен из Утеряно из списка навсегда, а не просто неправильно. Достижима на практ...
Ворота голосовой почты рассчитывают на VIEW VOICEMAIL
******************* Подаренный любой аутентифицированный член проведение строки MemberVoipConfig с непрочитанным счетом голосовой почты Нет никакой проверки пра...
Остановите RingCentral OAuth, подписав арендаторов с белыми метками
Два дефекта, оба на одном прыжке, и каждый из них скрывает другой. RingCentral отвергает все значения объема, которые может запросить это приложение. «invalid ...
Размер капсулы над собственным потолком JVM (skip ci)
Изображение начинается с -XX:MaxRAMPercentage=70 -XX:+ Всегда прикасайтесь, поэтому Одна только куча может занять 70% от лимита контейнера, а предтач сохраняет ...
Работа с голосовой почтой требует права, а не только обработки PHI
VoipVoicemailController требовал VIEW CALL LOGS на одном пути — воспроизведение и только в том случае, если организация занимается ПФР. Перечисление голосовых с...
Изолировать вызов глотание за строку и ссылку только после его совершения
Две ошибки с одним корнем: проглатывание участвовало в операции зачистки. Бросок в участвующую транзакцию знаменует сделку SHARED. только откат. SyncCallLogs п...
Пропустить мягкие удаленные расширения в подметке истории вызовов
syncExtensions soft-deletes — переключение статуса на UNKNOWN вместо удаления Таким образом, список накапливает каждое расширение, которое когда-либо имел экзем...
Закройте дыру в почтовом ящике и еще шесть дефектов команды
Обсуждение 6df0008 подтвердило 24 вывода. Важные из них: КРИТИЧЕСКИЙ — любой член может удалить почту коллеги. Команды голосовой почты были Составлено как «{ma...
Сканирование общих репозиториев MFA
MfaEnrollmentService - это @Service в библиотеке, разделенной Камо, так что Wildcard @ComponentScan("com.kamo") в этом приложении строит его независимо от того,...
Укрепите загрузку kububl против шелушащегося выхода [skip ci]
dl.k8s.io по выходу бегуна периодически падает в середине передачи: Curl: (56) OpenSSL SSL read: расшифровка не удалась или не удалась который не справляется с ...
Прекратите прикреплять просроченный секрет wildcard-kamocrm-com
wildcard-kamocrm-com был унаследованной мульти-SAN тайной, которую серт-менеджер осиротел. когда его сертификат был повторно указан в секрете хозяина. Ничего не...
Guard/internal/voip with InternalAuthFilter as documented — it 401'd on session auth
VoipInternalSyncController всегда документировал внутренний фильтр как свою охрану. но /internal/voip никогда не был в PROTECTED PREFIXES и не был исключен из O...
Постоянное сравнение секретов внутренней ауты (оракул времени)
Заменить String.equal на MessageDigest.isEqual, чтобы задержка ответа не могла X-Internal-Auth делится секретным байт за байтом. Широкий охват флота копировальн...
Вернуться 200 Ложь для неконфигурированных возможностей
GET/api/voip/capabilities бросила ProviderNotConfiguredException (422) Org не имела провайдера телефонов, регистрируя ошибку красной консоли на каждой загрузке ...
Исключить /api/voip/sms/templates из фильтра сеанса OTK
Конечные точки шаблона Doc-07 SMS - это внутренние звонки без сеанса, защищенные Внутренний фильтр (X-Internal-Auth), но OTKValidation Фильтр все еще работал на...
Внедрение POST/api/bulktext/отправка внутренних транзакционных SMS
SecurityService's BulkTextSmsClient (password-recovery + account-settings SMS) всегда POSTed **************** to /api/bulktext/send, Но контроллер так и не был ...
Создание записи ключа объекта MinIO, такого как поток изображений
Опустить расширение, когда FILE EXT является нулевым / пустым, чтобы имя объекта совпадало RecordingImagingService и ImagingController. Строка Java Concat с нул...
Разрешить расширение истории вызовов с помощью Member voip config, а не phone extension
************************************************************************************* Member voip config корректно отображает расширение. использовать Member vo...
Surface imaging fallback when provider has no call history
KamoPBXProvider.getCallHistory now returns null instead of throwing **************** so the 501 response no longer bypasses the imaging fallback. The provider c...
Resolve member→extension before VM/CDR provider lookup
CallController was passing memberId where FreePBX (and other PBX-style providers) expect an extension number — voicemail listing returned empty because no PBX e...
Захват нового ExtNumber в качестве окончательного захвата лямбды в контроллере MemberVoipConfigController
newExtNumber условно переназначен внутри if (isVoipEnabled & & ...) Блок, что делает его не совсем окончательным. Блок синхронизации TeamMember читает лямбда Op...
Не стирайте задание участника на синхронизацию от поставщиков, которым не хватает метаданных
**************************** безоговорочно переписанный PhoneExtension.assignedMemberId с любым возвратом провайдера. FreeBX (и любой провайдер, который не отсл...
Use extensionId as external ID, not Relay node id
FreePBX returns the same Relay id (ZXh0ZW5zaW9uOg== = "extension:") for every extension because the id field is not populated. Using it caused all extensions to...
Переписать все запросы/мутации GQL на интроспекции живых схем
Проверяли каждое имя поля и тип по фактической схеме FreePBX 17. Полный набор исправлений: Вопросы: - fetchAllExtensions: удалите из расширения несуществующее ...
Исправьте имя поля GraphQL для fetchAsteriskDetails
FreePBX API возвращает «Вы имели в виду fetchAsteriskDetails?» соответственно проверить запрос и его доступ к пути передачи данных.
Как вы видите судоходство?
Каждое из этих обновлений автоматически попадает в ваше рабочее пространство. Начните бесплатно и смотрите, как он растет неделю за неделей.