Журнал изменений
Что нового.
Каждое усовершенствование платформы, как только она появится.
· VOIPService
Общие ящики голосовой почты и аудио голосовой почты FreePBX из самого сообщения
Общие коробки (SP98-N-2). Почтовый ящик на PBX, который не является расширением Kamo (K1M1’s 8100, «KamoCRM Main Line») никогда не был синхронизирован. Одиночный AMI Сессия теперь также запрашивает VoicemailUsersList после прочтения расширений. каждый такой почтовый ящик в пользовательском контексте FreePBX как общий ящик телефонного сервера (PHONE VOICEMAIL BOX, DDL в docs/sql; INSERT ... ON CONFLICT so second) Уборка не может отравить транзакцию и синхронизирует ее сообщения как строки без расширение. В каждой коробке есть список уведомлений (PHONE VOICEMAIL BOX NOTIFY, никто не указан). По умолчанию: новое сообщение поднимает VOICEMAIL RECEIVED для этих участников, открывая Настройки > Телефон > Голосовая почта. GET/PUT **************** Перечисляет коробки и заменяет список коробок (MANAGE VOIP SETTINGS; члены не более 25. Сообщения коробки перечислены, воспроизводятся, помечены чтением и Удалены только членами, которые управляют телефонными серверами, в обоих списках голосовой почты. Аудио (SP98-N-3). Настройки воспроизводят загрузку, которая точно называет сообщение (помощник теперь отправляет <mailbox>/<msg id>), затем спаривание софтфона Почтовый ящик и время. При этом само сообщение запрашивается с АТС: VoicemailAudioRequests записывает его в Redis в течение десяти минут несет его в виде голосовой почты Audio, и помощник загружает аудио этого сообщения под собственного ИД. Игрок получает 404 по причине: AUDIO REQUESTED, AUDIO NOT SENT (спросили три минуты назад, ничего не вышло), HELPER OFFLINE или AUDIO NOT UPLOADED. Софтфон запрашивает сообщения, которые он не может соединить, поэтому их аудио поступает. Прежде чем кто-то нажимает на игру. Список на сервере теперь дает каждой строке свой идентификатор (игрок попросил /voicemails/<externalId>/audio, который не является идентификатором, поэтому он никогда не играл) почтовый ящик и читает расширения один раз вместо строки.
· kamo-internal
Фонетические написание названия компании и короткого имени в Company Info (SP94 T7)
Два дополнительных поля рядом с названием компании и коротким названием, загруженные из и сохранено в PUT /api/security/org/{id} как ******************* Чистый ящик отправляется как нуль, поэтому очищенное правописание на самом деле очищено. Они используются только для текста, который получает речевой движок ИИ.
· AIService
E5 говорит имя и короткое имя организации в фонетических написаниях (SP94)
Речевая модель отправляется на вход звонящего с каждым упоминанием всего слова. Название организации или короткое название заменено фонетическим написанием (OrgPhoneticSpeech). Орг читается один раз за запрос, после того, как запрос валидируется и до того, как ходит, поэтому каждому кандидату посылается один и тот же текст по обоим путям СП96 (а) голос человека или абонента и собственный голос члена ИИ. 4096-символьная шапка и мера CHARACTERS 1K остается на входе звонящего. Орг, который не Найденное или не прочитанное произносится так, как написано; непрочитанное – это предупреждение.
· MCPGatewayService
Phone call четко указывает, когда исходящая политика организации блокирует номер, а вместо этого именует текст или электронную почту (SP93 T12)
K6 отказывает в номере блока защиты от мошенничества с 409 BLOCKED BY OUTBOUND POLICY (SP93 T11). phone call теперь сам отвечает статус, с четким сообщением и запасным вариантом [sms send, mail send], рядом NO VOICE CONSENT, и аудит регистрирует его как отклоненный, а не ошибочный.
· VOIPService
Управляемая политика PBX содержит список блоков взимания платы за мошенничество (SP93 T7)
Ответы /internal/voip/pbx-config заблокированыPatterns, охрана телефонного сервера Образцы звездочек **************** для поддержки Камо-астерикса [kamo-toll-fraud-blocked] контекст. Каждый охранник отвечает на пустой список. The Версия хэша также охватывает список, поэтому он перемещается, когда охранник делает (SP93-T7-1).
· SecurityService
Замкните два фонетических написания имен в настройках PUT (SP94 T4)
titlePhonetic и titleShortPhonetic ride PUT/api/security/org/{id} те же права, что и титул/заголовок-короткое (владение или CONFIGURE SYSTEM, никогда не бог-режим) Только. Каждый из них ограничен 255 символами, отклонен 400 {ошибка, поле} до Все хранится, как и имя участника. GET/{id} уже возвращается Это целое, поэтому оба они появляются без изменений. ************************************************************************************************************************************************************************************************************************************************************************** Хранимый ряд: владелец устанавливает оба, звонящий без права получает сегодня 403, 256 символы на любом из 400 именуют поле, 255 хранится, PUT называет один Оставляя другой, он очищается, и GET несет оба (ноль до установки).
· KlusterServices
Выходные ворота отклоняют номер блока защиты от мошенничества (SP93 T9)
[kamo-outbound-gate] получает GotoIf на управляемой поддержке kamo-asterisk [kamo-toll-fraud-blocked] список, между линией передачи ИИ SP13 и Goto и (заблокированная) ветвь, которая помечает OBBLOCK, воспроизводит Недоступная подсказка и зависает с причиной 21. Разрешенный звонок без охраны Матчи по-прежнему заканчиваются на том же Гото. 911 и 933 никогда не доходят до ворот. **************** делает тот же монтаж на ходу Узел: один охраняемый, идемпотентный монтаж ворот Goto после '; sp13:ai-xfer-outbound', отказываясь от чего-либо написанного, когда этот якорь отсутствует или [заблокировано мошенничество] еще не находится в управляемой политике; раздел; он резервирует, перезагружает план циферблата и проверяет, что такое Asterisk Заряжен. Фиксатором является файл k1m1 по состоянию на 2026-10-04 гг.
· VOIPService
Охранники телефонного сервера для предполетной проверки KamoAI (SP93 T6)
**************************** ответы {blockInternational, blockPremiumRate, blockHighRiskAreaCodes, blockPrefixes} для одного телефонного сервера, прочитанного его идентификатором; сервер, который не существует, - 404 Не найдено. Охраняется внутренним фильтром, как и каждый маршрут KamoAI.
· AIService
Удалить чартерный голосовой каталог, GET /api/ai/charter/voices (SP96)
Устав больше не прикрепляет голос: член ИИ запоминает один голос на речевую модель. Прочитать и выбрать **************** Редактор чартера Избиратель голоса был единственным абонентом каталога (kamo-internal, SP96 Task 19). Конечная точка и VoiceCatalogService проходят тестирование. /api/ai/charter/** Ряд доступа остается для предварительного просмотра. CharterPreviewControllerTest сканирует каждый контроллер сервиса и выходит из строя Если какой-либо маршрут, включая шаблон, снова отвечает /api/ai/charter/voices. AiAccessRulesПроверка образцов /api/ai/charter/preview для чартерного ряда.
· kamo-shared-library
Фонетическое написание имени и короткого имени организации для речи ИИ (SP94 T3)
Organization.titlePhonetic / titleShortPhonetic (TITLE PHONETIC, TITLE SHORT PHONETIC) VARCHAR (255), обнуляемый, в списке разрешений patchOrganization рядом с заголовком / заголовком OrgPhoneticSpeech.forSpeech: чистый, однопроходный, нечувствительный к случаю, полный обмен словами Имена организаций для их правописания, самое длинное имя в первую очередь, только для API речи AIService. Требуется SP94 DDL T2 применялся в производстве до того, как он был запущен.
· kamo-asterisk-support
Перечислите список блоков взимания платы за мошенничество как [kamo-toll-fraud-blocked] (SP93 T8)
Политика PBX теперь несет заблокированные Паттерны, расширение Asterisk шаблоны опциональных охранников телефонного сервера. Фетч держит только подчеркивание с последующими цифрами и N, X, Z и . wildcards (не более 40), Ничто из ответа не может добавить приоритет, приложение или контекст. План циферблата. RenderPolicy пишет их как третий управляемый контекст. два списка разрешений; с каждой защитой он по-прежнему определяет контекст с помощью Шаблон не совпадает с цифрами, поэтому исходящие ворота DIALPLAN EXISTS всегда безопасны. Нажмите на резьбу списка через PolicyWriter. Применяйте и записывайте его на изменение. Камо, которое предшествует полю, не посылает ничего, что ничего не блокирует.
· VOIPService
Новые расширения начинаются с исходящих настроек телефонного сервера (SP93 T5)
Новое расширение, линия человека или члена ИИ, теперь позволяет набирать снаружи только тогда, когда настроена новая настройка его телефонного сервера ExtensionsOutboundAllowed. - AiVoiceAssignmentWriter.assign читает настройку вместо буквальной истины. Каждое назначение создает линию, поэтому ряд уже там (синхронизированный или оставленный) Отвергнутый отставной линией) принимает его тоже; ясно все же всегда отрицает. ********************** ************************* на строке, которую они создают, читают не более одного звонка; кэшированный флаг строки, Выбор администратора никогда не затрагивается.
· VOIPService
Отправная политика телефонного сервера в настройках голоса AI (SP93 T4)
GET and PUT **************** Универсал SP93 пять полей: newExtensionsOutboundAllowed, blockInternational, blockPremiumRate, blockHighRiskAreaCodes и blockPrefixes (список). Пользовательский префикс обрезается, бланки сбрасываются и повторяются; каждый должен проход **************************** (1-15 цифр, никогда не 911, 933 или более) префикс любого из них, максимум 25, или PUT составляет 400 {поле: заблокированные префиксы} Ничего не хранится. Как и любое другое поле здесь, PUT - это целое. Замена: отсутствующий или нулевой флаг выключен. Ничто из хранимого не показывает отменять политику. Только MANAGE VOIP SETTINGS.
· AIService
Конечные точки голоса члена для чтения и выбора модели голоса члена ИИ на речь
SP96 Задача 10 (см. пункт 5.5): - Получить **************** TTS-кандидаты маршрутизатора для ИИ (актер ИИ с членом; никогда не AiCallRuntime). Охранник, так что остановленный или отставной ИИ Для тех, кому служит речевой адаптер, предпочтительнее сначала модель: ходьба E5. Каждый У модели есть свой запоминающийся голос, решающий () следующий голос, не имеющий ничего написанного. Совместимые голоса лучше всего сначала; ряды на моделях не предлагаются Недоступно. - ПУТ **************** {voiceId?, preferred?}: выбор голос (звонящий, секс на пике), затем модель использовала сначала, в одном (MemberVoiceWriter, @Transactional @RetryOnDbConflict, no HTTP) Предпочитая модель без ряда, запоминает первый выбор E5. - Получить **************** Такой же взгляд, может изменяться ложно, за X-Internal-Auth (InternalCaller). - Читать: MANAGE MEMBER, MANAGE MEMBER SECURITY, MANAGE AI WORKFORCE VIEW AI WORKFORCE или SUPERVISE AI MEMBERS в качестве руководителя. Изменения: MANAGE AI WORKFORCE, или его руководитель с Supervise AI MEMBERS. Никогда ИИ себя. Отказы MISSING RIGHT, MEMBER NOT FOUND, MODEL NOT AVAILABLE VOICE NOT OFFERED, VOICE NOT COMPATIBLE, RETIRED. AiAccessRules: /api/ai/members/** является маршрутом участника; контроллер принимает решение.
· MCPGatewayService
Проверенный запрос от кого-то, кто может одобрить, - это одобрение: строка ON REQUEST, действие сразу, его результат на K3b (SP95 T34)
Когда устав требует одобрения, и ИИ ссылается на проверенный запрос (onRequestOf), K3 запрашивается с помощью режима ON REQUEST, запрашивающего устройства и ссылки. Упрощенный ряд Он позволяет действовать сразу; он по-прежнему проходит через границы и информационно-пропагандистские ворота. О том, что произошло, сообщается на K3b (исключено или не выполнено с его статусом и сообщением). Прежде чем ключ будет освобожден. Неоднозначный результат оставляется клещу, который повторно выполняет Под тем же ключом. K3's NOT AN APPROVER, REQUEST USED и SHADOW, мягкий отказ и неприятный ответ. Устав SHADOW спрашивает человека, как и раньше, и ответ говорит, почему (перенаправлено с «False, Reason») Запрещено по-прежнему отказываться, и действие, которое Нет необходимости в одобрении, не пишется строка ON REQUEST. Сухой забег запрашивает K3 под X-Kamo-Dry-Run Ничего не пишет. Повторно выполненное одобрение ON REQUEST сохраняет выход (режим K4).
· kamo-shared-library
Политика выезда с мобильного телефона и OutboundCallPolicy (SP93 T3)
SP93 Задача 3 (см. §5.2, D1, D4-D6): - AiVoiceInstanceНастройки прибыли **************************** BLOCK INTERNATIONAL BLOCK PREMIUM RATE, BLOCK HIGH RISK AREA CODES (буквально, не обязательно ложно) BLOCKED PREFIXES (VARCHAR(500) NOT NULL DEFAULT ''), плюс заблокированныйPrefixList(). Новая чистая политика OutboundCallPolicy: рекорд Settings, высокорискованный NANP FCC «One Ring» коды области, коды премиум-класса 900/976, это ValidPrefix (1-15 цифр, никогда 911), 933 или префикс любого из них), dialPatterns (образцы Asterisk для [kamo-toll-fraud-blocked], в фиксированном порядке, каждый раз, недействительные сохраненные префиксы выпадение) и блоки (соответствует ли отображаемый шаблон цифрам циферблата PBX ИИ), поэтому PBX и предварительная проверка AI никогда не расходятся во мнениях. Пять столбцов должны существовать (применяется DDL задачи 2 SP93), прежде чем это достигнет основного.
· MCPGatewayService
ИИ может процитировать запрос, на который он действует (onRequestOf), проверенный путем его чтения; запятнание прогона говорит, откуда он пришел (SP95 T31)
Каждая запись ИИ, которая может нуждаться в одобрении, принимает опциональный запрос (чат: <conversation>/<message>, task:<item>, task:<item>/comment:<id>) Инструменты/список. Трубопровод выводит его до проверки схемы, Планировщик и хэш args, и RequestVerifier читает ссылку как ИИ (D20): поддельный или внешний справочник отказывается от вызова (INVALID ARGUMENTS REQUEST NOT VERIFIED + Why, key freed); это несвежий, не этот бег или во внешне испорченном беге мягкий отказ; проверенный идет к планировщику по плану по умолчанию (ToolPlan.VERIFIED REQUEST) Об этом сообщает сайт dry run onRequestOf.accepted. Одобрения остаются без изменений до 34-й задачи. RunTaint получает источник: чат читает команда CHAT, авторы которой Все в команде Орга испачкать бег INTERNAL; все остальное EXTERNAL, который сам по себе блокирует цитируемый запрос (D22).
· AIService
В резюме говорится, для какой компании работает ИИ, и слова вызова коллеге (SP95)
Профиль чартера, который отправляет SecurityService, теперь содержит орг-название, произнесенное оргом имя (короткое имя, другое отображаемое имя, другое юридическое имя; SP95 D15). Короткометражка Линия идентификации заканчивается фразой «Вы работаете для <orgName>», когда она не является четкой, поэтому нет Бренд всегда записывается в резюме от руки. OrgName является частью профиля Отпечаток пальца, так что переименованная организация перекомпилирует сводки своих ИИ. PLACE INTERNAL CALL (SP95 D1) гласит: "Призыв коллег" в утверждениях и Секции эскалации; рука по умолчанию от T1 остается для будущих классов. CharterCompiler.VERSION переходит на sp95-1, как его собственное правило спрашивает при формулировке Меняется, поэтому резюме с рабочим названием также поднимает новый лейбл один раз. Количество одобрений CharterSnapshotTest следует за AiActionClass вместо пининга 18: shared-lib's PLACE INTERNAL CALL делает его 19.
· VOIPService
Файл DDL для исходящей политики телефонного сервера
SP93 Задача 1. Пять колонок, не являющихся неполноценными, на AI VOICE INSTANCE SETTINGS: **************************** BLOCK INTERNATIONAL, BLOCK PREMIUM RATE BLOCK HIGH RISK AREA CODES и BLOCKED PREFIXES, все по умолчанию поведение. Sp93DdlContractTest прикрепляет файл к спецификации 5.1 и проверяет каждый столбец является перезапускаемым, несет свои недостатки в своем собственном пункте, и что Здесь нет ни чека, ни джесона, ни капли.
· EmailService
Новое имя участника достигает отображаемого имени своего почтового ящика (SP95 T35)
POST **************** {предыдущее, текущее} -> [обновлено], за внутренней тайной KamoAI, такой как почтовый ящик. Почтовые ящики, которые участник держит в качестве первичных, чье отображаемое имя является пустым или все же предыдущий (подстриженный, игнорирующий случай) берет новое имя; имя администратор выбрал, и почтовый ящик участник только делится, остаться. Пробел Нынешнее название — 400. Одна транзакция @RetryOnDbConflict с ключом от члена; Нет вызова провайдера (KamoMail не сохраняет отображаемое имя на стороне сервера).
· kamo-internal
Позвоните коллегам по уставу, командной строке телефонного сервера и «Запросили» о действии, о котором кто-то просил (SP95 T26)
- Устав: PLACE INTERNAL CALL рядом с PLACE CALL; APPROVAL содержит один пункт на класс (19, постановление SP95-T4-1). - Телефонная серверная карта: командная строка (defaultTransferExtension), отосланная по каждому сейву, пустая как никакая (V10 заменяет каждое поле). - Утверждения: чип «Asked for» для режима ON REQUEST в списке и детали; в деталях указано, кто задал и ссылки на чат (открыт на месте) или задание (/notes?task=). Типы читаются через **************** (SP95-T26-1).
· SecurityService
Переименование достигает почтовых ящиков участника (SP95 T36)
После совершенной смены человека «Первый последний», Служба безопасности Posts {previous, current} to EmailService's ********************** ************* ********** пользователя с внутренним секретом KamoAI (ступка аренды MAILBOX) Клиент и URL. EmailService переименовывает только почтовые ящики Он считается первичным и до сих пор носит старое автоматическое название. - MemberNameChangeNotifier: после совершения только (после совершения) Запросить нить на kamoaiExecutor, приложить максимум усилий (WARN, никогда не подводит) Имя, пропущенное в пустоту, не объявляется. - Называется профилем участника PUT и учетной записью вкладки Пользователя платформы Редактировать, только когда «Первый последний» изменился. Имя контролера аккаунта Назовите учетную запись клиента, а не человека, поэтому он ничего не сообщает.
· AIService
Орган, который ранжирует транскрипцию OpenAI, сначала передает STT через него, и каждый билет называет свой диалект сессии (SP95)
модель транскрипции была отброшена как ADAPTER UNSUPPORTED и каждая потоковая STT. Билет поступил в Kamo Speech на CPU. Каждая строка каталога теперь называет сессию. (модель ездит в обновлении сессии), а билет отвечает на сессию.
· APIService
Контактные формы сайта маршрута, по бюджету сессии-создания
POST/api/public-chat/contact прокси для новых контактов MediaService конечная точка через тот же ключ сайта, происхождение и область проверки, что и каждый другой публичный звонок, поэтому контактная форма кредитора подает билет в собственной очереди поддержки кредитора. Он создает сессию и билет, поэтому он охраняет ***, как его. Братья и сестры и опираются на строгий бюджет создания (3/мин на IP). Это Тот, кто создает путь без "сеансов" в нем, поэтому он соответствует имя; в бюджете сообщения сценарий может подавать 30 билетов в минуту с одного адреса.
· MediaService
Контактная форма веб-сайта кредитора подает билет в свою очередь
POST /api/media/public-chat/contact, доступный через ключ сайта шлюза Ворота, как и любой другой публичный звонок, так что ключевые имена организации и ее Разрешено происхождение названия сайта. Контактная форма платформы может быть Не делайте этого: он помещает файлы в платформу, независимо от того, какой сайт его разместил. Контактная форма - это чат, открытый и введенный один раз, поэтому он построен из Именно эти два шага: создание поддержки (тема интеграции). атрибуция, гео, стратегия назначения темы после совершения) и Отправить сообщение (первое сообщение посетителя). Только название и описание отличается, и оба ведут с картой имени, электронной почты и телефона, Потому что посетитель оставил страницу, и электронная почта - это путь к ним. Очередь сообщается, как только сообщение находится в потоке, как и в случае с ИИ. передача. Заполненный медонос отвечает на успех и ничего не записывает.
· MCPGatewayService
Rag search берет аудиторию PUBLIC, поиск может читать публика (SP95 T12)
ИИ на телефонном звонке отвечает на анонимный звонок, поэтому он ищет только публикуемые статьи, которые публика может читать, никогда не отмечает (спец D12). факультативный Аудитория enum ["PUBLIC"] и пересылается в RAGService (задача 11); Другое значение - INVALID ARGUMENTS по схеме и никогда не достигает RAG.
· KlusterServices
Rspamd хранит данные в собственном Redis
local.d/redis.conf теперь является ключом redis-own.conf: rspamd-redis по почте, База данных 0, тот же логин mail rspamd. Смена подъезда катит капсулу. Старый ключ остается в ConfigMap до подтверждения переключателя. 'kububl -n mail rollout undo deployment/rspamd' - это полный откат. (СП98-М-1, этап 2 из 3). Отправьте его только после копирования данных rspamd. в rspamd-redis.
· KlusterServices
Собственный редис rspamd
rspamd анализирует ненадежную почту и регистрируется на платформе Redis, рядом с каждой сеанс участника, и никакая ACL не может удержать его от них там: пользователь не может быть в одной базе данных; скрипты rspamd передают ярлыки классов, флаги и msgpack BLOBS, как KEYS, поэтому ACL отказывает каждому Байесу учиться; и его Байес SCAN, в которых перечислены все ключевые имена (*** и OTK имена являются носителями). Вне зависимости от шаблонов. Это добавляет rspamd-redis в почту: платформа Redis’s build, прикрепленная к k1m1 рядом с rspamd с его файлами на диске этого узла, одна база данных, только PING без логина, mail rspamd с существующим паролем rspamd, kamo ops для операторы и сетевая политика, допускающая только стручки rspamd. CI применяет Дождитесь его, прежде чем сорваться. rspamd остается неизменным до следующего фиксация (СП98-М-1, этап 1 из 3).
· SecurityService
Экономия чартера достигает времени выполнения ИИ сразу, и профиль чартера называет компанию (SP95 T6)
************************************************************************************************************* Путь к правам отправляет ПРАВА; совершенный чартер отправляет ЧАРТЕР для каждого затронутого ИИ член, с действующими правами участника (читать после совершения, в Один запрос) и пустое добавление/удаление, так что каждая капуста камоаи падает, что ИИ Устав и списки инструментов сразу, вместо того, чтобы обслуживать устаревший список инструментов. Сохранение на уровне члена (S6) объявляет о члене, когда он является ИИ. - Сохранить должность, отдел или должность, только чартер (S7-S9) или полный Обновление, несущее чартерные предметы, объявляет каждая непенсионная команда ИИ член орга, из одного орг-ключевого запроса. - CharterProfile получает orgName, разговорное название компании (OrgSpoken) Имя: короткое имя, другое отображаемое имя, другое юридическое имя, для краткого Линия идентификации.
· MCPGatewayService
Approvals request отправляет классу инструмент, который выполняет этот инструмент; чартерная печать сохраняет инструменты свежими (SP95 T10)
approvals request отказывает классу действий, который выполняет инструмент каталога INVALID ARGUMENTS USE TOOL {tool, tools, actionClass} или NO TOOL FOR YOU Абонент не может видеть ни один из этих инструментов; только классы DECISION ONLY все еще получают только принятие решения. ToolSpec.alsoClasses объявляет классы планировщиком переклассировку (почта, чат, календарь, задачи, телефон call), реестр выводит класс -> таблица инструментов от них, а видимость скрывает инструмент только тогда, когда каждый Класс, который он может принять, запрещен. Трубопровод отказался от запланированного запрета класс по утвержденному повторному исполнению, и CharterPolicy отражает D1 (неназванный) PLACE INTERNAL CALL наследует FORBIDDEN PLACE CALL X-Kamo-Charter-Stamp достигает CharterClient.policy (memberId, expectedStamp), который перечитывает кэшированный чартер под другой маркой; инструменты / список Судит по одному уставу читать и отвечать *******************

Ваша вселенная ждет.
Начните бесплатно через несколько минут. Добавляйте продукты, когда будете готовы — без миграции, без новых логинов.
Бесплатно навсегда — не требуется кредитная карта