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.