Release Notes
Функциональные изменения#
- Улучшена интеграция метрик в портале: дашборды Grafana открываются в более предсказуемом и унифицированном виде.
- Нормализованы названия дашбордов в меню портала для более понятной навигации.
- Упрощен пользовательский сценарий работы с метриками: лишние фильтры времени/даты на стороне портала убраны, используется встроенная логика Grafana.
- Выполнен первый этап нормализации отчетности и биллинга.
- В отчетности введена явная классификация вызовов (
attempt/detection/none|null), что повышает прозрачность и объяснимость начислений. - Подготовлен переходный контур для следующего этапа: текущие процессы сохранены, при этом модель данных приведена к более предсказуемому и проверяемому виду.
- Добавлена экспериментальная интеграция с
predial scorerвcall-controller(оценкаcall/do_not_callдо дозвона) с fallback-логикой без прерывания обслуживания при ошибке внешнего сервиса. - Улучшен сценарий обработки роликов AMD: добавлена автогенерация тишины перед промптами и стабильная ротация роликов в рамках профиля.
- Реализован механизм “полной контрольной группы” для проверки ошибок второго типа
- Подготовлен новый комплект публичной документации: выделены архитектурный, технический и пользовательский контуры с единой стартовой страницей навигации.
- В публичную документацию добавлены и переработаны документы по архитектуре, отказоустойчивости, сайзингу, установке, обновлению, Docker, PostgreSQL, observability, SIP и API.
- Добавлена документ
Руководство по эксплуатациис описанием функциональности решения и справочными данными; документ будет поэтапно расширяться в следующих обновлениях.
Технические изменения#
- Версия Grafana обновлена до 12.1.1.
- Усилен подход к авторизации: доступ к Grafana в интеграции с порталом работает по портальной auth-политике.
- В жизненный цикл дашбордов добавлена поддержка устаревших (
deprecated) дашбордов, чтобы сохранять доступ к историческим данным при обновлениях. - В текущий релиз добавлен встроенный observability layer для pilot/prod-контуров:
metrics,grafana,node_exporter,docker-health-exporter,log2file, мониторинг доступности БД и преднастроенные alert rules. - Частично рефакторена модель CDR: удалены лишние поля, детали обработки консолидированы в JSON (
scpd_details), добавлены явные результаты интеграционного слоя (action,method,scpd_error,sip_response). - Адаптирован переходный слой статистики для биллинга: расчеты опираются на явную классификацию вызовов, а не на набор жестко зашитых значений результатов детекции.
- Нормализован контракт ответов
call-controller:sip_responseвозвращается только для терминальных действий (drop|connect), дляcontinueполе не передается. - Расширен мониторинг
call-controller: восстановлены и актуализированы метрики по внутренним сервисам (smartcpd,predial scorer) с разбивкой по результатам, ошибкам и таймингам (включая p50/p99), обновлены панели Grafana. - Обновлена и синхронизирована документация API/архитектуры (
swagger+ flow-документация) в соответствии с фактическим поведением сервиса. - Добавлен механизм
full_control_groupдля контроля ошибок детекции на всех шагах обслуживания, а не только в одном LSTM-этапе. - Добавлен uuid4 идентификатор X-SCPD-TRACE-ID для каждого вызова.
- Для opensips модуля exec увеличен размер pipe с 4096 байт до 10 килобайт. Требуется для обновления объемных конфигураций.
- В поставку добавлена встроенная система исторического хранения логов
log2file(включается черезsetup.sh): поддерживается ротация, хранение за период, поиск и выгрузка логов. При этом сохраняется возможность параллельно использоватьdocker logs/docker service logsдля realtime-диагностики и корпоративные контуры логирования. - В поставку добавлен новый setup flow на базе
smartcpd-docker-setup.shиsmartcpd-setup.sh: подготовка Docker и Docker Swarm, генерация stack-артефактов, role-specific node setup scripts и deployment теперь выполняются по единой схеме поставки.
Исправленные ошибки#
- Исправлена проблема в разделе интегрированных метрик портала: вместо целевого дашборда открывалась главная страница Grafana.
- Скорректирован расчет биллинга: обработка результатов вызовов стала более полной и согласованной с новой классификацией.
- Нормализован API-контракт
call-controller(v2): на всем пути обслуживания ответы стали более предсказуемыми, пустые значения больше не передаются и не затирают полезные поля, что повышает консистентность сервисных данных в CDR. - Исправлен сбор сервисных метрик
smartcpd. - Добавлен
sip_trace_id— уникальный идентификатор SIP-интеракции в рамках контура SmartCPD для сквозной трассировки вызова. - Исправлены таймеры подсчета времени в
amd: устранено некорректное вычислениеtotal_analyze_time, из-за которого могло происходить усечение проигрывания роликов. - Улучшена стабильность работы SIP-слоя
- Проведены внутренние оптимизации обработки SIP-сообщений
- Повышена устойчивость к граничным сценариям в сигнальном взаимодействии
- Исправлена ошибка прохождения пользовательских заголовков
- Исправлена ошибка указания количества повторных попыток в профиле
amdдля результатаno_speech - Исправлено формирование биллинг отчета при смене лицензий:
- указываются корректные даты применения тарифов
- отображается количество попыток, детекций, и тарифицируемые единицы
- Исправлена автоочистка локальной базы шаблонов Dejavu
Известные проблемы#
- Недоступна кнопка
Сохранитьв разделеРедактирование профиля детекциипри редактировании профиля:- Решение: принудительно изменить значение слайдера
Максимальное время ожидания тишины, потом можно вернуть в прежнее значение.
- Решение: принудительно изменить значение слайдера
- Встроенный контур мониторинга и логирования в версии
5.3.0поставляется как экспериментальная возможность:- канал доставки оповещений и фактическая обработка алертов остаются в зоне ответственности эксплуатации/инфраструктуры;
- состав метрик и алертов может быть расширен в следующих обновлениях.
Совместимость#
- SmartCPD — минимальная исходная версия 5.2.8. Перед обновлением исходная версия должна быть запущена, миграции БД завершены, работоспособность компонентов проверена.
- Версии ниже 5.2.8 необходимо сначала обновить до 5.2.8, запустить и проверить по тем же условиям.
- Поддерживаемые переходы см. в разделе «Обновление до 5.3.0».
- docker версии 26+
- containerd версии 1.7+
- Debian-compatible и RHEL-compatible дистрибутивы Linux с версией ядра 5+, включая Debian 12 и RED OS 8
- postgresSQL версии 14+
Изменения#
- Выполняется миграция схемы БД. Перед обновлением рекомендуется выполнить резервное копирование.
- Обновлены компоненты:
billing-server:0.1.26->0.1.36config-server:5.2.9->5.3.0db:5.2.10->5.3.0grafana:5.2.5->5.3.0metrics:5.2.4->5.3.0portal:3.2.1->3.3.3sip:5.0.8->5.1.2smartcpd-analyzer:4.3.1->4.3.5smartcpd-engine:4.4.4->4.5.1docker-health-exporter: новый компонент,1.0.0log2file: новый компонент,5.3.0
Обновление до 5.3.0#
Обновление с 5.2.11 и 5.2.12 не поддерживается.
С версий 5.2.8, 5.2.9, 5.2.10#
В связи с существенными изменениями установщика обновление следует выполнять согласно документу Обновление, разделу Обновления отдельных версий, с полным резервным копированием.
Из-за существенных изменений в структуре отчетности (cdr, stats, billing) процесс обновления БД может занять продолжительное время. Во время обновления БД обработку вызовов следует остановить.
При обновлении до 5.3.0 сервис billing-server выполняет обязательную миграцию схемы и данных БД. На первом этапе после запуска обновленного стека billing-server начинает миграционную процедуру, ожидаемое время до завершения критичной части — до 30 минут.
До завершения этого этапа не следует запускать вызовы через SmartCPD.
Готовность к запуску вызовов определяется по сообщению в логах billing-server:
MIGRATION ROUTINE COMPLETEПосле появления данного сообщения необходимо принудительно перезапустить сервис amd:
docker service update --force scpd_amdПосле этого можно возобновлять обработку вызовов.
Дальнейшая миграция продолжается в фоновом режиме. Ориентировочная скорость обработки — около 15 миллионов записей за 30 минут. Этот этап выполняется с ограничением нагрузки на БД, поэтому полное завершение миграции может занять заметное время на крупных инсталляциях.
После завершения фоновой миграции начинается перенос данных из cdr в stats и последующий пересчет биллинга.
На период выполнения миграции возможны задержки:
- в обновлении данных
stats; - в расчете и отображении биллинга.