Опыт установки ASTERISK 13 на CentOS 7.1
Часто при повторной установке какой-либо системы либо пакета приходится наступать на одни и те же грабли. Приходится заново читать документацию, разбираться в сообщениях об ошибках. Чтобы упростить процесс установки и облегчить путь идущих за мной, я решил публиковать свой опыт.
Скачиваем дистрибутив CentOS 7.1 с одного из зеркал в России и устанавливаем на сервер. Я в качестве платформы для установки выбрал веб-сервер. Не буду подробно описывать установку ОС, я думаю каждый, кто решил поставить asterisk из исходников с той задачей справился.
Прежде чем устанавливать asterisk нужно обновить систему и доустановить необходимые пакеты программ.
yum upgrade
Если во время обновления системы обновляется ядпо, то необходимо перезагрузить систему.
Init 6
Подгружаем недостающие пакеты.
yum install wget gcc gcc-c++ make ncurses-devel libxml2-devel
Скачиваем исходники астериска.
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
Распаковываем asterisk в каталог /usr/src командой
tar xvf asterisk-13-current.tar.gz -C /usr/src
cd /usr/src/asterisk-13.5.0/ (в моём случае)
Для возможности выкачвания исходников пакетов программ командой svn нужен пакет subvirsion.
yum install subversion
Чтобы иметь возможности работы с mp3 файлами запускаем скрипт get_mp3_source.sh. Запускать нужно именно из корня исходников asterisk-а, чтобы файлы попали в каталог addons.
cd /usr/src/asterisk-13.5.0/
./contrib/scripts/get_mp3_source.sh
Так как, Астериск теперь использует в качестве внутренней базы SQLite3, то нужно поставить девелоп файлы для этой базы данных.
yum install sqlite-devel
Еще нам понадобятся следующие пакеты:
yum install libuuid-devel jansson-devel
Выкачиваем исходникки dahdi, если есть потребность.
cd
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
tar xvf dahdi-linux-complete-current.tar.gz -C /usr/src
cd /usr/src/dahdi-linux-complete-2.10.2+2.10.2/
make
all
make install
Для установки speex кодека.
yum install speex speex-devel
Для установки curl
yum install libcurl-devel
Для установки srtp
yum install libsrtp
libsrtp-devel
если не получается
из депозитария,
то тогда
ставим из исходников
cd
wget http://srtp.sourceforge.net/srtp-1.4.2.tgz
tar -xzf srtp-1.4.2.tgz -C /usr/src
cd /usr/src/
srtp
./configure CFLAGS=-fPIC --prefix=/usr
make
make runtest
make install
Для установки smsq
yum install popt-devel
Для
поддержки
ODBC
yum install libtool-ltdl-devel unixODBC-devel
Для работы факса
требуется пакет spandsp.
Несмотря на то, что галочку в res_fax поставить можно факс работать не будет, будет выдавать ошибку, поэтому ставить его надо.
В депозитарии CentOS я его не нашел, поэтому его ставим его из исходников.
yum install libtiff libtiff-devel
cd
wget
http://www.soft-switch.org/downloads/spandsp/snapshots/spandsp-20140809.tar.gz
tar -xzf
spandsp-20140809.tar.gz
-C /usr/src
cd /usr/src/spandsp-0.0.6/
./configure --prefix=/usr
make
make install
Для работы с протоколом j
aber, xmmp —
chan_motif,chan_gtalk,chan_jingle
нужен пакет iksemel
yum install python-devel
cd
wget
https://github.com/meduketto/iksemel/archive/master.zip
unzip master.zip -d /usr/src
cd /usr/src/iksemel-master/
./autogen.sh
./configure
make
make install
И конечно же, последнюю фишку asterisk — pjsip.
c
d
wget http://www.pjsip.org/release/2.4.5/pjproject-2.4.5.tar.bz2
tar -xjf pjproject-2.4.5.tar.bz2 -C /usr/src
cd /usr/src/pjproject-2.4.5/
./configure
make
make install
!!!!!!Нужно запустить ldconfig для обновления кеша загрузки библиотек linux.
Подготовительная работа закончена. Можно приступать к установке самого астериска:
cd /usr/src/asterisk-13.5.0/
./configure
make menuconfig
make
make install
!!!!!!Нужно запустить ldconfig для обновления кеша загрузки библиотек linux.
Для работы астериска с базами данных, производим следующие действия:
Создаем базу данных
mysql
mysql_install_db
Проверяем запущен ли mysqld
service mysqld status
Если нет, запускаем его
service mysqld start
Создаем базу данных для записи статистики
mysqladmin create asteriskcdrdb
Теперь структуру этой базы
mysql asteriskcdrdb
mysql>CREATE TABLE 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 '',
did varchar(50) NOT NULL default '',
recordingfile varchar(255) NOT NULL default '',
KEY `calldate` (`calldate`),
KEY `dst` (`dst`),
KEY `accountcode` (`accountcode`)
);
Query OK, 0 rows affected (0.61 sec)
mysql> quit
Bye
Теперь раздаём привилегии на эту базу.
Пароль mypassword у каждого свой!!!
mysql
mysql> GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY 'mypassword
';
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye