top
logo


Asterisk на CentOS PDF Печать E-mail
Автор: Administrator   
22.10.09 16:21

Установка 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}

Последнее обновление 17.06.10 09:25
 
Интересная статья? Поделись ей с другими:

bottom

 

Unreal Commander PfSense по русски Яндекс.Метрика