Asterisk — свободное решение компьютерной телефонии (в том числе и VoIP) с открытым исходным кодом от компании Digium. Asterisk можно установить двумя способами: репозитории, либо собрать из исходников.
Так как мы тру-админы и любим ковыряться мелочах и досконально всё исследовать, поэтому будем собирать asterisk из исходников с максимальной установкой.
Итак, имеем следующую систему:
uname -a cat /etc/redhat-release
Настройка CentOS 6.3 для Asterisk
обновляем систему перед установкой
yum update
отключаем SElinux, для этого в файле /etc/sysconfig/selinux указываем:
SELINUX=disabled
Для применения настроек перезагружаем сервер:
reboot
после чего перезагрузить сервер:
Установка Asterisk
переходим в папку с исходниками /usr/local/src/
cd /usr/local/src/
Скачиваем Asterisk
wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.8.16.0.tar.gz
Скачиваем DAHDI (Digium Asterisk Hardware Device Interface, ранее Zaptel) — позволяет использовать аппаратные средства (карты) для соединения Asterisk с традиционными аналоговыми или цифровыми телефонными сетями
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/releases/dahdi-linux-complete-2.6.1+2.6.1.tar.gz
Скачиваем LibPRI — это библиотека, предназначенная для работы с потоковыми TDM-интерфейсами ISDN: PRI (Primary Rate Interface) и BRI (Basic Rate Interface)
wget http://downloads.asterisk.org/pub/telephony/libpri/releases/libpri-1.4.12.tar.gz
В итоге, должны увидеть три новых архива:
asterisk-1.8.16.0.tar.gz dahdi-linux-complete-2.6.1+2.6.1.tar.gz libpri-1.4.12.tar.gz
Распаковываем asterisk, DAHDI и LibPRI:
tar -xvzf asterisk-1.8* && tar -xvzf dahdi-linux-complete-* && tar -xvzf libpri-*
Устанавливаем пакеты необходимые для сборки ПО из исходников:
yum install kernel-devel gcc make gcc-c++ libxml2-devel
Также необходимо установить Perl & ncurses-devel:
yum install perl ncurses-devel
Устанавливаем LibPRI, переходим в папку с исходниками:
cd libpri-1.4.12/
Собираем LibPRI:
make make install
Собираем DAHDI:
cd /usr/local/src/dahdi-linux-complete* make all
make install
make config
В рамках данной установки я не буду рассматривать установку и настройку карт, но если вы будете использовать, то настройки ищите в
/etc/dahdi/system.conf и /etc/asterisk/chan_dahdi.conf
Добавляем DAHDi в автозагрузку (в том случае,если вы планируете использовать дополнительные карты):
chkconfig dahdi on
Проверяем
chkconfig dahdi --list
Запускаем сервис DAHDi (в том случае,если вы планируете использовать дополнительные карты):
service dahdi start
Переходим в директорию с исходниками Asterisk
cd /usr/local/src/asterisk-*
Выполняем скрипт поддержки mp3:
bash contrib/scripts/get_mp3_source.sh
Выполняем конфигурацию Asterisk:
./configure
Выбираем дополнительные опции установки:
make menuselect
В рамках нашей установки, я просто показал, что есть возможность более детальной настройки. Оставляем все по-умолчанию и нажимаем «Save & Exit»
Cобираем Asterisk:
make
make install
Устанавливаем примеры конфигурационных файлов:
make samples
Устанавливаем doxygen, он необходим для выполнения команды make progdocs
yum install doxygen
По команде make progdocs с помощью программы doxygen из комментариев, внесенных в исходный код разработчиком, будет создана документация
make progdocs
Для CentOS, который использует папки /etc/rc.d/init.d/ или /etc/init.d/, также желательно выполнить команду make config. Это обеспечит установку сценариев запуска и конфигурацию системы (с помощью команды chkconfig) для автоматического выполнения Asterisk при запуске:
make config
добавляем в автозагрузку и проверяем
chkconfig asterisk on chkconfig asterisk --list
Делаем тестовый запуск Asterisk
asterisk -vvvvc
Как видно тестовый запуск прошёл удачно, можно останавливать, набрав команду:
core stop now
Запускаем Asterisk
/etc/init.d/asterisk start
или
service asterisk start
Проверяем что актериск запушен
ВСЁ !!!
Возможные ошибки Asterisk:
1. Ошибка при выполнении команды make progdocs
Updating asterisk.conf build_tools/make_sample_voicemail "//var/lib/asterisk" "//var/spool/asterisk" Installing file phoneprov/000000000000.cfg Installing file phoneprov/000000000000-directory.xml Installing file phoneprov/000000000000-phone.cfg Installing file phoneprov/polycom_line.xml Installing file phoneprov/polycom.xml Installing file phoneprov/snom-mac.xml [root@home asterisk-1.8.16.0]# make progdocs (cat contrib/asterisk-ng-doxygen; echo "HAVE_DOT=no"; \ echo "PROJECT_NUMBER=1.8.16.0") | doxygen - /bin/sh: line 1: doxygen: команда не найдена make: *** [progdocs] Ошибка 127
yum install doxygen
2. При выполнении команды make config выдаёт: We could not install init scripts for your operating system.
--version Опции оболочки: -irsD or -c command or -O shopt_option (invocation only) -abefhkmnptuvxBCHP или опция -o We could not install init scripts for your operating system. У вас есть новая почта в /var/spool/mail/root
Решение:
cd /usr/local/src/asterisk-* make clean ./configure make menuselect make make install make config
Автор ты космос.
Спасибо огромное за статью хотел на пиво отстегнуть а тут тока яндекс.деньги кошелька такого нет. *CRAZY*
8) лучше бы пивка сразу прислал 😉
А еще можно попросить статью asterisk + realtime + postgresql?
postgresql- а зачем это? много абонентов?
нет, там конфиги все хранятся в базе данных, и не нужно диаплан перезагружать чтобы изменения применялись и статистику по звонкам выбирать. я по вашей статье собрал, все работает, идеально, но при реализации этого механизма у меня * пишет config.c:2272 find_engine: Realtime mapping for ‘queues’ found to engine ‘pgsql’, but the engine is not available
добрый день! все шло по инструкции но при выполнении asterisk -vvvvc грит asterisk: команда не найдена. Что делать ????
Спасибо за статью. Все предельно понятно и заработало с первого раза. Отличная идея отметить возможные ошибки.
при ошибке root@localhost asterisk-1.8.7.1]# bash contrib/scripts/get_mp3_source.sh
пишет
contrib/scripts/get_mp3_source.sh: line 12: svn: command not found
нужно ставить subversion — yum install subversion