Установка Asterisk + FreePBX

Сегодня буду устанавливать Asterisk на Ubuntu Server 14.04 LTS и FreePBX 12 в качестве интерфейса управления.

И так, переключимся сразу на root пользователя:

sudo -i

Проверим есть ли обновления для системы и установим их:

apt-get update
apt-get upgrade

Установим необходимые компоненты:

apt-get install build-essential linux-headers-`uname -r` apache2 mysql-server mysql-client bison flex php5 php5-curl php5-cli php5-mysql php-pear php-db php5-gd curl sox libncurses5-dev libssl-dev libmysqlclient-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git subversion unixodbc-dev uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp0-dev libspandsp-dev libiksemel-dev libiksemel-utils libiksemel3

Перезагрузим систему:

reboot

Снова переключимся на пользователя root и установим PearDB (последнюю версию можно посмотреть на сайте http://pear.php.net/package/DB/download):

sudo -i
pear uninstall db
pear channel-update pear.php.net
pear install -Z db-1.7.14
pear list

Можно обновить все командой:

pear upgrade-all

Скомпилируем и установим Lame (это кодек mp3, его можно также установить автоматически командой sudo apt-get install lame):

cd /usr/src
wget https://sourceforge.net/projects/lame/files/lame/3.99/lame-3.99.5.tar.gz
tar zxvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure
make
make install

Скомпилируем и установим DAHDI (драйвер для плат, его также можно установить автоматически командой sudo apt-get install dahdi):

cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
tar xvfz dahdi-linux-complete-current.tar.gz
rm -f dahdi-linux-complete-current.tar.gz
cd dahdi-linux-complete-*
make all
make install
make config

Скомпилируем и установим LibPRI (необходимая библиотека, можно установить также через apt-get install libpri1.4):

cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz
tar xvfz libpri-current.tar.gz
cd /usr/src/libpri-*
make
make install

Скомпилируем и установим PJSIP (необходимая библиотека):

cd /usr/src
wget http://www.pjsip.org/release/2.4.5/pjproject-2.4.5.tar.bz2
tar -xjvf pjproject-2.4.5.tar.bz2
cd pjproject-2.4.5
CFLAGS='-DPJ_HAS_IPV6=1' ./configure --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr
make dep
make
make install

Скомпилируем и установим jansson:

cd /usr/src
git clone https://github.com/akheron/jansson.git
cd jansson
autoreconf -i
./configure
make
make install

Посмотрим какая новая версия Asterisk есть на официальном сайте http://downloads.asterisk.org/pub/telephony/asterisk/, я взял последнюю asterisk-13, скомпилируем и установим её:

cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
tar xvfz asterisk-13-current.tar.gz
cd asterisk-*
./configure
contrib/scripts/get_mp3_source.sh
make menuselect

Для поддержки mp3 включим модуль ‘format_mp3’, отметим также что связано с mysql, в Core Sound Packages отметим поддержку русских файлов, в Extra Sound Packages выберем дополнительные звуковые файлы и выберем «Save & Exit».

Продолжаем установку:

make
make install
make config
ldconfig

Посмотрим новую версию FreePBX на официальном сайте https://www.freepbx.org/ и скачаем её:

cd /usr/src
wget http://mirror.freepbx.org/freepbx-12.0.43.tgz
tar zxvf freepbx-*.tgz
cd /usr/src/freepbx

Создадим пользователя Asterisk и зададим права:

useradd -m asterisk
chown asterisk. /var/run/asterisk
chown -R asterisk. /etc/asterisk
chown -R asterisk. /var/{lib,log,spool}/asterisk
chown -R asterisk. /usr/lib/asterisk

Изменим некоторые настройки в конфигурационном файле Apache2:

sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php5/apache2/php.ini
sed -ie 's/\;date\.timezone\ \=/date\.timezone\ \=\ "Europe\/Kiev"/g' /etc/php5/apache2/php.ini
cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig
sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf
sed -i 's/AllowOverride None/AllowOverride All/'  /etc/apache2/apache2.conf
service apache2 restart

Создадим базы данных MySQL:

mysqladmin -u root -p create asterisk
mysqladmin -u root -p create asteriskcdrdb

Создадим пользователя и пароль для доступа к базам MySQL:

mysql -u root -p -e "GRANT ALL PRIVILEGES ON asterisk.* TO asterisk@localhost IDENTIFIED BY 'ПАРОЛЬ';"
mysql -u root -p -e "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asterisk@localhost IDENTIFIED BY 'ПАРОЛЬ';"
mysql -u root -p -e "flush privileges;"

Запустим Asterisk и установим FreePBX:

cd /usr/src/freepbx
./start_asterisk start
./install_amp --installdb --username=asterisk --password=ПАРОЛЬ

Для FreePBX нужно активировать mod_rewrite модуль в apache2:

a2enmod rewrite
service apache2 restart

Подключится к консоли Asterisk можно командой:

asterisk -vvr

В браузере набрав IP сервера должна открываться панель FreePBX.

У меня в панели FreePBX отобразилось уведомление безопасности, по этому проверим права на файлы и перезапустим amportal:

amportal chown
amportal a ma refreshsignatures
amportal a reload

Также желательно обновить версии модулей в меню admin — module admin.

Владельцем http файлов должен быть asterisk, если вдруг права нарушены, можно вернуть их командой:

chown -R asterisk:asterisk /var/www/html/

На этом установка завершена, далее следует настройка, но об этом уже в другой статье.

Установка Asterisk + FreePBX: 2 комментария

  1. Здравствуйте.
    Устанавливал по Вашему манулу Asterisk14.1.2 на Ubuntu-server 16.04. PHP7. После запуска выдал пару ошибок:
    .Error!
    Could not determine Asterisk version (got: No ethernet interface found for seeding global EID. You will have to set it manually.). Please report this.
    Done
    Preliminary checks done. Starting FreePBX Installation
    Checking if this is a new install…Yes (No /etc/amportal.conf file detected)
    Database Root installation checking credentials and permissions.
    .Error!
    Invalid Database Permissions. The error was: SQLSTATE[HY000] [1045] Access denied for user ‘root’@’localhost’ (using password: NO)

    Толком не нашел ничего на этот счет, кроме рекомендации отключить модуль
    noload => dundi

    и про доступ к базе не понятно.

    Поможете пролить свет на это? Астериск ставлю первый раз.

  2. Ага, вот еще увидел, что есть проблема с libmyodbc, и, похоже, надо даунгрэйдить php до пятой версии…

Добавить комментарий