Конвертация настроек канального драйвера chan_sip в chan_pjsip

Дмитрий Аверин
16 июля 2020
access_time2 минуты
remove_red_eye2370
Компания «Ланкрафт»
Компания «Ланкрафт»

Chan_sip и chan_pjsip – канальные драйверы IP-АТС Asterisk, реализующие стек протоколов SIP. Chan_sip использовался в ранних версиях Asterisk (и продолжает использоваться до сих пор, но считаясь уже устаревшим).

Chan_pjsip (PJSIP) впервые появился в Asterisk v13 и продолжает активно развиваться, обладая лучшими показателями масштабируемости, функционала и безопасности по сравнению с chan_sip.

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

В этом материале мы разберем, как можно конвертировать внутренние номера драйвера chan_SIP в chan_PJSIP, используя встроенный функционал FreePBX. Конвертация chan_SIP в chan_PJSIP может представлять некоторые затруднения для тех, кто никогда с этим не сталкивался. В то же время реализовать этот механизм сравнительно просто. Запустим браузер, чтоб попасть в web-интерфейс модуля Extensions. Далее следует открыть любой SIP-номер на редактирование. Заходим в раздел Advanced, где ниже будет кнопка с названием Change To PJSIP Driver. Следует щелкнуть по ней для активации процесса конвертации.

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

Подтверждаем, что мы согласны с изменениями, после чего щелкаем по кнопке Apply Config. Это действие запускает генерацию новых конфигурационных файлов Asterisk и приводит к вступлению в силу новых параметров.

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

Конвертировать внутренние номера можно не только через веб-интерфейс, но и посредством консоли FreePBX (fwconsole).Возможность конвертировать из консоли появилась в FreePBX, начиная с версии 15.0.9.88.

Стандартный синтаксис команды:

fwconsole convert2pjsip [-a|–all] [-r|–range RANGE]

Как это работает на практике:

fwconsole convert2pjsip –a // конвертируются все имеющиеся внутренние номера;

fwconsole convert2pjsip -r 1002 // преобразуется только номер 1002;

… -r 1005-1015 // процедура выполняется для номеров в диапазоне 1005...1015;

Если попытаться выполнить операцию из консоли на более ранних версиях FreePBX, чем 15.0.9.88, то это приведет к появлению ошибки.

В случаях, когда невозможно произвести конвертацию даже посредством web-интерфейса, необходимо проверить, используется ли у вас драйвер chan_PJSIP. Заходим в расширенные настройки FreePBX (Advanced Settings) и находим там пункт SIP Channel Driver. В качестве значения этого параметра необходимо установить Both.

Мы решили задачу конвертирования отдельных номеров chan_SIP в PJSIP, используя только встроенный функционал FreePBX.