Заказать звонок с сайта
Мы будем перезванивать вам с номера
+74991137011
Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь c политикой конфиденциальности.
Телефонизация. Технический блог.

Обновление FreePBX 15 до FreePBX 16. Решение проблем.

Обновление Asterisk FreePBX
Всем привет!
Коллеги, если вы не можете справиться с обновлением или никогда этого не делали, закажите обновление у нас.

Заказать у нас обновление freePBX.



Основная статья про обновление.

Сегодня обновил первый из астерисков на FBPX16 иииии я положил свой астериск и завел обратно без восстановления из бэкапа.

Я рекомендую пока что воздержаться от обновления хотя бы до июня 2022 года чтобы разрабы допилили все детские косяки.
Энтузиасты которым ничего не страшно, делайте сначала бэкап FBPX, пробуйте обновить образ в наколенной виртуалке, чтобы понять что вас ждет и только потом уже боевой сервер обновляйте.

Что нужно, чтобы обновиться.

  • FPBX15
  • asterisk не ниже 13
  • активированный FBPX
Снести все сторонние модули, да, даже пресловутый asternic cdr. "Спойлер" из-за него у меня обновление кстати и зафейлилось.
Освободить порт 8090 на астериске если он занят. Upgrade tool использует 8090 порт для отображения процесса обновления в веб интерфейсе.

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

Порядок обновления из веб-интерфейса:

1. Admin - module admin - Обновляем все модули
2. Admin - Backup & Restore - Делаете бэкап и скачиваете себе его на комп на случай если АТС ляжет полностью.
3. Admin - 15 to 16 Upgrade Tool - Проверяете ваш FPBX на готовность к обновлению, если находит модули которые устарели и указывает что стоит сторонний модуль который не поддерживается и его нужно удалить - удаляете через admin - module admin.
4. Admin - 15 to 16 Upgrade Tool - После исправления зависимостей, запускаем обновление, ждем окончание процесса.

Наблюдать за процессом обновления можно и из консоли командой - "less /var/log/pbx/freepbx16-upgrade.log"

Предварительна информация для обновления из консоли:


Делаем бэкап freepbx! Всех модулей которые доступны! Делаем отдельный бэкап БД астериска. Если виртуалка, то снапшот или бэкап виртуалки.

Я столкнулся с проблемой "In RedisCache.php line 135: Function Redis::delete() is deprecated" после обновления до FreePBX 16. Лечить так
Redis::delete is deprecated в 135 строке файла /var/www/html/admin/libraries/Composer/vendor/doctrine/cache/lib/Doctrine/Common/Cache/RedisCache.php
Лечится изменением 135 строки на return $this->redis->del($id) >= 0;
Это изменение лучше сделать до обновления, чтобы процесс прошел гладко.
В официальной документации по обновлению, решение проблемы такое. Нужно выполнить команду в консоли
/usr/sbin/fwconsole ma downloadinstall framework --tag=16.0.10.42


Желательно провести проверку через вебморду(admin-15 to 16 upgrade tool). В консоли не показывает предупреждения из-за чего я потерпел фиаско в первый раз.

Подготавливаемся к обновлению. Обязательный этап.

1. fwconsole ma downloadinstall versionupgrade
2. fwconsole versionupgrade --check
Смотрим на какие модули ругается возможно какие то модули устарели и больше не поддерживаются(deprecated/not supported), а так же устанавливаем все обновления.

В моем случае пришлось удалять эти модули:
fwconsole ma uninstall endpointman
fwconsole ma uninstall restapi
fwconsole ma uninstall campon
fwconsole ma uninstall asternic_cdr
Применяем конфиг, обновляем все модули, перечитываем права и еще раз применяем конфиг.
fwconsole reload
fwconsole ma upgradeall
fwconsole chown
fwconsole reload

Запускаем обновление.

fwconsole versionupgrade --upgrade -vv
Дожидаемся окончания обновления.


Если во время обновления зафейлилось что-то и астериск лег, попробуйте запустить обновление заново.
Для этого перемещаем файл mv /var/run/asterisk/16upgrade.pid /tmp и запускаем заново обновление fwconsole versionupgrade --upgrade -vv

История:

UPD 10.02.2022

Очередное неудачное обновление FreePBX до 16 версии. Устранение ошибок.

Сегодня попался еще один сломанный обновлением до FreePBX 16 сервер астериска.
Меня попросили устранить последствия.
Вводные данные: запустили обновление все шло хорошо, потом завис yum и обновление завершилось с ошибкой на моменте установки freepbx 16, веб морда не работает, астериск не работает.
Ошибка yum выглядела вот так:

Ключевые ошибки:

failed: Thread died in Berkeley DB library
DB_RUNRECOVERY: Fatal error, run database recovery

Лечится парой команд: 

Бэкапим старые бд
mkdir /var/lib/rpm/backup
cp -a /var/lib/rpm/__db* /var/lib/rpm/backup/
Удаляем старые
rm -f /var/lib/rpm/__db.[0-9][0-9]*
Лечим бд
rpm --quiet -qa
rpm –rebuilddb
yum clean all
После этого спокойно запускаем заново обновление.
fwconsole versionupgrade --upgrade -vv

Еще столкнулся с тем, что не мог установиться модуль sysadmin с ошибкой, что не найдена директория /etc/sangoma/

Лечится переустановкой пакета sangoma-pbx16.
Yum reinstall sangoma-pbx16 -yЗатем можно спокойно обновлять/устанавливать модуль sysadmin и все от него зависимые модули.

UPD 28.01.2022
Стало меньше проблем с обновлением, но они есть.
Как и раньше порядок:
fwconsole versionupgrade --check
если показывает что модули устарели и их нужно удалить, удаляем до состояния чтобы все было зеленое как на скрине.
Затем запускаем обновление и наслаждаемся процессом.
fwconsole versionupgrade --upgrade -vv
Процесс занимает продолжительное время, если вдруг разлогинило из консоли, узнать на какой стадии процесс обновления можно зайдя заново на сервак и выполнив команду: less /var/log/pbx/freepbx16-upgrade.log