С одной стороны нам понадобится сам asterisk.
Можно воспользоваться одним из готовых дистрибутивов таких как Trixbox, Elastix, AsteriskNow, но у меня не получилось добиться адекватной работы от модуля работы с h323 входящего в состав первых двух дистрибутивов( во всяком случае при настройке транков к avaya).
У кого тоже не получилось или просто интересно, прошу под кат.
Воспользуемся другим драйвером, а именно OpenH323 от NuFone, так как его нет ни в одном из готовых дистрибутивов, то будем мы его собирать из исходников, за одно и сам asterisk соберем.
Но для начала нам понадобиться ОС, под все наши «упражнения».
Я выбрал последнюю( на момент проведения данных действий) стабильную версию CentOS, а именно 5.8( спасибо centos.org и зеркалу от Яндекс).
Качаем — Запускаем — Ставим
Тут по желанию, ставить можно при помощи gui( тогда жмем далее — далее — да — далее — да — настраиваем сеть — далее — временная зона — рутовый пароль — можно по выбирать нужные дополнительные пакеты, но мы после установки воспользуемся yum, так что далее).
Наблюдаем процесс установки/идем пить чай/занимаемся другими делами.
После установки и перезагрузки однократно запустится setup, в котором надо настроить/отключить selinux и firewall.
Если момент запуска setup Вы проморгали — его можно самостоятельно запустить написав в терминале setup
Нам оттуда понадобится только пункт firewall configuration он запускает system-config-securitylevel-tui(можно его запустить вместо setup).
Там для ускорения процесса отключим firewall и selinux(настройка и того и другого темы для отдельных статей).
Все, можно подключаться к серверу по SSH и ставить asterisk с необходимыми дополнениями.
Установим необходимые пакеты, а именно
make
gcc-c++
kernel-devel
openssl-devel
expat-devel
gnutls-devel
flex
bison
ncurses-devel
libxml2-devel
sqlite-devel
yum install make gcc-c++ kernel-devel openssl-devel expat-devel gnutls-devel flex bison ncurses-devel libxml2-devel sqlite-devel -y
Качаем необходимые библиотеки в директорию /root
Open H.323 v1.18.0
PWLib v1.10.0
cd /root wget http://www.voxgratia.org/releases/openh323-v1_18_0-src-tar.gz wget http://www.voxgratia.org/releases/pwlib-v1_10_0-src-tar.gz
Переименовываем.
mv openh323-v1_18_0-src-tar.gz openh323-v1_18_0-src.tar.gz mv pwlib-v1_10_0-src-tar.gz pwlib-v1_10_0-src.tar.gz
Распаковываем.
tar vfxz openh323-v1_18_0-src.tar.gz tar vfxz pwlib-v1_10_0-src.tar.gz
И еще раз переименовываем.
mv pwlib_v1_10_0 pwlib mv openh323_v1_18_0 openh323
Добавляем необходимые компилятору заголовки.
cp /usr/src/kernels/2.6.18-308.4.1.el5-i686/include/linux/compiler.h /usr/include/linux
Компилируем библиотеки.
cd /root/pwlib ./configure make clean opt cd /root/openh323 ./configure make clean opt
Копируем скомпилированные библиотеки вместе со ссылками в нужное место.
cp /root/openh323/lib/libh323_linux_x86_r* /lib cp /root/pwlib/lib/libpt_linux_x86_r* /lib
Качаем исходники asterisk нужной нам версии, например 10.4 (или по старому счету 1.10.4).
cd /usr/src wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-10.4.0.tar.gz
Распаковываем.
tar vfxz asterisk-10.4.0.tar.gz
Заходим в директрию с исходниками и указываем необходимые пути.
cd asterisk-10.4.0 export OPENH323DIR=/root/openh323/ export PWLIBDIR=/root/pwlib/ export OPENH323_LIBDIR=/lib export PWLIB_LIBDIR=/lib
и запускаем
./configure
Если все прошло хорошо, то увидим выполненный в псевдографике логотип asterisk.
Можно запускать.
make menuselect
Там channel drivers и в самом низу отмечаем chan_h323, нажимаем s чтобы сохраниться и выйти далее.
make make install make samples make config /sbin/chkconfig asterisk on
Можно запустить asterisk.
/etc/init.d/asterisk start
ИТОГО:
Работающий asterisk, с драйвером канала h.323 от NuFone.
Создаем транк группу на avaya:
add trunk-group next
page 1
Group Type: isdn Carrier Medium: H.323 Service Type: public-ntwrk Member Assignment Method: auto Number of Members: 2 необходимое количество линий
change node-names ip asterisk X.X.X.X
add signaling-group next
page 1
Group Type: h.323 Trunk Group for Channel Selection: "номер транковой группы" Near-end Node Name: procr Near-end Listen Port: 1720 Far-end Node Name: asterisk Far-end Listen Port: 1720
На этом настройка avaya пока закончена.
Переходим к asterisk.
cd /etc/asterisk/
В первую очередь нам понадобится h323.conf:
[general] port = 1720 bindaddr = X.X.X.X ; ip адресс астериска disallow=all allow=alaw dtmfmode=inband gatekeeper = DISABLE context=h323-in ; контекст для входящих звонков по данному каналу progress_setup = 8 progress_alert = 8 [avaya] ; контекст коннекта к avaya type=friend host=Y.Y.Y.Y ; ip адрес CM port=1720 diallow=all allow=alaw h245tunneling=yes
Далее можно/нужно рестартануть потоки с обеих сторон.
asterisk:
asterisk -r module reload chan_h323.so
avaya:
busyout trunk 15 busyout signaling-group 15 release signaling-group 15 release trunk 15
проверяем
status trunk 15
0015/001 T00022 in-service/idle no
Для того, чтобы можно было использовать данный транк, необходимо внести изменения в extensions.conf:
[general] static=yes writeprotect=no clearglobalvars=no [globals] CONSOLE=Console/dsp IAXINFO=guest TRUNK=DAHDI/G2 TRUNKMSD=1 [default] [h323-out] ; контекст исходящих на avaya exten => _X.,1,Dial(H323/${EXTEN}@avaya) ; все исходящие в неизменном виде отправляем на avaya [h323-in] exten => _X.,1,Dial(SIP/${EXTEN}) ; все входящие по каналу h323 пытаемся передать на соответствующие sip номера в неизменном виде
Конечно, в реальной схеме такие конструкции использовать не стоит, здесь они приведены для того, чтобы показать концепцию.
Приведу конфигурационный файл sip.conf
[general] bindport=5060 bindaddr=0.0.0.0 context=default allowguests=no [99999] ; тестовый sip юзер type=friend secret=99999 host=dynamic context=h323-out ; использующий для исходящих звонков контекст h323-out из extensions.conf cid_number=00000 ; с вот таким интересным АОН
Можно заняться совершением тестовых звонков
и проконтролировать со стороны asterisk, просто запустив его консоль:
asterisk -r
А со стороны avaya
list trace tac #15
PS: при подготовке статьи использовалась информация с asterisk.ru ну и гугл, конечно.
ссылка на оригинал статьи http://habrahabr.ru/post/197080/
Добавить комментарий