По традиции буду показывать степ-бай-степ хаутушку на свежеустановленном 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
# 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/Подключаемся, смотрим, что получилось
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
Комментариев нет:
Отправить комментарий