Asterisk 17. Что нового?

Asterisk 17. Что нового?

Команда разработчиков Asterisk объявила о первом выпуске Asterisk 17.0.0. Это релиз-кандидат доступен для скачивания и установки по адресу https://downloads.asterisk.org/pub/telephony/asterisk. Следует отметить, что в отличие от предыдущего кандидата (Asterisk 16 LTS, срок окончания поддержки 09.10.2023), версия Asterisk 17 Standart не является версией LTS, а версией стандарт и срок окончания ее поддержки закончится 28.10.2021.

Выпуск Asterisk 17 решает несколько проблем, о которых сообщало сообщество VoIP и Asterisk.

Основные улучшения в Asterisk 17

  1. Исправлен makemenuselect для Gentoo
  2. Исправлены значения записей CDR и CEL. Вместо использования метки времени сообщения Stasis, которое запускает действие, они используют метку времени обработки сообщения. Если резервная копия очереди и сервер обрабатывает запись некоторое время, то время будет неправильным. Оба должны использовать время создания сообщения Stasis вместо этого.
  3. Исправлен неверный вывод информации о каналах в PJSIP
  4. При запросе контактов в res_pjsip они дублировались при запросе cal*CLI> pjsip show contacts
  5. Изменен статус chan_sip на “deprecated”. Это означает, что с chan_sip снимается поддержка. Если вы не используете chan_pjsip, это то самое время, когда на него следует перейти. При старте Asterisk вы будете видеть следующее сообщение, которое не является ошибкой, а носит информационный характер
chan_sip.c:35350 deprecation_notice: chan_sip has no official maintainer and is deprecated. Migration to
chan_sip.c:35351 deprecation_notice: chan_pjsip is recommended. See guides at the Asterisk Wiki:
chan_sip.c:35352 deprecation_notice: https://wiki.asterisk.org/wiki/display/AST/Configuring+res_pjsip
chan_sip.c:35353 deprecation_notice: https://wiki.asterisk.org/wiki/display/AST/Migrating+from+chan_sip+to+res_pjsip

Полный список изменений доступен по ссылке

В Asterisk 17 были решены следующие проблемы:

Решены ошибки безопасности

ASTERISK-28447 ] – res_pjsip_messaging: СООБЩЕНИЕ в диалоговом окне без значения вызывает сбой
ASTERISK-28465 ] – Сломанный SDP может стать причиной ошибки в reINVIT T.38
ASTERISK-28260 ] – Решена ошибка сегментации Asterisk, когда RTP-согласование неверно или не состоялось
ASTERISK-28127 ] – Переполнение буфера для записей DNS SRV/NAPTR записей
ASTERISK-28013 ] – res_http_websocket: Сбой при чтении запросов на обновление HTTP

Новые функции в Asterisk 17

Нативная поддержка Prometheus в Asterisk

Добавлена нативная поддержка в докеризированной среде Prometheus (является “открытым” проектом с открытым исходным кодом), который выполняет функции мониторинга приложений. Prometheus уникален тем, что в отличие от многих других решений для мониторинга, он работает в основном на модели “pull” вместо модели “push”. Это делает  его работу уникальным вместе с Asterisk, так как встроенный HTTP-сервер Asterisk позволяет ему обслуживать статистику Prometheus. Эта функция добавит новый модуль для обслуживания метрик, совместимых с Prometheus, которая позволит указать Asterisk основные атрибуты: свойства сборки, версию, время обновления/перезагрузки и т.д. Так же для функции будет описан API для доступа других модулей на тот момент, когда Prometheus-сервер будет обслуживать Asterisk. Следует обратить внимание, что будут добавлены дополнительные улучшения, которые добавят полезную статистику по каналам PJSIP.

Новый параметр конфигурации в res_pjsip для отключения norefersub

В процессе тестирования PJSIP REFER на коммутаторе Cisco было обнаружено, что Cisco неправильно исполняет RFC4488. Когда коммутатор получает norefersub в поддерживаемом заголовке не производится согласование Refer-Sub между коммутатором Cisco и Asterisk. Новый параметр в глобальной конфигурации PJSIP позволит запретить отключить PJSIP norefersub в PJPROJECT. Значение этого параметра по умолчанию должно быть включено.

chan_sip не устанавливает norefersub в поддерживаемом заголовке и Cisco отправляет необходимую информацию о подписке, чтобы обновить Asterisk в состояние REFER (передача).

Добавлен ресурс ARI /ari/channels/{channelid}/rtp_statistics

Данный ресурс ARI, который позволит возвращать заданные каналы RTP статистики.

Добавлена возможность переключения приложений в res_stasis

Добавлен вызов “move” в REST API для переключения приложений внутри приложения Stasis, что позволит больше не возвращаться в dialplan. Он имеет следующие форматы:

/channels/
{channelId}

/move
channels.client.move(channelId, app, appArgs)

