Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
podkljuchaem_asterisk_k_avaya_po_protokolu_h.323 [2013/11/18 17:47]
ansealk
podkljuchaem_asterisk_k_avaya_po_protokolu_h.323 [2013/11/18 17:48] (текущий)
Строка 1: Строка 1:
 +====== Подключаем Asterisk к Avaya по протоколу H.323 ======
  
 +С одной стороны нам понадобится сам 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
 +<code bash>
 +yum install make gcc-c++ kernel-devel openssl-devel expat-devel gnutls-devel flex bison ncurses-devel libxml2-devel sqlite-devel -y
 +</​code>​
 +
 +Качаем необходимые библиотеки в директорию /root
 +  Open H.323 v1.18.0
 +  PWLib v1.10.0
 +<code bash>
 +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
 +</​code>​
 +Переименовываем.
 +<code bash>
 +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
 +</​code>​
 +Распаковываем.
 +<code bash>
 +tar vfxz openh323-v1_18_0-src.tar.gz
 +tar vfxz pwlib-v1_10_0-src.tar.gz
 +</​code>​
 +И еще раз переименовываем.
 +<code bash>
 +mv pwlib_v1_10_0 pwlib
 +mv openh323_v1_18_0 openh323
 +</​code>​
 +Добавляем необходимые компилятору заголовки.
 +<code bash>
 +cp /​usr/​src/​kernels/​2.6.18-308.4.1.el5-i686/​include/​linux/​compiler.h /​usr/​include/​linux
 +</​code>​
 +Компилируем библиотеки.
 +<code bash>
 +cd /root/pwlib
 +./configure
 +make clean opt
 +cd /​root/​openh323
 +./configure
 +make clean opt
 +</​code>​
 +Копируем скомпилированные библиотеки вместе со ссылками в нужное место.
 +<code bash>
 +cp /​root/​openh323/​lib/​libh323_linux_x86_r* /lib
 +cp /​root/​pwlib/​lib/​libpt_linux_x86_r* /lib
 +</​code>​
 +Качаем исходники asterisk нужной нам версии,​ например 10.4 (или по старому счету 1.10.4).
 +<code bash>
 +cd /usr/src
 +wget http://​downloads.asterisk.org/​pub/​telephony/​asterisk/​releases/​asterisk-10.4.0.tar.gz
 +</​code>​
 +Распаковываем.
 +<code bash>
 +tar vfxz asterisk-10.4.0.tar.gz
 +</​code>​
 +Заходим в директрию с исходниками и указываем необходимые пути.
 +<code bash>
 +cd asterisk-10.4.0
 +export OPENH323DIR=/​root/​openh323/​
 +export PWLIBDIR=/​root/​pwlib/​
 +export OPENH323_LIBDIR=/​lib
 +export PWLIB_LIBDIR=/​lib
 +</​code>​
 +и запускаем
 +<code bash>
 +./configure
 +</​code>​
 +
 +Если все прошло хорошо,​ то увидим выполненный в псевдографике логотип asterisk.
 +Можно запускать.
 +<code bash>
 +make menuselect
 +</​code>​
 +Там channel drivers и в самом низу отмечаем chan_h323, нажимаем s чтобы сохраниться и выйти далее.
 +<code bash>
 +make
 +make install
 +make samples
 +make config
 +/​sbin/​chkconfig asterisk on
 +/​etc/​init.d/​asterisk start
 +</​code>​
 +
 +Получаем работающий asterisk, с драйвером канала h.323 от NuFone.
 +
 +Создаем транк группу на avaya:
 +<​code>​
 +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
 +</​code>​
 +На этом настройка avaya пока закончена.
 +
 +Переходим к asterisk.
 +<code bash>
 +cd /​etc/​asterisk/​
 +</​code>​
 +В первую очередь нам понадобится h323.conf:
 +<file lua 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
 +</​file>​
 +Далее можно/​нужно рестартануть потоки с обеих сторон.
 +  * asterisk:<​code bash>
 +asterisk -r
 +module reload chan_h323.so
 +</​code>​
 +  * avaya:<​code>​
 +busyout trunk 15
 +busyout signaling-group 15
 +
 +release signaling-group 15
 +release trunk 15
 +</​code>​
 +проверяем
 +<​code>​
 +status trunk 15
 +
 +0015/001 T00022 in-service/​idle no
 +</​code>​
 +Для того, чтобы можно было использовать данный транк, необходимо внести изменения в extensions.conf:​
 +<file lua 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 номера в неизменном виде
 +</​file>​
 +Конечно,​ в реальной схеме такие конструкции использовать не стоит, здесь они приведены для того, чтобы показать концепцию.
 +
 +Приведу конфигурационный файл sip.conf
 +<file lua 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 ; с вот таким интересным АОН
 +</​file>​
 +Можно заняться совершением тестовых звонков
 +и проконтролировать со стороны asterisk, просто запустив его консоль:​
 +<code bash>
 +asterisk -r
 +</​code>​
 +А со стороны avaya
 +<​code>​
 +list trace tac #15
 +</​code>​
 +
 +**Примечание:​ **Для тех, у кого кодек не G711 и не работает inband DTMF добавлю:​ удалось заставить работать DTMF с dtmfmode=rfc2833 и dtmfcodec=127
podkljuchaem_asterisk_k_avaya_po_protokolu_h.323.txt · Последние изменения: 2013/11/18 17:48 (внешнее изменение)
GNU Free Documentation License 1.3
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Яндекс.Метрика