Годная статья , автор молодец, по этому запостю ее к себе с маленькими обновлениями.
Установку Asterisk 12 будем проводить на ОС Ubuntu 14.04.01 server x86_64, установленную на Oracle VM VirtualBox.
Заходим в терминал Ubuntu и обновим системные пакеты.
sudo apt-get update
sudo apt-get upgrade
Перезагрузим систему
Синхронизируем время, для этого установим сервер NTP
Установим зависимости, которые будут необходимы для корректной работы Asterisk
sudo apt-get install build-essential linux-headers-`uname -r` openssh-server mysql-server mysql-client libgnutls28 bison flex curl sox libncurses5-dev libssl-dev libmysqld-dev libmysqlclient-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool git g++ subversion uuid-dev vim-nox php5 php5-curl php5-cli php5-mysql php-pear php-db php5-gd
В процессе установки нужно будет ввести пароль для root пользователя MYSQL
Перезагружаем систему
Создадим папку, куда будем скачивать дистрибутивы Asterisk, DAHDI и LibPRI
sudo mkdir -p /usr/src/asterisk-12
cd /usr/src/asterisk-12
Скачиваем исходники Asterisk 12.8.1 (на момент написания инструкции последняя актуальная версия), DAHDI (пакет, ранее называвшийся zaptel, который осуществляет обработку аналоговых и цифровых интерфейсов), libPRI (библиотека, предназначенная для работы с потоковыми TDM-интерфейсами ISDN: PRI (Primary Rate Interface) и BRI (Basic Rate Interface))
sudo wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-12.8.1.tar.gz
sudo wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-2.10.1+2.10.1.tar.gz
sudo wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4.15.tar.gz
Распаковываем скаченные исходники
sudo tar xvfz dahdi-linux-complete-2.10.1+2.10.1.tar.gz
sudo tar xvfz libpri-1.4.15.tar.gz
sudo tar xvfz asterisk-12.8.1.tar.gz
Для начала компилируем DAHDI
cd /usr/src/asterisk-12/dahdi-linux-complete-2.10.1+2.10.1
sudo make all
sudo make install
sudo make config
Далее компилируем LibPRI
cd /usr/src/asterisk-12/libpri-1.4.15/
sudo make
sudo make install
Начнем установку Asterisk 12. Необходимые модули устанавливаем командой make menuselect.
cd /usr/src/asterisk-12/asterisk-12.8.1/
sudo ./configure
При установке может вылететь ошибка
configure: error: *** JSON support not found (this typically means the libjansson development package is missing)
Для этого делаем следующее
cd /usr/src/
sudo wget http://www.digip.org/jansson/releases/jansson-2.7.tar.gz
sudo tar xvfz jansson-2.7.tar.gz
cd jansson-2.7/
sudo ./configure --prefix=/usr/
sudo make clean
sudo make
sudo make install
sudo ldconfig
Далее запускаем еще раз установку Asterisk
cd /usr/src/asterisk-12/asterisk-12.8.1/
sudo ./configure
sudo make menuselect
По большей части, все необходимые модули уже включены. Вы можете что-то добавить или удалить. При выборе модуля у него будет короткое описание, за что он отвечает.
В разделе Add-ons выбираем модули format_mp3(понадобиться чтобы делать голосовое меню не в gsm формате, а в mp3) и все опции относящиеся к MySQL. Они понадобятся в случае подключения FreePBX.
Не забудьте загрузите модуль meetme.
Во вкладке Core Sound Packages – выберите необходимые форматы звуковых пакетов.
В Music On Hold File Packages включаем все модули.
В Extras Sound Packages включаем первые 4 модуля содержащие EN
После настройки нажмите F12 для сохранения данных и выхода в окно консоли.
Далее вводим команду:
Во время выполнения функции make у меня вылезла ошибка.
**************************************************************
*** ***
*** ---> READ THIS OR YOUR BUILD WILL FAIL <--- ***
*** ***
*** format_mp3 has been selected to be installed, but the ***
*** mp3 decoder library has not yet been downloaded into ***
*** the source tree. To do so, please run the following ***
*** command: ***
*** ***
*** $ contrib/scripts/get_mp3_source.sh ***
*** ***
**************************************************************
[CC] app_mysql.c -> app_mysql.o
[LD] app_mysql.o -> app_mysql.so
[CC] cdr_mysql.c -> cdr_mysql.o
[LD] cdr_mysql.o -> cdr_mysql.so
[CC] format_mp3.c -> format_mp3.o
format_mp3.c:39:24: fatal error: mp3/mpg123.h: Нет такого файла или каталога
#include "mp3/mpg123.h"
^
compilation terminated.
make[1]: *** [format_mp3.o] Ошибка 1
make: *** [addons] Ошибка 2
Для её устранения, вводим требуемую команду.
sudo contrib/scripts/get_mp3_source.sh
Запускаем опять команду make
Далее вводим команды
sudo make install
sudo make samples
sudo make config
Перезагружаем сервер
Проверяем работоспособность Asterisk. Вводим команду
Далее автор предлагает обезопасить систему путем ввода и передачи брозд правления новому пользователю. Я этого не делал, но все же приведу цитату.
Если необходимо обезопасить систему, можем задать пользователя для управления Asterisk. Создаем пользователя, его каталог и пароль. Далее даем ему права для работы с Asterisk.
sudo adduser asterisk
sudo mkdir /home/username
sudo passwd username
sudo chown -R asterisk. /var/run/asterisk
sudo chown -R asterisk. /etc/asterisk
sudo chown -R asterisk. /var/{lib,log,spool}/asterisk
sudo chown -R asterisk. /usr/lib/asterisk
Перезагружаем сервер
Заходим под пользователем asterisk
Проверяем работоспособность Asterisk. Вводим команду
И попадаем в консоль управления Asterisk.
Сделаем некоторую настройку для MySQL. Заходим в MySQL.
mysql -uusername -ppassword -hlocalhost
Здесь сокращения:
-h host
-u user
-p password
Пробел после них отсутствует
Или mysql –u username -p
После ввода пароля мы окажемся в консоле mysql. Создадим пользователя asterisk с localhost и паролем ‘password’.
create user 'asterisk'@'localhost' identified by 'password';
Пользователь создан. Для проверки посмотрим список пользователей:
select user,host,password from mysql.user;
Создадим базу данных asteriskcdrdb, asterisk.
create database asterisk;
create database asteriskcdrdb;
Далее определяем владельца базы данных
GRANT ALL PRIVILEGES ON asterisk.* TO asterisk@localhost IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asterisk@localhost IDENTIFIED BY 'password';
flush privileges;