Сегодня рассмотрим установку Asterisk 1.8 на CentOS 5.6.
Установка других версий Asterisk просиходит аналогично, так же аналогично происходит устаовка на других дистрибутивах Linux. Итак приступим…
Для начала нужно подготовить систему.
Отключаем SELinux, для этого в консоле вводим комманду

sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

Обновляем систему.

yum -y update
yum -y upgrade

Перегружаем сервер

shutdown -r now

После обновления отключаем ненужные сервисы, так как версия ядра изменилась и остались подключенные по-умолчанию модули.
Следующим шагом устанавливаем необходимые пакеты для сборки Asterisk из исходников. Для установки можно скопировать код сразу в консоль

yum -y install gcc gcc-c++ kernel-devel bison \
libtermcap-devel ncurses-devel doxygen curl-devel newt-devel \
mlocate lynx tar wget nmap bzip2 mod_ssl crontabs vixie-cron \
libtool-ltdl-devel mysql mysql-devel libxml2-devel \
mysql-server php-mysql php-mbstring php-mcrypt flex screen \
libtiff-devel

После этого создаем папку где скачаем нужные пакеты

mkdir /usr/local/src/0arch/
cd /usr/local/src/0arch/

Затем идем на сайт Asterisk и скачиваем последнее стабильное ядро Asterisk версии 1.8, драйвер DAHDI, библиотеку LibPRI (если планируете подключать потоки E1).

wget <a href="http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.8.3.3.tar.gz">http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.8.3.3.ta...</a>
wget <a href="http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/releases/dahdi-linux-complete-2.4.1.2+2.4.1.tar.gz">http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/release...</a>
wget <a href="http://downloads.asterisk.org/pub/telephony/libpri/releases/libpri-1.4.11.5.tar

Распаковываем архив

tar xzvf asterisk-1.8.3.3.tar.gz
tar xzvf dahdi-linux-complete-2.4.1.2+2.4.1.tar.gz
tar xzvf libpri-1.4.11.5.tar.gz

Устанавливаем LibPRI

cd libpri-1.4.11.5
make clean
make
make install

Устанавливаем драйвер DAHDI, этот модуль обязателен для работы Asterisk. Он должен быть собран и запущен до установки Asterisk. Даже если у вас нет плат расширения не страшно, подгружается dahdi_dummy. Но повторяю этот драйвер обязателен.

cd ../dahdi-linux-complete-2.4.1.2+2.4.1
make clean
make all
make install
make config

Бывает что dahdi не собирается, частая ошибка – это не установлен kernel-devel для вашего ядра. Если вы используете ядро с XEN или PAE проследите что установлен именно ваш “кернел-девел”. Если вы не используете карты расширения, то я рекомендую отключать в dahdi драйверы для различных плат Digium. Для этого комментируем строчки с платами в файле /etc/dahdi/modules. Добавляем в автозапуск

chkconfig dahdi --level 235 on

Запускаем Dahdi

# service dahdi start
Loading DAHDI hardware modules:

No hardware timing source found in /proc/dahdi, loading dahdi_dummy
Running dahdi_cfg:                                         [  OK  ]

Далее собираем ядро Asterisk, заходим в папку с распакованным архивом, очищаем от мусора, конфигурируем. и выбираем нужные пакеты и устанавливаем. Если на этапе конфигурации произошли ошибки, значит у вас нет необходимых пакетов для сборки ядра Asterisk.

make clean
./configure
make menuselect

Я ставлю все галочки с mysql в менюшке Add-ons (небходимо для записи CDR в базу MySQL). Остальные галочки стоят по умолчанию. Сохраняем изменения. Приступаем к сборке и установке.

make && make install

Ставим конфигурационные файлы и документацию

make samples && make progdocs

Прописываем запуск ядра Asterisk в автозагрузку

make config
chkconfig asterisk --leve 235 on

Теперь если все было сделано правильно запустим Asterisk в отладочном режиме

# asterisk -cvvv
---много отладочной информации---
Asterisk Ready.
  == Parsing '/etc/asterisk/cli.conf':   == Found

Как видим все прошло успешно :), останавливаем ядро

*CLI> core stop now
Beginning asterisk shutdown....
Executing last minute cleanups
  == Destroying musiconhold processes
Asterisk cleanly ending (0).

Теперь можно запускать Asterisk в нормальном режиме

# service asterisk start
Starting asterisk:

Перезагрузить Астериск можно командой

service asterisk  restart

В следующих постах я рассмотрю начальную настройку Астериск, ка разрешить запись CDR в базу данных MySQL и покажу наглядно как можно написать простенький IVR используя Asteriks AGI и зная основы программирования.