Установка asterisk 12 в Debian 7

Зображення користувача Light.

Собираю все комманды в единую пошаговую инструкцию.

 

Сначала ставим все от чего зависит или может зависить Asterisk

apt-get install uuid-dev libuuid1 libjansson-dev links mysql-server mysql-client
apt-get install build-essential linux-headers-`uname -r` g++  subversion libmysqlclient-dev libxml2-dev libncurses5-dev libsqlite3-dev libssl-dev libsrtp0-dev unixodbc-dev

Переходим к скачиванию всего необходимого — Asterisk, DAHDI, LibPRI, mpg123

mkdir /usr/src/asterisk-src

cd /usr/src/asterisk-src

wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-12-current.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-1.4-current.tar.gz
wget http://kent.dl.sourceforge.net/project/mpg123/mpg123/1.22.2/mpg123-1.22.2.tar.bz2

Распаковываем:

tar xvf asterisk-12-current.tar.gz

tar xvf dahdi-linux-complete-current.tar.gz

tar xvf libpri-1.4-current.tar.gz

tar xvf mpg123-1.22.2.tar.bz2

Собираем необходимые пакеты

cd dahdi-linux-complete-2.10.2+2.10.2/

make all && make install && make config

cd ../libpri-1.4.15/

make && make install

cd ../mpg123-1.22.2/

./configure --prefix=/usr/ && make && make install

И финальный аккорд — сборка самого asteriks

cd ../asterisk-12.8.2/

bash contrib/scripts/get_mp3_source.sh
./configure
make menuconfig
make && make install
make samples
make config

Asterisk будет компилироваться довольно-таки продолжительное время, сделайте чашечку чая либо коффе и отдохните.

 

Для большей безопасности не будем разрешать работать Asterisk PBX под пользователем root, создаем нового пользователя asterisk под которым будет работать наша VOIP телефония:

adduser asterisk --disabled-password --no-create-home --gecos "asterisk PBX user"
 
В файле /etc/default/asterisk необходимо расскоментировать пользователя и группу под которым будет запускатся наша VOIP телефония:
nano /etc/default/asterisk
находим и раскоменчиваем строки
#AST_USER="asterisk"
#AST_GROUP="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
mkdir /var/www/html
chown -R asterisk. /var/www/
 

Добавляем пользователя:
adduser asterisk --disabled-password --gecos "Asterisk PBX"
adduser www-data asterisk

Настраиваем конфиг Apache:
cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf-orig
sed -i "s/\(^User *\)\(.*\)/\1asterisk/" /etc/apache2/apache2.conf
sed -i "s/\(^Group *\)\(.*\)/\1asterisk/" /etc/apache2/apache2.conf
chown -R asterisk:asterisk /var/www
chown -R asterisk:asterisk /etc/phpmyadmin
#chown -R asterisk:asterisk /var/lib/phpmyadmin
#chown -R asterisk:asterisk /usr/share/phpmyadmin

Подготавливаем базу:
mysqladmin -p create asterisk
mysqladmin -p create asteriskcdrdb

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

mysql -u root -p

USE asteriskcdrdb;
CREATE TABLE IF NOT EXISTS `cdr` (
`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 '',
KEY `calldate` (`calldate`),
KEY `userfield` (`userfield`),
KEY `clid` (`clid`),
KEY `src` (`src`),
KEY `dst` (`dst`),
KEY `billsec` (`billsec`),
KEY `lastapp` (`lastapp`),
KEY `uniqueid` (`uniqueid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY '____ПАРОЛЬ____';
GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY '____ПАРОЛЬ____';

Изменяем настройки PHP:
cp /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini-orig
sed -ie 's/\;date\.timezone\ \=/date\.timezone\ \=\ "Europe\/Kiev"/g' /etc/php5/apache2/php.ini
sed -i "s/\(upload_max_filesize *= *\)\(.*\)/\120M/" /etc/php5/apache2/php.ini
sed -i "s/\(memory_limit *= *\)\(.*\)/\1100M/" /etc/php5/apache2/php.ini
sed -i "s/\(magic_quotes_gpc *= *\)\(.*\)/\1Off/" /etc/php5/apache2/php.ini
sed -i "s/\(^\s*DocumentRoot *\)\(.*\)/\1\/var\/www\/html/" /etc/apache2/sites-enabled/000-default

Перезапускаем apache:
/etc/init.d/apache2 restart