Краткий перечень функций, реализованных в рамках данной версии ECSS-10
Версия | Дата Выхода |
|---|---|
3.18 | 23.02.2026 |
Ключевые цели
Интеграция с Aurus PhoneUP.
Лицензирование SSW-узла с помощью License Manager.
CallCenter. Реализация функционала "коммутатор".
Интеграция с Aurus PhoneUP | ECSS-10 имеет ограниченную поддержку SIPREC для интеграции с внешними системами записи (SRS). В настоящий момент реализована и протестирована интеграция с ПО "Aurus PhoneUP". ECSS-10 обеспечивает базовую возможность автоматической записи звонков с передачей аудиопотоков и структурированных метаданных на внешний Session Recording Server (SRS) по стандартизированному протоколу SIPREC. В базовый функционал входит — базовый вызов, удержание, трансфер (сопровождаемый/ несопровождаемый), переадресация, 3-way конференция. ECSS-10 выступает в качестве SRC (Session Recording Client). SIPREC имеет приоритет над call recording: если в домене активирован SIPREC → локальная запись (call recording) отключается. |
Лицензирование SSW-узла с помощью License Officer | В версии 3.18 в состав сборки был добавлен новый обязательный сервисный компонент License Officer (далее LO). Основная его задача с одной стороны взаимодействие с основным сервером лицензирования Eltex (ELM) или его локальной инсталляцией (ELM Offline), с другой стороны распределение лицензионных параметров по поддерживаемым типам ПО, таким как AuP и ECSS-10. Также в LO был сохранен традиционный тип лицензирования с помощью файлов. |
CallCenter. Реализация функционала "коммутатор" | Добавлена возможность приоритизации входящих вызовов с помощью информации из адресной книги SSW
Заменен механизм фиксированных ролей агентов КЦ "оператор" и "супервизор" на профили агентов и список возможностей (услуг) в этих профилях для web КЦ.
|
Новые возможности
SSW. Добавлены новые аварийные события передаваемые на Peeper-сервер.
SSW. Добавлена возможность выставлять ограничения на количество CoCon-сессий от одного пользователя.
SSW. CallCenter. Добавлены профили диспетчера call-центра.
SSW. MSR. Добавлена настройка clock-rate для аудио-рекордера.
Добавлены новые аварийные события, передаваемые на Peeper-сервер | Триггеры аварийных событий поставляются вместе с тем программным обеспечением, для мониторинга которого они предназначены:
Чтобы аварийных событий появились на peeper-server, достаточно:
После этого уведомления и аварии автоматически добавляются в системе мониторинга. Ручная настройка или импорт не требуется. Изменение порогов событий В системе используется автоустановка аварий, поэтому изменение пороговых значений напрямую в Grafana не поддерживается. Любые ручные изменения будут автоматически перезаписаны значениями, заданными в конфигурации программного обеспечения. |
Добавлена возможность выставлять ограничения на количество CoCon-сессий от одного пользователя | Обнаруженная проблема: отсутствовало ограничение на количество сессий для пользователя CoCon. Было: v.3.17.1.0.хххх
CODE
Добавлена возможность: в команду /system/set добавлен новый параметр max_cocon_session_per_user значение по умолчанию = 5, диапазон значений [2, 100]. В результате по умолчанию на один хост под одним пользователем невозможно установить более 5 (по умолчанию) сессий (10 на кластер). выполняется в CoCon
CODE
v.3.18.1.0.ххх
CODE
При попытке установить шестую сессию (в случае значения по умолчанию) будет ошибка:
CODE
|
Добавлены профили диспетчера call-центра | Было: доступ операторов СС имел два фиксированных значения – оператор и супервизор. Требуется: реализовать возможность адаптации интерфейса СС под задачи конкретного оператора/супервизора. Стало: добавлена новая закладка "Профили агентов", в которой можно прописать необходимые параметры для разных категорий операторов/супервизоров. |
Добавлена настройка clock-rate для аудио-рекордера | Было: В конфигурационном файле MSR - /etc/ecss/ecss-media-server/config.xml для настройки clock-rate (частоты дискретизации) использовался параметр mixer-clock-rate. Он применялся как для обработки аудио потоков, так и записи разговоров. При необходимости записывать файлы с clock-rate отличным 8 КГц, приходится менять mixer-clock-rate, что негативно сказывается на обработке аудио-потоков разговорных соединений, поскольку большинство кодеков работает с частотой 8 КГц и приходится создавать много ресемплеров. Пример дефолтного конфигурационного файла — /etc/ecss/ecss-media-server/config.xml было <media mixer-clock-rate="8000" use-vad="no" cng-level="0"...
Стало: В конфигурационный файл MSR добавлен новый параметр record-clock-rate отвечающий за частоту дискретизации при записи файла разговора. В настоящее время clock-rate для аудио-потоков разговорных соединений и для записи разговоров может быть установлен различный: При выставлении clock_rate > 48000, clock_rate устанавливается 48000, при отсутствии параметра record-clock-rate в конфигурационном файле → значение будет подставлять из mixer-clock-rate. стало <media mixer-clock-rate="8000" record-clock-rate="48000" use-vad="no" cng-level="0"...
|
Улучшения
SSW. CallCenter. Переход на Protocol UI.
SSW. SORM3. Добавлен трейс адаптации для 86 приказа.
SSW. Teleconference. При создании нового шаблона опция "использовать идентификатор конференции в поле SIP-заголовка contact" (conf-id-in-sip-contact-header) включена по умолчанию.
SSW. CallCenter. Доработана приоритизация абонентов.
SSW. Добавлено предупреждение при удалении контекста маршрутизации, если он используется на интерфейсе.
SSW. Команда отчистки свойства "number" в шаблоне конференции через * зачищает параметры для всех абонентов, в том числе которых нет в домене.
SSW. IVR. При просмотре IVR-скрипта добавлена проверка на превышение лимита блоков.
SSW. WebConf. Добавлен тип дня "Сокращенный" для Менеджера маршрутизации.
SSW. Поддержана генерация ошибки 423 при получении Expires меньше, чем Min-Expires для подписок.
SSW. WebConf. Добавлен недостающий перевод для подсказок у дополнительных услуг.
SSW. WebConf. Добавлена возможность добавить аудио-кодек "G726" в media-profile.
CallCenter. Переход на Protocol UI | Переход на Protocol UI (дизайн-систему) с сохранением прежней логики работы (функционал остался в том же виде и с той же логикой работы, что и до перехода) для модулей:
|
Добавлен trace-адаптации для 86 приказа | Было: функционал трассировки адаптации поддерживал два типа "sorm/tts". Но обработка адаптации SORM3 отличается от адаптации SORM. было /domain/test_domain/adaptation/trace type= sorm tts Добавлена возможность: в команду трассировки был добавлен новый тип type=sorm3. стало /domain/test_domain/adaptation/trace type= sorm sorm3 tts В результате трассировка адаптации для сервиса SORM3 показывается корректно. |
При создании нового шаблона опция conf-id-in-sip-contact-header включена по умолчанию | При создании шаблона через web-интерфейс по умолчанию включена опция conf-id-in-sip-contact-header (использовать идентификатор конференции в поле SIP-заголовка "contact"). Но при создании шаблона через CoCon опция выключена. Было:
CODE
Стало: Изменили значение по умолчанию для параметра conf-id-in-sip-contact-header. Сейчас при создании шаблона через web или CoCon значения идентичны и равны true.
CODE
|
Доработана приоритизация абонентов | Было: В "Адресной книге" у абонента были поля "Имя", "Отчество", "Фамилия", "Компания", "Должность", "Описание", "Фото". Стало: Дополнительное поле в "Адресной книге" добавлено. В текущий момент поддерживается 10 приоритетов. |
Добавлено предупреждение при удалении контекста маршрутизации, если он используется на интерфейсе | Было: Не выполнялась проверка использования "Контекста маршрутизации" при его удалении. Как результат на объектах (для примера транках) оставалась ссылка не несуществующий контекст, оставшиеся несуществующие контексты влияют на маршрутизацию вызовов. Добавлен функционал : При удалении "Контекста маршрутизации" через веб или CoCon выполняется проверка → если контекст используется на одном или нескольких интерфейсах, то в предупреждении оператору система распечатает используемые интерфейсы и контекст не будет удален. Неиспользуемые контексты удаляются. /domain/test_domain/routing/delete test_name Routing context 'test_name' is used for interface(s): virtual:999@testing, 104@testing, 102@testing, system:teleconference, 42000@testing, system:ivr, TRUNK_rt001, 100@testing, bridge:name1. Change interface(s) parameters before remove current routing context. /domain/test_domain/routing/delete no_objects Context was deleted
|
Команда отчистки свойства "number" в шаблоне конференции через * зачищает параметры для всех абонентов, в том числе которых нет в домене | Было: При выполнении команды /domain/<domain>/teleconference/template/group/number/clean с параметром number=* обнулялись только свойства абонентов входящих в указанный домен. Но в группе могут состоять абоненты не входящие в выбранный домен или вообще относящиеся к другой станции, и у данных абонентов обнуление свойств не выполнялось. Решение: При выполнении команды при указании "*" – получать список всех абонентов в группе, а не на домене. Стало: При указании "*"-- обнулялись свойства всех абонентов входящих в группу, а не только в домен. В примере абоненты 1001-1009 входят в домен=test_domain, а абоненты 2001-2002 и 2222-2224 относятся к другим АТС: стало
CODE
|
При просмотре IVR-скрипта добавлена проверка на превышение лимита блоков | Было: В ECSS-10 есть возможность выставить максимальное количество блоков в IVR-скрипте:
При открытии в IVR-редакторе скрипта с количеством блоков выше указанного значения IVR редактор зависнет на моменте загрузки скрипта. Для возобновления возможности работы с IVR редактором придется перезагружать страницу.
Стало:
|
Добавлен тип дня "Сокращенный" для Менеджера маршрутизации | Было: В календаре поддерживаются следующие типы дней: Выходной, Рабочий, Праздничный, Предпраздничный, Сокращенный предпраздничный, Сокращенный. А "Менеджер маршрутизации" в условиях по времени поддерживает только: Выходной, Рабочий, Праздничный, Предпраздничный, Сокращенный предпраздничный. Стало: В "Менеджер маршрутизации" добавлен тип дня – "Сокращенный". Данные в "Календаре" и в "Менеджер маршрутизации" приведены в соответствие:
|
Поддержана генерация ошибки 423 при получении expires меньше, чем Min-Expires для подписок | Было: При работе с подписками не выполнялся контроль минимального времени (min-expires 90) подписок. Стало: Используется контроль минимального времени для подписок. В случае получения запроса с временем меньше минимального SSW высылает ошибку 423 (Interval Too Brief). |
Добавлен недостающий перевод для подсказок у дополнительных услуг | Не все подсказки были переведены: Было:
Стало: Перевод подсказок добавлен:
|
Добавлена возможность добавить аудио-кодек "G726" в media-profile | Поддержка кодека "G726" была добавлена в версии 3.17, но не было возможности добавить данный кодек в media-profile. Было: было /domain/testing/media-profile/info default . . . Codec type: audio codecs configuration: ┌───────┬───────────────┬──┬────────┬─────┐ │Enabled│ Codec │PT│Property│Value│ ├───────┼───────────────┼──┼────────┼─────┤ │ │G722 │* │ │ │ │ │PCMA │* │ │ │ │ │PCMU │* │ │ │ │ │G729 │* │ │ │ │ │telephone-event│* │ │ │ └───────┴───────────────┴──┴────────┴─────┘ было /domain/test_domain/media-profile/codecs-add default audio G726 * Error: codec with name: "G726" not supported
Стало: стало /domain/test_domain/media-profile/codecs-add default audio G726 * Media-profile: default adds audio codecs successfully. Codec type: audio codecs configuration: ┌───────┬───────────────┬──┬────────┬─────┐ │Enabled│ Codec │PT│Property│Value│ ├───────┼───────────────┼──┼────────┼─────┤ │ │G722 │* │ │ │ │ │PCMA │* │ │ │ │ │PCMU │* │ │ │ │ │G729 │* │ │ │ │ │telephone-event│* │ │ │ │ │G726 │* │ │ │ └───────┴───────────────┴──┴────────┴─────┘ стало /domain/test_domain/media-profile/info default . . . Codec type: audio codecs configuration: ┌───────┬───────────────┬──┬────────┬─────┐ │Enabled│ Codec │PT│Property│Value│ ├───────┼───────────────┼──┼────────┼─────┤ │ │G722 │* │ │ │ │ │PCMA │* │ │ │ │ │PCMU │* │ │ │ │ │G729 │* │ │ │ │ │telephone-event│* │ │ │ │ │G726 │* │ │ │ └───────┴───────────────┴──┴────────┴─────┘
|
Исправления
SSW. Добавлена передача NOTIFY со статусом terminated при удалении абонента.
SSW. WebConf. Актуализировано приложение "Информация о серверах SSW".
SSW. Restfs. Исправлена ошибка создания файла записи разговора с нулевой длительностью.
SSW. Исправлен вывод команды /domain/<DOMAIN>/sip/user/subscription-limits при изменении информации о лимитах.
SSW. Исправлено определение роли доступа для кнопок в карточке абонента.
SSW. Изменены права на команду ss_voicemail_mailbox_modify.
SSW. WebConf. Изменена всплывающая подсказка для приложения "Адаптация номеров".
SSW. Исправлена проблема зацикливания при запросе в RADIUS для SIP-Q интерфейса.
SSW. WebConf. Исправлена ошибка переключения режимов "Плитка/Таблица/Дерево" приложения "Кластеры".
SSW. WebConf (Стандартный). Исправлен вывод информации расписания для для услуг — "переадресация по расписанию" (find_me) и "переадресация по расписанию и не ответу" (find_me_no_response) в "Стандартном режиме" и приложении "Портал абонента".
SSW. WebConf. Скорректировано описание в информационном окне при вводе нового пароля, не соответствующего критериям сложности.
SSW. Исправлена ошибка при попытке удаление более одного домена.
SSW. Исправлена ошибка звонка внутри "Босс-группы" (boss-group) через код услуги *126.
SSW. ДВО (Voicemail). Исправлена ошибка обработки услуги voicemail при значении опции override_messages=false.
SSW. ДВО (FBC). Исправлена ошибка при обработке услуги "Запрет переадресуемых вызовов" (fbc).
SSW. IVR. Исправлена ошибка обработки завершения вызова после IVR Connect с PlayOut.
SSW. SubscriberPortal. Исправлено отображение пароля учетной записи в приложении "Портал абонента".
SSW. IVR. Исправлена работа http-запроса в блоке RPC.
SSW. Исправлена ошибка на ядре при вызове в транк с активированной услугой "Сервис поддержки запросов к серверу геолокации" (tsmn_request).
SSW. WebConf. Исправлена ошибка вывода в web-интерфейсе sip_modifications для абонента.
SSW. WebConf. Исправлена ошибка положения окна статуса услуг на заднем плане в приложении "Менеджер транков".
SSW. WebConf. Исправлено отображение истории вызовов на вкладке "Вызовы" в приложении "Портал абонента".
SSW. Исправлена ошибка присутствия подраздела "cocon/role/" у пользователей, не имеющих прав что-либо там изменять.
SSW. SubscriberPortal. Исправлена ошибка обработки локального времени в списке активных конференций приложения "Портал абонента".
SSW. CallCenter. Исправлено отображение контактов в "Справочнике".
SSW. Restfs. Исправлена инициализация eccs-restfs-unit-conf.
SSW. В IVR исправлено значение по умолчанию полей "Установление соединения" и "Время ожидания" при создании блока Connect.
SSW. CallCenter. Исправлена ошибка, при которой добавление агента-алиаса приводит к поломке очереди.
SSW. Teleconference. Исправлена ошибка добавление почты для номеров группы телеконференции.
SSW. Исправлена ошибка создания домена с таким же именем после его удаления.
SSW. IVR. Исправлена сортировка медиа-файлов в блоке PlayOut.
SSW. CDR. Исправлена следующая ошибка: при не успешной передаче cdr-файла утилитой ecss-copycdr файл все равно будет помечен как _transfered.
SSW. Исправлен некорректный код ошибки при вызове в транк от абонента, не входящего в access_group.
SSW. CallCenter. Исправлен перевод в выводе сообщения о достигнутом лимите агентов.
SSW. Битрикс24. Исправлена ошибка авторизации на ОС Astralinux.
SSW. Исправлено обновление полей last_via и user_agent после перерегистрации абонента.
SSW. MSR. Исправлена ошибка обработки вызова с кодеком opus в SDP.
SSW. Исправлена ошибка в "Портал абонента". При активации услуги "Запуск IVR" услуга не активируется.
SSW. CVE. Устранена уязвимость с подделкой запросов на стороне сервера.
SSW. CDR. Исправлена ошибка отсутствия отчёта cdr после перезапуска хоста.
SSW. CallCenter. Исправлена ошибка, при которой очередь не переходит в пост-процессинг при отсутствии 180 Ringing.
SSW. Устранена обнаружена уязвимость в настройках COOKIE.
SSW. Исправлена ошибка ответа на NOTIFY при включенном nat_traversal отправляется на адрес отправителя.
SSW. Исправлена ошибка отправки NOTIFY по BLF подпискам на ТА Yealink при отработке резерва.
SSW. WebConf. Исправлено зависание IVR-редактора.
SSW. Teleconference. Исправлено несоответствие длительности разговора на странице совещания.
SSW. WebConf. Исправлена сортировка времени в блоке IVR TIME.
Добавлена передача NOTIFY со статусом terminated при удалении абонента | Было: При удалении абонента с подсистемы подписок абоненту не приходил "NOTIFY" со статусом "terminated". Стало: После удаления абонента выполняется отправка сообщения NOTIFY с Subscription-State: terminated. |
Актуализировано приложение "Информация о серверах SSW" | Было: В web-приложении "Информация о серверах SSW" не корректно выводилась информация о версии, также отсутствовала информация о контрольной сумме.
После исправления ошибки: Версия ПО и контрольная сумма указаны корректно.
|
Исправлена ошибка создания файла записи разговора с нулевой длительностью | Было: В случае использования услуги "call_recording" для несостоявшихся разговоров (по причине сброс вызова до ответа со стороны А/В, отбой по таймауту), длительность которых 0 сек система создавала файл записи разговора. После исправления ошибки: Добавлена доменный параметр ignore_empty_call_record = false/true (значение по умолчанию false). При выставленном параметре ignore_empty_call_record = true → пустые файлы будут помечены как *.purge и утилитой restfs-cleaner будут удалены. |
Исправлен вывод команды /domain/<DOMAIN>/sip/user/subscription-limits при изменении информации о лимитах | Было: При подключении услуги BLF у абонента, в cocon отсутствовала информация о лимитах до момента активации/деактивации услуги. /domain/test_domain/sip/user/subscription-limits * * ┌──────┬────┬─────┐ │Number│Type│Limit│ ├──────┼────┼─────┤ └──────┴────┴─────┘ После исправления ошибки: информация о лимитах отображается корректно: /domain/test_domain/sip/user/subscription-limits * * ┌──────┬────┬─────┐ │Number│Type│Limit│ ├──────┼────┼─────┤ │104 │blf │0/16 │ │102 │blf │0/16 │ │101 │blf │0/16 │ │100 │blf │1/16 │ │103 │blf │0/16 │ └──────┴────┴─────┘ |
Исправлено определение роли доступа для кнопок в карточке абонента | Было: При работе оператора с установленной ролью "только просмотр и редактирование" приложения "Карточка абонента" были доступны кнопки "Добавить" и "Удалить":
После исправления ошибки: Кнопки "Добавить" и "Удалить" не доступны в соответствии с ролью оператора (только просмотр и редактирование). |
Изменены права на команду ss_voicemail_mailbox_modify | Было: Для работы с сервисом "Портал абонента" предполагается создать пользователя, у которого права доступа будут ограничены только приложением "Портал абонента" на одном или нескольких доменах. Такого пользователя нужно создать, в примере пользователь "test".
Укажите в конфигурационном файле - /etc/ecss/ecss-web-conf/settings_local.py логин и пароль данного пользователя (по умолчанию указан пользователь "admin" и рекомендация смены пользователя): cat /etc/ecss/ecss-web-conf/settings_local.py # global const for web_conf. # coding=utf-8 # Debug log level for web-conf DEBUG = False . . . # Special username for which only the subscriber portal commands are available. # It is not recommended to use the administrator login for security reasons. LOGIN_HTTP_TERMINAL = 'test' # Password for special user. PASSWORD_HTTP_TERMINAL = 'test' # IP:PORT ECSS server for subscriber portal URL_HTTP_TERMINAL = '127.0.0.1:9999' . . . При данной конфигурации (пользователь имеет только права на приложение "Портал абонента") была проблема прослушивания/удаления записей голосовой почты в приложении "Портал абонента".
Стало: Изменили права доступа для разрешения ecss-<DOMAIN>-domain-subscriber-portal, теперь действия с голосовой почтой в приложении выполняются без ошибок:
|
Изменена всплывающая подсказка для приложения "Адаптация номеров" | Было: В предыдущих версиях подсказка в приложении "Адаптация номеров" для поля "номер" была одинаковой как для "Условия" так и для "Действия", что не совсем корректно.
Стало: В текущей версии выполнили коррекцию текста подсказки для поля "номер" в закладке "Действия":
|
Исправлено проблема зацикливания при запросе в RADIUS для SIP-Q интерфейса | Было: При запросах в RADIUS для вызовов через SIP-Q интерфейс некорректно обрабатывался release cause, что приводило к зацикливанию. Стало: Выполнили правки корректирующие данную проблему. Проблема устранена. |
Исправлена ошибка переключения режимов "Плитка/Таблица/Дерево" приложения "Кластеры" | Было: В приложении "Кластеры" реализована возможность выбора режима просмотра Плитка/Таблица/Дерево, при этом Плитка и Таблица работают корректно, а при нажатии на кнопку Дерево происходит выход из "Менеджер конфигурации".
Стало: Исправлена процедура обработки события по нажатию кнопки "Дерево":
|
Исправлен вывод информации расписания для услуг — "переадресация по расписанию" (find_me) и "переадресация по расписанию и не ответу" (find_me_no_response) в "Стандартном режиме" и приложении "Портал абонента" | Было: В "Стандартном режиме" и приложении "Портал абонента" при использовании шаблона расписания информация о дне недели и времени не отображалась.
После исправления ошибки: Стандартный режим: Портал абонента: |
Скорректировано описание в информационном окне при вводе нового пароля, не соответствующего критериям сложности | Было: В ECSS-10 есть возможность указывать критерии сложности пароля для пользователя CoCon/Web. В случае указания в файле /etc/ecss/global.config критериев сложности пароля, для примера не менее 8 символов, включающих в себя строчные и заглавные буквы латинского алфавита, а также цифры и спецсимволы система, при создании нового пользователя/модификации пароля для пользователя, будет выполнять проверку соответствия нового пароля данным критериям. /cocon/passwd admin
[passwd] Changing password for admin
Enter new password:
Confirm new password:
Password is too weak. Failed safety restrictions:
Passwords must contain a minimum of 1 upper case letter [A-Z]
Passwords must contain a minimum of 1 special character: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
Passwords must be at least 8 characters in length
Passwords must contain a minimum of 1 numeric character [0-9]
В случае использования Web получим также ошибку, но менее информативную, и сложно понять, что сделано не корректно:
Стало: Исправлена обработка/подготовка выходного сообщения оператору. По сообщения понятно, что требуется скорректировать:
|
Исправлена ошибка при попытке удаления более одного домена | Было: При попытки удаления более одного домена получали ошибку "Cannot remove domain, cause: not_found", хотя домен существует и доступен для использования. /domain/list
There are declared ECSS domains:
abf
test_domain
testing
Total: 3
/domain/declare one
New domain one is declared
/domain/declare two
New domain two is declared
/domain/list
There are declared ECSS domains:
abf
one
test_domain
testing
two
Total: 5
/domain/remove one
[remove] You are going to remove domain "one". All properties, aliases, aliase's profiles
, SS settings, bridges, routing contexts, restrictions, access-types, access-gro
ups will be removed.
Are you sure?: yes/no ?> yes
[**********************************************************************] 2s 977ms
Declaration of domain "one" is removed.
domain/remove two
[remove] You are going to remove domain "two". All properties, aliases, aliase's profiles
, SS settings, bridges, routing contexts, restrictions, access-types, access-gro
ups will be removed.
Are you sure?: yes/no ?> yes
Cannot remove domain, cause: not_found
/domain/list
There are declared ECSS domains:
abf
test_domain
testing
two
Total: 4
/domain/remove two
[remove] You are going to remove domain "two". All properties, aliases, aliase's profiles
, SS settings, bridges, routing contexts, restrictions, access-types, access-gro
ups will be removed.
Are you sure?: yes/no ?> yes
Cannot remove domain, cause: not_found
/domain/list
There are declared ECSS domains:
abf
test_domain
testing
two
Total: 4
Стало: После исправления ошибки домены успешно удаляются без ошибок: /domain/list
There are declared ECSS domains:
domain_b
test_domain
Total: 2
/domain/declare one
New domain one is declared
/domain/declare two
New domain two is declared
/domain/list
There are declared ECSS domains:
domain_b
one
test_domain
two
Total: 4
/domain/remove one
[remove] You are going to remove domain "one". All properties, aliases, aliase's profiles
, SS settings, bridges, routing contexts, restrictions, access-types, access-gro
ups will be removed.
Are you sure?: yes/no ?> yes
[**********************************************************************] 1s 703ms
Declaration of domain "one" is removed.
/domain/remove two
[remove] You are going to remove domain "two". All properties, aliases, aliase's profiles
, SS settings, bridges, routing contexts, restrictions, access-types, access-gro
ups will be removed.
Are you sure?: yes/no ?> yes
[**********************************************************************] 1s 109ms
Declaration of domain "two" is removed.
/domain/list
There are declared ECSS domains:
domain_b
test_domain
Total: 2
|
Исправлена ошибка звонка внутри "Босс-группы" (boss-group) через код услуги *126 | Было: Абонент участник "Boss-group", набирая комбинацию *126*номер_Boss-group, попадал на другого абонента участника данной группы. Аналогично при наборе *126*номер_Boss-group*0 (или 1/2/..) приводило к подключению к другому участнику данной группы. Данная работа не совсем корректна. Кодовая комбинация *126*номер_Boss-group / *126*номер_Boss-group*0 (или 1/2/..) предназначена для возможности вмешательства в разговор/перехват вызова при поступлении звонка на номер Boss-group с использованием "blf". Для звонков между участниками Boss-group не предназначена. Стало: После исправления ошибки звонок на другого участника Boss-group не устанавливается. |
Исправлена ошибка обработки услуги voicemail при значении опции override_messages=false | Было: В случае заполнения выделенного объема (mailbox_volume) и наступлении нового события для записи сообщения, абонент А получал 480 Temporarily Unavailable сообщение, которое передавалось по истечении таймера 60 сек. В течении этого времени абонент А слушал тишину. Стало: После коррекции ошибки в случае переполнения mailbox. Абонент А сразу получает сообщение: 487 Request Terminated Warning: 399 ecss "system: VoiceMail mailbox full" |
Исправлена ошибка при обработки услуги "Запрет переадресуемых вызовов" (fbc) | Было: При активной услуге "Запрет переадресуемых вызовов" (fbc) звонок абонента А переадресовывался на абонента "С" при использовании у абонента "В" услуги "cfu_type2". Стало: После исправления ошибки на терминал абонента А поступает сообщение: SIP/2.0 480 Temporarily not available ... Reason: Q.850;cause=31;text="Normal unspecified" Warning: 399 ecss "system: side A has banned call forwarding" |
Исправлена ошибка обработки завершения вызова после IVR Connect с PlayOut | Было: В случае использования в IVR скрипте блока "PlayOut" после проигрывания всех сообщений на ТА вызов остается активным, в трассировке отсутствует посылка BYE, в истории вызовов он помечен как завершенный по причине systemFailure с описанием Call process failure. Причина в том, что в play_settings появляется undefined, который не обрабатывался в функции process_play_settings. Стало: После исправления ошибки обработки завершения вызова, по окончанию проигрывания указанных в скрипте сообщений вызов успешно отбивается. |
Исправлено отображение пароля учетной записи в приложении "Портал абонента" | Было: В приложении "Портал абонента" в поле пароль указывался не пароль учётной записи "Портала абонента", а пароль SIP-абонента. Стало: Исправлено отображение поля "пароль", а также окно "Помощь по Порталу абонента": |
Исправлена работа http-запроса в блоке RPC | Было: http_uri:parse(URL) был заменен на uri_string:parse(URL), в результате в IVR блоке RPC не работал http-запрос. Стало: После исправления ошибки http-запрос обрабатывается корректно:
|
Исправлена ошибка на ядре при вызове в транк с активированной услугой "Сервис поддержки запросов к серверу геолокации" (tsmn_request) | Было: При установлении соединения через транк с услугой "Сервис поддержки запросов к серверу геолокации" (tsmn_request) через интервал времени, задаваемый таймером core "no_answer_timeout", получали ошибку, в результате которой: на вызывающей стороне вызов будет считаться завершенным (systemFailure/Call process failure), запись разговора прекратится (если включена на абоненте), абоненты продолжат общаться. После завершения вызова одной из сторон вторая сторона не получает BYE. Проблема возникает, если с "tsmn" транка не приходит сообщение "answer". Стало: После исправления ошибки обработка услуги "tsmn_request" вызов выполняется без ошибок. |
Исправлена ошибка вывода в web-интерфейсе sip_modifications для абонента | Было: В web-интерфейсе не корректно (не полностью) выводилась информация о модификации SIP-заголовков: Информация в CoCon
CODE
Информация в web:
Стало: После исправления ошибки информация в CoCon и в web идентичны:
|
Исправлена ошибка положения окна статуса услуг на заднем плане в приложении "Менеджер транков" | Было: При управлении услугами на транке во вкладке "Дополнительные услуги" во время сохранения данных окно статуса услуг выводилось на заднем плане, что создавало неудобство в работе. |
Исправлена ошибка отображение истории вызовов на вкладке Вызовы в приложении "Портал абонента" | Было: В приложении "Портал абонента" не отображалась история вызовов. Не было отображения как активных вызовов? так и завершенных. Стало: После исправления ошибки абонент в личном кабинете может наблюдать всю историю своих вызовов: |
Исправлена ошибка присутствиz подраздела "cocon/role/" у пользователей, не имеющих прав что-либо там изменять | В случае, если у пользователя нет прав ecss-admin (глобального администратора), подраздел команд /cocon/role/ не должен быть доступен данному пользователю.
CODE
Было: test@[mycelium1@ecss1#abf.test]:/$ /cocon/ my-groups nodes-summary role/ test@[mycelium1@ecss1#abf.test]:/$ /cocon/role/ There is no such command: test@[mycelium1@ecss1#abf.test]:/$ cocon/ my-groups nodes-summary |
Исправлена ошибка обработки локального времени в списке активных конференций приложения "Портал абонента" | Было: Некорректно обрабатывалась разница значений времени в часовых поясах между SSW-сервером и хостом абонента, на котором запущено приложение "Портал абонента" – длительность конференции в приложении не соответствовала реальной. В примере разница в часовых поясах — 7 часов. Продолжительность конференции на ТА абонента (Twinkl) 00:01:13. В приложении "Портал абонента" 07:01:14. Стало: После исправления ошибки продолжительность конференции в "Портале абонента" корректна. |
Исправлено отображение контактов в "Справочнике" приложения "CallCenter" | Было: На вкладке "Справочник" приложения CallCenter происходило дублирование имени, в примере имя "Оксана" назначено только для агента id=200. |
Исправлена инициализация eccs-restfs-unit-conf | Было: Периодически при старте сервиса ecss-restfs-unit получали ошибку: udo systemctl status ecss-restfs-unit-conf.service
× ecss-restfs-unit-conf.service - Configure ecss-restfs-unit of ecss-10
Loaded: loaded (/lib/systemd/system/ecss-restfs-unit-conf.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2026-02-06 17:00:25 +07; 2 days ago
Main PID: 29181 (code=exited, status=7)
CPU: 7ms
Feb 06 17:00:25 ecss1 systemd[1]: Started Configure ecss-restfs-unit of ecss-10.
Feb 06 17:00:25 ecss1 ecss-unitd[29183]: curl: (7) Couldn't connect to server
Feb 06 17:00:25 ecss1 systemd[1]: ecss-restfs-unit-conf.service: Main process exited, code=exited, status=7/NOTRUNNING
Feb 06 17:00:25 ecss1 systemd[1]: ecss-restfs-unit-conf.service: Failed with result 'exit-cod
Проблема была в в запуске restfs-unit-conf сразу после restfs-unit и сразу же при попытке обращения к restfs-unit, не дождавшись, пока restfs-unit загрузится. Решение: Установить задержку между запуском restfs-unit и restfs-unit-conf, чтобы restfs-unit успел проинициализироваться. После исправления ошибки: Инициализация eccs-restfs-unit-conf выполняется успешно. |
В IVR исправлено значение по умолчанию полей "Установление соединения" и "Время ожидания" при создании блока Connect | Было: При создании нового скрипта для исходящего вызова с блоком "Connect" появлялась ошибка:
После исправления ошибки: IVR-скрипт отрабатывает корректно. |
Исправлена ошибка, при которой добавление агента-алиаса приводит к поломке очереди | В очередь СС могут быть добавлены в качестве агента не только агенты, но и алиасы.
CODE
Было: При добавлении в очередь хотя бы одного агента-алиас очередь переставала работать. При звонке в очередь абонент А попадал в тишину, ответ от IVR не выполнялся, вызов не распределялся на агентов. После исправления ошибки: Вызова распределяются на доступных агентов успешно. |
Исправлена ошибка добавления почты для номеров группы телеконференции | Было: При добавлении email одному из участников группы телеконференции у остальных участников почта удаляется.
CODE
Проблема: Команда /domain/<DOMAIN>/teleconference/template/group/number/set не обновляет флаги, а перезаписывает их, сбрасывая старые. После исправления ошибки: Новые данные добавляются не сбрасывая предыдущие.
CODE
|
Исправлена ошибка создание домена с таким же именем после его удаления | Было: При удалении домена с большим количеством абонентов (несколько тысяч) и попытки создать домен с таким же именем команда не выполнялась. /domain/remove test_4 --force
[************** ] 16msCommand timeout
/domain/declare test_4 --add-domain-admin-privileges --add-domain-user-privileges
Error: Invalid command's result: {error,{system_error,"test_4"}}
Проблема: При удалении абонентов запускалась функция проверки ДВО для отчистки лимитов лицензии на домене. После исправления ошибки: При удалении домена целиком функция проверки больше не запускается, данная функция выполняется только при удалении абонента. /domain/remove test1
[remove] You are going to remove domain "test1". All properties, aliases, aliase's profil
es, SS settings, bridges, routing contexts, restrictions, access-types, access-g
roups will be removed.
Are you sure?: yes/no ?> yes
[**********************************************************************] 1s 287ms
Declaration of domain "test1" is removed.
/domain/declare test1 --add-domain-admin-privileges --add-domain-user-privileges
New domain test1 is declared
|
Исправлена сортировка медиа-файлов в блоке PlayOut | Было: При создании в IVR-блока "Проигрывания звуковых файлов после ответа" с последовательностью из нескольких файлов: Предполагалось проигрывания последовательности – "Внимание", "Активировано", "Будильник поставлен на". Получили: обратную последовательность – "Будильник поставлен на" "Активировано" "Внимание". После исправления ошибки: Файлы указанные в блоке "Проигрывания звуковых файлов после ответа" проигрываются в правильной последовательности. |
Исправлена ошибка, при которой в случае неуспешной передаче cdr-файла утилитой ecss-copycdr файл все равно будет помечен как _transfered | Было: После попытки передачи cdr-файла на внешний сервер утилитой ecss-copycdr файл будет помечен как "_transfered" вне зависимости от результата передачи. И в случае ошибки на стороне приема, (для примера После исправления ошибки: Файлы помечаются как "_transfered" только после успешной передачи на внешний сервер. В случае ошибки при передаче файл не помечается и есть возможность выполнить повторную передачу файлов. |
Исправлен некорректный код ошибки при вызове в транк от абонента, не входящего в access_group | Было: В случае звонка от абонента А не входящего в access_group на абонента В подключенного к группе доступа получаем ответ: 480 Temporarily not availableReason: Q.850;cause=31;text="Normal unspecified" Warning: 399 ecss "system: no access from access group all to access_group_name" Но если группа доступа подключена к исходящему транку, то при попытке установления соединения от абонента А не входящего в эту группу получим ответ: 404 Not FoundReason: Q.850;cause=3;text="No route to destination" Warning: 399 ecss "system: No trunks found" После исправления ошибки: При попытке звонка абонента А на транк или на абонента В, входящих в access_group, получаем: 480 Temporarily not availableReason: Q.850;cause=31;text="Normal unspecified" Warning: 399 ecss "system: no access from access group all to access_group_name" |
Исправлен перевод в выводе сообщения о достигнутом лимите агентов | Было: Не был выполнен перевод уведомления о превышении количества агентов: Исправлен перевод: |
Битрикс24. Исправлена ошибка авторизации на ОС Astralinux | Было: После ввода данных в "https://<IP_add>:8802/bitrix/login" получаем ошибку "Internal server error". Права сервиса ecss-crm-server были ограничены, что приводило к ошибке доступа к базе данных. Решение: Запуск сервиса с повышенными привилегиями. После исправления ошибки: Авторизация выполняется успешно. |
Исправлено обновление полей last_via и user_agent после перерегистрации абонента | Было: В случае регистрации абонента с разных ТА и разных IP add в полях "last_via" и "user_agent" информация не обновляется. И оператор видит не актуальную информацию. После исправления ошибки: Обновление полей "last_via" и "user_agent" выполняется при каждой новой регистрации.
CODE
|
MSR. Исправлена ошибка обработки вызова с кодеком opus в SDP | Было: При попытки использования кодека "opus" в SDP звонок завершался ошибкой. Решение: При компиляции процедуры обработки кодека "opus" использовать другой параметр уровня оптимизации. Стало: Звонки с использованием кодека "opus" обрабатываются успешно. |
Исправлена ошибка, при которой в "Портал абонента" при активации услуги "Запуск IVR" услуга не активируется | Было: После выключения услуги "Запуск IVR при входящем звонке (personal_ivr)" в "Портал абонента" повторно включить услугу не получалось. Выдавалась предупреждение об ошибке и услуга оставалась выключенной. После исправления ошибки: Включение/выключение услуги происходит корректно.
|
Устранена уязвимость с подделкой запросов на стороне сервера | Было: В настройках HTTP-сервера на порту 9990/TCP была обнаружена уязвимость, позволяющая транслировать HTTP/HTTPS запросы на другие сервисы от имени уязвимого сервера. Решение: Для сервиса ecss-restfs поддержать белые списки в случае api/proxy. Стало: При установке сервиса ecss-restfs появилась возможность установить белые списки:
белый список адресов прописать в файл /etc/ecss/ecss-restfs/api-proxy.conf # ------------------------------------------------------------------- |
Исправлена ошибка отсутствия отчётов cdr после перезапуска хоста | Было: Если в момент создания CDR файлов выполнялась перезагрузка хоста, то последующие CDR файлы вручную или по таймеру не создавались. Причина: После перехода с MySQL на PostgresQL некорректно выполнялась инициализация таймеров запуска процедуры генерации CDR-файлов. После исправления ошибки: После рестарта SSW CDR продолжают создаваться как по Time так и по Period без ошибок. |
CallCenter. Исправлена ошибка, при которой очередь не переходит в пост-процессинг при отсутствии 180 Ringing | Было: Очередь CallCenter некорректно обрабатывает переход в статус пост-обработки вызовов, в которых ТА не отправляет 180 Ringing, в результате чего вызов не учитывается при подсчете статистики. После исправления ошибки: Переход вызовов в статус пост-процессинг успешно выполняется для ТА не отправляющих 180 Ringing. Подсчет статистики выполняется корректно. |
Устранена обнаружена уязвимость в настройках COOKIE | Было: В настройках COOKIE обнаружена уязвимость, В настройке по умолчанию, на TCP-портах 1100, 1101, 1102, 1103, 1104 запущены сервисы, -каждый из которых имеет своё значение COOKIE по умолчанию. Решение: Убрать упоминание cookie в файлах. Убрать флаг -setcookie из команды запуска ноды, чтобы его нельзя было увидеть в "htop" или через "ps aux". Сделать конфигурирование cookie для каждой ноды через диалоговое окно при конфигурации "ecss-node". Стало: При установке ecss-node появилась возможность указать уникальные COOKIE для каждой ноды:
. . . Информация в файлах COOKIE закодирована или отсутствует: Было: cat /etc/ecss/default/ecss-core NODES="core1" COOKIE=ecss_core_cookie cat /etc/ecss/default/ecss-ds NODES="ds1" COOKIE=ecss-ds cat /etc/ecss/default/ecss-mediator NODES="md1" COOKIE=mediator-cluster cat /etc/ecss/default/ecss-mycelium NODES="mycelium1" COOKIE=mycelium cat /etc/ecss/default/ecss-sip NODES="sip1" COOKIE=ecss_pa_sip_cookie cat /etc/ecss/default/ecss-sorm NODES="sorm1" COOKIE=ecss_sorm_cookie Стало:
CODE
Флаг "-setcookie" не выводится в командах "htop", "ps aux" |
Исправлена ошибка, при которой ответ на NOTIFY при включенном nat_traversal отправляется на адрес отправителя | Было: При включенном параметре "nat_traversal" ответ на "NOTIFY" отправляет на адрес, полученный в поле "contact", хотя должен отправлять на адрес, с которого пришло сообщение.
После исправления ошибки: Ответ на "NOTIFY"отправлять на адрес, с которого пришло сообщение.
|
Исправлена ошибка отправки NOTIFY по BLF подпискам на ТА Yealink при отработке резерва | Было: Если опция node_control выключена на sip-интерфейсе, то при отработке резерва, на оставшейся ноде не изменяется информация с какой ноды можно отправить NOTIFY, что вызова проблемы с доставкой сообщения до ТА. Решение: Если не выставлен "node_control", при процедуре отработки резерва обновлять параметры ноды. После исправления ошибки: Резерв подписок на ТА VP и Yealink отрабатывает корректно, уведомления поступают после возвращения первой ноды в работу. Также проблем не наблюдается при поочередном выключении нод и переключении подписок на работающую ноду, подписки сохраняются, нотификации продолжают поступать на ТА. |
WebConf. Исправлено зависание IVR-редактора | Было: При открытии или импортировании некоторых скриптов IVR происходит зависание веб конфигуратора. Решение: Изменена процедура загрузки скрипта в редактор IVR. Стало: Зависание веб конфигуратора больше не проявляется. |
Teleconference. Исправлено несоответствие длительности разговора на странице совещания | Было: В активной комнате телеконференции происходит рассинхрон по времени длительности совещания, общий таймер конференции сильно отстает от реального времени конференции и накапливает задержку. Причина: При каждом серверном обновлении таймер конференции сбрасывался к значению tc.duration, которое из-за сетевой задержки всегда немного отставало от локального счётчика каждое обновление сдвигало таймер назад, эффект накапливался. Стало: Новое серверное значение параметра tc.duration теперь сравнивается с локальной оценкой текущего времени, а не с предыдущим серверным. Отставание таймера больше не наблюдается. |
WebConf. Исправлена сортировка времени в блоке IVR TIME | Было: При выполнении сортировки в блоке IVR Time в случае наличия в таблице нескольких строчек с интервалами времени и несколькими строчками с расписанием сортировка выполнялась некорректно (чередовались интервалы времени и расписания). Стало: Сортировка выполняется корректно — сортировка по интервалам времени и сортировка по расписаниям:
|

















































































