Установка Asterisk

Часть 1. Установка Asterisk.asterisk

Будем рассматривать процесс установки Asterisk, на ОС GNU/Linux Debian 7, из исходных кодов.

Первое, что нам понадобится это скачать с официального сайта проекта модули и утилиты DAHDI ну и сам сервер Asterisk.

Для сборки Asterisk, вам потребуется компилятор gcc, make, mysql сервер для хранения cdr, и некоторые другие компоненты.

Итак приступим:

1) Установим из репозиториев необходимые, дополнительные компоненты для возможности компиляции Asterisk:


apt-get install bison ncurses-dev libssl-dev libnewt-dev zlib1g-dev cvs procps g++ gcc mysql-server make libmysql++-dev libusb++-dev libmysqlclient-dev libxml2-dev libncurses5-dev libsqlite3-dev libssl-dev libsrtp0-dev unixodbc-dev subversion uuid uuid-dev linux-headers-`uname -r` libjansson-dev


2) Создадим в субд mysql базу данных pbx и в ней создадим таблицу для хранения CDR


mysql -u root -p
create database pbx;
\u pbx

CREATE TABLE `asterisk_cdr` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`calldate` datetime NOT NULL DEFAULT ‘0000-00-00 00:00:00’,
`clid` varchar(80) NOT NULL DEFAULT »,
`src` varchar(80) NOT NULL DEFAULT »,
`dst` varchar(80) NOT NULL DEFAULT »,
`dcontext` varchar(80) NOT NULL DEFAULT »,
`channel` varchar(80) NOT NULL DEFAULT »,
`dstchannel` varchar(80) NOT NULL DEFAULT »,
`lastapp` varchar(80) NOT NULL DEFAULT »,
`lastdata` varchar(80) NOT NULL DEFAULT »,
`duration` int(11) NOT NULL DEFAULT ‘0’,
`billsec` int(11) NOT NULL DEFAULT ‘0’,
`disposition` varchar(45) NOT NULL DEFAULT »,
`amaflags` int(11) NOT NULL DEFAULT ‘0’,
`accountcode` varchar(20) NOT NULL DEFAULT »,
`uniqueid` varchar(32) NOT NULL DEFAULT »,
`userfield` varchar(255) NOT NULL DEFAULT »,
PRIMARY KEY (`id`),
KEY `calldate` (`calldate`),
KEY `accountcode` (`accountcode`),
KEY `uniqueid` (`uniqueid`),
KEY `dst` (`dst`),
KEY `src` (`src`)
) ENGINE=InnoDB AUTO_INCREMENT=4946 DEFAULT CHARSET=utf8;


Добавим права на эту базу пользователю cdr


GRANT ALL PRIVILEGES ON pbx.* TO cdr@localhost IDENTIFIED BY ‘PASSWORD’ WITH GRANT OPTION;


3) Установим пакет DAHDI.

После того как вы его скачали и распаковали, входим в каталог с исходниками и делаем:


make all
make install
make config


4) Установка Asterisk

После того как вы его скачали и распаковали, входим в каталог с исходниками и делаем


./configure


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


make menuselect


Здесь необходимо включить дополнительные нужные модули для компиляции. К примеру, в разделе Add-ons я включил модули format_mp3, app_mysql, cdr_mysql В разделе Core Sound Packages включаем CORE-SOUNDS-EN-ALAW, CORE-SOUNDS-EN-GSM, CORE-SOUNDS-RU-ALAW, CORE-SOUNDS-RU-GSM, в разделе Music On Hold File Packages включаем модуль MOH-OPSOUND-WAV Последний раздел Extras Sound Packages, включаем модули для выбранных кодеков ALAW, GSM. Из корневого раздела нажимаем Esc и видим, что нам предложили три варианта выхода. Смело жмем S для сохранения сделанных изменений.

Для поддержки mp3 выполним скрипт:


contrib/scripts/get_mp3_source.sh


далее скомпилируем сам Asterisk


make install
make samples


для автозапуска системы установим скрипт автозапуска


make config


проверим работает ли наш сервер


asterisk -vvvcd


в результате мы должны увидеть консоль управления. Для выхода нажмем CTRL+C или же ввести команду quit.

Сейчас сервер работает их под пользователя root, и это не безопасно. Создадим отдельного пользователя:


adduser —system —group —home /var/lib/asterisk —no-create-home —gecos «Asterisk PBX» asterisk
adduser asterisk dialout
adduser asterisk audio
adduser www-data asterisk
mkdir -p /var/run/asterisk
chown -R asterisk:asterisk /var/lib/asterisk
chown -R asterisk:asterisk /var/log/asterisk
chown -R asterisk:asterisk /var/run/asterisk
chown -R asterisk:asterisk /var/spool/asterisk
chown -R asterisk:asterisk /usr/lib/asterisk
chown -R asterisk:asterisk /dev/dahdi
chmod -R u=rwX,g=rX,o= /var/lib/asterisk
chmod -R u=rwX,g=rX,o= /var/log/asterisk
chmod -R u=rwX,g=rX,o= /var/run/asterisk
chmod -R u=rwX,g=rX,o= /var/spool/asterisk
chmod -R u=rwX,g=rX,o= /usr/lib/asterisk
chmod -R u=rwX,g=rX,o= /dev/dahdi
chown -R root:asterisk /etc/asterisk
chmod -R u=rwX,g=rX,o= /etc/asterisk


Раскомментируем в файле /etc/default/asterisk две строчки.


AST_USER=«asterisk»
AST_GROUP=«dialout»


Теперь запустим наш сервер и убедимся что он запустился от пользователя asterisk


/etc/init.d/asterisk start
ps aux | grep asterisk


В выводе команды получим примерно следующее:


asterisk 3854 0.6 0.7 620016 29288 ? Ssl 10:43 0:01 /usr/sbin/asterisk -U asterisk -G dialout


Убеждаемся, что сервер работает и мы можем приступать к следующему шагу, к настройке IP PBX Asterisk.