Установка FreePBX 14 в связке с Asterisk 16 на Debian 9 Stretch

Рассмотрим как установить FreePBX 14 в связке с Asterisk 16 на Debian 9 Stretch.

 

Подготовка системы

Перед началом установки обновляем систему до актуального состояния:

Устанавливаем необходимые зависимости:

ВНИМАНИЕ. Обязательно перезагружаем систему и после этого продолжаем установку.

 

Устанавливаем PHP версии 5.6 (для корректной работы FreePBX fwconsole):

Устанавливаем NodeJS :

Устанавливаем поддержку MariaDB ODBC

 

 

Устанавливаем DAHDI, LibPRI

Для удобства дальнейшей инсталляции скачиваем все необходимые исходники (dahdi, libpri, asterisk, freepbx) и распаковываем их:

 

Собираем по очереди (dahdi, libpri) из исходников и устанавливаем:

 

Установка Asterisk

Выполняем скрипт, который проверит какие еще необходимо установить зависимости, для работы Asterisk:

В процессе установки, необходимо будет задать телефонный код, оставляем по-умолчанию 7 (Россия).

 

Выполняем конфигурацию с поддержкой pjproject, jansson, mysqlclient, добавляем поддержку mp3 и запускаем меню выбора устанавливаемых компонентов:

Выбираем:

  • Add-ons — поддержка format_mp3, res_config_mysql, app_mysql, cdr_mysq.
  • Applications — поддержка app_macro (необходимый модуль для работы FreePBX)
  • Core Sound Packeges — CORE-SOUNDS-EN-ULAW, CORE-SOUNDS-EN-ALAW, CORE-SOUNDS-EN-GSM, CORE-SOUNDS-EN-G729, CORE-SOUNDS-RU-ULAW, CORE-SOUNDS-RU-ALAW, CORE-SOUNDS-RU-GSM, CORE-SOUNDS-RU-G729

Остальное я оставляю по-умолчанию.

 

Выполняем компиляцию исходников asterisk, затем выполняем установку astersik и завершаем установку asterisk:

 

Добавляем asterisk в автозагрузку:

 

Создаем пользователя (asterisk), от которого будет работать asterisk. Назначаем права на каталоги asterisk и удаляем каталог сайта (apache2) по-умолчанию:

 

Установка FreePBX

Вносим необходимые правки в файлы конфигураций php, apache и применяем сделанные изменения в них:

 

Создаем файл конфигурации /etc/odbcinst.ini:

Создаем файл конфигурации /etc/odbc.ini

 

Создадим базу данных для работы FreePBX:

 

Переходим в каталог с дистрибутивом FreePBX, запускаем Asterisk и выполняем установку:

 

Установка завершена, через Web браузер заходим в консоль FreePBX:

 

 

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОБЛАГОДАРИ АВТОРА

 

БесполезноСлабоватоПриемлемоОтличноПревосходно (Еще нет оценок)
Загрузка...

