Команда разработчиков 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
- Исправлен makemenuselect для Gentoo
- Исправлены значения записей CDR и CEL. Вместо использования метки времени сообщения Stasis, которое запускает действие, они используют метку времени обработки сообщения. Если резервная копия очереди и сервер обрабатывает запись некоторое время, то время будет неправильным. Оба должны использовать время создания сообщения Stasis вместо этого.
- Исправлен неверный вывод информации о каналах в PJSIP
- При запросе контактов в res_pjsip они дублировались при запросе cal*CLI> pjsip show contacts
- Изменен статус 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
Все самые новые статьи на нашем блоге про Asterisk