Перенос freepbx на другой компьютер

Обновлено: 03.07.2024

Модуль для создания резервных копий и восстановления конфигурации FreePBX.

Шаблоны

Есть несколько предустановленных шаблонов для резервирования различных данных FreepBX

включает в себя детализированный отчет о звонках (База данных MySQL «asteriskcdrdb») не содержит кастомных файлов *_custom.conf из директории /etc/asterisk/ резервирует директорию назначенную переменной __ASTETCDIR__, по умолчанию "/etc/asterisk" и все её поддиректории и файлы. резервирует директорию назначенную переменной __AMPWEBROOT__, по умолчанию "/var/www/html" и все её поддиректории и файлы FreePBX. резервирует директорию назначенную переменной __ASTVARLIBDIR__/moh, по умолчанию "/var/lib/asterisk/moh" и все её поддиректории и файлы. резервирует директорию назначенную переменной __ASTVARLIBDIR__/sounds/custom, по умолчанию "/var/lib/asterisk/sounds/custom" и все её поддиректории и файлы. резервирует директорию назначенную переменной __ASTSPOOLDIR__/voicemail, по умолчанию "/var/spool/asterisk/voicemail", и все её поддиректории и файлы.

Места сохранения

backup storage locations

Места сохранения бэкапов можно просмотреть и отредактировать кликнув «Servers» в правом верхнем углу страницы.
По умолчанию заданы два хранилища для резервных файлов.

Local Storage (local) обычно используется эта опция. Архив резервной копии хранится в "/var/spool/asterisk/backup/(backupjobname)/*.tgz" на локальной машине. Для бэкапов сделанных в прежних версиях FreePBX ранее 2.10

Можно создать дополнительные хранилища для отправки бэкапов по e-mail, на удаленный FTP или TFTP сервер или на удаленный MySQL сервер.

Пример создания бэкапа

перетащите мышкой следующие шаблоны на «Type Path/DB Exclude Delete».


перетащите мышкой "Local Storage (local)" из «Available Servers» в «Storage Servers». Run Automatically: выберите «Daily» (время автоматически будет выставлено 00:00 ) «Delete after»: 0 runs (не очищать журнал резервного копирования после заданного кол-ва запусков)

Запуск вручную

Ход выполнения бэкапа отобразится во всплывающем окне


Проверка

Восстановление


Выберете требуемый бэкап и нажмите "Go"

Синхронизация Баз Данных FreePBX

Настроим резервный сервер (asterisk2) таким образом, чтобы он подключался к основному серверу (asterisk1) по SSH
и синхронизировал настройки asterisk, autoprovision и др.

Настройка SSH подключения

В данном примере Asterisk и Web server работают из под пользователя asterisk.

Зададим временный пароль пользователю asterisk
На основном сервере asterisk1

Сгенерируем ssh ключ на резервном сервере Asterisk2

Команда ssh-keygen создаст ключ в /home/asterisk/.ssh/ip_rsa

Не вводите passphrase, оставьте пустым:

Кода ключ создан, скопируем его на основной сервер:

Будет запрошен пароль, заданный для пользователя asterisk на основном севере.

Проверим подключение по ssh с ключом:

Если произошло подключение к основному серверу без пароля, все в порядке.

В завершении настройки SSH подключения, удалим пароль пользователя asterisk на основном сервере (asterisk1).

И перейдем к настройке автоматической синхронизации FreePBX

Выберете на резервном сервере <fs large>Admin > Backup & Restore > Servers - New SSH Server</fs>


Hostname - ip адрес основного сервера Asterisk1

Port - порт ssh

User Name - пользователь, в нашем случае asterisk

Key - местонахождение ключа (/home/asterisk/.ssh/id_rsa)

Затем выберите <fs large>Admin > Backup & Restore > Backups - New Backup</fs>


Задайте имя и перетащите шаблоны для настроек:


в нашем примере это <fs large>Full Backup</fs> и <fs large>Exclude Backup Settings</fs>

Местонахождение директории tftp сервера, где лежат файлы для autoprovision, изменена с /tftpboot на /var/lib/tftpboot.

Задайте в соответствии с вашими условиями.

И в завершении укажем созданный нами Backup Server (asterisk1)
и хранилище - Local Storage (local)


Restore Here - записать скачанный бэкап в базу данных asterisk

Apply Config - Применить скачанный бэкап (записать в конфиги asterisk)

Если же всё-таки нужно обновить FreePBX до актуальной версии, то не будем отчаиваться и опускать руки, а сделаем всё самостоятельно.