где:

  • channelId – идентификатор канала для перемещения
  • app – имя приложения для перемещения
  • appArgs – необязательный параметр, позволяющий передавать аргументы новому приложению

Добавлен флаг, чтобы CALLERID(num) помещался в заголовок контакта в chan_pjsip

Поведение chan_sip состояло в том, чтобы идентификатор вызывающего абонента всегда помещался в часть имени контакта. Однако способа для chan_pjsip не было ранее. Этот патч добавляет глобальный флаг use_callerid_contact в chan_pjsip, который заставит chan_pjsip использовать CALLERID(num) в качестве contact_user по умолчанию вместо default_from_user (который по умолчанию имеет значение default_from_user=Asterisk).

Реализованы дополнительные SIP RFS для совместимости с Google Voice

В настоящее время голосовые шлюзы Google Voice поддерживаются в Asterisk через chan_motif. Google объявила, что они планируют перейти от протокола XMPP, который используется в chan_motif к новому протоколу на основе SIP. Однако SIP-сервера Google используют дополнительные стандарты, расширяющие реализацию SIP UAC. Эти нововведения позволят подключить регистратор Google Voice SIP:

  • Сервис-маршруты (RFC 3608)
  • P-Preferred-Identity (RFC 3325)
  • Outbound supported header (RFC 5626)
  • Проверка токена авторизации OAuth/Bearer
  • Механизмы использования отдельных транспортов TLS для отдельных регистраций и связанных с ними диалоговых окон сообщений (опционально) в заголовке SIP Contact Header
REGISTER sip:obihai.sip.google.com SIP/2.0
Via: SIP/2.0/TLS 85.142.148.xx:5061;rport;branch=z9hG4bKPj74e9fe7e-81e7-4809-827a-78796b210c81;alias
From: <sip:gv113516753058xxxxx@obihai.sip.google.com>;tag=cc7a918a-e334-40e8-a1f5-4c6773b98a17
To: <sip:gv113516753058xxxxx@obihai.sip.google.com>
Call-ID: f888e7ef-4967-4eac-9c51-09c5bf650eef
CSeq: 53374 REGISTER
Authorization: Bearer token="...", username="gv113516753058xxxxx", realm="obihai.sip.google.com"
Contact: <sip:srv_d49677@85.142.148.xx:5061;transport=TLS;line=lsgcrlb>
Expires: 180
Allow: OPTIONS, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, PRACK, REGISTER, MESSAGE, REFER
Supported: path, outbound
Max-Forwards: 70
User-Agent: ruVoIP.net PBX
Content-Length:  0

SIP/2.0 423 Interval Too Brief
Via: SIP/2.0/TLS 85.142.148.xx:5061;rport=50535;branch=z9hG4bKPj74e9fe7e-81e7-4809-827a-78796b210c81;received=85.142.148.xx;alias
To: <sip:gv113516753058xxxxx@obihai.sip.google.com>;tag=5111975d
From: <sip:gv113516753058xxxxx@obihai.sip.google.com>;tag=cc7a918a-e334-40e8-a1f5-4c6773b98a17
Call-ID: f888e7ef-4967-4eac-9c51-09c5bf650eef
CSeq: 53374 REGISTER
Min-Expires: 2400
Content-Length: 0

REGISTER sip:obihai.sip.google.com SIP/2.0
Via: SIP/2.0/TLS 85.142.148.xx:5061;rport;branch=z9hG4bKPjc23a726d-7e87-4487-b71e-ca53dd093dcc;alias
From: <sip:gv113516753058xxxxx@obihai.sip.google.com>;tag=9a879975-647b-41be-ab87-60a7a1430601
To: <sip:gv113516753058xxxxx@obihai.sip.google.com>
Call-ID: f888e7ef-4967-4eac-9c51-09c5bf650eef
CSeq: 53375 REGISTER
Authorization: Bearer token="...", username="gv113516753058xxxxx", realm="obihai.sip.google.com"
Contact: <sip:srv_d49677@85.142.148.xx:5061;transport=TLS;line=lsgcrlb>
Expires: 2400
Allow: OPTIONS, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, PRACK, REGISTER, MESSAGE, REFER
Max-Forwards: 70
User-Agent: ruVoIP.net PBX
Content-Length:  0

SIP/2.0 421 Extension Required
Via: SIP/2.0/TLS 85.142.148.xx:5061;rport=57385;branch=z9hG4bKPjc23a726d-7e87-4487-b71e-ca53dd093dcc;received=85.142.148.xx;alias
Require: path
To: <sip:gv113516753058xxxxx@obihai.sip.google.com>;tag=257f392e
From: <sip:gv113516753058xxxxx@obihai.sip.google.com>;tag=9a879975-647b-41be-ab87-60a7a1430601
Call-ID: f888e7ef-4967-4eac-9c51-09c5bf650eef
CSeq: 53375 REGISTER
Content-Length: 0