По традиции буду показывать степ-бай-степ хаутушку на свежеустановленном Debian Lenny.
Поставим минимальный софт, чтобы зацепиться по ssh и более-менее комфортно продолжать настройку по сети
# apt-get install zip unzip bzip2 arj mc ssh sudoПропишем дополнительные репы в /etc/apt/sources.list закомментируем привод
# vim /etc/apt/sources.list # deb cdrom:[Debian GNU/Linux 5.0.3 _Lenny_ - Official i386 CD Binary-1 20090905-08:23]/ lenny main deb http://ftp2.de.debian.org/debian/ lenny main contrib non-free deb-src http://ftp2.de.debian.org/debian/ lenny main contrib non-free deb http://security.debian.org/ lenny/updates main deb-src http://security.debian.org/ lenny/updates main deb http://volatile.debian.org/debian-volatile lenny/volatile main deb-src http://volatile.debian.org/debian-volatile lenny/volatile main deb ftp://ftp.debian-multimedia.org lenny main non-freeПрежде чем обновлять список пакетов, добавим ключик для debian-multimedia, чтобы apt не ругался
# wget http://www.debian-multimedia.org/pool/main/d/debian-multimedia-keyring/d... # dpkg -i debian-multimedia-keyring_2008.10.16_all.deb # rm debian-multimedia-keyring_2008.10.16_all.debТеперь можно обновлять список пакетов реп и апгрейдить систему
# apt-get update # apt-get upgrade
Установка необходимых пакетов для Asterisk
Идём на сайт астериска и вытягиваем необходимые пакеты. на сайте, как правило представлены 4 пакета астериска. В порядке убывания версий они классифицируются следующим образом: trunk, stable, release, old. К примеру на текущий момент выложены следующие версии:Asterisk 1.6.2 - trunk Asterisk 1.6.1 - stable Asterisk 1.6.0 - release Asterisk 1.4 - old
Транк, естественно, трогать не будем. Для себя я выбрал Stable. Качаем его + некоторые дополнительные пакеты, которые в дальнейшем нам могут пригодиться. Кратко поясню что и для чего надо:
- LibPRI - добавляет поддержку ISDN
- DAHDI - обеспечивает интерфейсный уровень между сервером Asterisk с одной стороны, и драйвером интерфейса Daahdi плюс программные эхоподавителели с другой. Драйвера интерфейсов позволяют использовать аппаратные средства (карты) для соединения Asterisk с традиционными аналоговыми или цифровыми телефонными сетями
- LibSS7 - библиотека, реализующая работу по протоколу SS7
# cd /usr/local/src/ # wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.6.1.19.tar.gz \ http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-addons-1.6.1.3.tar.gz \ http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/releases/dahdi-linux-complete-2.3.0+2.3.0.tar.gz \ http://downloads.asterisk.org/pub/telephony/libpri/releases/libpri-1.4.10.2.tar.gz \ http://downloads.asterisk.org/pub/telephony/libss7/releases/libss7-1.0.2.tar.gzСтоит отметить, что до версии 1.4 астериску, для связи с железками требовался пакет zaptel, но какая-то фирма, продающая телефонный примочки предъявили документы, по кторым товарный знак 'zaptlel' принадлежит ей, а не digium. В результате Asterisk 1.6 использует модуль DAHDI. Версия 1.4 астериска - может использовать как DAHDI, так и Zaptel. Версия 1.2 - только zaptel. По сути, DAHDI является продолжение Zaptel-а, включает поддержку оборудования, что поддерживал Zaptel, за минусом каких-то ООООЧЕНЬ древних железяк.
Соберём пакеты
# cd /usr/local/src/ # tar xzfv /usr/local/src/libss7-1.0.2.tar.gz # cd libss7-1.0.2 # make # make install # cd /usr/local/src/ # tar xzfv /usr/local/src/libpri-1.4.10.2.tar.gz # cd libpri-1.4.10.2 # make # make install # cd /usr/local/src/ # tar xzfv /usr/local/src/dahdi-linux-complete-2.3.0+2.3.0.tar.gz # cd dahdi-linux-complete-2.3.0+2.3.0 # make all # make install # make config
Установка Asterisk
Установим непосредственно сам астериск. Перед установкий читаем ридми, в котором говорится, какие библиотеки надо доустановить. Не удивляйтесь большому списку, просто на данном этапе также будут установлены пакеты, которые потребуются позже для установки FreePBXУстанавливаем либы, собираем:
# apt-get install libncurses5-dev openssl libssl-dev zlib1g zlib1g-dev mpg123 linux-headers-`uname -r` build-essential \ mysql-server libmysqlclient15-dev php5 php5-cli php5-mysql php5-gd php-pear apache2 curl sox bison flex cpp g++ gcc make \ libauthen-pam-perl libio-pty-perl libmd5-perl libnet-ssleay-perl libxml2 libxml2-dev libtiff4 libtiff4-dev lame\ perl-modules libaudiofile-dev # cd /usr/local/src # tar xzfv /usr/local/src/asterisk-1.6.1.19.tar.gz # tar xzfv /usr/local/src/asterisk-addons-1.6.1.3.tar.gz # cd /usr/local/src/asterisk-1.6.1.19 # ./configureЕсли всех библиотек хватает, то должны увидеть следующее
....................... config.status: creating include/asterisk/autoconfig.h .$$$$$$$$$$$$$$$=.. .$7$7.. .7$$7:. .$$:. ,$7.7 .$7. 7$$$$ .$$77 ..$$. $$$$$ .$$$7 ..7$ .?. $$$$$ .?. 7$$$. $.$. .$$$7. $$$$7 .7$$$. .$$$. .777. .$$$$$$77$$$77$$$$$7. $$$, $$$~ .7$$$$$$$$$$$$$7. .$$$. .$$7 .7$$$$$$$7: ?$$$. $$$ ?7$$$$$$$$$$I .$$$7 $$$ .7$$$$$$$$$$$$$$$$ :$$$. $$$ $$$$$$7$$$$$$$$$$$$ .$$$. $$$ $$$ 7$$$7 .$$$ .$$$. $$$$ $$$$7 .$$$. 7$$$7 7$$$$ 7$$$ $$$$$ $$$ $$$$7. $$ (TM) $$$$$$$. .7$$$$$$ $$ $$$$$$$$$$$$7$$$$$$$$$.$$$$$$ $$$$$$$$$$$$$$$$. configure: Package configured for: configure: OS type : linux-gnu configure: Host CPU : i686 configure: build-cpu:vendor:os: i686 : pc : linux-gnu : configure: host-cpu:vendor:os: i686 : pc : linux-gnu :
# make ......куча всяких букофф.......... .................................. [LD] eagi-test.o strcompat.o -> eagi-test [CC] eagi-sphinx-test.c -> eagi-sphinx-test.o [LD] eagi-sphinx-test.o -> eagi-sphinx-test +--------- Asterisk Build Complete ---------+ + Asterisk has successfully been built, and + + can be installed by running: + + + + make install + +-------------------------------------------+
# make install ......................... if [ -f contrib/firmware/iax/iaxy.bin ] ; then \ /usr/bin/install -c -m 644 contrib/firmware/iax/iaxy.bin /var/lib/asterisk/firmware/iax/iaxy.bin; \ fi +---- Asterisk Installation Complete -------+ + + + YOU MUST READ THE SECURITY DOCUMENT + + + + Asterisk has successfully been installed. + + If you would like to install the sample + + configuration files (overwriting any + + existing config files), run: + + + + make samples + + + +----------------- or ---------------------+ + + + You can go ahead and install the asterisk + + program documentation now or later run: + + + + make progdocs + + + + **Note** This requires that you have + + doxygen installed on your local system + +-------------------------------------------+
# make samples ...................... mkdir -p /var/spool/asterisk/voicemail/default/1234/INBOX 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На этом установка непосредственно самого астериска завершена. Причитаем ридми к аадонсам, доустановим необходимые пакеты, прикрутим сами аддонсы (ooh323-кодек, поддержка mp3,).
# apt-get install lame # cd /usr/local/src/asterisk-addons-1.6.1.3 # ./configure .......................... config.status: creating build_tools/menuselect-deps config.status: creating makeopts .$$$$$$$$$$$$$$$=.. .$7$7.. .7$$7:. .$$:. ,$7.7 .$7. 7$$$$ .$$77 ..$$. $$$$$ .$$$7 ..7$ .?. $$$$$ .?. 7$$$. $.$. .$$$7. $$$$7 .7$$$. .$$$. .777. .$$$$$$77$$$77$$$$$7. $$$, $$$~ .7$$$$$$$$$$$$$7. .$$$. .$$7 .7$$$$$$$7: ?$$$. $$$ ?7$$$$$$$$$$I .$$$7 $$$ .7$$$$$$$$$$$$$$$$ :$$$. $$$ $$$$$$7$$$$$$$$$$$$ .$$$. $$$ $$$ 7$$$7 .$$$ .$$$. $$$$ $$$$7 .$$$. 7$$$7 7$$$$ 7$$$ $$$$$ $$$ $$$$7. $$ (TM) $$$$$$$. .7$$$$$$ $$ $$$$$$$$$$$$7$$$$$$$$$.$$$$$$ $$$$$$$$$$$$$$$$. configure: Package configured for: configure: OS type : Linux configure: Host CPU : i686Добавьте строку ASTCFLAGS+=-DMYSQL_LOGUNIQUEID в Makefile
# make ............................ make[1]: Leaving directory `/usr/local/src/asterisk-addons-1.6.1.3/res' +---- Asterisk-Addons Build Complete ----+ + + + Addons has successfully been built . + + If you would like to install it : + + + + make install + +-------------------------------------------+
# make install ........................... Installing modules from cdr... Installing modules from res... +---- Asterisk-Addons Installation Complete ----+ + + + Addons has successfully been installed. + + If you would like to install the sample + + configuration files (overwriting any + + existing config files), run: + + + + make samples + +-----------------------------------------------+
# make samples ........................ for x in configs/*.sample; do \ if [ -f /etc/asterisk/`basename $x .sample` ]; then \ if [ "y" = "y" ]; then \ if cmp -s /etc/asterisk/`basename $x .sample` $x ; then \ echo "Config file $x is unchanged"; \ continue; \ fi ; \ mv -f /etc/asterisk/`basename $x .sample` /etc/asterisk/`basename $x .sample`.old ; \ else \ echo "Skipping config file $x"; \ continue; \ fi ;\ fi ; \ /usr/bin/install -c -m 644 $x /etc/asterisk/`basename $x .sample` ;\ done #Добавим extra-sounds для астериска (в комплекте идут только базовые звуковые файлы).
# cd /var/lib/asterisk/sounds/en # wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-ulaw-current.tar.gz \ http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-wav-current.tar.gz # tar xzfv asterisk-extra-sounds-en-ulaw-current.tar.gz # tar xzfv asterisk-extra-sounds-en-wav-current.tar.gz # rm asterisk-extra-sounds-en-ulaw-current.tar.gz asterisk-extra-sounds-en-wav-current.tar.gzВроде всё. Запустим астериск.
# asterisk -vvvc ........................................ SIP channel loading... == Parsing '/etc/asterisk/sip.conf': == Found == Parsing '/etc/asterisk/users.conf': == Found == SIP Listening on 0.0.0.0:5060 == Using SIP CoS mark 4 == Parsing '/etc/asterisk/sip_notify.conf': == Found == Registered channel type 'SIP' (Session Initiation Protocol (SIP)) == Registered application 'SIPDtmfMode' == Registered application 'SIPAddHeader' == Registered custom function 'SIP_HEADER' == Registered custom function 'SIPPEER' == Registered custom function 'SIPCHANINFO' == Registered custom function 'CHECKSIPDOMAIN' == Manager registered action SIPpeers == Manager registered action SIPshowpeer == Manager registered action SIPqualifypeer == Manager registered action SIPshowregistry == Manager registered action SIPnotify chan_sip.so => (Session Initiation Protocol (SIP)) == Registered custom function 'CUT' == Registered custom function 'SORT' func_cut.so => (Cut out information from a string) Asterisk Ready. == Parsing '/etc/asterisk/cli.conf': == Found *CLI>Asterisk Ready и *CLI> означают, что астериск поставился нормально. перезагрузите сервак, чтобы проверить, как поднимаются dahdi, zaptel и пр.
Всё вроде здорово и замечательно, но есть несколько "НО"
- Астериск запускается от рута
- Нет скриптов автозапуска астериска
Убедимся, что астериск не запущен. Если запущен - кильните его. Создадим пользователя asterisk и разрешим ему доступ к либам и конфигам
# ps ax|grep aster 12791 pts/1 S+ 0:00 grep aster # adduser --system --group --home /var/lib/asterisk --no-create-home --gecos "Asterisk PBX" asterisk # adduser asterisk dialout # adduser asterisk audio # adduser www-data asterisk # chown -R asterisk:asterisk /var/lib/asterisk # chown -R asterisk:asterisk /var/log/asterisk # mkdir -p /var/run/asterisk # chown -R asterisk:asterisk /var/run/asterisk # chown -R asterisk:asterisk /var/spool/asterisk # chown -R asterisk:asterisk /usr/lib/asterisk # chown -R asterisk:asterisk /dev/dahdi # chmod -R u=rwX,g=rX,o= /var/lib/asterisk # chmod -R u=rwX,g=rX,o= /var/log/asterisk # chmod -R u=rwX,g=rX,o= /var/run/asterisk # chmod -R u=rwX,g=rX,o= /var/spool/asterisk # chmod -R u=rwX,g=rX,o= /usr/lib/asterisk # chmod -R u=rwX,g=rX,o= /dev/dahdi # chown -R root:asterisk /etc/asterisk # chmod -R u=rwX,g=rX,o= /etc/asterisk # cp /etc/asterisk/asterisk.conf /etc/asterisk/asterisk.conf.orig # vi /etc/asterisk/asterisk.confМеняем
astrundir => /var/run
на
astrundir => /var/run/asterisk
Астериску нужны права на voicemail.conf для смены паролей
# chmod g+w /etc/asterisk/voicemail.conf # chmod g+w,+t /etc/asterisk # /etc/init.d/asterisk restartПропишем, чтобы апач запускался под пользователем asterisk. Для этого в файле /etc/apache2/envvars поменяем переменные APACHE_RUN_USER и APACHE_RUN_GROUP. Соответсвенно выглядеть они должны следующим образом
export APACHE_RUN_USER=asterisk export APACHE_RUN_GROUP=asteriskПерезапустим апач, посмотрим, от имени какого пользователя он стал крутиться
# /etc/init.d/apache2 restart # ps aux|grep apache root 2592 0.0 3.4 24196 4384 ? Ss 02:33 0:03 /usr/sbin/apache2 -k start asterisk 2629 0.0 9.3 31024 11724 ? S 02:33 0:16 /usr/sbin/apache2 -k start asterisk 2630 0.0 8.4 30208 10548 ? S 02:33 0:17 /usr/sbin/apache2 -k start asterisk 2631 0.0 8.7 30376 10932 ? S 02:33 0:16 /usr/sbin/apache2 -k start asterisk 2632 0.0 7.8 29516 9808 ? S 02:33 0:01 /usr/sbin/apache2 -k start asterisk 2678 0.0 8.8 30400 11044 ? S 02:34 0:23 /usr/sbin/apache2 -k start asterisk 2680 0.0 8.5 30344 10740 ? S 02:34 0:30 /usr/sbin/apache2 -k start asterisk 2691 0.0 8.6 30348 10808 ? S 02:34 0:09 /usr/sbin/apache2 -k start asterisk 2692 0.0 8.8 30420 11060 ? S 02:34 0:32 /usr/sbin/apache2 -k start asterisk 2798 0.0 9.0 30996 11300 ? S 02:42 0:15 /usr/sbin/apache2 -k start asterisk 3619 0.2 8.0 29772 10128 ? S 15:16 0:07 /usr/sbin/apache2 -k start root 4629 0.0 0.6 3148 784 pts/3 S+ 16:09 0:00 grep apacheВсё замечательно, продолжим установку. Напишем скрипт для запуска астериска, полодим его в init.d, раскидаем симлинки по ранлевелам
Старт-стоповый скрипт для астериска
В аттаче есть файл asterisk.tar.gz. Распаковываем его содержимое (файл asterisk) в /etc/init.d затем делаем
# chmod 755 /etc/init.d/asterisk # chown asterisk.asterisk /etc/init.d/asterisk # update-rc.d asterisk defaultsДля проверки, стартует ли астериск на автомате можете перезагрузить сервак и посмотреть список процессов. Чтобы подключиться к астериску, наберите в консольке
# asterisk -r Asterisk 1.6.1.19, Copyright (C) 1999 - 2010 Digium, Inc. and others. Created by Mark SpencerЕсли хотите видеть отладочную информацию - в стартстоповом скрипте измените переменную PARAMS на что-то типа такого PARAMS="-U asterisk -G asterisk -vvvvvd"Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details. This is free software, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type 'core show license' for details. ========================================================================= Connected to Asterisk 1.6.1.19 currently running on anyserv (pid = 2244) anyserv*CLI>
Для выхода из консоли управления астериском, введите exit. На этом установка астериска закончена
Установка FreePBX
Проект FreePBX исторически начинался как Asterisk Management Portal (AMP). Проект представляет из себя довольно удобную систему управлению астериском. В принципе, никто не заставляет пользоваться ею, можно осуществлять все настройки непосредственно в файлах конфигурации, но для тех, кому Asterisk в новинку – это будет просто идеальное решение. В подавляющем большинстве вы будите работать именно во FreePBX при настройке внутренних номеров, входящих/исходящий линий, IVR (Interactive Voice Response) и т.п.# cd /usr/local/src/ # wget http://mirror.freepbx.org/freepbx-2.7.0.tar.gz # tar xzfv freepbx-2.7.0.tar.gz # cd freepbx-2.7.0/Рекомендую прочитать файл INSTALL.
Создадим базы в мускуле и заполним их.
# mysql -u root -p mysql> create database asterisk; Query OK, 1 row affected (0.04 sec) mysql> create database asteriskcdrdb; Query OK, 1 row affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY 'asterpass'; Query OK, 0 rows affected (0.08 sec) mysql> GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY 'asterpass'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> \q ByeЗаполним созданные базы
# mysql -u root -p asterisk < SQL/newinstall.sql # mysql -u root -p asteriskcdrdb < SQL/cdr_mysql_table.sqlПодправим лимиты в /etc/php5/apache2/php.ini
upload_max_filesize=20M ........................ memory_limit = 1100M ........................ magic_quotes_gpc = OffВ файле /etc/php5/cli//php.ini
memory_limit=120MПерезапускаем Апач, запускаем астериск, запускаем установку FreeBPX
# cd /usr/local/src/freepbx-2.7.0 # ./install_ampСкрипт задаст некоторые вопросы, ответив на которые система установится "куда прикажете". На выхлопе увидите, куда подключаться и предупреждение, что желательно обновить модули.
Module customappsreg successfully enabled installed Please update your modules and reload Asterisk by visiting http://192.168.0.177/admin ************************************************************************* * Note: It's possible that if you click the red 'Update Now' bar BEFORE * * updating your modules, your machine will start dropping calls. Ensure * * that all modules are up to date BEFORE YOU CLICK THE RED BAR. As long * * as this is observed, your machine will be fully functional whilst the * * upgrade is in progress. *Т.к. ставим FreePBX под рутом, а Апач и астериск работают под пользователем asterisk, я на всякий пожарный повторно назначаю права на папки, как было показано выше
Создадим queues_additional.conf Без него FreePBX ругается.
# touch /etc/asterisk/queues_additional.conf # chown -R asterisk:asterisk /etc/asterisk/Подключаемся, смотрим, что получилось
Для использования русского языка в FreePBX в /usr/share/locale/locale.alias изменяем строчку
russian … на russian ru ru ru_RU ru_RU ru_RU.UTF-8На страничке с админкой FreePNX в выпадающем списке выберем русский. Помимо всего, не забывайте нажимать кнопку "Apply configuration changes" Обновляем страничку, смотрим, что получилось:
Прикрутим русские звуки для астериска.
В аттаче 3 файла:- asterisk-sounds-ru-wav-2010-04-28.tar.gz
- asterisk-sounds-ru-gsm-2010-04-28.tar.gz
- asterisk-sounds-ru-alaw-2010-04-28.tar.gz
/var/lib/asterisk/soundsУстанавливаем владельца
chown -R asterisk:asterisk /var/lib/asterisk/soundsПропишем язык
# echo 'Language=ru' > /etc/asterisk/sip_general_custom.confПерезапустим астериск, порадуемся довольно качественной озвучке :)
PS: Я не гуру по астериску, поэтому мог что-то упустить или описать неверно/неточно/неполно. Буду рад, если вы выскажите свои конструктивные замечания или предложения.
Вложение | Размер |
---|---|
asterisk-sounds-ru-alaw-2010-04-28.tar_.gz | 9.59 Мб |
asterisk-sounds-ru-gsm-2010-04-28.tar_.gz | 2.33 Мб |
asterisk-sounds-ru-wav-2010-04-28.tar_.gz | 20.25 Мб |
asterisk.tar_.gz | 855 байтов |
Для исключения всяких
On Май 26th, 2010 Гость says:
Для исключения всяких скриптов автозапуска и телодвижений связанных с ним рекомендую ставить в следующей последовательности
# Установка Asterisk
cd /usr/src/asterisk-1.6*
./configure
make install
make config
make samples
# Установка Asterisk
cd /usr/src/asterisk-1.6*
./configure
make install
make config
make samples
Комментариев нет:
Отправить комментарий