Мы продолжаем наш цикл статей об установке FreePBX 13 на различные дистрибутивы Linux. В сегодняшней статье мы расскажем как установить FreePBX 13 с Asterisk 13 на Ubuntu 14.04 LTS. Прежде чем приступать к дальнейшей установки ,убедитесь, что на вашем сервере установлен полностью рабочий LAMP, и если не установлен, то прежде чем продолжать, установите LAMP сервер. Если вы поднимаете сервер с 0, то в процессе установки как минимум установите LAMP Server и OpenSSH Server.
Приступим
Все команды делаем из под пользователя root.
sudo -i
1) Обновим системные пакеты.
apt-get update && apt-get upgrade -y
2) Устанавливаем необходимые зависимости.
apt-get install -y build-essential linux-headers-`uname -r` openssh-server apache2 mysql-server \
mysql-client bison flex php5 php5-curl php5-cli php5-mysql php-pear php5-gd curl sox \
libncurses5-dev libssl-dev libmysqlclient-dev mpg123 libxml2-dev libnewt-dev sqlite3 \
libsqlite3-dev pkg-config automake libtool autoconf git unixodbc-dev uuid uuid-dev \
libasound2-dev libogg-dev libvorbis-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp0-dev \
libspandsp-dev libmyodbc
3)Перезагружаем сервер
reboot
4) Устанавливаем зависимости необходимые для Google Voice.
cd /usr/src
wget https://iksemel.googlecode.com/files/iksemel-1.4.tar.gz
tar xf iksemel-1.4.tar.gz
cd iksemel-*
./configure
make
make install
5) Переходим в /usr/src и скачиваем Dahdi, Libpri, Asterisk 13, Jansson, Pjproject.
cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
wget -O jansson.tar.gz https://github.com/akheron/jansson/archive/v2.7.tar.gz
wget http://www.pjsip.org/release/2.4/pjproject-2.4.tar.bz2
6) Распаковываем и устанавливаем DAHDI
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
7) Распаковываем и устанавливаем Libpri
cd ..
tar xvfz libpri-1.4-current.tar.gz
rm -f libpri-1.4-current.tar.gz
cd libpri-*
make
make install
8) Распаковываем и устанавливаем Pjproject
cd ..
tar -xjvf pjproject-2.4.tar.bz2
rm -f pjproject-2.4.tar.bz2
cd pjproject-2.4
CFLAGS='-DPJ_HAS_IPV6=1' ./configure --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr
make dep
make
make install
9) Распаковываем и устанавливаем Jansson
cd ..
tar vxfz jansson.tar.gz
rm -f jansson.tar.gz
cd jansson-*
autoreconf -i
./configure
make
make install
10) Устанавливаем Asterisk 13
cd..
tar xvfz asterisk-13-current.tar.gz
rm -f asterisk-13-current.tar.gz
cd asterisk-*
contrib/scripts/install_prereq install
./configure
contrib/scripts/get_mp3_source.sh
make menuselect
После выбора необходимых модулей для загрузки продолжаем установку.
make
make install
make config
ldconfig
update-rc.d -f asterisk remove
11) Устанавливаем Asterisk-Extra-Sounds.
cd /var/lib/asterisk/sounds
wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-en-wav-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-wav-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-en-g722-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-g722-current.tar.gz
tar xvf asterisk-core-sounds-en-wav-current.tar.gz
tar xfz asterisk-extra-sounds-en-wav-current.tar.gz
tar xfz asterisk-extra-sounds-en-g722-current.tar.gz
tar xfz asterisk-core-sounds-en-g722-current.tar.gz
rm -f asterisk-core-sounds-en-wav-current.tar.gz
rm -f asterisk-extra-sounds-en-wav-current.tar.gz
rm -f asterisk-extra-sounds-en-g722-current.tar.gz
rm -f asterisk-core-sounds-en-g722-current.tar.gz
12) Добавляем пользователя 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
rm -rf /var/www/html
13) Внесем изменения в Apache.
sed -i 's/\(^upload_max_filesize = \).*/\120M/' /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
14) Настраиваем ODBC
Переходим в /etc/odbcinst.ini и добавляем туда следующее:
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
FileUsage = 1
Далее в /etc/odbc.ini добавляем следующее:
[MySQL-asteriskcdrdb]
Description=MySQL connection to 'asteriskcdrdb' database
driver=MySQL
server=localhost
database=asteriskcdrdb
Port=3306
Socket=/var/run/mysqld/mysqld.sock
option=3
15) Генерируем безопасный пароль для FreePBX и MySQL
export ASTERISK_DB_PW=`dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 - | cut -c2-18`
16) Настроим базу данных Asterisk в MySQL. Если вы задали ‘root’ пароль MySQL при установке, добавьте его после ключа -p.
mysqladmin -uroot -ppassword create asterisk
mysqladmin -uroot -ppassword create asteriskcdrdb
17) Устанавливаем права на базу данных MySQL. Замените asteriskuser на имя пользователя, которое вам нравится. Например: superaster@localhost. Можно оставить как есть.
mysql -uroot -ppassword -e "GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';"
mysql -uroot -ppassword -e "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';"
mysql -uroot -ppassword -e "flush privileges;"
18) Скачиваем и устанавливаем FreePBX
cd /usr/src
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-13.0-latest.tgz
tar vxfz freepbx-13.0-latest.tgz
rm -f freepbx-13.0-latest.tgz
cd freepbx
./start_asterisk start
./install -n --dbuser=asteriskuser --dbpass=${ASTERISK_DB_PW}
На этом все, установка закончена, и теперь можно перейти по адресу http://Ваш_IP/admin и вы попадете на страницу настройки администратора, где вам нужно будет задать логин и пароль администратора.

Если вы в статье нашли ошибки или несоответствия, мы будем благодарны, если вы напишите нам о них в комментариях.