Предполагается, что обновление будет выполнено при помощи переноса текущей конфигурации на новый сервер с устновленым на него FreePBX Distro, на момент написания статьи это SNG7-PBX-2011-5, в составе которого FreePBX 15 и Asterisk 16.

Первое, что нам нужно - создать бэкап текщей конфигурации FreePBX, для этого нужно выполнить резервное копирование "MySQL - Config server" из веб-интерфейса АТС, для этого переходим последовательно Админ > Резервное копирование и восстановление и создаём резервную копию, в которой будет только один пункт - "MySQL - Config server".
Либо можно выполнить дамп базы MySQL с помощью команды И в том, и в другом случае мы получим файл, содержащий дамп базы конфигурации FreePBX.

Если полученный файл попытаться импортировать через web-интерфейс FreePBX, то АТС придёт в нерабочее состояние, поэтому нужно из него удалить все данные лишних таблиц. Какие из них необходимы можно решить, посмотрев список, приведённый ниже, он составлен исходя из моего опыта, так что не претендует на полноту. Внтренние номера callrecording_module, findmefollow, ringgroups, sip; Параметры факсов fax_details, fax_users, iax; Транки и маршрутизация звонков cidlookup, cidlookup_incoming, incoming, outbound_route_patterns, outbound_route_sequence, outbound_route_trunks, outbound_routes, trunks; IVR и moh ivr_details, ivr_entries, music, recordings; Временные условия timeconditions, timegroups_details, timegroups_groups; Параметры специальных функций featurecodes. В итоге получим файл, содержащий примерно следующий текст для каждой таблицы: После того, как список таблиц и их значений подготовлен, нужно адаптировать список полей таблиц, т.к. со временем в них появляются новые поля, необходимые для новых функций. Список полей для каждой таблицы можно посмотреть в дампе базы свежеустновленного FreePBX. На момент написания статьи при миграции с FreePBX 13 на FreePBX 15 нужно было изменить структуру полей в следующих таблицах: incoming, ivr_details, findmefollow, timeconditions.
Из-за того, что структура полей у этих таблиц изменилась, а значений в наборе не добавилось, то нужно прямо указать поля таблицы, в которые будет производиться импорт данных. Список полей указывается после имени таблицы в команде INSERT. В результате чего для таблиц, в которых были добавлены новые поля, команда импорта будет выглядеть примерно так: После того, как sql-файл подготовлен для импорта, переносим его на свежеустановленный FreePBX и импортируем данные Большинство данных перенесено, осталось скопировать записи, которые воспроизводятся в ivr-меню и при удержании звонка (music on hold).
Для этого воспользуемся scp Если папки /var/lib/asterisk/sounds/ru нет на новом сервере, то нужно установить русский звуковой пакет, для этого нужно перейти в Администратор > Sound Languages.

Последнее, что осталось - изменить порт, на котором FreePBX будет ожидать подключения от клиентов. Дело в том, что во FreePBX 13 расширения были настроены для использования chain_sip и их подключение происходило на порт 5060. Во FreePBX 15 по умолчанию используется канальный драйвер chain_pjsip и именно для него предполагется использовать порт 5060, а клиентов с chain_sip АТС ожидает на нестандартном 5160. Из этой ситуации есть 2 выхода: Изменить порт подключения для этого нужно зайти в Настройки > Установки Asterisk для SIP и поменять порты для подключения chain_sip и chain_pjsip местами, после применения настроек нужно дополнительно перезапустить Asterisk, для этого нужно в консоли выполнить команду Конвертировать все расширения для использования chain_pjsip для этого создатели FreePBX создали специальный скрипт convert2pjsip, для его использования нужно выполинть в консоли команду На этом всё, основная конфигурация FreePBX перенесена на актуальную версию. В статье не описан перенос записей звонков, но принцип его переноса такой же, как и основной конфигурации: сохранить дамп базы на старом сервере > проверить соответствие полей таблиц и добавить необходимые > импортировать данные на новый сервер.

Defo » 15 окт 2014, 17:55

Вследствии неудачных опытов на АТСке отвалилась вебморда, базы данных и х.з. что еще. Я скопировал вручную astdb, и /etc/asterisk, поставил систему заново и подбросил ей старые файлы. Но она почему то не завелась, телефоны к ней не коннектятся.

Подскажите пожалуйста в каком направлении копать дальше?

ded » 15 окт 2014, 17:58

