Добавлены переменные для мониторинга загрузки CPU и использования оперативной памяти. Пакет libopenssl обновлен до версии 3.5.6.
При регистрации канального окончания на сервере в поле `Contact` указывается домен 127.0.0.1. Это устраняет потенциальные проблемы в случае регистрации канального окончания на собственном сервере платы при изменении IP адреса. Пакет libopenssl обновлен до версии 3.5.5. Пакет dnsmasq обновлен до версии 2.92. Пакет wget-nossl обновлен до версии 1.25.0.
Пакет resiprocate обновлен до версии 1.13.2. Пакет libopenssl обновлен до версии 3.5.2. Пакет dropbear обновлен до версии 2025.88. Пакет libcares обновлен до версии 1.34.5. Пакет libpcre2 обновлен до версии 10.46.
Добавлена поддержка атрибутов crypto в RTP/AVP в принятом предложении SDP. Улучшение: "виртуальные" (IP-only) каналы (например голосовые анонсы) теперь могут использовать SRTP. Ранее для таких каналов был доступен только RTP. Исправлена ошибка: при вызове SIP пользователя через транспорт TLS с указанием в URI номера порта контакт не находился на сервере регистрации, и вызывающий получал ответ "480 Temporary unavailable" как будто вызываемый не зарегистрирован. Исправлена ошибка: при выборе медиапотока в принятом предложении SDP в некоторых случаях могли применяться атрибуты recvonly/sendonly/inactive другого (не бывранного) медиапотока.
Устранена проблема "зависания" канального окончание SL в состоянии `Blocked`. Исправлена ошибка: при получении сообщения ACK могла производиться повторная валидация ответа SDP, приводившая к установкам неверных медиа-параметров канала. Исправлена ошибка: при извлечении из сообщения SIP DisplayName в форме quoted-string не удалялись экранирующие символы '\'. Исправлена ошибка: канальные окончания PRI, SS7, FXO при формировании INVITE не кодировали DisplayName вызывающего абонента в quoted-string, в результате чего могли формироваться некорректные значения name-addr.
Исправлена ошибка: канальное окончание R1.5 передавало неверную комбинацию СУВ если во время передачи кодограммы АОН происходил отбой.
Добавлена проверка на адрес 0.0.0.0 в сообщениях SDP ('старый' холд).
Библиотека openssl обновлена до версии 3.4.0. Исправлена ошибка, которая могла приводить к перезагрузкам платы при использовании конференций.
Канальному окончанию FXO добавлен конфигурационный флаг "Инверсия СУВ". Библиотека openssl обновлена до версии 3.1.7.
Улучшен вывод в syslog - увеличен размер очереди сообщений. Конфигурационный параметр "Принимать 3.1k audio" перенесен из канального окончания SS7 в настройки SSP. Канальное окончание SS7 передает подадрес (subaddress) вызываемого и вызывающего абонентов из параметра Access Transport сообщения IAM в сообщение INVITE и обратно. Канальное окончание SS7 при получении сообщений CON и ANM передает в сообщение "200 OK" подадрес (subaddress) подключенного (ответившего) абонента. При получении сообщения "200 OK" подадрес ответившего абонента передается в сообщении CON/ANM. Канальное окончание SS7 при получении сообщения IAM с несуществующим кодом CIC передает сообщение REL (ранее такое сообщение IAM игнорировалось). Канальное окончание SS7 при формировании индикатора Calling-Party-Category в сообщении IAM кроме числовых значений параметра URI "cpc" принимаются также строковые значнеия "operator", "ordinary", "test", "payphone" и т.п. Канальное окончание SS7 при отправке сообщений IAM поле Nature of Address Indicator вызываемого абонента устанавливает в значение 2 (Unknown). SSP SS7 добавлены конфигурационные параметры SIP, как у большинства других канальных окончаний SIP. Исправлена ошибка: получение канальным окончанием SS7 тестового вызова (сообщения IAM с категорией вызывающего абонента "test call") снимало удаленную блокировку канала. Исправлена ошибка: при отсутствии информации о вызывающем абоненте (caller-ID) поля P-Asserted-Identity и/или Ramote-Part-ID использовали отображаемое имя и имя пользователя из URI канального окончания. Теперь при отсутствии caller-ID поля PAI/RPID в сообщение INVITE не добавляются. Исправлена ошибка: при некоторых условиях сигнальные линки SS7lnk могли не передавать данные в канал TDM, Исправлена ошибка: при изменении варианта протокола (ITU/ANSI) SSP параметры APC/DPC привязанных к нему канальных окончаний SS7 и SS7lnk, заданные в формате "a-b-c", не обновлялись (их интерпретация зависит от варианта протокола - "3-8-3" или "8-8-8"). Исправлена ошибка: полупостоянные потоки RTP не применяли настройки режима буферизации "на лету."
Добавлена возможность подключаться к одной полупостоянной конференции по разным URI и автоматически вызывать разных участников в зависимости от использованного URI. Добавлены конфигурационные параметры "Рег. выражение вызова", "Автоматический вызов" (для рег. выражения вызова) и "Спикеры". При выходе последнего спикера из конференции оставшиеся участники отбиваются. Канальному окончанию PRI добавлен конфигурационный флаг, позволяющий настроить режим идентификации B-канала (Preferred или Exclusive) при исходящем вызове (в сообщении SETUP). Канальному окончанию PRI добавлена функция блокировки B-каналов для входящих вызовов. При получении SETUP с указанием заблокированного канала в режиме Preferred канальное окончание PRI выбирает другой свободный незаблокированный канал. Канальному окончанию PRI добавлены конфигурационные параметры, позволяющие задавать исключения блокировки B-каналов для входящих и для исходящих вызовов в зависимости от номера вызываемого и/или вызывающего абонентов. Канальному окончанию PRI добавлены конфигурационные параметры, позволяющие задавать тип номера (Type-of-Number) и индикатор плана нумерации (Numbering-Plan-Indicator). Улучшена валидация канальным окончанием PRI сигнальных сообщений, получаемых в ответ на SETUP. Канальное окончание PRI передает подадрес (subaddress) вызываемого и вызывающего абонентов из сообщения SETUP в сообщение INVITE и обратно. Канальное окончание PRI при получении сообщения CONNECT передает в сообщение "200 OK" идентификацию подключенного (ответившего) абонента (имя, адрес, подадрес). При получении сообщения "200 OK" идентификация ответившего абонента передается в сообщении CONNECT. Исправлена ошибка: канальное окончание PRI при получении ответа "183 Session Progress" вместо сообщения PROGRESS отправляло сообщение ALERTING.
Добавлена поддержка регулярных выражений PCRE2. Канальному окончанию PRI добавлена возможность блокировки исходящих вызовов для каждого B-канала.
Исправлена ошибка, которая могла приводить к перезагрузке при выводе в журнал некоторых сообщений Q.931 канальным окончанием PRI.
Добавлена поддержка канального окончания R1.5.
Исправлена ошибка декодирования кодограммы АОН: если последним принятым символом был символ "повтор", вся кодограмма ошибочно считалась невалидной. Библиотека openssl обновлена до версии 3.1.4. Библиотека c-ares обновлена до версии 1.23.0. Библиотека libosip2 обновлена до версии 5.3.1. Библиотека libeXosip2 обновлена до версии 5.3.0. Библиотека libpcap обновлена до версии 1.9.1. Утилита tcpdump обновлена до версии 4.9.2.
Исправлена ошибка: при получении ACK соответствующее событие не передавалось канальным окончаниям, что могло приводить к неправильной работе перехвата вызовов.
Библиотеки libcrypto и libssl обновлены до версии 3.1.2.
Пакет dnsmasq обновлен до версии 2.89. Пакет dropbear обновлен до версии 2022.83. Библиотеки libpcre и libpcrecpp обновлены до версии 8.45. Библиотека libpri обновлена до версии 1.6.1.
Канальное окончание DS поддерживает сообщение REFER вне диалога. Исправлена ошибка, приводившая к отбою сразу после ответа удаленного вызываемого абонента в сценариях, когда ответ на предложение SDP был получен в надежном предварительном ответе, а не в окончательном ответе.
Исправлена ошибка: при отсутствии сигнальных линков канальных окончаний PRI и SS7 вызывающий получал ответ 404 и голосовое сообщение "номер не существует". Теперь возвращается ответ 480. Канальные окончания, работающие с соединительными линиями (SS7, PRI, АДАСЭ, EM, FXO, 1IND, R2, R2DTMF, SL) при занятости разговорных каналов возвращают ответ 480 (было 486).
Реализовано создание, конфигурирование и удаление статических конференций. Реализована подписка на события конференции в соответствии с RFC4579 и RFC4575. Релизована обработка конференциями сообщения REFER вне диалога INVITE.
Добавлена переменная .250.0, возвращающая серийный номер платы (при его наличии).
Канальному окончанию PRI добален конфигурационный параметр "Префикс межгорода" и конфигурационный флаг "Дополнительный гудок". Если флаг установлен, после набора префикса межгорода в канал выдается дополнительный сигнал "Готовность".
Исправлена ошибка: при вызове в чужой домен не выполнялся маскарадинг INVITE и блокировки исходящих вызовов.
Добавлена функция "Маскарадинг INVITE" для сообщений INVITE, передаваемых внешними UA через прокси-сервер платы VE-01. Если домен в поле From принадлежит плате, домен в поле Contact устанавливается таким же, как в поле From. Функция "Маскарадинг INVITE" для канальных окончаний шлюза теперь работает аналогично - если домен в поле From принадлежит плате, домен в поле Contact устанавливается таким же, как в поле From. Исправлена ошибка, которая при большом числе сконфигурированных SIP-пользователей могла приводить к "потере" платой части пользователей.
Добавлена возможность настройки альтернативного сервера NTP.
Канальному окончанию DS добавлен конфигурационный параметр, устанавливающий сигнал, передаваемый в канал TDM при подключении оператора.
Канальному окончанию FXS добавлен конфигурационный флаг "Инверсия СУВ". Когда в ответе SDP отвергается медиапоток, в целях уменьшения размера сообщения не указываются атрибуты отвергнутого медиапотока. В ситуации, когда в ответ на INVITE несколько раз приходит ответ "180 Ringing", генерация КПВ включается только один раз. Добавлена поддержка регулярного выражения from URI в маршрутах SIP. В ответах на INVITE вместо Remote-Party-ID передается P-Asserted-Identity.
Канальному окончанию R2DTMF добавлен конфигуарционный параметр "Таймаут набора". Если в параметре "Горячая линия" канального окончания FXS указан домен (есть символ '@'), то указанный домен используется при отправке INVITE и имеет приоритет перед другими конфигурационными параметрами ("To домен" и "SIP URI"). Улучшен алгоритм отбоя по таймауту RTP. Теперь отбой по таймауту выполняется даже в случае, когда канальное окончание не получило ни одного пакета RTP (ранее в описанном случае отбой не происходил). Добавлен глобальный флаг "Маскарадинг INVITE", при установке которого в поле Contact исходящего запроса INVITE указываются адрес и порт внешнего интерфейса платы. При получении Caller-ID "непечатные" символы заменяются на '?'. При записи журнала в файл сохраняется 10 последних файлов (ранее сохранялся один). Также размер файлов увеличен до 10 Мбайт. Исправлена ошибка: если канальное окончание FXO не могло отправить INVITE в сеть, после отбоя вызова веб-интерфейс продолжал отображать имя вызывающего абонента. Исправлена ошибка: в некоторых случаях, когда выполнялся отбой сразу после отправки INVITE (до установки диалога), сообщение CANCEL не отправлялось в сеть, но успешность отправки не проверялась, в результате сессия "зависала". Исправлены ошибки: при передаче ответа в сеть IP не проверялась успешность отправки "200 OK". В случаях, когда непосрадственно перед ответом было принято CANCEL, канальное окончание могло "зависнуть" в занятом состоянии. Теперь при неуспешной отправке ответа выполняется отбой. Исправлена ошибка: в некоторых случаях, когда сразу после INVITE из сети IP принималось CANCEL, отбой не обрабатывался канальным окончанием, в результате чего канальное окончание "зависало" в занятом состоянии.
Канальное окончание FXO передает причину отбоя при отбое из-за отсутствия dialtone (502 "No dialtone") и при отбое по прекращению сигналов вызова TDM до ответа со стороны SIP (487 "ORIGINATOR_CANCEL"). Добавлен новый глобальный параметр "T1" для установки таймаута SIP T1. Отключен авто-маскарадинг контакта при регистрации, приводивший к неверному адресу хоста в поле Contact сообщений REGISTER. Исправлена ошибка: при получении ответа 1xx или при получении ACK неверно проверялось наличие SDP в принятом сообщении. В результате был возможен ложный отбой с причиной "Incompatible media parameters".
Добавлена поддержка сигнализации SS7. Добавлена возможность наличия двух маршрутов SIP с одним и тем же регулярным выражением, но разным порядком. В большинстве случаев отбоя в сообщении SIP указывается причина в поле Reason. При отбое со стороны SIP и наличии в сообщении поля Reason указанная в нем причина транслируется в сеть TDM, если это поддерживается используемой системой сигнализации (PRI, SS7). Библиотека openssl обновлена до версии 1.1.1l. Библиотеки libosip2 и libexosip2 обновлены до версии 5.2.1. SSH сервер dropbear обновлен до версии 2020.81. resiprocate обновлен до версии 1.12.0. Устранена проблема, которая могла приводить к незапуску DHCP клиента, что приводило к отсутствию у платы сетевых настроек. Устранена проблема: при некоторых условиях (смена используемого кодека EVRC* на кодек не-EVRC* без пересоздания канала при включенной функции VAD) активация медиапотока могла заканчиваться ошибкой и даже приводить к перезагрузке платы.
В полупостоянных потоках RTP при использовании кодеков GSM, GSM-EFR, GSM-HR-08, AMR, EVRC, EVRC0, EVRCB, EVRCB0 авария LOS формируется даже при использовании VAD. Добавлена функция ping.
Канальному окончанию PPS добавлены конфигурационные параметры, устанавливающие передаваемый в канал и принимаемый из канала (дополнительный) сигналы включения ретрансляторов.
Добавлен дополнительный контроль наличия процессов udhcpc (DHCP клиент) и ntpclient (NTP клиент). Если обнаруживается отсутствие процесса в то время, как он должен работать, процесс перезапускается. В канальном окончании АДАСЭ устранены ненужные паузы после передачи в канал сигнала "ЗАНЯТИЕ" если не требуется передача номера. Канальному окончанию АДАСЭ добавлена возможность делать дополнительную паузу в процессе набора номера. Канальным окончаниям АДАСЭ и FXO добавлена возможность настройки длительности межсерийного интервала при передаче номера импульсным способом.
Добавлен глобальный параметр исключений блокировок исходящих вызовов. Исправлена ошибка: в плату SW-01 не передавались обновления состояния канала 256.
Канальному окончанию PRI добавлен конфигурационный параметр "Рег. выражение набора". Исправлена ошибка: если соединение разрывалось в момент приема из канала TDM сигнала DTMF, некоторые канальные окончания при следующей активации медиапотока могли передавать пакеты RTP RFC2833 с окончанием DTMF предыдущего сеанса.
Исправлена ошибка: при получении сообщения, адресованного плате из чужого домена, которое посредством таблицы маршрутов перенаправлялось в другой чужой домен, прокси-сервер требовал аутентификации при любых значениях настроек.
Добавлен новый тип канального окончания DS. В канальном окончании АДАСЭ расширен диапазон уровней приема сигналов 1200 Гц и 1600 Гц: порог детектирования сигналов снижен до -17 дБм. При получении шлюзом не-INVITE запроса с Replaces возвращается ответ "400 Bad request". Устранен ненужный рестарт прокси-сервера в случае, когда плате передается конфигурация без сертификата SSL, и в текущей конфигурации сертификата также нет. Устранена ошибка, которая в некоторых случаях могла возникать при записи конфигурации в плату после изменения режима журналирования, приводившая к перезагрузке платы.
Исправлена ошибка, которая могла приводить к перезагрузке при изменении сетевых настроек.
Всем канальным окончаниям SIP добавлен конфигурационный параметр Realm. Добавлен глобальный флаг, предписывающий прокси-севреру требовать аутентификации запросов нашему домену из чужих доменов.
Пользователям SIP добавлена функция блокировки входящих и/или исходящих вызовов с возможностью задания исключений блокировки. При выполнении передачи вызова в SIP сообщениях REFER и INVITE с полем Replaces добавлено поле Referred-By с указанием инициатора перпедачи вызова. Значение поля SSRC в потоках RTP сделано более случайным.
В сообщениях RTCP передаются более точные временные отметки (синхронизируются по NTP). Для более быстрой синхронизации системного времени с сервером платы SW-01 (а также для случаев, когда с платой SW-01 по каким-то причинам нет связи через сеть) начальная установка системных часов производится по времени, получаемому от платы SW-01 по управляющей шине SPI.
Исправлена ошибка, которая могла приводить к отсутствию медиапотока (и, как следствие, слышимости) у некоторых канальных окончаний при повторных вызовах.
Добавлена поддержка сигнализации E&M (канальное окончание EM). Поддерживаются варианты "немедленный старт", "wink" и "задержка старта". Добавлена поддержка систем сигнализаций частотами 2100 Гц, 2600 Гц и 600+750 Гц, используемых на ведомственных сетях связи (канальное окончание SL). Добавлены глобальные настройки, определяющие, в каких полях сообщений SIP канальное окончание отправляет и принимает Caller-ID: From, Remote-Party-ID и/или P-Asserted-Identity. Канальное окончание PRI теперь транслирует отображаемое имя вызывающего абонента при вызове со стороны TDM в сторону сети IP. При изменении приоритета журналирования, если режим журналирования остается неизменным, перезапуск syslogd не производится. Исправлена ошибка: если канальное окончание PRI не могло отправить INVITE в сеть IP, соответствующий канал возвращался в исходное состояние, но не отправлял DISCONNECT в сторону сети TDM. Также в веб-интерфейсе в состоянии канала продолжали отображаться имя и номер вызывающего абонента. Исправлена ошибка: при нахождении канального окончания в режиме VBD в веб-интерфейсе вместо "VBD" могло отображаться название кодека, выбранного для передачи речи. Исправлена ошибка: если канальное окончание АДАСЭ получало "отбой" со стороны TDM в состоянии Calling, то после перехода в исходное в канал продолжал передаваться сигнал КПВ. Исправлена ошибка: при включении избыточности для полупостоянного потока RTP поток RTP генерировался, но не принимался платой.
Канальное окончание FXO теперь может передавать номер вызываемого абонента декадными импульсами. Канальным окончаниям FXS добавлен конфигурационный флаг, позволяющий принимать декадно-импульсный набор номера даже при больших отклонениях параметров импульсов от требуемых стандартами (например от аппаратов с дисковыми номеронабирателями). Добавлена возможность изменять настройки журналирования платы записью значения переменной (через веб-интерфейс). Исправлена ошибка: если канальному окончанию установлен флаг "Принимать только TLS", при получении INVITE через небезопасный транспорт код ответа устанавливался в 486 даже если вызываемый URI не совпадал с URI канальных окончаний.
Устранена проблема ложного разрыва соединений по таймауту RTP. Устранена проблема отсутствия связи с платой по IPv6 из-за неприема некоторых мультикастовых пакетов, в том числе запросов NDP.
Устранен вывод в журнал ложного сообщения "starting RTP stream to ...", который мог происходить через 2 минуты после старта медиапотока. Исправлена ошибка: при использовании функции Session Timer для обновления таймера шлюз мог генерировать сообщения UPDATE с неверным значением хоста в поле Contact.
Добавлен новый тип канального окончания: МБ (2100 Гц).
Добавлен новый тип канального окончания: R2DTMF. Оптимизирован алгоритм обработки ответа на предложение SDP: в некоторых случаях устранено ненужное пересоздание медиапотока при ответе абонента, приводившее к заметному на слух прерыванию звука. Улучшен алгоритм активации медиапотока и генерации сигнала КПВ: теперь медиапоток всегда имеет приоритет, а местный сигнал КПВ генерируется при получении ответа 180 только в случае отсутствия медиапотока. Исправлены опечатки в выводимых в системный журнал сообщениях. Исправлена ошибка, которая могла приводить к перезагрузке платы в случае завершения транзакции INVITE по таймауту.
Библиотека openssl обновлена до версии 1.0.2q. Библиотека c-ares обновлена до версии 1.15.0. Библиотека pcre обновлена до версии 8.42. Добавлена поддержка расширения 100rel (надежная передача предварительных ответов). Улучшен алгоритм обновления параметров уже существующего медиапотока: устранено прерывание медиапотока в случаях, если кодек, Payload Type и ключи шифрования не изменились. Улучшена фильтрация СУВ канальным окончанием FXO: кратковременные (короче 50 мс) импульсы 1 теперь полностью игнорируются (ранее приводили к инкременту счетчика числа звонков). Улучшен алгоритм передачи вызова канальным окончанием FXS: теперь выполняется проверка поддержки удаленными UAS сообщения REFER и расширения replaces. UAS, которому будет отправлен REFER, теперь выбирается с учетом этой проверки. Улучшен алгоритм объединения двух соединений в конференцию канальным окончанием FXS: если одно из имеющихся соединений является фокусом конференции, вместо создания новой конференции второе соединение передается уже существующей конференции. Исправлена ошибка: при получении канальным окончанием FXS сообщения NOTIFY, уведомляющего о выполнении ранее отправленного REFER, при анализе поля Event не учитывалась возможность наличия параметров. Исправлена ошибка: в случае невозможности активировать медиапоток канальным окончанием PRI происходил односторонний отбой (только в направлении сети IP). Исправлена ошибка: при посылке reINVITE фокусу конференции абонентом, создавшим конференцию, поле Contact ответа содержало URI Conference-factory вместо URI фокуса конференции. Исправлена ошибка: если уже существующему полупостоянному потоку RTP, у которого отсутствует входящий медиапоток, запретить использование VAD, авария LOS не появлялась. Исправлена ошибка: если во время транзакции INVITE (например во время ожидания ответа вызываемого абонента) происходила новая транзакция в этом же диалоге, то ответ на первоначальный INVITE не передавался. Исправлена ошибка: канальное окончание 256 не отправляло в плату SW-01 уведомления об изменении настроек ДВО. Исправлена ошибка: изменения конфигурационного параметра "SIP прокси" канальных окончаний не применялись к уже выполненной регистрации.
Прокси-сервер repro обновлен до версии 1.10.2. Улучшен алгоритм определения встречного занятия канальными окончаниями 1IND в случаях получения сигнала "Ответ" до набора первой цифры. При регистрации SIP UA формируется AOR без учета номера порта. Это позволяет получать входящие вызовы юзер-агентам, указывающим при регистрации неверные номера портов (например 5060 вместо 5061 при работе через транспорт TLS). Добавлена функция административной блокировки входящей и исходящей связи абонентам канальных окончаний FXS. Добавлена функция ограничения некоторых видов связи канальным окончаниям FXS. Исправлена ошибка: после соединения с использованием SRTP при запросе ввода пароля канальному окончанию FXS вместо голосовых фраз воспроизводилось шипение.
Добавлена функция синхронизации регистраций SIP-пользователей с платой SW-01. Канальным окончаниям 1IND добавлен конфигурационный параметр "Инверсия СУВ". Канальным окончаниям 1IND добавлен конфигурационный флаг, разрешающий использование сигнала "Снятие ответа" и детектирование тонального сигнала 500 Гц. Канальным окончаниям 1IND добавлен конфигурационный флаг, при установке которого первый сигнал "Ответ" не воспринимается как запрос АОН, если не сопровождается тональным сигналом 500 Гц. Канальным окончаниям 1IND добавлен конфигурационный параметр "Межцифровая пауза", позволяющий регулировать значение пауз между сериями импульсов набора номера. Канальным окончаниям 1IND добавлен конфигурационный параметр "Пауза межгорода", позволяющий устанавливать дополнительную паузу в процессе передачи номера после префикса межгорода. Улучшена организация взаимодействия с SW-01 по шине управления. Уменьшена вероятность ложного пропадания платы. Исправлена ошибка, которая могла приводить к падению и последующей перезагрузке платы при отбое поставленного на холд соединения канального окончания FXO.
Канальным окончаниям FXS добавлена функция выдачи дополнительного сигнала готовности после набора префикса межгорода. Канальным окончаниям FXO добавлена функция автоматической блокировки при обрыве линии. В случае отсутствия dialtone в линии канальное окончание переходит в состояние NoDialtone и не принимает вызовы со стороны сети IP. В этом состоянии канальное окончание периодически проверяет линию на появление dialtone. В случае появления dialtone канальное окончание переходит в исходное. Исправлена ошибка: при поступлении очень короткого (менее 50 мс) нуля в канале СУВ A (сигнал вызова) канальное окончание FXO могло перейти в состояние Ringing и оставаться в нем неопределенно долго (независимо от параметра "Таймаут звонка") до поступления следующего нуля по СУВ А.
Голосовая фраза "Ваш звонок был завершен" изменена на "Извините, ваш разговор прерван более приоритетным вызовом". Исправлена ошибка, приводившая к перезагрузке платы, если канальное окончание 1IND получало пакет АОН, содержащий менее 18 символов.
Устранены перезагрузки платы, которые могли происходить при использовании полупостоянных потоков RTP с включенной функцией передачи СУВ. Исправлена ошибка: если у канального окончания FXS сконфигурирован режим "горячая линия", и после посылки вызова, но до получения ответа происходило размыкание шлейфа длительностью, менее чем на 50 мс превышающей максимальную длительность сигнала flash, выполнялся новый вызов, при этом предыдущий вызов не снимался.
Параметры прокси-сервера "Прекратить поиск после нахождения маршрутов" и "Параллельный вызов маршрутов" теперь конфигурируются через веб-интерфейс платы SW-01. В маршрутах SIP теперь используются Perl Compatible Regular Expressions (PCRE) вместо регулярных выражений POSIX.
Добавлен глобальный конфигурационный параметр, устанавливающий максимальное число участников конференции для встроенного фокуса конференций. Допустимые значения - от 3 до 99. Устранена проблема: если после набора номера окончанием FXS абонент кладет трубку в тот момент, когда сообщение INVITE уже отправлено, но ответ от прокси-сервера еще не получен, посланный вызов не снимался. Устранены перезагрузки платы при получении некоторых типов оповещений ALERT от медиапроцессора (MSP). Исправлена ошибка: при принудительном отбое соединения нажатием красной кнопки в веб-интерфейсе канальные окончания 1IND и MFC R2 не передавали отбой в сторону канала TDM, в результате чего происходил односторонний отбой.
Встроенный в плату фокус конференции теперь поддерживает шифрование (RTP/SAVP). Добавлена поддержка расширенного набора голосовых кодеков: GSM, G728, iLBC, GSM-EFR, AMR, GSM-HR-08, EVRC, EVRC0, EVRCB, EVRCB0. Состояние Ringing канального окончания PRI переименовано в Proceeding. Это точнее отражает суть процесса. При отбое соединения ISDN PRI со стороны IP запускается таймер ожидания RELEASE. Если в течение 10 секунд RELEASE не приходит, выполняется сброс канала. При приеме вызова со стороны ISDN PRI голосовому каналу TDM устанавливается закон кодирования, указанный в Bearer Capability сообщения SETUP. Устранен вывод в лог ложного сообщения об ошибке при уничтожении канального окончания АДАСЭ. Устранен вывод в лог ложного сообщения об ошибке при создании сигнального канала транка ISDN PRI. Исправлена ошибка: если маршрутизатор IPv6 анонсирует префиксы с нулевым временем жизни, адрес с таким префиксом мог быть выбран платой VE-01 в качестве основного адреса IPv6. Теперь адреса с такими префиксами игнорируются платой. Исправлена ошибка: запросы NDP могли отправляться на неверный мультикастовый адрес ethernet. Исправлена ошибка: не изменившийся со времени прошлого запроса MAC адрес внешнего хоста IPv6 воспринимался платой как ошибка получения MAC адреса, что приводило к ложной индикации аварии "Remote host down". Исправлена ошибка: не уничтожались канальные окончания с типом отличным от VoIP (TAP, сигнальный канал ISDN PRI), что приводило к невозможности создать другой тип окончания с тем же номером канала. Исправлена ошибка, которая могла приводить к невозможности создать новое соединение после использования кодеков G726.
Увеличена "длина хвоста" эхоподавителя до максимально возможного значения. Исправлена ошибка: у канальных окончаний FXO и ISDN PRI после выполнения трансфера соединения мог возникать односторонний отбой.
Устранен вывод в системный лог сообщений типа "ts 5: CIPHER_SRTP_OPT request failed" (это не является ошибкой). Канальным окончаниям АДАСЭ добавлен конфигурационный флаг, разрешающий принимать из канала TDM набор номера DTMF. При поступлении канальному окончанию АДАСЭ приоритетного вызова перед разрывом существующего соединения в направлении сети IP воспроизводится голосовая фраза "Ваш звонок был завершен". Если в ответе "200 OK" вызываемого абонента присутствует заголовок P-Asserted-Identity или P-Preferred-Identity, в CDR устанавливаются параметры вызываемого абонента, указанные в заголовке. Устранена регрессия: в прошивках ревизий 35 и 36 при создании полупостоянных потоков RTP с включенной функцией "Передавать СУВ" СУВ не передавались.
Канальным окончаниям PPS добавлен конфигурационный параметр "Отключать регенераторы при отбое со стороны IP". Канальным окончаниям АДАСЭ добавлена функция "Приоритет диспетчера": при получении вызова от абонента, номер которого совпадает с значением параметра "Горячая линия" при занятии 1600 Гц", текущее соединение разрывается, и устанавливается новое. Канальное окончание АДАСЭ теперь поддерживает указание домена в конфигурационных параметрах "Горячая линия". Повышена надежность распознавания факса и перехода в режим T.38. При окончании передачи факса переход из режима T.38 в режим голоса теперь выполняется не сразу после получения от факс-машины сообщения DCN, а по таймауту неактивности. При работе нескльких шлюзов в паре это дает удаленному шлюзу время на генерацию в канал сообщения DCN для удаленной факс-машины. Окончаниям FXO добавлен конфигурационный параметр "Игнорировать наличие гудка". При установке этого флага окончание FXO выдерживает паузу "Таймаут гудка" после занятия линии, после чего начинает набор номера независимо от того, был в линии dialtone или нет. Эта функция может использоваться на линиях с нестандартным dialtone. Добавлена пауза 800 мс, которая выдерживается после окончания воспроизведения голосового сообщения перед отбоем соединения. Это помогает устранить обрывы окончания фразы из-за того, что некоторые телефонные аппараты не успевают закончить воспроизведение медиапотока из внутреннего буфера на момент получения отбоя. При создании конференции в ее URI добавляется параметр x-id со случайно генерируемым значением. При получении запросов INVITE и REFER фокус конференции проверяет наличие этого параметра, и если он отсутствует или неверен, отклоняет запрос. Это защищает конференцию от неавторизованного подключения. Изменен алгоритм трансфера: после отправки первого NOTIFY ("100 Trying") ожидается ответ на NOTIFY, и только после получения ответа отправляется INVITE. Это исключает гонки, когда ответ на INVITE мог придти раньше ответа на NOTIFY, в результате чего новый (финальный) NOTIFY не мог быть отправлен. При получении уведомления (NOTIFY) об успешном выполнении трансфера инициатор трансфера разрывает старое соединение, не полагаясь на то, что оно будет разорвано исполнителем. Если канальному окончанию разрешены и RTP, и SRTP, то в предложении SDP формируются описания двух медиапотоков: RTP/SAVP и RTP/AVP. При ответе на предложение SDP, если использование SRTP запрещено, и в предложении есть медиапоток RTP/AVP, используется он. Если же в предложении был только медиапоток RTP/SAVP, то в ответе выбирается он, но не генерируются ключи (нет атрибута crypto), как это и было раньше. При ответе на предложение SDP, содержащее несколько медиапотоков, в ответе сохраняется количество и порядок следования медиапотоков, перечисленных в предложении, как того требует RFC3264. В ответе на предложение SDP время сессии копируется из предложения (требование RFC3264). Ранее всегда указывалось 0 0. Исправлена ошибка, которая могла приводить к падению при изменении семейства адресов медиапотока (например если соединение было установлено по IPv6, а затем выполнен REINVITE с выбором IPv4). Исправлена ошибка: при переводе канального окончания, использующего SRTP, на hold и последующем снятии с hold могли неверно инициализироваться параметры шифрования, что приводило к шипению вместо звука в канале. Исправлена ошибка: в случае таймаута ожидания ответа на вызов со стороны IP канальное окончание АДАСЭ освобождало канал, но не давало ответ вызывающему. Исправлена ошибка: запрос регистрации канальных окончаний шлюза отправлялся через транспорт UDP независимо от установки транспорта в конфигурации окончания. Исправлена ошибка: в режиме буферизации медиапотока "Адаптивный 2" минимальный размер буфера был вне допустимого диапазона (больше максимального).
Добавлена поддержка канальных окончаний АДАСЭ. Исправлена ошибка: функция stopTone() могла выполняться для уже отключенного канала, что приводило к выводу в лог сообщений типа "sip_ua[363]: comcerto.cpp:5277: ts 17: stopTone() failed (result=-1)".
Добавлена функция отбоя по таймауту медиапотока RTP. Добавлена функция замены по регулярному выражению номера вызывающего абонента, приходящего со стороны TDM. Уменьшена строгость детектирования начала посылки Caller-ID окончаниями FXO, добавлена поддержка формата посылки SDMF, что позволяет получать Caller-ID от большего числа различных АТС. Исправлена ошибка: если посылки вызова в линии окончания FXO прекращались до достижения заданного параметром "Число звонков" значения, определившийся номер вызывающего продолжал отображаться в столбце "Вызывающий".
При старте платы добавлено ожидание окончания процесса начального сканирования файловой системы JFFS2 перед активацией watchdog таймера. Это помогает устранить перезагрузки при большой заполненности файловой системы. Устранена проблема: при невозможности приема вызова со стороны линка ISDN PRI (например из-за неподдерживаемых Bearer Capabilities) вызывающему не отправлялось сообщение DISCONNECT, и вызов завершался по таймауту. Теперь передаются сообщения PROCEEDING с последующим DISCONNECT. Канальным окончаниям ISDN PRI добавлен конфигурационный параметр, разрешающий принимать вызовы с Bearer Capability "3.1k audio" дополнительно к "Speech". Библиотека libpri обновлена до версии 1.6.0. Об изменениях можно прочитать здесь: http://downloads.asterisk.org/pub/telephony/libpri/ChangeLog-1.6.0 Библиотека openssl обновлена до версии 1.0.2l. Об изменениях можно прочитать здесь: https://www.openssl.org/news/cl102.txt Библиотека c-ares обновлена до версии 1.12.0.
Добавлен новый тип канальных окончаний PPS для работы с радио-рестрансляторами ППС-Р3. Разрешен прием запросов REGISTER с Content-Type: multipart/mixed (некоторые телефоны Cisco передают такой запрос). Ранее плата отказывалась принимать такой запрос, отвечая кодом 415.
Добавлена функция загрузки таблицы маршрутизации SIP из платы SW-01. См. https://trac.adc-line.ru/sw-01/wiki/VeSipRouting Переделана функция "перехват вызова": теперь перехватывать вызовы могут не только канальные окончания FXS, но и SIP-пользователи. См. https://trac.adc-line.ru/sw-01/wiki/VeCallIntercept Исправлена ошибка: при отправке сообщений REGISTER и начального INVITE не учитывались конфигурационные параметры "SIP прокси" и "Регистратор".
Улучшена поддержка работы с юзер-агентами, указывающими неверное (нестандартное) название аудио-кодеков в SDP (например некоторые UA от Cisco/Linksys указывают "G729a" вместо "G729"). Теперь шлюз VE-01 нечувствителен к подобным ошибкам. Исправлена ошибка: при анализе SDP аудио-кодек, в атрибуте rtpmap которого явно указаны encoding-parameters (например a=rtpmap:8 PCMA/8000/1), считался неподдерживаемым.
Сделана поддержка Session Timer (RFC4028): канальным окончаниям SIP добавлен конфигурационный параметр Session-Expires. По умолчанию Session-Expires равен нулю, что означает не использовать Session Timer. При организации конференций активируется Session Timer с параметром Session-Expires равным 1800. Окончаниям FXS добавлена настройка диапазона длительностей сигнала Flash: минимальная длительность всегда 80 мс, максимальная выбирается из значений 100, 200, 300, 400, 600 или 900 мс. Значение по умолчанию - только 80 мс. У окончаний FXS при нажатии Flash в предответном состоянии текущего соединения текущее соединение отбивается. Улучшено определение сигнала "Занято" канальными окончаниями FXO: границы длительности сигнала и паузы между ними установлены в 290...500 мс. Добавлен конфигурационный параметр, определяющий количество циклов сигнала "Занято" подряд, после которых выполняется отбой. Значение 0 полностью отключает отбой по сигналу "Занято". Улучшена генерация сигнала "Занято": длительности посылки и паузы сделаны по 350 мс (было 500 мс). Улучшена работа канальных окончаний MFC R2 в режиме T.38: при изменении СУВ А в режиме T.38 выполняется отбой (ранее отбой происходил по таймауту приема/передачи факса). Изменен алгоритм создания конференции методом "REFER конференции": теперь transfer второго соединения в конференцию выполняется не после получения ответа 202 на первый REFER, а после получения завершающего NOTIFY (т.е. после полного окончания трансфера). Добавлен прием и генерация поля P-Asserted-Identity. Благодаря этому при переводах вызовов обновляется информация о вызывающем и вызываемом абонентах, отображаемая в веб-интерфейсе и у других юзер-агентов. Улучшена работа с SRTP: однажды выбранные crypto_suit и ключ теперь запоминаются в параметрах соединения, и в последующих REINVITE и при ответах на предложение SDP той же сессии используется уже имеющийся ключ (ранее генерировался новый ключ, и смена ключа приводила к заметному на слух прерыванию сигнала). Обновлено ПО медиапроцессора (MSP). Исправлена генерация CDR при параллельных вызовах (например при использовании функции "Групповой вызов"). Ранее в подобных случаях CDR не формировались. Исправлена ошибка: в некоторых случаях после выполнения Call Transfer при ответе вызываемого могла возникнуть ошибка, приводившая к одностороннему отбою. Исправлена ошибка: в некоторых случаях если абонент окончания FXS делал исходящий вызов, переводил соединение на Hold и клал трубку, начинал звенеть звонок, а при последующем поднятии трубки абонент слышал тишину. Исправлена ошибка: если канальное окончание ставили на Hold, а затем отбивали, то ему в линию не передавался сигнал "Занято". Исправлена ошибка: если на момент включения платы у окончания FXS был замкнут шлейф, то окончание оставалось в состоянии Idle. Если на такое окончание поступал вызов, то сразу происходил ответ. Теперь при создании окончания FXS проверяется состояние СУВ A, и если он равен нулю, канал активируется (переходит в состояние Dialtone). Исправлена ошибка формирования предложения SDP в режиме T.38: строка connection была в секции media, теперь глобальная. Исправлена ошибка формирования ответа SDP в режиме T.38: строка connection присутствовала дважды: в секции media и глобальная. Оставлена глобальная. Исправлена ошибка проверки безопасного транспорта: в случае, если сообщение проходило через прокси-сервер несколько раз (при использовании функции группового вызова и/или изменении типа транспорта), оно могло быть ошибочно отмечено как полученное через безопасный транспорт и быть принято канальным окончанием с флагом "Принимать только TLS". Исправлена ошибка, приводившая к падению при получении сообщения REFER, значение поля Refer-To которого имеет формат Name-Addr (ранее предполагалось, что значением является URI). Исправлена ошибка: получение в SDP невалидного IP адреса (например адреса IPv4 при указании семейства IP6) могло приводить к падению. Устранена проблема: при попытке уничтожить только что созданный канал FoIP (Fax over IP) MSP возвращал ошибку. Ошибка устранена задержкой перед уничтожением канала. Устранена возможная утечка памяти, возникавшая при получении запросов SUBSCRIBE, на которые на давалось окончательных ответов. Теперь на запрос SUBSCRIBE сразу дается ответ 405.
Исправлена ошибка, которая могла приводить к отсутствию слышимости и перезагрузке платы при изменении адреса IPv6. Исправлена ошибка: при изменении адреса платы полупостоянные потоки RTP не изменяли свой локальный адрес отправителя, в результате каналы могли находиться в состоянии "Error" или "LOS".
Добавлен тип канальных окончаний "MFC R2" (соединительная линия с многочастотной сигнализацией R2). В конфигурацию IPv6 добавлен вариант, при котором использование IPv6 полностью отключено. Исправлена ошибка фильтрации дребезга СУВ в канальных окончаниях "1ВСК индуктивный код". Ошибка могла проявляться как переход окончания в состояние RBlocked при появлении короткого (меньше 10 мс) "нуля" на СУВ A.
Добавлена функция "групповой вызов" ("параллельный вызов"): при получении вызова группы вызов "ветвится" на всех членов группы. Добавлена функция "Перехват вызова" окончаниями FXS: одно окончание FXS может перехватить вызов другого окончания FXS, если они принадлежат одной и той же "группе перехвата". Добавлена поддержка работы по протоколу IPv6. Добавлена поддержка расширенных проверочных кодов (CRC16, CRC32) на управляющей шине кроссплаты. Изменена отправка уведомлений при получении сообщения REFER: теперь сразу при получении REFER отправляется NOTIFY с кодом "100 Trying", а при получении окончательного ответа на INVITE - новый NOTIFY с кодом завершения INVITE. Исправлена ошибка: при получении некорректно сформированного SDP предложения в некоторых случаях плата могла перезагружаться. Исправлена ошибка формирования аварий "MF lost", приводившая к тому, что эти аварии не очищались при отключении аварийного потока E1 или при переводе платы в режим канальной платы. Исправлены ошибки фильтрации дребезга СУВ окончаниями FXS. Ошибки проявлялись как отбой в момент снятия трубки при входящем вызове, если снятие трубки дает три переключения СУВ "A" вместо одного.
Исправлена ошибка: при переводе канальных окончаний TDM на hold им не проигрывалась музыка. Исправлена ошибка, которая могла приводить к перезагрузке платы при смене IP адреса. Исправлена ошибка, которая могла приводить к отсутствию синхронизации времени платы VE-01 с сервером платы SW-01.
Добавлена поддержка SRTP (Secure RTP) окончаниям SIP и полупостоянным RTP потокам. Полупостоянным RTP потокам добавлена возможность включения VAD, отключения комфортного шума, отключения эхоподавления и включения VBD. Исправлена ошибка: у полупостоянных RTP потоков не работала передача СУВ при установке для СУВ Payload Type 101. Исправлена ошибка, в результате которой не включался режим VAD, и не работала установка скорости G.723 (5.3/6.3 кбит/с).
Добавлена поддержка передачи факсов по протоколу T.38. Исправлена ошибка: окончания FXO не детектировали сигналы dialtone и "занято", что приводило к непрохождению вызовов в сторону TDM. Исправлена ошибка, в результате которой в веб-интерфейсе не отображалось состояние каналов 255 и 256. Исправлена ошибка: при отсутствии поддерживаемого кодека в принятом предложении SDP передавался ответ с неверным кодом 406 вместо 488. Исправлена ошибка, которая могла приводить к перезагрузке платы при получении INVITE с предложением сессии T.38. Исправлена ошибка: при получении REINVITE не всегда выполнялась проверка наличия поддерживаемого аудио-кодека в предложении SDP.
Добавлен встроенный SIP прокси-сервер. Подробности об этом смотрите здесь: https://trac.adc-line.ru/sw-01/wiki/VeSipProxy Сделан прием файла публичных ключей SSH из платы SW-01. Доступ по SSH с помощью пароля запрещен. В окончаниях ISDN PRI при получении SETUP с пустым номером вызываемого в канал генерируется акустический сигнал готовности станции (dialtone). При ответе на предложение SDP теперь используются те же значения RTP payload type, что были в предложении. Исправлено поведение при получении ответа на предложение SDP, в котором event pt отличается от переданного в предложении: мы передаем события с pt, полученным в ответе, и ожидаем с pt, переданным в предложении. Исправлена ошибка: при рестарте контроллера PRI (например при изменении типа узла), находящегося в состоянии UP, отображаемое состояние не изменялось на DOWN. Исправлена ошибка: время платы VE-01 не всегда синхронизировалось с платой SW-01. Исправлена ошибка: происходило падение при попытке вызвать SIP URI без имени пользователя. Исправлена ошибка: если у окончания FXS снимали трубку в момент деактивации канала, канал не активировался, и в трубке не было сигнала готовности станции. Исправлена ошибка: если окончанию FXS в деактивированном состоянии канала приходил кратковременный импульс по СУВ a (помеха в линии), канал активировался и оставался в активном состоянии. Исправлена ошибка: не проверялось разрешение и активация услуги ожидания вызова, если вызов поступал конкретному канальному окончанию (присутствовал параметр line в request URI).
В окончаниях FXS в режиме "Flash + цифра", когда имеется два вызова, нажатие Flash отправляет активное соединение на холд, а в линию выдает гудок (готовность к приему цифры). Изменена логика работы conference factory: теперь при создании новой конференции вызывающему абоненту больше не возвращается ответ "302 Моved temporarily", вместо этого вызов сразу передается созданному фокусу конференции, который, в свою очередь, сразу возвращает "200 OK". Релизован новый метод организации конференции окончаниями FXS: сообщения REFER направляются не абонентам, а фокусу конференции, который, в свою очередь, посылает абонентам INVITE с Replaces. Это теперь метод по умолчанию. Объединение в конференцию посылкой REFER абонентам сохранено как опция. Из заголовка Allow сообщений SIP убрана присутствовавшая там по ошибке UPDATE. В окончаниях FXS, FXO, 1IND и PRI реализована опция, запрещающая исходящие вызовы при отсутствии регистрации на сервере регистрации. Изменена логика работы режима VBD. Если VBD не запрещен в настройках канального окончания SIP, но не был согласован удаленной стороной по SDP, и при этом был выбран кодек G711 с законом кодирования, совпадающим с законом кодирования TDM канала, то при детектировании сигналов факса/модема режим VBD включается локально - только на одной стороне и без изменения payload type в пакетах RTP. Сделана поддержка inbound late negotiation (входящий INVITE без SDP и SDP answer в ACK). Сделаны конфигурируемыми цифры услуг, предоставляемых во время соединения в режиме Flash + цифра. Окончаниям FXS добавлена возможность выполнять передачу вызова (Call transfer) комбинацией Flash+цифра. Добавлена глобальная опция, запрещающая передачу вызова простым опусканием трубки. При выполнении передачи вызова, в случае получения неуспешного ответа на REFER, выполняется отбой обоих соединений. Улучшена стабильность работы окончания FXS при переключении между активным и удерживаемым соединениями (ранее иногда возникала односторонняя слышимость). Исправлена ошибка: если канал отключился в состоянии Busy (по таймауту 1 минута), то последующее размыкание шлейфа приводило к активации канала, но канал при этом оставался в состоянии BUSY. Теперь при размыкании шлейфа канал не активируется, а переходит в состояние Idle.
Добавлен DHCP-клиент для динамического получения настроек сети от DHCP сервера. В качестве локального домена теперь принимается не только текущий IP адрес, но и 127.0.0.1. Это позволяет конфигурировать локальных (TDM-only) абонентов одновременно с использованием динамического (DHCP) адреса. Изменение IP адреса теперь немедленно вступает в силу, рестарт платы теперь не требуется. Постоянным потокам RTP добавлен размер пакета (ptime) 90 мс. Добавлена поддержка избыточности полупостоянных RTP потоков. Добавлено состояние полупостоянных RTP потоков "Error", индицирующее ошибку установка параметров RTP. Исправлена ошибка: если в процессе работы полупостоянного RTP потока пропадал удаленный хост, и появлялась ошибка "Remote host down", при последующем появлении удаленного хоста с прежним MAC адресом авария "Remote host down" не пропадала.
Окончаниям FXS добавлен конфигурационный параметр "Префикс межгорода". Улучшена процедура загрузки звуковых файлов после обновления прошивки платы (теперь файлы копируются в ПЗУ только если они там отсутствуют или при несовпадении MD5 хэша). Добавлена поддержка кодеков G722, G726-16, G726-24, G726-32 и G726-40. Добавлена возможность настройки набора и приоритета кодеков для каждого канального окончания. Добавлены конфигурационные параметры для запрета эхоподавления, запрета VAD, VBD, запрета комфортного шума, настройки скорости для кодека G723.1, размера RTP фреймов. Окончаниям FXS добавлены ДВО "Пароль на междугородные звонки", "Переадресация по времени", "Не беспокоить по времени", "Отключение всех ДВО". У окончаний FXS ДВО типа "Переадресация" сделаны более приоритетными чем режимы "Не беспокоить". Добавлены флаги разрешения ДВО. Если флаг не установлен услуга абоненту недоступна. Добавлена фраза "Ваш номер отключен за неуплату", которой в конфигурации можно присвоить произвольный код. После успешного ввода пароля при междугородном вызове абоненту передается фраза "Оставайтесь на линии, идет соединение...". Если входящий вызов не принят ни одним из канальных окончаний, перед выдачей ответа 404 произносится фраза "Вызываемый номер не существует". Приняты меры по увеличению устойчивости работы под большой нагрузкой (уменьшена вероятность перезагрузки по WDT). Исправлена ошибка: при получении INVITE с отключенным VAD для кодеков G723 или G729 (через атрибут annex=no) мы отключали использование VAD, но в ответном сообщении атрибут запрета VAD не указывали. Исправлена ошибка: при исходящем вызове SIP-пользователя, не зарегистрированного на момент вызова, вызывающему не передавался сигнал "Занято". Исправлена ошибка: при невозможности послать вызов в сторону IP сети окончание FXO оставалось в состоянии Calling. Теперь выполняется сброс линии. Также сделан принудительный отбой по команде оператора в любом состоянии. Исправлена ошибка: при установке платы на место, где не задана конфигурация, происходила перезагрузка платы при открытии окна конфигурации.
Окончаниям FXS добавлены ДВО "Не беспокоить", "Ожидание вызова", "Переадресация абсолютная", "Переадресация при занятости" и "Переадресация при неответе". Окончания FXS в режиме ДВО "flash + цифра" ожидают нажатия цифры после flash только если установлено два соединения. Исправлена ошибка: при изменении типа узла или типа коммутатора ISDN PRI существующие в B-каналах соединения не сбрасывались и оставались не в исходном состоянии. Исправлена ошибка: окончания 1IND могли передавать неправильную посылку АОН если номер взывающего длиннее 7 цифр и содержит нецифровые символы. Исправлена ошибка, приводившая к перезагрузке платы при получении INVITE с пустым именем пользователя в URI. Исправлена ошибка: при поступлении окончанию FXS второго входящего вызова в режиме "Ожидание вызова" после снятия вызова не прекращался акустический сигнал второго вызова.
Добавлена поддержка Voice Band Data (передача данных через голосовой канал, стандарт V.152). Реализовано динамическое создание/удаление соединений для снижения нагрузки на медиапроцессор и возможности использования процессоров меньшей емкости. Используется окончаниями FXS и PRI. Добавлена дополнительная индикация "Активность" (процент задействованной канальной емкости). Добавлена поддержка запроса SIP INFO, на который всегда дается ответ 200 OK (используется некоторыми серверами для контроля существования соединения). В транках ISDN PRI реализован overlap-вызов. В транках ISDN PRI сделана генерация сигнала КПВ в каналы TDM при отстуствии медиапотока со стороны IP. В настройках транка ISDN PRI теперь можно устанавливать тип коммутатора (по умолчанию E1 EuroISDN). Для RTP-потоков индицируется авария, если хост-получатель не отвечает на ARP запросы. Допустимый диапазон длительности импульсов набора номера сделан 40...65 мс для надежного определения нажатия flash с номиналом 80 мс. В канальных окончаниях FXS реализован альтернативный режим ДВО: "flash + цифра". В нем поддерживается переключение между двумя соединениями (flash+1), отбой текущего соединения (flash+2) и конференция трех абонентов (flash+3). Добавлена глобальная настройка Conference Factory URL для создания конференций абонентов. По умолчанию (если URL не установлен) используется собственный (встроенный в плату) сервис конференций. Добавлены ДВО "Скажи мой номер" и "Текущее время". При получении REINVITE учитывается, находится ли соединение в состоянии удержания, и поток RTP в таком случае не активируется. Добавлена функция Call Waiting: теперь окончания FXS в процессе разговора принимают второй вызов, который идет на удержание, при этом в канал вызываемого абонента на фоне разговора выдается тональный сигнал о поступлении нового вызова. Кодек PCMA сделан более приоритетным, кодек GSM исключен из списка поддерживаемых. При получении INVITE (REINVITE) с отключенным медиапотоком (recvonly или inactive) в канал абонента проигрывается музыка. Исправлена ошибка: некоторые настройки ISDN PRI (уровни, АРУ) не применялись к B-каналам. Исправлена ошибка: соединения ISDN PRI могли раньше времени перейти в состояние Connected, в результате чего игнорировался реальный ответ вызываемого абонента. Исправлена ошибка: при получении каналом ISDN PRI медиапотока со стороны IP могло не отправляться сообщение PROCEEDING, в результате чего удаленный абонент не знал о наличии медиапотока. Исправлена ошибка: при изменении только одной из настроек сети (например адреса) могла теряться настройка маски сети и/или адреса шлюза. Исправлена ошибка: если во время разговора абонент окончания FXS нажимал Flash и ставил собеседника на удержание, а затем, не набирая номера, снова нажимал flash для возврата к существующему соединению, возникала односторонняя слышимость. Исправлена ошибка: при выполнении трансфера не очишалась информация о наличии второго соединения, в результате чего последующее нажатие flash во время разговора не приводило к появлению dialtone и возможности набрать номер. Исправлена ошибка: при выполнении трансфера с участием SIP UA, зарегистрированных в плате, в поле Refer-To сообщения REFER указывался локальный URI абонента вместо его контакта, что приводило к неправильному выполнению трансфера. Исправлена ошибка: при получении INVITE с полем Replaces поиск соединения выполнялся только для транспорта UDP. Исправлена ошибка: при обработке сигнализации ISDN PRI могла возникать рекурсия, приводившая к перезагрузке платы.
Исправлена ошибка: канальное окончание TAP не удаляло из принятого фрейма 4 служебных байта, неверно устанавливался MTU интерфейса (1007 вместо 1006). В канальных окончаниях FXS и PRI устанавливается номер вызывающего абонента при вызовах TDM -> IP. Ограничен поток TRAP-сообщений при частом появлении/пропадании аварии (TRAP отправляется не чаще чем раз в ~500 мс), что повышает устойчивость работы. Сделана поддержка регистрации SIP UAС с отсутствующим полем Expires в запросе REGISTER, но с параметром expires в поле Contact.
Исправлена ошибка передачи DTMF цифры '0' (передавалась как '#').
Окончаниям FXO добавлена функция дополнительной паузы после префикса межгорода. Также паузу можно вводить добавлением символа 'p' в вызываемый номер. Исправлена ошибка: окончания FXO не определяли сигнал готовноcти станции (dialtone).
Реализована отправка в плату SW-01 CDR-записей при окончании любого состоявшегося соединения. Реализована конфигурация размера джиттер-буфера всех канальных окончаний. Реализована функция registrar-сервера. Теперь SIP UA могут регистрироваться в плате. Исходящие INVITE для зарегистрированных пользователей направляются в соответствии с их полем Contact:. Реализован таймер максимального времени соединения. Запускается при ответе вызываемого абонента, при срабатывании дает отбой. Окончания FXS при положенной трубке переводятся в неактивный режим. Это позволяет иметь в системе больше абонентов FXS, чем максимально доступное число активных каналов. Реализована инициативная передача состояний канальных окончаний в плату SW-01 для сокращения времени обновления информации в веб-интерфейсе при большом числе каналов. Добавлена поддержка категории абонента: при приеме INVITE категория берется из параметра cpc, при выдаче в канал посылки АОН передается реальная категория абонента (если параметр cpc состоит из одной цифры), при получении ответа на запрос АОН принимается категория абонента, и передается в параметре cpc поля from при исходящем INVITE. Окончаниям 1IND и R1.5 добавлен параметр def-category, устанавливающий категорию в посылке АОН по умолчанию (когда в SIP INVITE категория отсутствует). Окончаниям 1IND добавлен параметр "Префикс межгорода". Если номер начинается с этого префикса, то канал занимаем коротким импульсом, а не длинным. Окончаниям 1IND добавлен параметр "Шаблон посылки АОН". Он используется в случае, если номер вызывающего абонента короче 7 цифр, для дополнения номера справа до 7 цифр. В окончаниях 1IND при получении сигнала "Ответ" когда набраны не все цифры номера, выдается посылка АОН без ожидания запроса 500 Гц. В окончаниях 1IND при получении сигнала "Снятие ответа" набор очередной цифры начинается не сразу, а после межцифровой паузы. В окончаниях 1IND изменена логика выдачи посылки АОН: теперь первый сигнал ответа всегда считается запросом АОН, а последующий - ответом абонента. Запрос 500 Гц больше не детектируется. В окончаниях 1IND при приеме вызова из IP добавлена проверка состояния СУВ А. Если он активен, окончание считается занятым, что позволяет заблокировать канал с удаленной стороны. Окончания 1IND после передачи посылки АОН переходят в предответное состояние и продолжают набор номера без ожидания сигнала "Снятие ответа". Окончания 1IND не передают сигнал "Снятие ответа" после передачи посылки АОН. Окончания 1IND при входящем междугородном вызове занятого абонента дают сигнал "Отбой" вместо длинного сигнала (длинный сигнал на этом этапе воспринимается как "Абонент свободен"). Исправлена ошибка, приводившая к перезагрузке при приеме вызова из IP окончанием 1IND или R1.5 и наличии нецифрового символа в имени вызываемого абонента. Исправлена ошибка установки соединения RTP потоков при локальном соединении (на свой IP адрес) двух канальных окончаний (loopback mode). Исправлена ошибка, в результате которой окончание FXS могло не реагировать на самое первое после старта платы снятие трубки. Исправлена ошибка в окончаниях 1IND и R1.5: при получении отбоя со стороны IP во время передачи посылки АОН сигнал отбоя в канал не передавался. Исправлена ошибка, приводившая к пропаданию части каналов транка ISDN PRI.
Добавлены канальные окончания "TAP" для передачи IP пакетов через TDM канал. Добавлены канальные окончания "R2" с сигнализацией R2 (вариант ITU, национальные сети). Расширен синтаксис регулярных выражений. При задании регулярного выражения в формате "/<regexp>/<replacement>" выполняется функция замены, например "/^9(\d{7})$/7342\1" заменяет первую цифру "9" на "7342". Приняты меры по повышению устойчивости работы при высокой нагрузке. Исправлена ошибка окончаний 1IND: после отбоя мог остаться запущенным таймер T1, в результате его срабатывания могло отбиться более позднее соединение.
При отсутствии поддерживаемого кодека в принятом запросе INVITE вместо ответа 415 отправляется ответ 406. Изменен алгоритм фильтрации СУВ окончаниями FXS. Теперь изменение СУВ фиксируется только если он остается стабильным не менее 10 мс. Окончаниям FXS добавлен конфигурационный параметр, запрещающий отправку Caller ID. Окончаниям FXO добавлен конфигурационный параметр, запрещающий прием Caller ID. Добавлена установка значений TTL и DSCP для RTP и RTCP пакетов. Значения конфигурируются для каждого канала. Добавлена поддержка сигнализации "многочастотный импульсный челнок" и 2ВСК с декадным набором номера (местные односторонние СЛ). В окончаниях 1IND добавлен запрос и прием пакета АОН с номером вызывающего абонента. Исправлена ошибка: когда RTP поток шел с одного канала платы к другому каналу той же самой платы (локальное соединение), соединение могло не устанавливаться.
Добавлена поддержка соединительных линий с сигнализацией 1ВСК индуктивный код (1IND). Исправлена ошибка: если в конфигурации канального окончания было задано регулярное выражение, а затем оно было заменено пустой строкой, то в конфигурации канала сохранялось исходное регулярное выражение. Устранена утечка памяти, возникавшая при ответе на входящий INVITE и при отправке исходящего INVITE. Устранен deadlock транспорта TLS, возникавший при входящем соединении, если подключившийся хост не начинает SSL handshake, или если плата вызывала саму себя через транспорт TLS. Сделана более строгая проверка SSL сертификатов.
Добавлена поддержка транков ISDN PRI. Добавлены SIP транспорты TCP, TLS и DTLS. Убран кодек G722, ошибочно включенный в список поддерживаемых. Добавлена поддержка SIP метода REFER. Добавлена обработка SIP сообщений re-INVITE. Добавлена поддержка SIP INVITE с Replaces:. Добавлен флаг, запрещающий канальному окончанию принимать входящие SIP INVITE через небезопасное соединение (транспорты UDP и TCP). Окончаниям FXS добавлена возможность работы с двумя соединениями: отправка текущего соединения на удержание, второй вызов, переключение между соединениями, отбой с одновременной переадресацией одного соединения на другое. Добавлена поддержка атрибутов sendonly, recvonly и inactive в SDP. Также адрес 0.0.0.0 удаленной стороны трактуется как атрибут inactive. Исправлена ошибка парсинга SDP: ранее мог неверно определяться адрес удаленной стороны из строки c=. Исправлена ошибка: у потоков RTP не работала настройка "Маска RTP LOS" если в момент ее установки аварии LOS не было. Исправлена ошибка: не индицировалось состояние потоков RTP.
Устранена ошибка: канальное окончание FXO оставалось в состоянии Ringing при прекращении вызывных сигналов до посылки вызова в сеть IP.
Устранено возможное нарушение работы платы при замыкании шлейфа (ответе на вызов) порта FXS во время передачи CallerID. Исправлена ошибка: даже короткое (меньше 40 мс) размыкание шлейфа воспринималось окончанием FXS как отбой. Улучшено определение канальной емкости платы по типу установленного процессора. Сделан режим транка для окончаний FXO: входящие вызовы, не совпадающие ни с одним из локальных абонентов по username, могут быть приняты по регулярному выражению первым свободным окончанием FXO. В этом случае содержащийся в username номер передается в линию методом DTMF. Изменен механизм поиска вызываемого абонента. Теперь входящий вызов (без параметра line) передается первому свободному абоненту с заданным именем. Добавлена поддержка окончаний FXO. Исправлена ошибка, приводившая к перезагрузке при получении входящего INVITE без DisplayName в поле From:. Исправлена ошибка, приводившая к перезагрузке при попытке создать окончание неподдерживаемого на данный момент типа.
Исправлена ошибка инициализации каналов со 129 и выше. Они не работали из-за неверного идентификатора шины. Добавлена возможность соединения по SIP/RTP двух локальных абонентов. Исправлен поиск абонента при получении входящего вызова и отсутствии параметра line: теперь при поиске проверяется только username, имя домена не учитывается.
Добавлена функция "Горячая линия" для окончаний FXS. При форвардинге исходящего вызова на другой URI обновляется поле "Соединен с" в индикации состояния абонента.
Сделано согласование VAD в зависимости от типа кодека и атриутов (annexa/annexb) в SDP. Начальное значение общей аварии платы (переменная .3.0) после первой загрузки конфигурации устанавливается в зависимости от наличия аварий (раньше было всегда 0). При чтении аварий окончаний (переменные .10.x.10.0 - .10.x.19.0) возвращаются реальные значения (ранее всегда возвращался 0). Добавлен QoS мониторинг. Устранены гонки в мониторинге RTP. Устранена задержка между снятием регистрации на сервере и индикацией отсутствия регистрации в состоянии абонента. В поле Contact: в URI абонентов вместо "line-xx" пишется реальное username, а номер канала помещается в параметр line. При получении вызова сначала проверяется параметр line, и только при его отсутствии выполняется поиск абонента по URI (вызов идет первому найденному). Endpoint'ам добавлен конфигурационный параметр включения/выключения RTCP. Добавлен сбор статистики RTCP.
Добавлена возможность индикации текущей загрузки. SSRC всех RTP потоков генерируется один раз при старте платы. Добавлена возможность конфигурации CAS Payload Type для RTP потоков. Сделано экранирование символов '\' и '"' в поле From: SIP сообщений. Исправлен баг: при наборе номера импульсами первая цифра набиралась на фоне гудка. Теперь гудок выключается после первого импульса. Добавлен сбор статистики RTP потоков.