Всего комментариев: 20 Комментировать

  1. werwer /

    У вас :
    sed -i ‘s/\(^upload_max_filesize = \).*/\128M/’ /etc/php/7.0/apache2/php.ini

    А надо так:
    sed -i ‘s/\(^upload_max_filesize = \).*/\1 128M/’ /etc/php/7.0/apache2/php.ini

    1. Жаконда / Автор записи

      Да, действительно.. поправил. Спасибо за зоркость! 🙂

  2. Сергей /

    Поскольку установлен php версии 5.6, то должно быть так:
    sed -i ‘s/\(^upload_max_filesize = \).*/\1 128M/’ /etc/php/5.6/apache2/php.ini

    1. Жаконда / Автор записи

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

  3. Сергей /

    Если устанавливать на виртуальную машину и не планируется использовать платы от Digium или им подобных, скачивать и собирать dahdi и libpri не нужно.

  4. Сергей /

    В статье сказано «Собираем по очереди (dahdi, libpri, jansson) из исходников и устанавливаем», а про установку jansson — ни слова. Вот пример:
    cd /usr/src/
    git clone https://github.com/akheron/jansson.git
    cd jansson
    autoreconf -i
    ./configure —prefix=/usr/
    make
    make install

    1. Жаконда / Автор записи

      При написании статьи так и делалось, но позже jansson собирать стал при сборке самого asterisk (—with-jansson-bundled), поправил в статье информацию. Спасибо за наблюдательность.

  5. Сергей /

    Большое спасибо за статью, делал по ней и всё получилось, но заработало не с первого раза. При сборке Астериска кроме модулей, которые вы указали:
    «Выбираем:
    Add-ons — поддержка format_mp3, res_config_mysql, app_mysql, cdr_mysq.
    Core Sound Packeges — CORE-SOUNDS-EN-ULAW, CORE-SOUNDS-EN-ALAW, CORE-SOUNDS-EN-GSM, CORE-SOUNDS-EN-G729, CORE-SOUNDS-RU-ULAW, CORE-SOUNDS-RU-ALAW, CORE-SOUNDS-RU-GSM, CORE-SOUNDS-RU-G729
    Остальное я оставляю по-умолчанию.»
    нужно обязательно выбрать
    Applications — app_macro (в самом конце).
    Иначе будут обрываться звонки после 1 сек. и в логах будет ругань на отсутствие этого модуля.
    Он считается устаревшим, поэтому его по умолчанию выпилили. Но без него не работает. Рекомендуют использовать другой модуль, но разбираться не стал, просто собрал с ним и всё заработало.

    1. Жаконда / Автор записи

      Вероятно в текущей редакции asterisk они убрали выбранный по-умолчанию (app_macro). На момент написания статьи, он был выбран по-умолчанию. Спасибо добавил данную информацию в статью.

      Про устаревший app_macro это да, но вот только FreePBX по прежнему использует его..

  6. Сергей /

    После установки желательно почистить каталоги с исходниками:
    rm -rf /var/lib/asterisk/sounds/tmp/*
    rm -rf /usr/src/*
    Или как у вас:
    rm -rf /opt

    В результате при установке на Proxmox в контейнер lxc занимает места на диске всего 2,5 Gb, перегружается около 10 сек (в отличии от kvm виртуалки при использовании готового iso от freepbx на CentOS 7) и оперативки ест значительно меньше (около 200 Мб). А если отключить Apache, то расход по памяти снижается до 130 Мб.

    1. Жаконда / Автор записи

      А для чего очищать !? На случай если нужно будет пересобрать пакет, но на моей памяти проблем не возникало если не очищать каталоги с исходниками. Ну тут дело наверное скорей на усмотрение, я бы не отнес к желательным события этот 🙂

      1. Сергей /

        У меня развёрнуто на виртуалке и делается резервное копирование по расписанию раз в неделю средствами самого Proxmox. Меньше занимаемый объём — меньше нагрузка на сервер и диски. У некоторых админов все виртуалки целиком каждый день бэкапятся, корпоративная политика…

  7. Сергей /

    Не заметил опечатку, вместо
    rm -rf /opt
    д. б.
    rm -rf /opt/*

  8. Сергей /

    Столкнулся с ещё одной проблемой:
    в cdr отчётах о звонках FreePBX 14 символы на кириллице отображаются кракозябрами.
    Решение:
    заменить используемый mysql-connector-odbc на mariadb-connector-odbc. Нашёл на англоязычном форуме, что с 3-ей версией не работает (проверил на последней версии 3.1.6 — да, не работает) и нужно использовать версию 2.0.5. На сайте https://downloads.mariadb.com/Connectors/odbc/ такой версии не нашёл, использовал ближайшую 2.0.15

    cd /usr/src
    wget https://downloads.mariadb.com/Connectors/odbc/connector-odbc-2.0.15/mariadb-connector-odbc-2.0.15-ga-debian-x86_64.tar.gz
    tar -zxvf mariadb*
    cd lib
    cp -v libmaodbc.so /usr/lib/x86_64-linux-gnu/odbc/

    cat < /etc/odbcinst.ini
    [MySQL]
    Description=ODBC for MySQL (MariaDB)
    Driver=/usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so
    Setup=/usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
    FileUsage=1
    UsageCount=1
    EOF

    cat < /etc/odbc.ini
    [MySQL-asteriskcdrdb]
    Description = MySQL connection to ‘asteriskcdrdb’ database
    Driver = MySQL
    Server = localhost
    Database = asteriskcdrdb
    Port = 3306
    Charset = utf8
    Socket = /var/run/mysqld/mysqld.sock
    Option = 3
    EOF

    Проверить обмен с базой:
    odbcinst -q -d
    выхлоп:
    [MySQL]

    Ещё одна команда:
    echo «select 1» | isql -v MySQL-asteriskcdrdb
    выхлоп:
    —————————————+
    | Connected! |
    | |
    | sql-statement |
    | help [tablename] |
    | quit |
    | |
    +—————————————+
    SQL> select 1
    +———————+
    | 1 |
    +———————+
    | 1 |
    +———————+
    SQLRowCount returns 1
    1 rows fetched

    Всё в порядке, можно совершить звонок, в отчёте cdr о звонке кириллица должна отображаться корректно.
    Если с первого раза не заработало, попробуйте перегрузить машину.

    Если при ответе на команду
    echo «select 1» | isql -v MySQL-asteriskcdrdb
    возникает ошибка, нужно поискать другую версию коннектора (libmaodbc.so) с сайта https://downloads.mariadb.com/Connectors/odbc/

  9. Сергей /

    Написал комментарий и 2 раза пытался его отправить, но он не отображается, видимо слишком большой. Поэтому разбиваю на части.
    Часть 1. Столкнулся с ещё одной проблемой, в cdr отчётах о звонках FreePBX 14 символы на кириллице отображаются кракозябрами.
    Решение:
    заменить используемый mysql-connector-odbc на mariadb-connector-odbc. Нашёл на англоязычном форуме, что с 3-ей версией не работает (проверил на последней версии 3.1.6 — да, не работает) и нужно использовать версию 2.0.5. На сайте https://downloads.mariadb.com/Connectors/odbc/ такой версии не нашёл, использовал ближайшую 2.0.15

  10. Сергей /

    Часть 2. Код:
    cd /usr/src
    wget https://downloads.mariadb.com/Connectors/odbc/connector-odbc-2.0.15/mariadb-connector-odbc-2.0.15-ga-debian-x86_64.tar.gz
    tar -zxvf mariadb*
    cd lib
    cp -v libmaodbc.so /usr/lib/x86_64-linux-gnu/odbc/

    cat < /etc/odbcinst.ini
    [MySQL]
    Description=ODBC for MySQL (MariaDB)
    Driver=/usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so
    Setup=/usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
    FileUsage=1
    UsageCount=1
    EOF

    cat < /etc/odbc.ini
    [MySQL-asteriskcdrdb]
    Description = MySQL connection to ‘asteriskcdrdb’ database
    Driver = MySQL
    Server = localhost
    Database = asteriskcdrdb
    Port = 3306
    Charset = utf8
    Socket = /var/run/mysqld/mysqld.sock
    Option = 3
    EOF

    1. Жаконда / Автор записи

      Странно, но у меня на Debian 9 установлен https://dev.mysql.com/get/Downloads/Connector-ODBC/5.3/mysql-connector-odbc-5.3.12-linux-debian9-x86-64bit.tar.gz и никаких проблем с кириллицей нет..

      1. Сергей /

        У меня есть готовые виртуалки с Астериском 13 и FreePBX 13 на Debian 8. Устанавливал их в разных организациях около года назад и они там прекрасно работают по сей день. Но при переносе или клонировании их на другие ноды Proxmox, либо попытке перенести работающий образец другому клиенту после переноса не хочет стартовать Asterisk. День промучался, проблему так и не решил. Видимо это знак, что надо переходить на современное ПО…

  11. Сергей /

    Часть 3. Проверить обмен с базой:
    odbcinst -q -d

    выхлоп:
    [MySQL]

    Ещё одна команда:
    echo «select 1» | isql -v MySQL-asteriskcdrdb

    выхлоп:
    —————————————+
    | Connected! |
    | |
    | sql-statement |
    | help [tablename] |
    | quit |
    | |
    +—————————————+
    SQL> select 1
    +———————+
    | 1 |
    +———————+
    | 1 |
    +———————+
    SQLRowCount returns 1
    1 rows fetched

  12. Сергей /

    Часть 4 (заключительная).
    Всё в порядке, можно совершить звонок, в отчёте cdr о звонке кириллица должна отображаться корректно.
    Если с первого раза не заработало, попробуйте перегрузить машину.
    Если при ответе на команду
    echo «select 1» | isql -v MySQL-asteriskcdrdb
    возникает ошибка, нужно поискать другую версию коннектора (libmaodbc.so) с сайта https://downloads.mariadb.com/Connectors/odbc/

Оставить ответ

3 + четырнадцать =

© IT-блог Жаконды All Rights Reserved.
Яндекс.Метрика