Наверное этого мало. Там ещё и mysql база присутствует.
Смотрите что показывает команда
sip show peers
и включите дебаг
sip set debug on
может увидите как они пытаются или не пытаются регистрироваться.

april22 » 15 окт 2014, 18:11

МySQL надо перебрасывать тоже с умом .
поставьте пых админ , и залезьте в базу "asterisk"
затем по потихоньку экспортируйте нужные вам таблицы .

april22 » 15 окт 2014, 18:11

МySQL надо перебрасывать тоже с умом .
поставьте пых админ , и залезьте в базу "asterisk"
затем по потихоньку экспортируйте нужные вам таблицы .

awsswa » 15 окт 2014, 22:16

если перебрасывать с умом - можно неделю корячится
я тупо папку копировал с базой - все работает

april22 » 15 окт 2014, 23:06

При условии что версии идентичны . И структура одинаковая . Тогда не спорю .

defekt » 16 окт 2014, 13:40

Вследствии неудачных опытов.
отвалилась вебморда.
базы данных и х.з. .
. скопировал вручную astdb, и /etc/asterisk.
. поставил систему заново
. подбросил ей старые файлы.
. почему то не завелась, телефоны к ней не коннектятся.
Подскажите пожалуйста в каком направлении копать дальше?
За парту, 1 сентября. Домашняя работа. "Учимся делать бэкапы".

Defo » 16 окт 2014, 23:26

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

Перенос вручную не работает.

virus_net » 16 окт 2014, 23:32

Это факт. Ни одна пословица не рождалась просто так.


Скорее всего это "просто вы не умеете их готовить". В большинстве случаев это работает, даже если база побита можно восстановить.

defekt » 17 окт 2014, 11:47

Нет, господа, топикстартер что-то всё же умеет, даже ручками золу выгребает в этом аду, но надо было сделать ему бэкапы на двух-трёх табуретках, вроде:
а) dd/tar - бэкапить ветки, разделы ФС, партиции, прочее.
б) clonezilla - бэкапить весь диск, ГРАБ, прочее.
в) местечковый бэкап фрипбх, если там чото такое имеется.
г) бэкапить конфиги руками (банальный cp)
И потом уже не возникло таких грубых аварийных ситуаций.
Ага, и ещё: металлический сейф, где лежит девственная копия всех выше перечисленных методов. Такая себе скиния с болванками, накопителями, магнитными лентами, образами, истуканами, идолами и прочими религиозными аттрибутами.

Я промолчу про "промышленный" бэкап, который ваще в моей стране почти не делает. Бо " на це нема грошей ".

Основные вопросы, которые стоят перед системным инженером при миграции с одной системы на другую – трудоемкость миграции, время простоя и возможная потеря данных. Если перед вами стоит задача миграции с существующей системы Asterisk (FreePBX) на 3CX Phone System, вы можете это сделать быстро и без потери пользовательской информации – в несколько простых шагов! Для этого используется специально созданный модуль экспорта пользователей из АТС Asterisk (FreePBX).

Установка модуля экспорта пользователей из Asterisk

1. Войдите в интерфейс администрирования FreePBX и в верхнем левом углу перейдите в Admin > Module Administration > Upload modules.


2. В выпадающем списке Type выберите Download (From Web).



5. Перейдите в раздел Application и выберите модуль FreePBX to 3CX Converter. Раскройте параметры модуля и нажмите кнопку Install. Внизу страницы со списком модулей нажмите Process.


6. Нажмите Confirm. FreePBX to 3CX Converter будет установлен. В правом верхнем углу интерфейса нажмите Apply Config (красного цвета).


Экспорт пользователей из Asterisk

1. В верхней панели нажмите на кнопку Applications, а затем на модуль 3CX Extension Export. Вы экспортируете пользователей в CSV файл, который затем будет импортирован в 3CX Phone System.


2. В выпадающем списке Select target 3CX Platform Version выберите 3CX Phone System Version 14.

3. Если ваша АТС Asterisk имеет добавочные номера разной длины, установите опцию Toggle Checkbox to map extension numbers to, чтобы модуль экспорта привел все номера к одной длине.

4. Если вы хотите экспортировать только добавочные номера, которые соответствуют выбранной длине номера (например, 3 digits format), установите опцию Save that fits!


Импорт пользователей в 3CX

В интерфейсе управления 3CX Phone System перейдите в раздел Добавочные номера и нажмите кнопку Импорт из csv файла. Укажите экспортированный CSV файл и следуйте указаниям системы.

Читайте также: