Установка Asterisk
Установка Asterisk. Часть 2. H323
Запись разговоров в Asterisk
Настройка internet-radio как MusicOnHold для Asterisk
Когда я захотел установить Asterisk на CentOS пришлось перелопатить кучу инфы чтобы найти всё что мне надо. Asterisk 1.4.17 on CentOS 5.1 Для начала скачиваем Asterisk c http://downloads.digium.com/pub/asterisk/
И так приступаем к сборке Asterisk 1.4 Посмотрим на релиз ядра: # uname -r 2.6.18-53.1.4.e15
Сперва устанавливаем пакеты необходимые для работы. yum -y install kernel-devel gcc ncurses-devel openssl-devel gcc-c++ gnutls-devel make ln -s /usr/src/kernels/2.6.18.-53.1.4.e15-i686/ /usr/src/linux yum -y install iftop yum -y install libtool-ltdl libtool-ltdl-devel yum -y install iksemel yum -y install curl curl-devel newt newt-devel net-snmp net-snmp-libs yum -y install glibc-devel kernel-header db-devel gcc cpp binutils bison expat-devel ncurses openssl openssl-devel
ВНИМАНИЕ: у Вас может быть другой путь к исходникам ядра
Устанавливаем Zaptel cd /usr/src/zaptel-1.4.7.1/ make clean make make install make install-udev make config
Во время зборки может произойти ошибка пофиксить ее просто заменив в файле /usr/src/zaptel-1.4.7.1/xpp/xbus-core.c следущющую строку
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) на #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)
Запускаем zaptel
/etс/init.d/zaptel start
Устанавливаем LibPRI
cd /usr/src/libpri-1.4.1/ make clean make make install
Устанавливаем Asterisk
cd /usr/src/asterisk-1.4.11/ make clean ./configure make make install make samples make progdocs make config
Устанавливаем Perl Модуль скачиваем с сайта http://asterisk.gnuinter.net/files/ последнюю версию asterisk-perl-0.10
cd /usr/src/asterisk-perl-0.10 perl Makefile.PL make all make install
Далее собираем дополнения cd /usr/src/asterisk-addons-1.4.5 ./configure make make install
Всё готово, просматриваем всё-ли стартует при старте системы, команда "setup"
Установка Asterisk. Часть 2. H323
Эта статья является продолжением статьи Установка Asterisk По производственной необходимости необходимо было настроить ещё один сервер с Asterisk в удалённый офис. Причём связь с местной городской сетью осуществляться должна была через H323 кодек. И настала мне пора заняться этим.
Первым, чем я занялся, это сравнил имеющиеся варианты кодеков H323 и OOH323, честно говоря разница между ними мне не критична, полными наворотами протокола я не пользуюсь. Поэтому я решил ставить H323, так как его поставить проще. Уточню, проще всего подготовить все настройки для этого кодека, а потом при установке, Asterisk он сам обнаружит что кодек готов для установки и установит его.
Первым делом займёмся скачиванием исходников. Тут есть один неслабый нюанс. Не все версии совместимы со всеми. Когда я ставил Оптимальным вариантом были: pwlib версии 1.11.0 и openh323 версии 1.19.0.1 Брать здесь SourceForge.net Я распаковывал всё в папку /usr/src/
Компилим сначала pwlib. Он должен откомпилироваться без проблем.
./configure make
Тут у меня образовался затор, пока я не прописал это:
export PWLIBDIR=/usr/src/pwlib_v1_11_0 export OPENH323DIR=/usr/src/openh323_v1_19_0_1 export LD_LIBRARY_PATH=$PWLIBDIR/lib:$OPENH323DIR/lib
Теперь компилируем OpenH323:
./configure make opt
Откомпилированые библиотеки:
libh323_linux_x86_d.so.1.19.0 libpt_linux_x86_d.so.1.11.0
я закинул в папку /usr/lib, чтобы они были доступны без прописывания дополнительных путей и при перезагрузке системы.
Дальше идём как всегда, устанавливаем нужные пакеты:
yum -y install kernel-devel gcc ncurses-devel openssl-devel gcc-c++ gnutls-devel make ln -s /usr/src/kernels/2.6.18.-53.1.4.e15-i686/ /usr/src/linux yum -y install iftop yum -y install libtool-ltdl libtool-ltdl-devel yum -y install iksemel yum -y install curl curl-devel newt newt-devel net-snmp net-snmp-libs yum -y install glibc-devel kernel-header db-devel gcc cpp binutils bison expat-devel ncurses openssl openssl-devel
Устанавливаем Zaptel
cd /usr/src/zaptel-1.4.7.1/ make clean make make install make install-udev make config
Во время зборки может произойти ошибка пофиксить ее просто заменив в файле /usr/src/zaptel-1.4.7.1/xpp/xbus-core.c следущющую строку
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) на #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)
Запускаем zaptel
/etс/init.d/zaptel start
Устанавливаем LibPRI
cd /usr/src/libpri-1.4.1/ make clean make make install
Устанавливаем Asterisk, вот здесь установка запросит перезапустить себя, так как увидит H323 кодек.
cd /usr/src/asterisk-1.4.11/ make clean ./configure make make install make samples make progdocs make config
Устанавливаем Perl Модуль скачиваем с сайта http://asterisk.gnuinter.net/files/ последнюю версию asterisk-perl-0.10
cd /usr/src/asterisk-perl-0.10 perl Makefile.PL make all make install
Далее собираем дополнения
cd /usr/src/asterisk-addons-1.4.5 ./configure make make install
Запись разговоров в Asterisk Так как по работе часто приходится звонить на телефоны разнообразных техподдержек, то часто слышишь, что ведется запись разговора. Захотелось и мне такую штуку сделать, чтобы потом можно было доказать, что ты не слон и говорил именно то, что говорил, а не то что подумали на той стороне телефонной трубки.
Путем сложных поисков в гугле нашел несколько способов записи разговоров, но всё они записывали в wav и размер был соответствующим, а это меня не устраивало, как говорится в одном анекдоте: появился анлимный инет, осталось найти анлимный винт. Была у меня сначала идея регулярно переобжимать в mp3. Но потом нашёл параметры чтобы сразу после разговора обжималось с wav в mp3.
exten => 3,n, Set(CALLFILENAME=${STRFTIME(${EPOCH},,%y-%m-%d__%H-%M)}_${CALLERID(name)}); exten =>; 3,n, Set(monopt=nice -n 19 /usr/bin/lame -b 16 --noshort --silent "/var/spool/asterisk/monitor/${CALLFILENAME}.wav" "/var/spool/asterisk/monitor/${CALLFILENAME}.mp3" && rm -f "/var/spool/asterisk/monitor/${CALLFILENAME}.wav") exten => 3,n, MixMonitor(${CALLFILENAME}.wav|b|${monopt}); exten => 3,n, Dial(SIP/7002&SIP/7003,20,tTm) exten => 3,n, GotoIfTime(10:00-19:00|mon-fri|*|*?mobiln-admin,1) exten => 3,n, StopMonitor;
По поводу параметров lame, эти были подобраны опытным путем, вроде как самый малый размер чтобы нормально послушать. Да, кстати, разговор пишется только если на второй стороне взяли трубку, то есть файл не пустой.
Настройка internet-radio как MusicOnHold для Asterisk В конце концов всё оказалась просто как 5 копеек, но для этого надо было дойти, чтобы вдруг ещё кто-то не тупил, напишу эти 5 копеек здесь.
У меня музыка проигрывается когда с Asterisk звонят во внешний мир. В файле musiconhold.conf дописываем следующие строки:
[radio] mode=custom directory=/var/lib/asterisk/mohmp3 application=/usr/local/bin/mpg123 -q -r 8000 -f 8192 -b --mono -s http://live.radiorelax.kiev.ua:7200/relax_lo
А в файле extensions.conf в разделе где прописаны внешние звонки делаю exten=>s,n,SetMusicOnHold(radio)
Вот как бы и всё, если вы хотите на определённый номер поставить прослушивание радио (а на разные номера можно разные радиостанции) то во первых проверьте что у вас канал анлимный, а во вторых пишем так:
exten => 922,1,Ringing exten => 922,2,Wait,2 exten => 922,3,Answer exten => 922,4,MusicOnHold(radio) exten => 922,5,Playback(vm-goodbye) exten => 922,6,Hangup
Всё выглядит просто, но я потратил своё время, и если эта статья поможет кому-то сберечь его, то я молодец и вообще :-)
{jcomments on}
|