v/1.8
v/1.8.0 (до 2024-07-20)
Платформа
-
Installer. Изменен способ запуска docker-контейнера. Обновление с более старых версий должно производиться через пересоздание контейнера.
-
Deservice. Реализован режим мягкого вывода серверов из обслуживания. Текущие процессы продолжают обслуживаться, новые не распределяются. Active-Passive группы перемещают постепенно лидеров в активную зону.
-
Shutdown. Реализована скоростная отстрелка подвисших TCP подключений после жесткого пропадания сервера. Исключена возможность временной блокировки сервера уведомлений вследствие потери веб-сервера, подписанного на события.
-
Mnesia. Повышена стабильность загрузки и восстановления mnesia после развала схемы.
-
Idle. Оптимизирована производительность idle-сервисов, активных при остутствии целевой нагрузки в системе.
-
DC ping. Добавлен периодический пустой запрос в БД для удержания подключения на файрволле при отсутствии активности.
-
/ws/token/v1. Добавлен Endpoint для работы под учетной записью токена с передачей токена в заголовке Authorization.
-
PwdHash. Реализовано автоматическое хеширование открытых паролей, указанных администратором в файле конфигурации (строки подключения, мастер-админ, контроллер репликаций PostgreSQL, менеджер бэкапов и т.д.).
-
Refresh Apps. Исправлена проблема долгого обновления пользовательских приложений после установки продуктового слоя.
-
Default domain. В мастер-домен добавлена возможность задавать домен по умолчанию, подставляемый в поле ввода окна авторизации (в дополнение к стандартному выбору домена по умолчанию).
-
/fs/targets/files. В REST-API добавлен новый endpoint для загрузки файлов, на которые можно ссылаться из настроек домена.
-
$USER. Функции security-фильтра динамической модели данных ROLES, GROUPS, SUBORDINATES получили дополнительную форму массива для использования результата в функциях hasAny и hasAll.
-
DomainTree. Исправлена функция построения кеша дерева доменов - после перезагрузки микросервиса DC был возможен сбой.
-
Email datetime. Время получения письма теперь проставляется из заголовков самого письма (ранее принималось за время создания сущности - теперь это значение в новом поле recvDateTime).
-
BREAKING CHANGE. Email messages. Изменен тип поля references. Это влечет пересоздание таблицы сообщений с переименованием предыдущей в backup. Способ восстановить предыдущие письма - либо переопросить сервер IMAP путем удаления каталогов email/Folders, к которым привязаны письма; либо вручную провести копирование данных в новую структуру таблицы БД в модельных базах всех доменов.
-
Iface. Реализована динамическая привяno 729зка сетевого интерфейса медиашлюза без необходимости вносить изменения в конфигурацию. Теперь не нужно заполнять поля 'aliases', 'termportranges', 'rtpiface' в конфигурационных параметрах mg, bgmg, sg, esg, а также в поле 'ifaces' серверов, если интерфейс не используется в других местах конфигурации. Достаточно указывать 'termportrange' для медиа-гейтов.
-
CPU usage. Глубокая оптимизация использования процессорного времени: в Idle режиме при большом количестве доменов, во время загрузки сервера. Отдельно в односерверных системах и системах без пассивных экземпляров микросервисов. Реализована квотированная загрузка доменов и некоторых других объектов. Реализована возможность задавать для некоторых микросервисов ограниченный перечень обслуживаемых доменов.
-
Ban. Правила пограничного фильтра, содержащие только указание адреса, влекут запрет внесения подпадающего адреса в динамический бан-лист.
-
Concurrent. Реализована поддержка конкурентной лицензии на устройства (как по конкретным регистрациям, так и по учетным записям).
-
Скорректировано поведение сервиса Leader/Follower, приводившее в некоторых случаях после потери связи к ненужной перезагрузке экземпляра-лидера.
-
WS exec. Устранена проблема выдачи результата методом /exec при использовании https.
-
Default log level. В конфигурационные настройки вынесена опция управления уровнем логирования по умолчанию ('logging_default_level'): в микросервисы, в сервер, в сайт, в общий раздел.
-
Msvc sections. Реализованы конфигурационая опция роли msvc и опция сущности mservice для выбора конкретной секции серверов, исполняющих конкретный продуктовый микросервис.
-
Disable plugins. В параметры мастер домена вынесена настройка для отключения части встроенных плагинов, например CTI.
-
Script limits. В параметры домена вынесена настройка ограничений для машины сценариев (число исполненных компонентов, время исполнения сценариев, пауза между компонентами, возможность использования глобальных переменных).
-
DMS/DC pools. Реализована возможность управлять размером пула подключений к хранилищам postgresql (опция 'max_connections' сущности Storage); в конфигурационные настройки роли DMS добавлена опция 'pg_max_connections_default' (=10).
-
Bulk events. Организована массовая отправка событий подписчикам в условиях высокой нагрузки.
-
Sections. В конфигурационные опции микросервисов msvc и dms добавлена опция sections, а в опции class и mservice добавлена опция section. Используется для разделения микросервиса на секции и привязывания конкретных сущностей к выбранным экземплярам.
-
%WEBSERVERS_EX%. Добавлен макрос в строку запуска продуктовых микросервисов, сообщающего расширенную информацию о размещении вебсерверов - локальные, по секциям, по тэгам.
-
Astra. Добавлен режим установки на Astra Linux в закрытом контуре без доступа в интернет.
-
Добавлена опция в раздел general конфигурации для полного отключения cdr.
-
Расширена пропускная способность в процессе рассылки cdr событий за счет мультиплексирования.
-
Кеши с данными доменного центра получили лимит времени хранения в целях оптимизации расходования оперативной памяти (решена проблема рандомных номеров, зависающих в кеше).
-
В конфигурационные настройки ролей WS добавлены параметры 'tag' и 'order'. Используются при формировании параметров командной строки продуктовых микросервисов - задается в mservices с помощью макроса %WEBSERVERS_EX%, влияет на выбор вебсервера для подключения из продуктового микросервиса.
-
Улучшен алгоритм валидатора конфигураций, реализован двойной проход для покрытия случаев, ранее строго считавшихся невалидными.
-
Исправлено поведение микросервиса msvc в ситуации, когда при обновлении сервисов вложенный архив еще не актуален.
-
Исправлено дублирование конфигураций микросервисом MC при старте системы.
-
Для IMAP каталога добавлены опции keep_unseen, store_raw_as_file, store_html_as_file.
-
Обновлен встроенный SSL-сертификат по умолчанию, используемый по умолчанию в частности при установке webrtc соединений. Поддержаны новые алгоритмы и версии.
-
Добавлена возможность управления режимом работы объектной БД mnesia - в конфигурационных параметрах ролей, связанных с ней (кроме DMS), добавлена опция 'mnesia_storage_mode': disc | ram | disc_only.
-
Исправлена проблема в работе эндпойнта /api/token/v1
-
Устранены препятствия для работы платформы в docker-контейнере не под root пользователем.
-
Реализована очистка папки /tmp в docker-контейнере при запуске.
-
SystemState. В запрос состояния системы добавлена проверка актуальности сертификатов meet: meet_cert_pem, meet_turn_cert_pem.
-
WS. Исправлена ошибка при отправке ответа на HTTPS запрос к токену с использованием TLS-сертификата.
-
Исправлена проблема при установке продуктового слоя в мастер-домен.
-
Roleapps. Добавлена поддержка мастер-домена в менеджер ролевых приложений продуктового слоя.
-
IM. В канале мессенджера telegram поддержаны новые типы сообщений: sticker, poll, contact, location.
-
Ослаблено намеренное притормаживание передачи файла обновления между серверами.
-
Микросервисы wssubscr и callstore значительно повысили пропускную способность модифицирующих операций, устранено узкое горло.
Динамическая модель данных
-
Model. Реализована функция изменения столбцов таблицы в БД postgres при модификации свойств класса, позволяющих провести операцию автоматически. Ранее изменение свойства приводило к пересозданию таблицы. Сейчас пересоздание будет только если изменение кофликтное (например попытка сделать числовым поле, в котором у существующих объектов находятся неприводимые к числу строки).
-
DMS reload. Устранена лишняя самопроизвольная перезагрузка некоторой части классов после изменения метаданных любого из них.
-
DMS required. Устранена проблема непроставления атрибута NOT NULL таблице postgres при модификациях значения опции required поля.
-
DMS notify. Значительно оптимизирована модель уведомлений об изменениях в модели данных. Индексирование подписок. Мультиплексирование подписок в платформе. Массовая отправка на вебсерверы. Фильтр по операциям и содержанию событий. Suspend/Resume процесса уведомлений для класса.
-
DMS stat_mode. Для классов добавлена возможность указания уровня логирования статистики: high | medium | low | disabled | default. В конфигурационные параметры роли DMS добавлена дефолтная настройка уровня статистического логирования.
-
DMS RAM expires. Реализована возможность настройки автоматического удаления сущностей коллекций в хранилищах типа 'ram'.
-
DMS pools. Разделен пул для системных обращений, включая запросы микросервисов продуктового слоя, и прочих запросов.
-
Suspend Notify. Добавлен websocket-api метод для приостановки/возобновления отправки уведомлений об изменениях коллекций.
-
Модифицирована привязка режимов storage_mode классов динамической модели данных к типам хранилищ: ram теперь mnesia ram only, runtime как и раньше mnesia ram+disc, ets → локальная оперативная хеш-таблица.
-
Реализован запрос dmsbatch в REST API динамической модели данных для исполнения серии запросов к одному классу.
-
Реализована операция SETUP в REST-API динамической модели данных. Доступны методы: suspend_notification, resume_notification, read_partitions, drop_partition, optimize.
-
Добавлена опция skip_response_entity в REST-запросы create, update, delete, исключающие выдачу в ответе полного тела сущности.
-
Запросы Rest-API динамической модели данных получили опцию 'hrkey', позволяющую управлять выбором процесса-обработчика при параллельном обслуживании.
-
Реализована привязка классов к секциям DMS. В конфигурации для экземпляров DMS может задаваться список секций, для классов может задаваться конкретная секция. Обслуживание класса производится только на экземплярах, содержащих указанную секцию, а если таких несколько, то на том где номер группы меньше. Вебсервер получил endpoint /rest/v1/design/classes/sections, возвращающий секции DMS из конфигурации.
-
Реализована поддержка актуальной версии clickhouse.
-
В свойства класса динамической модели данных добавлены 'worker_r_count' и 'worker_w_count' для тонкого тюнинга производительности.
-
API-запрос dmsquery получил возможность указания classpath вместо storageInstance для определения хранилища, в котором предстоит исполнять запрос. Преимущественно ищется хранилище с постфиксом "_readonly", а если такого нет, то как раньше проверяется и создается readonly-пользователь.
-
В целях ускорения добавлен кеш на ответы по запросам агрегации в классы динамической модели данных. Время жизни определяется свойством класса 'opts.aggr_cache_ttl_ms'.
-
Значительно ускорены запросы на постраничный вывод из clickhouse.
-
Операции в clickhouse теперь не используют модификатор FINAL в целях значительного увеличения скорости выполнения запросов к таблицам типа ReplacingMergedTree.
-
В свойства хранилищ типа kafka и clickhouse добавлена опция 'domain', позволяющая установить подключение с базой данных другого домена, отличающегося от текущего.
-
Существенно увеличена пропускная способность сервиса отправки уведомлений об изменениях в модели данных.
-
Для классов, имеющих storagemode: ram и runtime, в DMS добавлена хеш таблица для индексирования lookup полей.
-
Для классов добавлена опция 'ext.dirty_write_enabled', позволяющая отключить транзакцию для операций модификации. Работа классов ускоряется. Проблем с целостностью не возникает в связи с принципиальным последовательным однопоточным обслуживанием каждого объекта. Однако запись на резервный сервер производится асинхронно и данные могут быть потеряны при резком прекращении работы ноды.
-
Добавлен тип поля increment для свойств классов динамической модели данных. Реализуется в микросервисе DMS, при загрузке рассчитывается как максимум среди всех сущностей класса, а дальше каждая операция create и replace увеличивает. Поэтому не гарантируется отсутствие пропусков (кейс замены сущности на нее саму), а также не гарантируется тотальная уникальность в течение времени жизни коллекции (кейс добавленной и удаленной записи с последующим переинициализацией класса или перезапуском микросервиса DMS).
-
Добавлен конфигурационный параметр роли dms query_worker_count (по умолчанию 4), позволяющий ограничить количество одновременных процессов построения выборок методом API dmsquery. Также ограничена выдача результата - максимально 1000 строк, иное необходимо реализовывать с помощью постраничных обращений.
-
Динамические коллекции архивного типа, создаваемые платформой автоматически (такие как сообщения email, im) теперь приоритетно привязываются к хранилищам kafka+clickhouse, если они создани в домене с именем 'model_ch', с меньшим приоритетом к хранилищу 'model_pg', по умолчанию 'auto'. Достаточно создать хранилище, чтобы произошла перепривязка.
-
Динамические коллекции категорий, создаваемые платформой автоматически (такие как аккаунты email, im) теперь приоритетно привязываются к хранилищу postgresql, если оно создано в домене с именем 'model_pg', по умолчанию 'auto'. Достаточно создать хранилище, чтобы произошла перепривязка.
-
Динамические коллекции имеющие поля для вложений и создаваемые платформой автоматически (такие как сообщения email, im) теперь приоритетно привязываются к файловому хранилищу с именем 'model_files', если оно создано, а по умолчанию 'auto'. Конкретно вложения email и im с еще большим приоритетом привязываются к существующим хранилищам с именами 'email_files' и 'im_files' соответственно. Достаточно создать хранилище, чтобы произошла перепривязка.
Телефония
-
IVR migration. Реализована миграция сценария IVR на другой медиашлюз при падении текущего - активный медиа-компонент начинает исполняться заново.
-
NoSDP. Реализована поддержка и обработка INVITE-запросов без SDP (offer в ответе 2хх, answer в ACK-запросе).
-
Bindings. Реализовано наследование меток звонка в подменяющий вызов (Invite+Replaces).
-
Record. Реализована возможность задавать аудио-форматы для использования в режимах внешней записи SipRec, SipFork.
-
PARENT:acallid:CALLID. Реализована функция привязки нового (консультационного) вызова к основному вызову через установку метки. Применяется двухшаговым переводом из IVR, а также в API колл-менеджера.
-
CSeq. Исправлена проблема применения повторного ответа 2XX на следующий запрос - если в сети потерялся пакет ACK в случаях осуществления переводных вызовов был возможен сбой.
-
Freeze. Обнаружена и устранена блокировка в работе ESG на время транзакции - в массовой кампании были возможны несколько неудачных звонков по причине технического внутреннего таймаута.
-
Credentials. Учетная запись абонента sipuser получила возможность применять одновременно и независимо различные пары {login, pwd} для регистрации.
-
MG. Исправлена подмена адреса через re-Invite.
-
Pending. Значительно повышена стабильность обработки встречных инвайтов - провоцируется при одновременной миграции медиа-контекстов b2b и ivr на новый медиашлюз.
-
Diagram. Исправлен алгоритм построения диаграмма последовательности для телефонного вызова.
-
SendNotify. Повышена стабильность работы функций отправки NOTIFY и OPTIONS с сервера на устройства.
-
SDP. Исправлена функция парсинга форматов SDP - при указании форматов в нестандартном виде был возможен сбой.
-
Self-register. Исправлена проблема ложной привязки внешних вызовов к внутренним абонентам при регистрации системы на самой себе.
-
Unregister. Исправлена проблема неудаления регистрации при поступлении запроса через другой пир, например с другого TCP-порта.
-
Правила маршрутизации - проверка и применение следующих правил при отсутствии регистрации и соответствующих переадресаций учетной записи внутреннего абонента. Возможность отключить переход к следующим правилам с помощью opts.fallback_next (по умолчанию true).
-
Возможность настройки прослушивания конкретных сетевых интерфейсов сервисами SIP-сигнализации. В частности возможность использования 5060 на разных интерфейсах микросервисами sg и esg.
-
Добавлено поле действия для правил featurerule, позволяющее устанавливать как запрет, так и разрешение (ранее только разрешение).
-
Hotdesking. Добавлен фичакод hotdesking для динамического связывания учетной записи пользователя и SIP-устройства; возможность задания пользователю номера телефона и пинкода.
-
Diversion. Реализована поддержка RFC-5806. Учетная запись провайдера получила соответствующую опцию; при ее активации маршрутизируемый наружу внешний же вызов сохраняет в качестве инициатора вызова номер исходного внешнего абонента.
-
Billing RADIUS. Реализована поддержка RFC-2865, RFC-2866, RFC-2869, RFC-6929 для взаимодействия с системой биллинга по протоколу RADIUS в рамках учета вызовов, совершаемых через учетную запись провайдера с включенной опцией биллинга.
-
Provider reinvite mode. Добавлен режим учетной записи, не подвергающий изменению номер абонента при отправке re-invite провайдеру телефонии; выставлен по умолчанию.
-
STAT. В общие настройки конфигурации вынесены параметры для настройки времени хранения статистической информации о вызовах для нужд построения замыканий и диаграмм (sip_stat_timeout_closure, sip_stat_timeout_callinfo).
-
Log closure. В конфигурационные опции вынесена возможность отключения лог-журналов замыканий (log_closure).
-
Normalization svcscript. Правила нормализации номеров получили возможность модифицировать to_username, from_username, from_displayname с помощью служебного сценария.
-
BGMG и Sip-Alg. Исправлена логика определения неободимости активации пограничного медиа-шлюза на SG в условиях, когда на сервере только один интерфейс с серым адресом и активированным sip-alg.
-
Username. Запрещены вызовы абонентов по их username (login) для всех случаев, кроме подменяющих переводов.
-
Forward refer. Добавлена опция учетной записи провайдера 'refer_mode', позволяющая обеспечить сквозной проброс REFER наряду с локальным обслуживанием (инициацией вызова в сторону того же самого номерного плана).
-
Route account. Реализована возможность указывать аккаунт провайдера с помощью маски '/mod/…', поддерживаются {tab:a:*}, {F}, {T}, {B}.
-
CDR disable. Добавлена опция конфигурации, отключающая генерацию CDR событий. Применяется для нужд организации нагрузочных эмуляторов.
-
local_mg_lower_priority. Добавлена конфигурационная опция в микросервисы b2b и mgc, отключающая понижение приоритета локально расположенных медиашлюзов.
-
Исправлена проблема ESG при обработке нескольких подмен плеча подряд.
-
Для нужд создания на базе платформы нагрузочных стендов добавлена возможность совершать вызовы непосредственно на порт IVR сервера, если у него задан конфигурационный параметр default_ivrscriptcode. Сразу запускается указанный сценарий IVR. Сокращается нагрузка на систему за счет исключения цепочки из ESG, B2B, MGC, MG и требуемых им других сервисов.
-
Правила нормализации получили возможность использовать служебный сценарий для назначения разом всех полей: from username, from displayname, to username.
-
RADIUS. Реализована поддержка биллинга по протоколу RADIUS для внешних звонков c PSTN. Учетные записи провайдеров включают биллинг опцией 'opts.use_billing'.
-
В конфигурационные настройки ролей MGC, B2B, IVR добавлен параметр 'local_mg_lower_priority', позволяющий отключить преимущественный фильтр медиагейтов, работающих на этом же сервере - для конфигураций, не требующих резервирования разговоров.
-
SIP-INFO. Реализована отправка DTMF в другое плечо посредством SIP-INFO, если в SDP отсутствует формат Telephone-event/8000.
-
Поддержаны SIP телефоны Flat.
-
Autoprovision. В шаблоны для автопровижена добавлены макросы 'sg.addr' и 'sg.port'.
-
Rec. Для экономии ресурсов запись на MG теперь включается только после установления диалога в случае, если хотя бы в одном из доменов участников включено правило записи.
-
NumbersDomains. Для упрощения настройки многодоменных систем с единым PSTN подключением в мастер домен добавлена коллекция telephony/NumbersDomains, а в масках фильтраов и модификаторах различных правил появилась возможность при маршрутизации ссылаться на эту коллекцию через
/nd/…
и{nd}
соответственно. -
pre_modifier. Добавлена опция правила нормализации 'opts.pre_modifier', позволяющая исполнить правило перед отправкой запроса в биллинг. Также добавлена опция 'substitute_diversion' для учета заголовка Diversion (кейс 8800) и подстановки в качестве номера назначения.
-
Добавлена поддержка масок, задающих диапазон, вида "/dia/1234567+10".
-
Pending. Исправлена проблема в ESG при получении ответа 491 Pending в ответ на referred Invite, теперь вызов повторяется.
-
Diversion Добавлена поддержка SIP-заголовка Diversion. Каждая переадресация добавляет заголовок. Звонок от провайдера добавляет заголовок. Учетные записи провайдера получили настройку для включения режима переводов и переадресаций из PSTN в PSTN с подстановкой в заголовок From номера самого абонента-инициатора с добавлением заголовка Diversion (opts.use_diversion).
-
Параметр API-запроса invitebyivr к коллменеджеру передает в сценарий вторым параметром (startparam(2)) значение свойства 'param' из запроса.
-
Переработана настройка хранилищ для записей. Теперь в правилах записи можно указать код хранилища, а в хранилищах создать элемент файлового хранилища для размещения записей: fs, nfs, s3, а также задать префикс (подпапку). Способ размещения записей остается прежним. По умолчанию место размещения записей не изменилось. Ранее записанные разговоры также доступны к прослушиванию. Таким образом в одной системе можно разные записи хранить в разных местах, на разных разделах и хранилищах по типу или по времени проведения разговора.
-
SpeechAnalytics. Реализован простая аналитика записи разговора: владение временем, количество перебиваний. Включается в правилах записи, попадает в callevents.call_rec_links, ccsevents.connection_set_record_info и при установленном продуктовом слое в коллекцию разговоров callcenter/connections/ArchiveConnections.
-
Скорректирована работа с дескрипторами стримов для более строгого соответствия RFC. Теперь при видео-звонке в IVR видео стрим с портом 0 будет присутствовать во всех ответах и реинвайтах.
-
ссsevents. Добавлено событие connection_failure по вызовам, завершившимся неудачей на этапе маршрутизации.
-
CPD. В алгоритм CPD (детектор автоответчика) наряду с анализом спектра и длины голоса добавлена поддержка шаблонов на основании fingerprint.
-
CPD. Реализовано управление настройками CPD, добавлены инструменты управления шаблонами CPD и тестами CPD (Детектор автоответчиков для исходящих кампаний). Сервис CPD работает в рамках роли mware. В модель данных добавлены классы cpd/Templates, cpd/Tests, cpd/Records. Все переданные на анализ отрезки записи сохраняются в коллекцию cpd/Records.
-
MG. В медиагейте исправлена проблема, при которой холд анхолд в веб-софтфоне мог приводить к отсутствию звука в одну из сторон.
-
Intercom. Реализована поддержка интерком-вызовов из коллменеджера (API команды invite и invitebyivr) без необходимости создавать фичакод типа интерком, правило разрешения, правило маршрутизации.
-
MGC deservice. Уменьшено время между выводом из обслуживания медиашлюза до перезагрузки.
-
Callmanager. В ответ методов invite, invitebyivr, refer, referreplaces, referconf добавлено поле sipcode.
-
Redirectrule. Исправлена ошибка при удалении sipuser когда существует правила переадресации связанные с ним, но имеющие произвольные идентификаторы.
-
Rfc2833. Отправка DTMF в другое плечо микросервисом B2B осуществляется преимущественно по протоколу rfc2833.
-
CTI. Исправлена проблема, в следствие которой в CTI канал не отправлялся cleared_event при отмене переведенного вызова до получения SIP-ответа 18х и 2хх.
Сценарии
-
ExecScript. Компонент запуска сценариев получил возможность выполнять дочерний сценарий в режиме разделения переменных - без передачи состава значений переменных туда и обратно.
-
ExecScript. Расширен перечень передаваемых параметров (до 10 независимо, и еще один - JSON-массивом). Также добавлена возможность передавать значения переменным дочернего сценария через указание в таблице в привязке к их именам.
-
ExecScript. Для вложенных сценариев появилась возможность возвращать значение в точку вызова. Одновременно с этим происходит присвоение используемой в системных сценариев переменной "result".
-
Interaction. В компоненте сценариев "Взаимодействие" добавлен режим ожидания сообщений от конкретного отправителя. Также исправлена функция генерации идентификатора отправителя - было случайное значение, стал идентификатор обработчика сценария.
-
Params. Компоненты "Исходящий вызов", "Двухшаговый перевод" при указании IVR обслуживающего сценария получили возможность задавать неограниченное число параметров, а также прямо с помощью таблицы задавать значения переменным дочернего сценария IVR.
-
Component(). Функция выражений component, позволяющая исполнять в выражении любые стандартные компоненты, получила возможность указывать ключ возвращаемого значения, например поля для выходного значения, обычно сохраняемого в переменную.
-
SBER Salute Speech. Реализованы компоненты ASR и TTS для взаимодействия с системой распознования и синтеза речи от Сбер Салют.
-
Sipheaders(). В функции выражений сценариев IVR добавлена функция sipheaders для доступа к заголовкам запроса или ответа (в привязке к конфигурационному параметру fwd_headers).
-
IVR feature. Вызов IVR через featurecode применяет в качестве номера именно номер фичакода, а не extension (для обеспечения возможности настраивать запись при вызове направления). Последний же остается доступен через функции внутри сценария IVR.
-
ScriptMachine. Оптимизирована производительность сценарной машины. Значительно сокращен объем данных состояния и повышена скорость работы с ним. При падении сценария в лог-журнал не выводится весь сценарий.
-
LDAPS. Компонент сценариев по работе с LDAP получил возможность подключаться по LDAPS с указанием сертификата.
-
Parser. Компонент сценариев Парсер дополнен свойством, позволяющим проводить несколько дополнительных запросов и присваивать результаты разным переменным.
-
JS. Добавлен компонент "Код JS" для исполнения произвольной подпрограммы на языке JS в среде продуктового слоя с передачей аргументов или значений всех переменных на вход и множественного присвоения результата переменным сценария. Выполняется сервисом platform.HolderService продуктового слоя. Накладные расходы на каждый вызов порядка 5 мсек.
-
Operation. Обнаружена и исправлена проблема, приводящая в некоторых случаях к сбою нескольких подряд идущих компонентов Операция.
-
Invocation. Добавлен компонент для выполнения методов в сервисах продуктового слоя.
-
CallerId, CalledId. В перечень функций IVR-сценариев добавлены callerid и calledid, преимущественно возвращающие исходные значения, поступившие в INVITE-запросе от провайдера.
-
HOLD. Добавлен компонент для реализации тестовых сценариев в эмуляторах.
-
Notify. Реализована возможность сохранять уведомления для последующего просмотра в кабинете.
-
Detect DTMF. Добавлена возможность включать и выключать детектор Inband-DTMF.
-
Send DTMF. Добавлена возможность генерировать Inband-DTMF.
-
Play. Для режима синхронного воспроизведения списка файлов добавлена возможность задавать дополнительное время ожидания ввода DTMF после завершения воспроизведения.
-
SSML. Компонент сценариев TTS Sber Salute получил возможность задавать текст в формате SSML.
-
Inband. В компонент 'Ввод DTMF' сценария IVR добавлено управление режимом детекции Inband - использовать, включить, выключить.
-
Inband. New. В компонент 'Генерация DTMF' сценария IVR добавлен режим отправки Inband.
-
Play. В компонент 'Воспроизведение' сценария IVR добавлен режим "Список файлов".
-
KeepUnseen. В компонент сценариев "Получение Email" добавлено свойство "Оставлять непрочитанным" (keepUnseen).
-
В функции выражений сценариев добавлены тривиальные scriptcode() и domain().
-
SBER cloud. Добавлена поддержка работы компонентов распознавания и синтеза речи Sber Salute через облачный сервис.
-
SQL. Исправлена ошибка в работе компонента "SQL-запрос" в сценариях, не позволявшая исполнять модифицирующие запросы.
-
Outgoing. Функция callid() выражений в IVR-сценариях поддержана для исходящих звонков.
-
fileCanGrow. В компонент IVR сценария "Воспроизведение файла" добавлен параметр "Потоковый файл" (fileCanGrow), позволяющий задействовать режим ожидания появления новых данных в файле, если его заголовок указывает больший размер, чем данных в файле.
-
growingRaw. В компонент IVR сценария "Запись" добавлен режим "Потоковая запись" (growingRaw), позволяющий активировать режим оперативного сброса получаемого трафика в файл, имеющий заголовок с указанием заведомо большего количества сэмплов, по завершении заголовок обновляется в соответствии с полученным размером.
-
stopPlayerIdOnVad В компонент IVR сценария "Запись" добавлен параметр "Прерывать фон при обнаружении голоса" (stopPlayerIdOnVad) с указанием слоя фонового воспроизведения.
-
AZURE TTS ASR. Добавлены IVR компоненты синтеза и распознавания речи через облако Microsoft Azure. В настройки домена добавлен параметр azure_cloud.
-
CC. Компонент IVR сценария "Колл-центр" при подготовке параметра преимущественно рассматривает заданные значения как JSON-объекты.
-
LANG. Реализована поддержка языковой модели редактором сценариев. Встроена поддержка ru/en.
-
Background silence. IVR сценарий теперь всегда воспроизводит фоновый белый шум амплитуды 0.001, чтобы в медиастрим постоянно отпралялись пакеты.
Веб-конференции meet
-
Исправлен индикатор отображения звука в режиме MCU.
-
Добавлено отображение уведомления о неподдерживаемом браузере.
-
Отработана ситуация отсутствия звука и видео в некоторых случаях (добавлено пересоздание консьюмера при обнаружении ошибки).
-
Добавлены настройки mcu в конфигурацию сервера.
-
Обновлен образ системы (docker 11, старт сервера при старте контейнера).
-
Модификации для поддержки существующего функционала в декстопном приложении.
-
Возможность открывать ссылки в десктопном приложении, скачать десктопное приложение.
-
изменено поведение десктопного приложения - при запуске подключается по последней ссылке (по которой подключались в последний раз)
-
в клиентском приложении на главную страницу добавлена ссылка - Отключиться от сервера - для десктопного приложения
-
Добавлено. Настройка. Парное переключение устройств ввода/вывода.
-
Добавлено. Действие. Возможность отключать модератора от комнаты.
-
Добавлено. Действие. Возможность отключать модераторам микрофон, камеру и демонстрацию экрана.
-
Добавлено. Действие. Возможность отключать всем участникам микрофон, камеру и демонстрацию экрана.
-
Добавлено. UI. Страница настройки перед подключением к комнате (микрофон, камера, динамики, имя участника).
-
Добавлено. Конфигурация. Возможность включения/отключения mcu (микширование звука на сервере).
-
Состояние (вкл/выкл) устройств (камера, микрофон, динамик), которое было установлено в проверке настроек, теперь сохраняется после подключения к комнате.
-
Исправлено поведение из-за которого могло возникать окно "нажмите ок для продолжения", теперь это окно должно быть реже.
-
Страница входа в комнату. Исправлено отображение "Комната не найдена", в случае если не введен код комнаты.
-
Изменено сохранение последних прочитанных сообщений в чате. Теперь сохранение происходит в браузере.
-
Исправлено ошибочное отображение возможности отключать микрофон, камеру и презентацию всем участникам у пользователей без прав модератора.
-
Исправлено отображение панели отключения медиа (микрофон, камера, презентация) всем участникам.
-
Добавлена проверка работы turn (перезагрузка turn при ошибке).
-
Изменено отображение тестирование звука на странице выбора устройств.
-
Добавлено. Конфигурация. Сервер теперь может открывать http порт для ускорения взаимодействия при проксировании от era к серверу вкс. Настраивается в конфигурации сервера вкс.
-
Исправлено. Закрытые сети. Частое зависание turnserver (обслуживает подключение из закрытых сетей).
-
Исправлено. UI. Проблема с отображением фонового изображения для камеры (не всегда переключалось на другое изображение, долгая загрузка при включении).
-
Добавлено. Сеть. Обработка ситуации когда один из участников генерирует избыточный трафик (будут изменены настройки участника на лету).
-
Добавлено. UI. Добавлено отображение процесса включения камеры/микрофона/демонстрации экрана (появляется круглый спиннер на кнопке).
-
Исправлено. UI. Теперь нельзя войти в комнату которая не найдена (статус не найдена отображается на этапе экрана с вводом кода комнаты).
-
Исправлено. Настройка. Изменение настроек turn через domain.settings.meet_config не применялись.
-
Добавлено. UI. Добавлено отображение текста о процессе включении микрофона участником.
-
Исправлено. При проблемах в сети отключалось видео участников (отображался серое окно участника) и не восстанавливалось (до перезахода в комнату или перевключения камеры участниками).
-
Исправлено. Падение качества видео участников (при проблемах в сети) без восстановления при пропадании проблем.
-
Добавлено. UI. Отображение даты/времени и продолжительности записи вкс при публикации в чате.
-
Добавлено. UI. Возможность удаления сообщения из чата.
-
Добавлено. UI. Отображение ошибки при использовании старых версий браузера сафари.
-
Исправлено. UI. Исправлена ситуация с серым экраном если используется яндекс браузера в win с включенным виртуальным фоном.
-
Исправлено. Сервер. Исправлена ошибка приводящая к невозможности подключения к комнате, ошибка возникала с малой вероятностью при одновременном подключении к нескольким разным комнатам.
-
Исправлено. UI. Исправлен виртуальны фон в браузере Яндекс в windows.
-
Исправлено. UI. Улучшена проверка не поддерживаемых браузеров для работы в вкс.
-
Исправлено. UI. Исправлено скачивание записи вкс опубликованной в чате (открывается в новом окне).
-
Исправлено. UI. Отключение некоторых функций (микрофон в режиме рации и демонстрации экрана) при подключении к вкс с планшета.
-
Исправлено. Сервер. Исправлена ошибка сохранения аватара пользователя.
-
Добавлено. Сервер. Добавлена возможность установки уровня логирования в конфигурации. При интеграции с эрой применяется "на лету".
-
Исправлено. Сервер. Пользователи комнаты вынесены из класса meet/Rooms в meet/RoomUsers. Т.к. при большом количестве пользователей когда-либо входивших в комнату запросы в бд выполнялись продолжительное время, проблема частично решена через вынос пользователей в отдельный класс.
-
Изменено. Сервер. Добавлено очищение пользователей с ролью гость из участников комнаты в БД, удаление происходит если не было активности участника в комнате более 30 дней.
-
Исправлено. Клиент. Исправлена ошибка - отключение пользователя от комнаты при назначения ему прав модератора.
-
Добавлено. Сервер. Добавлена поддержка подключения к Era по wss.
-
Добавлено. Реализован выбор целевого экземпляра вебсервера платформы для подключения микросервиса meet.
Мониторинг и логирование
-
Events. Обновлен состав событий. Добавлены новые типы, удалены устаревшие, состав событий callevents причёсан.
-
CTI GRPC. Реализована отправка CTI событий через GRPC для поддержки внешней записи на ЦРТ SmartLogger.
-
SNMP-MIB. Системе выдан IANA enterprise number: 60663.
-
SNMP-traps. Значительно расширен состав событий, отправляемых в SNMP трапы. Настройка фильтров в параметрах мастер-домена.
-
Ws-Health-Check. В API добавлен публичный endpoint для проверки состояния текущего веб-сервера.
-
Websock_debug_level. Добавлена конфигурационная опция микросервиса WS для включения/выключения привязки режима логирования вебсокет-подключений к общему режиму логирования ноды.
-
WssReg. Реализован сервис мониторинга экземпляров SG и очистки регистраций (ws, wss, tls) при их потере для обеспечения возможности оперативной перерегистрации через другой экземпляр при наличии ограничения на количество регистраций (в дополнение к режиму проверки доступности через отправку OPTIONS).
-
Logs. Стала доступна сборка логов по внутри-доменным процессам (сценариям и продуктовым микросервисам) теперь доступна в рабочих доменах и из приложения администратора.
-
Logstore. Исправлена ошибка, приводившая к сборке журнала erlang.log с ноды logstore вне зависимости от того, с какой ноды запрошен.
-
Logstore. Исправлена ошибка, приводившая к неудалению архивов с собранными лог-журналами по запросу из приложения.
Продуктовый слой
-
История изменений продуктового слоя: 2024_07_30_PL_history.txt
v/1.8.1 (2024-07-24)
-
Исправлена критичная проблема сервиса управления лидерством, при которой возможна ситуация наличия двух активных микросервисов после восстановления сети. Проблема появилась в версии 1.8.0.
-
Исправлена работа компонента сценариев IVR "Воспроизведение" в режиме потокового файла - опцию невозможно было включить.
-
В состояние системы выведена информация о перезапусках продуктовых микросервисов.
-
Исправлена работа компонента сценариев "Запуск процесса" в части проверки разрешений в файле permissions.json. Добавлена возможность исполнять bash сценарии, файл permissions.json перемещен в каталог :SYNC/domains/:MASTERDOMAIN/cmd/
v/1.8.3 (2024-07-31)
-
Обеспечена эквивалентность обращений от имени пользователей без роли администратора к REST API статических коллекций доменного центра через http и websocket. Налажена работа масок. Для пользователей без роли администратора из выдачи скрыты поля с паролями.
-
Оптимизирована работа по расчету кешей в хранилище подписок. Значимо для классов, к которым регулярно осуществляются подписки и отписки при одновременном их большом количестве (1000+).
-
Исправлена проблема сохранения писем Email, реальная дата отправки которых находится в прошлом месяце или ранее относительно времени получения.
-
Компонент сценария IVR Запись стал устанавливать топологию для исключения записи воспроизводимого параллельно фона, а также в режиме потоковой записи исключен начальный фрагмент тишины, возникающий до прерывания голосом фонового воспроизведения.
-
В скрипты инсталлятора добавлен параметр --sshkey для возможности указания ssh ключа. Исправлена ошибка отсутствия прав при генерации строки создания контейнера.
v/1.8.4 (2024-08-02)
-
WARNING. При постоении INVITE для второй стороны применен фильтр по кодекам, задаваемый в конфигурационной настройке 'payloads_audio_offer'. Таким образом, если провайдер преимущественно предлагает G729, появляется возможность исключить его, используя этот параметр. Однако широкополосный G722 и другие, применяемые аппаратами в локальной сети, теперь, чтобы быть использованными в коммуникации между двумя поддерживающими их устройствами, требуют явного указания в этом параметре конфигурации SIP-ролей.
-
Исправлена внесенная в 1.8.3 проблема при обработке websocket rest запросов от пользователей.
v/1.8.5 (2024-08-09)
-
Исправлена проблема кэширования воспроизводимых файлов в медиашлюзе. Теперь перед переиспользованием файла из кеша проверяется его дата модификации и размер.
-
Исправлена проблема медиашлюза, не позволявшая изменять буфер потоковой записи - всегда применялся буфер 250 мс.
-
Исправлена проблема компонента сценариев IVR Запись в режиме потоковой записи, блокирующего завершение сценария при отбое от абонента.
v/1.8.8 (2024-09-17)
Платформа
-
System state. Исправлена проверка сертификатов, ранее поддерживались только ключи сертификатов с шифрованием RSA, теперь допустим любой вид шифрования.
-
Исправлена ошибка в im-адаптере telegram-канала. Также поддержаны ответы и пересылаемые сообщения.
-
В сервис управления лидерством active-passive ролей добавлена опция ожидания фолловером нескольких неудачных пингов лидера прежде, чем принудительно отсоединяться от него с дальнейшим запуском failover-лидера. Это полезно для случая, где периодически на короткое время до 2-3 секунд пропадает пинг между серверами с сохранением подключений, с целью исключения точечных переездов лидера, а также спровоцированного разбиения точки целостности на острова с последующим вынужденным перезапуском для восстановления.
-
Исправлена проблема сборщика логов по звонку при работе на системах в часовом поясе западного полушария.
-
Исправлена утечка памяти, способная возникнуть в сервисе модели данных при настройке прав доступа для классов - незначительный прирост на каждом изменении метаданных такого класса.
Телефония
-
Устранена возможная проблема таймаута в обработке SIP-запросов из-за узкого горла в процессе мониторинга.
-
Заблокирован запуск сценария Post-Call-Survey для сценариев IVR.
-
Ошибка связанная с отсутствием файла при воспроизведении в IVR ранее влекла вывод медиашлюза из обслуживания. Теперь она внесена в исключения.
-
Исправлена ошибка при запуске вложенного сценария IVR из ветки пост-обработки.
-
Исправлена проблема медиашлюзов, связанная со скачками номеров пакетов в исходящем rtp-потоке при смене входящего трафика с CN на аудио или с аудио на CN.
-
Изменена обработка медиашлюзом ошибки аллокации udp-порта в ситуации, когда именно сетевой интерфейс оказывается недоступным. Теперь медиашлюз не продолжает в этом случае перебирать другие порты, не помечает их временно недоступными, сообщает контроллеру иной код ошибки.
-
Улучшена работа VAD-детектора в медиашлюзе.
-
Принятие решения о выводе из эксплуатации медиашлюза в результате ошибки принимается только на основе данных за последние 10 минут, более ранний контекст теперь не учитывается.
-
Обработана ситуация ошибочного поведения внешнего юзер-агента, когда в ответе 100 Trying он не присылает полный список Via из запроса.
-
Исправлена проблема при подготовке CTI событий, влекущая отсутствие события cleared по переведенному вызову, одновременно получившему отказ инициатора и ответ вызываемого абонента.
Сценарии
-
Исправлена проблема компонента Уведомление, в связи с которой отсутствие подключения пользователя влекло переход по ветке ошибки.
-
В редакторе сценариев добавлена возможность копирования компонентов между сценариями в рамках одного браузера.
-
В редакторе сценариев добавлена возможность поиска по значениям свойств компонентов сценария.
-
Исправлена ошибка в работе компонентов синтеза речи в режиме воспроизведением потока данных.
-
В компонентах IVR с VAD-детектором конца речи изменен формат возможного значения на интервал тишины в секундах. Разрешено устанавливать дробные значения, например '1.4'.
-
В компоненте воспроизведения потокового файла появилась возможность устанавливать таймаут на появление новых данных в мс.
-
Исправлена ошибка медиашлюза, связанная с зависанием компонента воспроизведения потокового файла, в котором кроме заголовка нет ни одной порции данных.
Веб-конференции meet
-
Устранена проблема в сервере веб-конференций, в результате которой не возможно подключиться к комнате, если она была создана через Администратор ВКС.
-
Исправлена ошибка в сервере веб-конференций, приводящая в некоторых случаях к зависаниям видео-потока.
v/1.8.9 (2024-09-28)
-
Исправлено содержание вновь созданных сценариев - язык и содержание базовых компонентов. Проблема зафиксирована в IVR - отсутствовала привычная пауза в компоненте ответа 200 OK, снижающая вероятность асинхронных конфликтов при запаздывании ACK.
-
Добавлена базовая поддержка мессенджера vk.
v/1.8.10 (2024-10-09)
-
Восстановлена работоспособность подключения к провайдерам по TLS с использованием SRTP. В учетную запись провайдера добавлено поле certificate_pem (тело или макро-путь к файлу). Подробнее.
-
Опция классов 'ext.dirty_write_enabled' перенесена в 'opts.dirty_write_enabled'.
-
Скорректировано поведение при переключение на сценарий PCS (Post Call Survey), добавлена пауза перед отправкой BYE, чтобы UA успел обработать отправленный REFER.
-
Исправлена проблема компонента потокового воспроизведения из растущего файла - добавление порции данных не кратной 4000 сэмплам приводил к прекращению ожидания новых данных.
-
Компонент сценариев "Вызов сервиса" при множественном задании параметров в виде ключ-значение теперь делает попытку преобразовать строковое значение в JSON структуру.
-
Исправлена проблема сервиса управления лидерством, применяемого для микросервисов продуктового слоя. При распадании сайта на части и восстановлении связи два активных экземпляра не могут договориться, и в итоге не остается никого. Проблема появилась в версии 1.8.8.
-
Исправлена проблема пограничного фильтра, исключавшая возможность настройки белого списка для конкретного значения user-agent (либо не пропускает целевого, либо пропускает всех). Теперь проверка правил по адресам отправителей до парсинга происходит не только на основе правил, где в фильтрах установлена исключительно маска ip адресов, но и по другим правилам, разрешая их пропуск на парсинг и в обработку, где уже проверяются остальные фильтры. Однако следует пользоваться опцией block_response_malware.
v/1.8.11 (2024-10-16)
-
Скорректирован алгоритм обработки REST-запросов к динамическим коллекциям через websocket-подключения. При недоступности микросервиса DMS или отказе с ошибкой 5хх в течение минуты делается несколько попыток повторить запрос, чтобы по возможности избежать перезапуска продуктовых микросервисов. Управляется параметром конфигурации микросервиса ws 'rest_reattempts_sec'.
-
Оптимизирована выдача статических ресурсов вебсервера (с целью ускорения загрузки приложений и справки). Кеш для определенных видов ресурсов, преимущественно большого размера и со сменяемыми при обновлениях случайными именами, выставляется на 30 - 360 дней.
-
Изменено поведение сервиса управления лидерством при обнаружении конфликтных ситуаций с двумя активными экземплярами. Проявляется после разделения сайта на острова. Для продуктовых микросервисов следует остановка фолловера, для микросервисов коммуникационного слоя - перезапуск ноды фолловера.
-
Управление пингами, нацеленными на разрыв замирающих TCP-соединений между нодами, вынесено в конфигурацию в раздел глобальных параметров 'pang_to_disconnect_sec'.
-
Параметром 'xsrv_perfmon_enabled' мастер-домена активируется режим проверки пинга между серверами с логированием превышения 10 мс, а также таймера и его превышения 10 мс.
Продуктовый слой - История изменений продуктового слоя: 2024_10_16_PL_history.txt
v/1.8.12 (…)
-
Исправлена ошибка в SIP-ALG при отправке сообщения INVITE, содержащего одновременно SDP и заголовок "Authorization".
-
Исправлена ошибка сборщика логов, возникающая при выборе файлов сценариев в доменах.
-
Исправлена ошибка логирования, приводившая в некоторых случаях к кратной записи в лог журналы с нарастанием со временем.
-
При создании баз данных в Postgres добавлен параметр STANDARD_CONFORMING_STRINGS=ON.
-
В SIP-B2BUA исправлена проблема в обработке запросов UPDATE, не содержащих без SDP - не отправлялся ответ.
-
Исправлена ошибка, приводившая к порче Authentication-Tag при формировании пакетов SRTP после обработки re-INVITE.
-
Налажена работа PCS в кросс-доменных звонках. Вызов номера PCS происходит в домене, инициировавшим отбой.
-
Исправлена ошибка - отсутствие ответа 200 в ответ на SIP INFO при отправке в другое плечо в формате RFC 2833.