Переменные sip протокола при переходе на pjsip

Продолжаю тему обновлений, которые требуются при переходе на канал chan_pjsip, отмечу еще два момента, возможно недостаточно отраженные в документации. По крайней мере нем при обновлении диалпланов наших систем пришлось немного поискать информацию.

  • Что: переменная SIPCALLID
  • Замена: вызов функции CHANNEL(pjsip,callid)

Положительным моментом является то, что данный вызов является более логичным и документация по нему доступна при просмотре помощи по функции CHANNEL. callid совершаемого вызова доступен до отправки INVITE в pre-dial процедуре, вызываемой приложением Dial()

  • Что: приложение SipAddHeader()
  • Замена: функция PJSIP_HEADER()

Предложенная для замены функция является более функциональной заменой, позволяет также читать, удалять и модифицировать заголовки. О применении и ограничениях — подробнее во встроенной справке Asterisk

Также хотелось отметить, что все такие заметки мы начинаем собирать о обобщать в нашей базе знаний — https://kb.iqtek.ru, надеемся она сможет стать полезным ресурсом наравне с другими зарекомендовавшими себя сайтами по теме Asterisk и VoIP.

Настройка транка с регистрацией в chan_pjsip и FreePBX

Наша компания уже в течении последнего года использует в настройке всех новых систем на Asterisk канал chan_pjsip для работы с SIP протоколом. Часто появляются вопросы, в которых пользователи спрашивают о том, как настроить ту или иную конфигурацию по аналогии с chan_sip.

Читать далее«Настройка транка с регистрацией в chan_pjsip и FreePBX»

SQL из диалплана

По следам прошедшей конференции AsterConf’2017 мы решили опубликовать несколько простых советов, которые оказались полезными участникам конференции.

Первый относится к использованию SQL запросов в системах, которые построены при помощи написания диалплана без применения графических оболочек вроде FreePBX. Для работы c SQL из диалплана чаще всего используют возможности модуля func_odbc. Однако часто оказывается неудобным то, что для каждого запрос а требуется редактирование отдельного файла. Ниже описание того, как этого избежать и задавать все запросы в диалплане.

Читать далее«SQL из диалплана»

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

Совсем скоро должна появиться релизная версия Asterisk 15. В новой версии Asterisk Digium провели массивное изменение ядра системы, что вызвало отхождение от принципов нумерации и выпуска LTS релизов. Таким образом:

  • Asterisk 15 становится не-LTS релизом со сроком поддержки 2 года
  • Поддержка Asterisk 13 продляется до 2021 года

Основными нововведениями при этом являются:

  • Поддержка мульти-поточности в работе с RTP (в основном для WebRTC в chan_pjsip)
  • Внедрение API для абстракции при работе с SDP
  • Реализация спецификации BUDLE для передачи нескольких RTP потоков единым транспортом

Более подробный список изменений под катом.

Читать далее«Что нового в Asterisk 15»

Обновление openssl для webrtc

 

Браузеры идут вперед семимильными шагами, при этом складывается ситуация, когда обновление браузеров у клиента иногда требует обновления и инфраструктуры.

Мы с толкнулись с тем, что в нашей инфраструктуре не работают новые версии Chrome. Поиск по изменениям показал, что в в 52 версии Chrome перешли на использование только на использование ECDSA алгоритма при согласовании подключения DTLS. Но в версии openssl до 1.0.2 эти алгоритмы не поддерживаются. «Правильный» openssl на Ubuntu можно установить таким способом:

Проверить версию после установки:

После этого достаточно перезапустить freeswitch для работы с правильными версиями библиотеки openssl.

 

Новый OPUS в asterisk

1280px-opus_bitratelatency_comparison-svg

Долгое время freeswitch обладал фактически эксклюзивной и первой реализацией кодека OPUS. Для Asterisk существовали решения на gihub, но они имели ряд недостатков — не имели возможности настройки через codecs.conf и не использовали информацию из SDP для своей работы.

Во время проведения Astercon 2016 было объявлено что для asterisk 13 и 14 выпущен официальный модуль кодека OPUS.

Читать далее«Новый OPUS в asterisk»