Сегодня рассмотрим установку 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 и зная основы программирования.