Установка Asterisk 13 + FreePBX 12 Ubuntu 14

При установке Ubuntu выберите обязательно OpenSSH server и LAMP сервер. Установите дополнительные пакеты на ваше усмотрение.

Ubuntu Software selection

В ходе установки системы вам будет предложено задать пароль root пользователя MySQL, если вы не уверены, можно отставить пустым. Если пароль задан, он потребуется в дальнейшем для работы с MySQL.

ubuntu root mysql password

Задайте пароль root пользователя системы

 $ sudo passwd root
 Enter new UNIX password:
 Retype new UNIX password:
 passwd: password update successfully

Переключитесь на root пользователя

 $ sudo -i

Сделайте апдейт системы

 # apt-get update && sudo apt-get upgrade -y

Установите требуемые зависимости

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 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 libmyodbc

Перезагрузите сервер

Это требуется чтобы загрузить свежую версию ядра после апгрейда. Если вы уверены что загруженная версия последняя, можно не перезагружаться.

 reboot

Установите PearDB

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

Error: Error: cannot download "pear/DB"

Error: Error: cannot download "pear/DB"

Ошибка при установке DB (На данный момент, я не до разобрался в причине этой проблемы, но после танцев с бубном, все заработало.)

root@asterisk:/usr/src# pear install DB-1.7.14
WARNING: "pear/DB" is deprecated in favor of "pear/MDB2"
downloading DB-1.7.14.tgz ...
Starting to download DB-1.7.14.tgz (133,103 bytes)
.............................done: 133,103 bytes
could not extract the package.xml file from "/build/buildd/php5-5.5.9+dfsg/pear-build-download/DB-1.7.14.tgz"
Download of "pear/DB" succeeded, but it is not a valid package archive
Error: cannot download "pear/DB"
Download failed
install failed

Решение - установим вручную

Смотрим путь:

 pear config-get php_dir

В моем случае это:

/usr/share/php

Качаем DB 1.7.14

cd /usr/src/
wget   http://download.pear.php.net/package/DB-1.7.14.tgz
tar zvxf DB-1.7.14.tgz

Копируем вручную:

cp -R /usr/src/DB-1.7.14/DB  /usr/share/php/DB
cp /usr/src/DB-1.7.14/DB.php /usr/share/php/DB.php

Далее при вводе pear install db-1.7.14, получаем ответ что уже установлено.

root@asterisk:/usr/share/php# pear install db-1.7.14
pear/db is already installed and is the same as the released version 1.7.14
install failed

Как использовать данное руководство.

Блоки команд с ключом '&&' могут быть скопированы вместе и будут выполняться последовательно. '&&' выполняет переход к следующей команде, при условии успешного выполнения предыдущей. Если вы хотите полностью, пошагово, контролировать процесс установки, выполните каждую команду отдельно, без ввода '&&'.

Скачайте исходные файлы

cd /usr/src
wget http://sourceforge.net/projects/lame/files/lame/3.98.4/lame-3.98.4.tar.gz &&
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-current.tar.gz &&
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz &&
git clone https://github.com/akheron/jansson.git &&
wget http://www.pjsip.org/release/2.2.1/pjproject-2.2.1.tar.bz2

ls -la /usr/src

ls -la /usr/src

root@ubuntu:/usr/src# ls -la
total 47960
drwxr-xr-x  5 root root     4096 Dec  9 11:18 .
drwxr-xr-x 10 root root     4096 Dec  9 09:55 ..
-rw-r--r--  1 root root 31832204 Nov 20 23:55 asterisk-13-current.tar.gz
-rw-r--r--  1 root root  7630719 Sep 22 23:20 dahdi-linux-complete-current.tar.gz
drwxr-xr-x  8 root root     4096 Dec  9 11:18 jansson
-rw-r--r--  1 root root  1336025 Apr 14  2010 lame-3.98.4.tar.gz
-rw-r--r--  1 root root   338633 Jun 16 21:50 libpri-1.4-current.tar.gz
drwxr-xr-x 24 root root     4096 Dec  9 09:57 linux-headers-3.13.0-32
drwxr-xr-x  7 root root     4096 Dec  9 09:57 linux-headers-3.13.0-32-generic
-rw-r--r--  1 root root  4628649 Dec  9 11:18 pjproject-2.2.1.tar.bz2

