h1. Релиз 8.1 *Дата релиза*: 2019-09-01 {{>toc}} h2. Новые функции: #2681: добавить апи для создания задач обзвона #2918: HLR запрос: добавить поддержку генерации большого кол-ва запросов #3040: добавить меню Базовая роль #3039: Пополнение через ICE API: добавить API получения списка услуг + находить услугу по имени или ID, и пополнять от имени этой услуги #3032: добавить поддержку генерации большого кол-ва смс #3029: добавить HTTP опцию "тип содержимого" #2918: LNP/MNP запрос: добавить поддержку генерации большого кол-ва запросов #3024: добавить опцию Компании - Настройки по умолчанию - "списывать когда деактивирован" #3011: SMPP: добавить опцию для переопределения поля "messaging mode" #3023: Telegram чаты - убрать выбор направления для отчетов #3022: Таблицы файервола: добавить возможность блокировки целой страны по IP #3015: История объекта: показывать историю изменений подменю #3004: добавить HTTP API dlr #3005: передавать переменную MESSAGE_ID в шаблон генерации сообщения по HTTP #3006: HTTP: продублировать параметр "кол-во повторов" для всех вкладок #2999: Добавить новую SIP опцию, чтоб не возвращать медиа обратно к Smartswitch при отбое звонка #2996: HTTP message API: возвращать кол-во сегментов #2652: реализовать услугу sip-ping для клиентов #2994: перейти на новое АПИ AmoCRM для добавления звонков #2990: Отчеты -> Кольца: разделить отдельно на домены (телефония, SMS, итд) #2752: подставлять имя пользователя из Контактов при входящем звонке на софтфон #2988: добавить Мои отчеты дилера #2986: SMPP: Добавить кодеки для оригинатора #2940: Финансовый отчет: показывать прибыль #2979: Финансовый отчет: добавить вкладку Отображать #2737: отображать предупреждение при попытке сохранить "прямое RTP соединение" + "запись разговоров" #2976: нужно разделить опцию "прямое медиа соединение" на несколько отдельных опций #2971: HTTP HLR API: разрешать отправку нескольких HLR запросов одновременно, одним вызовом API #2974: HTTP API: добавить параметр request_id #2973: HTTP API: возвращать номер получателя в ответе #2966: сохранять кодек для SMS #2916: Добавить шаблоны замены содержимого SMS #2961: Доступ -> Действия: добавить логирование импорта прайсов #2959: в процессе обзвона по номерам нужно реагировать на изменение списка номеров во время обзвона без выключения/включения задачи #2958: не нужно писать аудио в /var/tmp, т.к. /var довольно маленький раздел #2954: добавить возможность конфигурировать разные шаблоны писем и разные почтовые аккаунты для разных компаний #2947: Изменения: показывать пустые изменения по умолчанию #2945: Удалить прайсы: должно работать в режиме кодов направлений #2860: SMPP добавить опцию "таймаут" для оригинатора #2939: Финансовый отчет: показывать итоговую сумму по каждому столбцу #2936: добавить глобальный лимит на длительность разговора #2718: обновить веб-фреймворк до версии 3.3.12 #2818: Добавить меню Сравнить EDR для сообщений #2926: HTTP API: привести в формат спецификации https://jsonapi.org/ #2933: Захват pcap: увеличить таймаут бездействия для "авто" режима #2932: HTTP API call: добавить параметр "callback_caller_id" #2930: SMPP захват pcap: добавить поддержку устройств под NAT и с изменяющимися DNS именами #2929: SMPP: возвращать message_id без точки #2609: Классы исключений импорта: добавить меню E.164 коды #2519: Добавить захват pcap для SMPP #2920: SMPP DLR: сохранять БД seqno + IP адрес + порт #2921: Добавить Номерные пулы -> Globally blocked number patterns #2851: HTTP: реализовать Digest Auth #2906: Реализовать суфлер и подслушивание через спец. расширение #2910: добавить элемент ChanSpy в обработчик вызовов #2871: добавить app SendDTMF в обработчик вызовов #2852: реализовать поиск услуги по шаблону описания #2861: вывести отчет DLR статистика в кабинет компании #2854: Watchdog: добавить поддержку OH323 #2849: Добавить тарифный план по умолчанию для терминаторов #2842: SIP; Добавить вкладку Исходящая аутентификация #2790: добавить поддержку Исключать зоны в Открытых/Закрытых зонах на пирах #2829: реализовать Smartswitch компиляцию и линковку с Asterisk-16 #2836: SMPP: сохранять UDH параметры в отдельной вкладке вместо тела SMPP MDR #2812: добавить отдельный исходящий пароль для SIP #2739: Telegram + прибыль по дилеру #2814: VPBX administrator: открыть доступ к IP адрес ACL #2793: оптимизировать работу генератора номерных пулов под миллионные кол-ва номеров #2145: При склеивании аудио-файлов применять ограничения доступа #2776: AmoCRM: добавить в manifest. json ключ support #2774: Добавить возможность от-регистрации пользователя кнопкой в веб-интерфейсе #2758: Добавить Профили кодов отбоя #2769: Экспортировать номер инвойса #2741: Шаблоны инвойсов: добавить поле Шаблон номера #2765: Добавить Таблицы Q.850 -> SIP #2756: Добавить Таблиц кодов отбоя #2749: Класс замены кодов отбоя #2754: Заблокировать запрещенные коды НКРСИ #2751: нужны отдельные классы хантинга для SMS #2733: Генератор звонов, Задача генерации: добавить параметр длительность обзвона #2747: Отправить сообщение: показывать стоимость отправки #2746: Отправить сообщение: разрешать повторную отправку не успешных сообщений одним кликом #2743: SMPP: поддерживать разделение SMS на сегменты посредством SAR #2742: Отправить сообщение: отправлять сообщения по одному и показывать прогресс #2725: добавить опцию на терминаторе "поддерживает сообщения больше 140 байт" #2735: Задача генерации: автоматически подхватывать изменения в своих параметрах #2731: SMPP: добавить поддержку Concatenated Message UDH #2730: Мои услуги -> Отправить сообщение: добавить подсчет кол-ва сегментов #2728: Мои услуги -> Отправить сообщение: отображать кодировку #1788: Биллинговые пакеты - коды направлений: добавить фильтр по статусу #2712: Добавить параметр "таймаут набора при липкой переадресации" #2716: mysql++: переделать управление памятью на shared_ptr #2706: AmoCRM: переделать уведомление о новом звонке #2701: бекапить личные файлы пользователей и аудиоприглашения #2677: add caller ID number pool on originator #2676: add legal notice to Number pools on Terminators #2704: Route classes -> Zones: show quick link to Routes #2619: Биллинг по E.164 зоне #2673: Маршрутизация по зоне #2697: добавить Класс маршрутов->Приоритеты->E.164 зона набранного абонента #2692: AmoCRM: при авто-создании контакта назначать ответственным ответившего либо при не ответе случайно одного из не ответивших #2689: SIP пиры: реализовать по-страничное отображение + показывать флаг #2684: Убрать глобальные опции незащищенный INVITE и незащищенный порт #2680: Добавить Расписание для терминаторов #2674: Профили потребления: добавить опцию "при выходе за профиль" #2534: добавить поддержку Google AddressSanitizer #2671: Шаблоны замены номеров: запретить замену на пробел #2660: поиск по периодическим списаниям #2668: StartMixMonitor приложение: добавить опцию "начать запись когда звонок соединен с другим каналом" #2666: Группы пользователей: добавить опцию "режим аутентификации" #2653: разрешить добавить платеж в общем списке платежей #2607: loss control + E.164 зоны #2632: send HTTP to user #2651: ICE API: привести hlr и lnp_mnp API к виду message API #2649: Добавить опцию C в очереди #2648: HTTP parameters: добавить чекбокс enabled для Messaging, HLR, HTTP #2633: add Terminator -> HTTP -> Message #2644: переместить message_id из storage.mdr_smpp в storage.mdr #2643: переименовать storage.smmp в storage.mdr_smpp #2633: add Terminator -> HTTP -> Message #2638: HTTP: добавить отдельные URL, метод и POST тело для разных сервисов #2625: HTTP API для приема SMS #2621: добавить возможность изменения заголовка инвойса #2620: добавить возможность не отображать ID в инвойсе #2611: Улучшить юзабилити фильтров #2623: Добавить кнопку SIP -> Удалить пир из кеша #2605: реализовать batch insertion company_summaries #2599: Дополнять нулями MNC из прайсов при импорте #2597: AmoCRM: улучшить режим сохранения CDR #2592: Модифицировать AmoCRM виджет чтоб работал с новыми HTTP API URL #2590: HTTP API: separate resource per API #2566: Пользователи: улучшить безопасность хранения паролей для веба #2577: Контролер убытка: добавить для режима дилер #2576: улучшить отображение ошибок #2575: канал SMPP: улучшить безопасность хранения паролей #2574: канал IAX: улучшить безопасность хранения паролей #2573: канал HTTP: улучшить безопасность хранения паролей #2573: канал HTTP: улучшить безопасность хранения паролей #2567: Пользователи: улучшить безопасность хранения паролей для SIP #2566: Пользователи: улучшить безопасность хранения паролей для веба #2562: Улучшение безопасности хранимых паролей #2571: Пользователи: улучшить безопасность хранения PIN #2568: Пользователи: выводить список данных для экспорта при генерации пользователей #2569: SMPP: улучшить безопасность хранения паролей #2563: Компании: улучшить безопасность хранения паролей #2556: Оптимизация Деталей по звонкам для определенного пира: делать поиск по индексу из xxx_links вместо индекса из cdr #2557: Оптимизация Деталей по E.164 кодам: делать поиск по индексу из xxx_links вместо индекса из cdr #2555: Удаление статистики из веба: позволять выбирать только год-месяц #2554: Удаление статистики из веба: раздельное удаление для Телефонии, Сообщений #2426: оптимизировать удаление CDR #2546: Вебфон -> Журнал: делать набор на номер с префиксом #2394: Журнал в Вебфоне #2531: Веб-телефон: добавить кнопку Эхо-тест #2391: Веб-телефон: добавить контроль громкости #2528: SMPP: сохранять порядковый номер #2526: Детали по E.164 кодам: показывать общее кол-во, ASR, NER вместе с прибылью #2520: SMPP: сохранять порт #2320: Детали по звонкам: показывать тип пиров в общем отчете #2503: Контролер убытка: перенести из настроек компаний в настройки оригинаторов, шлюзов, групп пользователей #2454: Контроль прибыли + Telegram + блокировка/авто разблокировка кодов #2501: Контроль оригинации: нужны отдельные почтовые шаблоны для компаний и пользователей #2494: если подходит несколько бил пакетов под импорт из емейл - показывать ошибку с перечислением бил пакетов #2490: перевести работу с amocrm с exec(curl) на Wt HttpClient #2453: добавить опцию "прямое RTP соединение" для пиров #2442: уменьшить кол-во вызовов в сек AmoCRM API #2485: переадресация на вторую очередь h2. Исправления: #3043: Копирование задач генерации: некорректно сохраняет номера #3035: Поддержка имени звонящего с запятой #3036: при удалении IP из таблицы файервола через веб-интерфейс, Fail2ban опять сразу же добавляет его обратно #3026: запретить сохранять инвойс с конечной датой больше или равно текущей #3025: при переадресации исходящая CDR для пользователя сохраняется с нулевой длительностью #3021: Биллинговый пакет - История объекта - Mysql server gone away #3020: когда удаляются SIP настройки, не удаляется подменю Кодеки #3019: когда добавляются веб настройки для пользователя приходится дважды нажимать сохранить #3018: подмена имени звонящего из контакта не работает, если звонок на софтфон инициируется из веб-интерфейса #3014: при расчете инвойса не показывает прогресс #3013: долго рассчитывается инвойс #3009: Terminator->SMPP->Send message: нет биллинга #3008: app_send_dlr crash #3007: AmoCRM: при создании контакта стали отдавать id в string вместо long long #2998: SMPP DLR от ESME внутри DATA_SM: submit_sm or submit_multi failed #2997: нельзя делать перекодировку много-сегментной SMS #2995: watchdog не делает проверку доступности hlr API #2993: Детальный отчет по звонкам: фильтр не запоминает выбранный день #2991: Подстановка АОНа: не подставлять другой АОН если клиент уже звонит с корректным АОНом #2989: DLR с пустым содержимым и с пустыми А и Б номерами принимает за кольцо #2985: не поддерживается DLR c dataCoding 4 #2982: Обновление страницы: Wt internal error; code: undefined, description: Cannot read property 'nodeName' of null #2301: При закрытии вкладки на firefox, она перерегистрируется позже chrome #2983: crash на WebrtcPhone::stop() #2981: WMessageBox отображается позади WDialog #2980: номерной пул: не берет рандомный номер #2978: Assertion 'transport->Open()' failed in file '/usr/ports/net/smartswitch/work/smartswitch-8.0.47520/app/sniffer/sniffer.cxx' line 69 #2977: Assertion 'm_pcap' failed in file pcap_file.cxx line 30 #2969: при отключении WebRTC кнопка продолжает мигать если астериск не запущен или WSS порт не открыт #2964: использование boost::filesystem::copy вызывает Segfault #2972: HTTP API: возвращать errors только при ошибке в начальном парсинге запроса или аутентификации #2970: отправлять переадресовывающего как звонящего: отправляет Diversion заголовок #2968: web-interface crash (likely refresh with ProgressDialog) #2967: Генерация звонков->Задачи: слишком долгое отображение страницы #2965: после обновления на wt-3.3.12 перестал работать выбор даты в календаре #2964: Segfault oпри импорте прайсов #2963: Сообщения: Детектор повторяющихся номеров: Deadlock found when trying to get lock #2962: VPBX user - CRM - Контакты - Импорт: показывает пустые поля #2957: Suggestion popup Segfault при обновлении #2956: WDialog segfault при закрытии #2953: Всегда 1й номер выбирается из номерного пула #2949: Текущее состояние - Каналы: не действуют переключатели цена и цена минуты #2952: SIP реалтайм: при выключении пользователя реалтайм пир не удаляется из кеша #2950: SIP ACL: при смене приоритетов реалтайм пир не удаляется из кеша #2951: Генерация инвойсов: некорректная дата конца периода при долгой последовательной генерации инвойсов для нескольких компаний #2944: Realtime + ACL: получаются слишком долгие запросы #2948: Assertion match_length > 0 failed in file /usr/ports/net/smartswitch/work/smartswitch-8.0.47601/lib/libsmartswitch/utilities.cxx line 851 #2946: Изменения: отображаются строка за строкой с задержкой в 1 сек #2943: sql ошибка при экспорте пользователей #2938: Wt-3.3.12 segfault при рефреше SuggestionPopup #2942: Маршрутизация на пользователя через обработчик вызовов: черные номерные пулы не действуют #2941: SIP пиры: Пред, След кнопки не отцентрованы #2583: новый WDialog появляется сзади существующих #2925: Обработчик hlr_softswitch: не принимаются значения HUNTSTOP опций в элементе RouteHLR #2912: Обработчик вызовов: проблема когда Стереть добавляется после Установить #2911: отчеты позволяют выбрать несуществующее число #2900: SIP IP адрес ACL: нужно перезагружать конфиг или "prune realtime SIP peers" при изменении #2898: Принудительно делать sip prune realtime peer при изменении SIP настроек на реалтайм пользователе или группе #2899: если группа пользователей реалтайм, а в ней внутри есть не-реалтайм пользователи, то sip reload не выполняется при сохранении sip настроек группы #2897: Номерной пул на оригинаторе: некорректный CDR #2888: невозможно копировать стандартную роль #2872: CallHandlerAcl: должно автоматом подхватывать добавление или изменение структуры обработчика вызовов #2859: DLR статистика: Unknown column code in where clause #2855: не работает nway confence #2858: Nway conference: лишние CDR #2853: Assertion !m_metrics_compare_strategy.empty() #2850: много дубликатов insert into dlr в failed_queries #2845: SMPP: проблема с GSM сообщениями содержащими "?" #2846: SMS split, используя SAR - некорректная нумерация #2844: ast_channel deadlock after allocation (HTTP, SMPP) #2813: когда крашится партиция, то таблицу не видно в INFORMATION_SCHEMA.PARTITIONS #2841: Ast10 + realtime + аутентификация по имени пользователя: проходит INVITE аутентификация с некорректным From (по IP + Auth логину + Auth паролю) #2835: SendDLR + UDH в SubmitSm: битый текст внутри DLR #2819: Классы маршрутов - E.164 зоны: быстрый фильтр работает некорректно #2808: невозможно сохранить SMPP настройки на группе пользователей #2805: Учетность - инвойсы: кнопки с номерами страниц выглядят коряво в хроме #2803: при тестировке SMPP сохраняется еще одна некорректная CDR #2799: VPBX administrator: не видно информацию после генерации пользователей #2798: VPBX administrator: не видно названия пиров и прочую информацию в меню Текущее состояние - SIP пиры #2800: Номерные пулы: веб интерфейс сильно задумывается при быстром фильтре по таблице с 16 млн строк #2797: не получается переместить номера из Номерного пула, в котором несколько миллионов номеров #2801: нечаянно установленный миллионный номерной пул аонов приводит к зависанию системы #2796: не получается удалить по шаблону номера из Номерного пула, в котором несколько миллионов номеров #2788: падение при smpp_endpoint_hangup() #2782: HLR кеш: SQL ошибка при вставке #2781: Concatenated SMS DLR: нужно передавать оригинатору только 1й DLR #2780: DLR: сохраняется не то содержание, что реально отправляется оригинатору #2777: разделение SMPP сообщения: нужно сохранять сегменты как отдельные MDR #2775: Кольцо обнаружено при много-сегментной SMS #2770: не маршрутизируются пустые DLR #2768: Детальный отчет по звонкам - Назад: Wt internal error #2764: unbound запускается после ntpdate #2760: write_off падение при cleanup #2670: Asterisk crash в SMPP #2750: Задачи генерации: после удаления задач и перезагрузке mysql сбрасывается autoincrement счетчик задач #2736: SMPP: корректно перекодировать сообщения, в которых есть UDH #2726: SMS: биллить нужно кусками по 140 байт а не по 160 #2724: AmoCRM: при звонке Пользователь - Шлюз добавляется Контакт с номером с префиксом шлюза #2723: Участники очереди: полное название не вмещается в 80 символов #2711: AmoCRM: всплывающее окно нового звонка показывается 4 раза при звонке 4 участниками очереди #2710: SMPP соединение не удаляется после module reload chan_smpp.so #2709: chan SMPP assert #2708: сохранять CDR без привязки к пиру #2617: при копировании шаблона инвойса не копируется изображение #2698: Классы маршрутов: не разрешать сохранять одинаковые приоритеты #2696: AmoCRM: При липкой маршрутизации через Очередь возможны множественные вызовы одного и того же ответственного пользователя #2693: AmoCRM: при липкой маршрутизации нет fallback #2695: При переадресации требуется всегда сохранять оригинальный АОН #2687: создается 2 одинаковых контакта (дубликата) при одновременном наборе 2 пользователей #2683: при плановой еженедельной перезагрузке нужно корректно отбивать текущие звонки #2678: SIP->Прокси->порт не работает #2670: SMPP Asterisk crash #2663: система зависает при попытке удалить номерной пул с 16млн номеров #2659: не получается автоматически обновить курс для тенге #2658: chan_http reload под большой нагрузкой #2656: поломалось обновление валют с yahoo #2636: Call generation: изменение списка номеров завершенной задачи, и потом сохранение - приводит к прогрессу задачи 0% #2635: Пользователь->копировать: Db::Table::operator["group_id"] for table users: data unavailable #2630: Оригинатор - SMPP - Smartswitch - SIP_SIMPLE - unregistered user: не сохраняются MDR на пользователе #2629: Телефония - Билинговый пакет- Е.164 коды - "списки" - Изменения - Duplicate column name id #2628: E.164 зоны -> Коды -> Db::Table::operator["value"] for table settings: data unavailable #2604: Lost connection to MySQL server at waiting for initial communication packet #2618: после обновления на asterisk-11 перестали логироваться некоторые security сообщения #2616: пользователь выключен, а звонки на него продолжают идти после прямого вызова Набрать из обработчика #2614: Статистический отчет: в default роли компании скрыты поля страницы Экспорта #2613: fail2ban блокирует watchdog #2603: partition pruning не активируется при отчетах #2608: Проверка маршрутизации: unknown column priority #2606: Статистически отчет: используется некорректный индекс #2602: отображение списка Задач генерации идет слишком долго #2601: падение веб-интерфейса при нажатии на кнопку След. #2598: Детальный ответ по звонкам: выводит 10 сек список #2596: chan_http падение в HttpClient::handleResponse() #2593: генератор паролей создает пароли с спец. символами HTTP #2589: HLR server: Connection::startWriteResponse(): connection not idle #2588: HTTP HLR Server: падение #2586: LNP/MNP test: не показывает ответ #2587: SQL ошибка при импорте E.164 зон #2585: LNP/MNP + Детектор повторяющихся номеров: проверяет А-номер, хотя не должно #2584: HTTP HLR Server: crash #2572: падение веб-интерфейса в AMICallGenerator::originate_call() #2561: Looks like we never originated DLR receipted message ID 1537914836.1243753 #2560: Задача генерации звонковk -> время завершения установлено, но только 60% прогресса #2538: Asterisk отказ при отказе DNS #2548: Веб-телефон присоединение к чужому звонку и изменение громкости приводит к падению веба #2547: запрещать сохранять пустую E164 зону #2544: admin_portal + newsyslog: некорректно пересоздаются логи #2542: asterisk deadlock in res_ice in ~Application() #2540: sniffer иногда падает #2537: Sniffer + FreeBSD 11.2: FD/socket leak in pcap_findalldevs() for USB #2536: Захват pcap: на оригинаторе захват сигнализации = цепочка, захват медиа = да, а на терминаторе не захватывает медиа в pcap #2535: Вебфон: при звонке на номер эхо-теста 903 слышно приглашение не на том языке который установлен у пользователя #2527: После обновления перестало разрешать сохранять дубликаты номеров для Задач генерации звонков #2525: Сохранение задачи генерации звонков: Duplicate entry '18092-201090396016' for key 'batch_group_id' #2524: Доступ -> Изменения: неправильный перевод #2523: Доступ -> Изменения: видно изменения по call_generation_task_callee_ids после копирования задачи #2521: обрабатывать сохранение после редактирования Б-номеров в Задаче генерации звонков #2522: после обновления аудиозаписи проигрываются дважды #2484: При наборе участника очереди через генератор вызовов в его CDR не видно вкладку Аудио #2516: когда терминатор не включен, часть звонков сохраняются с кодом AST_CAUSE_NO_USER_RESPONSE (18) #2514: Детали по E.164 кодам: показывают неправильно при отображении маршрутизации #2507: контролер убытка: добавить авто блокировку/разблокировку кодов #2504: При сохранении письма с телом в 2Мб ошибка MySQL server has gone away #2486: Генератор вызовов: убрать возможность выбора типов пиров по которым не видно ни одного реального выбора #2483: не удаляется номер из номерного пула и генератора вызовов после успешного дозвона [[Release_81|English translation]]