Задание нескольких proxy в chan_pjsip

В процессе разработки относительно сложных конфигураций нам потребовалось добавить свой промежуточный SIP proxy в систему, где транки с операторами уже используют Outbound Proxy.

Основная страница где говорится о работе с proxy из chan_pjsip не говорит нам ничего о такой конфигурации и показывает как задать один Proxy. Но на самом деле можно задать всю цепочку используемых Proxy прямо из конфигурации chan_pjsip.

Конфигурация FreePBX
Route заголовки отправленные chan_pjsip

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

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

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

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

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

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

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