Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Asterisk 15 - Что нового?

IqTek
September 01, 2019

Asterisk 15 - Что нового?

Blockchain
AI / ML
IoT
Роботы
3D-printing

IqTek

September 01, 2019
Tweet

More Decks by IqTek

Other Decks in Programming

Transcript

  1. Кто я и где парни из Digium?!! • Работаю с

    Asterisk с версии Asterisk 1.0 rc1 • Поддерживаю chan_unistim • Написал множество мелких патчей • Более знаком по этим строкам: VERBOSE[14424][C-000004ae] netsock2.c: Using SIP RTP TOS bits 184 VERBOSE[14424][C-000004ae] netsock2.c: Using SIP RTP CoS mark 5 О себе и сообществе
  2. Asterisk - революция 15 лет назад • Blockchain • AI

    / ML • IoT • Роботы • 3D-printing Революция продолжается? Вступительное слово
  3. Новое в Asterisk 15 • Патч от Dennis Guse и

    Frank Haase для поддержки бинаурального аудио для Asterisk и app_confbridge приняты недавно • Улучшения джиттер буфера для лучшей поддержки FEC в codec_opus • Сборка с --with-pjproject-bundled по-умолчанию
  4. Задача: 3 верно и 3 не верно - какой драйвер

    канала в Asterisk использует SDP для обработки параметров media? • chan_sip • chan_jingle • chan_pjsip • chan_mgcp • chan_webrtc • chan_sdp Asterisk 15: Введение
  5. Asterisk 15 Абстракция уровня SDP: • Многие коммуникационные протоколы реализуют

    свою форму SDP для согласования атрибутов медиа потока: SIP, MGCP, метод RTCPeerConnection (JSEP/WebRTC) • Вместо реализации парсера SDP в каждом канальном драйвере в Asterisk, должна быть использована общая абстрактная реализация SDP.
  6. Абстрактный уровень SDP: • API верхнего уровня поддерживает управление состоянием

    согласования SDP • Поддерживаются ситуации отката согласования sdp при невозможности согласовать параметры Asterisk 15
  7. Абстрактный уровень SDP: • Поддержка сценариев раннего аудио (183 Session

    Progress), когда SDP не является окончательным (как в 200 OK) • Подключаемый к API бэкэнд для сериализации/ десериализации текстового представления SDP из внутреннего состояния SDP. Единственная реализация - res_sdp_translator_pjmedia Asterisk 15
  8. ast_channel и ядро теперь поддерживают media-многопоточноcть: • Возросший интерес в

    новых RTC клиентах. Широко распространяемые и как никогда независимые от производителя - Web-браузеры • Поддержка нескольких потоков (в частности видео) становится более востребованной • До текущего момента поддерживалось по единственному потоку каждого типа (аудио, видео, текст) Asterisk 15
  9. ast_channel и ядро получили мультипоточность: • Расширение интерфейса ast_channel произведено

    в духе обратной совместимости • Все существующие API должны сохранить совместимость, по-умолчанию. • Задача выполнена через новый API топологии передачи медиа и новую структуру ast_stream_topology. • Позволяет производить согласование потоков динамически в ядре Asterisk, и выполняться для каждого приложения. Asterisk 15
  10. ast_stream и ast_stream_topology: • ast_stream_topology может содержать один или несколько

    объектов ast_stream. • ast_stream представляет один аудио или видео поток для какого-то из ast_channel Asterisk 15
  11. ast_stream и ast_stream_topology: • ast_channel может быть инициирован с определенной

    топологией в момент создания или изменение топологии может быть запрошено на лету (с возможным изменением кодеков) • Вызов ast_channel_request_stream_topology_change() для изменения топологии на лету (с изменением SDP) Asterisk 15
  12. Asterisk 15 ast_stream_topology - с 4 ast_streams ast_stream 1 -

    аудио отправка/получение ast_stream 2 - видео (только отправка) ast_stream 3 - видео (только получение) ast_stream 4 - неактивное видео ast_stream и ast_stream_topology:
  13. Поддержка RTCP-MUX (также и для 13 & 14): • Значительные

    изменения в res_rtp_asterisk.c • RTCP-MUX технология webrtc для объединения RTCP и RTP по единому UDP порту. (ничего не напоминает? :-) • Не требуется дополнительного уровня для инкапсуляции RTP и RTCP пакетов • RTCP-MUX требуется для работы с Chrome 57 Asterisk 15
  14. UDP порт N+1 Asterisk 15 RTCP-MUX: Что это? Традиционная передача

    RTP/RTCP UDP порт N RTP - медиа пакет, представленный кодеком с типом нагрузки X RTCP - Потери пакетов, RTT и прочая информация о полученном RTP
  15. RTCP-MUX: Что это? RTCP-MUX Asterisk 15 UDP порт N RTP

    - медиа пакет, представленный кодеком с типом нагрузки X RTCP - Потери пакетов, RTT и прочая информация о полученном RTP
  16. Поддержка BUNDLE: • Ускорение - согласование ICE/DTLS единожды • Позволяет

    использовать единый транспорт для нескольких RTP потоков • Потоки разделяются по SSRC Asterisk 15
  17. Asterisk 15 Новый SDP API и многопоточный media интегрированы в

    chan_pjsip: • Для поддержки новых API Asterisk требуются изменения в каналах • Существующие каналы работают даже с новыми API (с полным обеспечением совместимости) НО только с одним каналом аудио и видео • chan_pjsip на данный момент первый и единственный канал поддерживающий новые возможности
  18. Тестовое ECHO приложение: • Огромная работа проделана для обеспечения работы

    в мультипоточном окружении. • Много сделано, многое еще предстоит • Необходим простой тест для проверки работы совместно с браузерами • Мултипоточное ECHO приложение принимает входящие видео и отправляет в ответ n потоков. • Простое приложение, но необходимо для проверки всех заложенных концепций Asterisk 15
  19. Приложение - Многопоточное Echo Браузер Поток 1 - Видео 1

    TX Поток 2 - Видео 1 RX Asterisk 15 Поток 3 - Видео 1 RX Поток 4 - Видео 1 RX Поток 5 - Видео 1 RX
  20. Расширен app_confbridge для работы по типу SFU: • Для тех,

    кто незнаком, SFU - это тип передачи потоков, когда каждый поток передается в каждую точку(звезда) вместо объединения их в единый поток, как на MCU. • Цель - иметь простое и явное поведение app_confbridge в сценарии SFU. Asterisk 15
  21. N участников, каждый отправляет один поток и принимает N-1 видео

    поток от других участников. Asterisk Браузер B Браузер C Asterisk 15 Браузер A
  22. Что еще предстоит? • Дальнейшие шаги для поддержки полного стека

    WebRTC • Further improvements in app_confbridge SFU support • Поддержка ARI для установления многоканального видео • ARI вызовы для поддержки SFU в app_confbridge Asterisk 15
  23. Направления: • Лучшая поддержка гибких мультимедиа приложений • Лучшая интеграция

    с IoT - модуль канала RTMP • Улучшение поддержки многопоточного видео/аудио в ядре Asterisk • Продолжить улучшение Asterisk’s REST (особенно в свете появления SFU сценария) Направления для Asterisk? (на 1-2 года)
  24. - Из-за массивных изменений в core Asterisk 15 не будет

    являться LTS - 13 - продлен срок Security Fixes до 2020 года, EOL - 2021 год - 11 - только Security Fixes с Октября (время переходить на 13/14) и прекращение поддержки еще через 6 месяцев. - Бонус: git для продления поддержки 11, 1.8, 1.4 https://github.com/iqtek/asterisk-unofficial О сроках поддержки