Печать
Просмотров: 8716

Опыт установки 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

Для работы с протоколом jaber, 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.

cd

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