Скомпилируйте и установите Lame (mp3)

 cd /usr/src &&
 tar zxvf lame-3.98.4.tar.gz &&
 cd lame-3.98.4 &&
 ./configure &&
 make &&
 make install 

Скомпилируйте и установите DAHDI и LibPRI

cd /usr/src &&
tar xvfz dahdi-linux-complete-current.tar.gz &&
tar xvfz libpri-1.4-current.tar.gz &&
rm -f dahdi-linux-complete-current.tar.gz libpri-1.4-current.tar.gz &&
cd dahdi-linux-complete-* &&
make all &&
make install &&
make config &&
cd /usr/src/libpri-1.4.* &&
make &&
make install

kernel error

kernel error

Ошибка - отсутствуют исходники ядра

/usr/src/dahdi-linux-complete-2.10.0.1+2.10.0.1# make all 
make -C linux all 
make[1]: Entering directory `/usr/src/dahdi-linux-complete-2.10.0.1+2.10.0.1/linux' 
make -C drivers/dahdi/firmware firmware-loaders 
make[2]: Entering directory `/usr/src/dahdi-linux-complete-2.10.0.1+2.10.0.1/linux/drivers/dahdi/firmware' 
make[2]: Leaving directory `/usr/src/dahdi-linux-complete-2.10.0.1+2.10.0.1/linux/drivers/dahdi/firmware' 
You do not appear to have the sources for the 3.2.0-4-amd64 kernel installed. 
make[1]: *** [modules] Error 1 
make[1]: Leaving directory `/usr/src/dahdi-linux-complete-2.10.0.1+2.10.0.1/linux' 
make: *** [all] Error 2 

Решение - установить исходники)

apt-get install linux-headers-`uname -r` 

Скомпилируйте и установите pjproject

(Требуется для поддержки драйвера SIP канала PjSIP)

cd /usr/src &&
tar -xjvf pjproject-2.2.1.tar.bz2 &&
cd pjproject-2.2.1 &&
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/jansson &&
autoreconf -i &&
./configure &&
make &&
make install

Скомпилируйте и установите Asterisk

cd /usr/src && 
tar xvfz asterisk-13-current.tar.gz &&
rm -f asterisk-13-current.tar.gz &&
cd asterisk-* &&
./configure &&
contrib/scripts/get_mp3_source.sh &&
make menuselect

После ввода команды make menuselect, вам будет предложено выбрать устанавливаемые модули. Большинство требуемых модулей выбираются автоматически. Для поддержки mp3 включите модуль 'format_mp3'.

make menuselect format_mp3

В разделе Core Sound Packages выберите поддержку русскоязычных файлов (если требуется)

make menuselect ru sound

В разделе Extra Sound Packages выберите дополнительные звуковые файлы.

В завершении выберите Save & Exit и продолжите установку.

make &&
make install &&
make config &&
ldconfig

Скачайте и распакуйте FreePBX.

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

при установке из гит репозитория возникает ошибка:missing modgettext.class.php

при установке из гит репозитория возникает ошибка:missing modgettext.class.php

при установке из гит репозитория возникает ошибка:missing modgettext.class.php (incomplete application of changeset 12995?) поэтому лучше скачивать архив.

export VER_FREEPBX=12.0 &&
cd /usr/src &&
git clone http://git.freepbx.org/scm/freepbx/framework.git freepbx &&
cd freepbx &&
git checkout release/${VER_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

remove /var/www/html

remove /var/www/html

Далее в руководстве freepbx.org, предлагается удалить директорию веб сервера:
Удалять директорию /var/www/html может быть опасно для ваших данных.

 rm -rf /var/www/html

Это делается, т.к. при установке FreePBX скриптом, если папка существует, появляется сообщение о ошибке, что может быть исправлено, просто, повторным запуском скрипта установки.

Настроим Apache

sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php5/apache2/php.ini &&
sed -ie 's/\;date\.timezone\ \=/date\.timezone\ \=\ "Europe\/Moscow"/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

AllowOverride All

AllowOverride All

root@aster:~# cat  /etc/apache2/apache2.conf | grep AllowOverride
        AllowOverride None
        AllowOverride None
        AllowOverride None
#       AllowOverride None
 root@aster:~# sed -i 's/AllowOverride None/AllowOverride All/'  /etc/apache2/apache2.conf
root@aster:~# cat  /etc/apache2/apache2.conf | grep AllowOverride
        AllowOverride All
        AllowOverride All
        AllowOverride All
#       AllowOverride All
# create the configuration file in the "available" section

echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/servername.conf

# enable it by creating a symlink to it from the "enabled" section

a2enconf servername
# restart the server

service apache2 restart

Подготовим MySQL

Требуется создать безопасный пароль для связи FreePBX и MySQL

 export ASTERISK_DB_PW=`dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 - | cut -c2-18`

Эта команда сгенерирует 16-ти значный пароль и сохранит значение в переменной {ASTERISK_DB_PW}.

Подготовка базы данных Asterisk в MySQL.

Если вы задали 'root' пароль MySQL при установке, добавьте его после ключа -pyourpassword. (mysqladmin -u root -pYOURPASSWORD create asterisk)

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

Зададим права на использование БД MySQL

Замените asteriskuser на имя пользователя, которое вам нравится. Например: YOURUSER@localhost. Можно оставить как есть.

 mysql -u root -e "GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';"
 mysql -u root -e "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';"
 mysql -u root -e "flush privileges;"

Если в предыдущем пункте вы задали собственное имя пользователя, замените asteriskuser на него. Например: –username=YOURUSER

./start_asterisk start
./install_amp --installdb --username=asteriskuser --password=${ASTERISK_DB_PW}

Если выполнение скрипта прерывается и появилось сообщение о ошибке, попробуйте запустить установку ещё раз.

amportal

amportal

...
*************************************************************************
* Note: It's possible that if you click the red 'Update Now' bar BEFORE *
* updating your modules, your machine will start dropping calls. Ensure *
* that all modules are up to date BEFORE YOU CLICK THE RED BAR. As long *
* as this is observed, your machine will be fully functional whilst the *
* upgrade is in progress.                                               *
*************************************************************************
****************************************
* At This Time Please Restart Asterisk *
****************************************
amportal a ma download manager
amportal a ma install manager
amportal a ma installall
amportal a ma refreshsignatures
amportal a reload
amportal chown

В завершении настроим создадим ссылку на директорию Music On Hold формата mp3

 ln -s /var/lib/asterisk/moh /var/lib/asterisk/mohmp3

и запустим amportal

 amportal start

Поверим состояние Asterisk подключившись к консоли

 asterisk -vvr
Asterisk 13.0.1, Copyright (C) 1999 - 2014, Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 13.0.1 currently running on ubuntu (pid = 24513)
ubuntu*CLI>core restart now

Подключимся к FreePBX

http://IP.Address.FreePBX.Server/admin

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

freepbx start set user login

Чтобы работало переключение на русский язык в панели управления, необходимо отредактировать файл /etc/locale.alias. Ищем строку russian ru_RU.ISO-8859-5 и правим ее.

nano +67 /etc/locale.alias

 russian ru_RU.UTF-8

или sed:

 sed -i 's/ru_RU.ISO-8859-5/ru_RU.UTF-8/g'   /etc/locale.alias
 locale-gen ru_RU
 service apache2 restart
 

См. также:
Установка Freepbx 13 и Asterisk 14 на Ubuntu 16

Установка Asterisk

  • asterisk_install/asterisk-13_ubuntu.txt
  • Последние изменения: 2018/11/17