Yate как шлюз для H323 устройств и интеграции с Asterisk по SIP
Yate — свободная и бесплатная кроссплатформенная программная VoIP-система, предназначенная для создания телефонных IP-АТС с поддержкой основных протоколов IP-телефонии, такие как SIP, H.323 и IAX. В рамках данной статьи будет рассмотрено как выполнить сборку и настройку Yate в качестве H323 шлюза между IP АТС Asterisk и Avaya. В статье использовались файлы: yate-SVN.zip — исходники Yate ptlib-2_10_9_3.tar.gz […]
Yate — свободная и бесплатная кроссплатформенная программная VoIP-система, предназначенная для создания телефонных IP-АТС с поддержкой основных протоколов IP-телефонии, такие как SIP, H.323 и IAX.
В рамках данной статьи будет рассмотрено как выполнить сборку и настройку Yate в качестве H323 шлюза между IP АТС Asterisk и Avaya.
В
статье использовались файлы:
yate-SVN.zip — исходники
Yate
ptlib-2_10_9_3.tar.gz — библиотека ptlib
h323plus-1_27_1.zip — библиотека
h323plus
Инструкция:
- Выполним подключение по SSH к серверу IP
АТС Asterisk. В зависимости от используемой системы(Windows, Linux, MacOS),
подключение по SSH можно выполнить с использованием различного дополнительного
программного обеспечения(Putty), либо системного терминала.
- Установим ряд дополнительных пакетов:
# yum -y install flex gcc-c++ с++ make wget bison libtiff-devel mod_dav_svn subversion autoconf
3. Установим библиотеку ptlib, библиотека переносимых инструментальных средств, являющаяся библиотекой классов:
# cd /usr/local/src
# wget https://github.com/willamowius/ptlib/archive/v2_10_9_3.tar.gz
# mv v2_10_9_3.tar.gz ptlib-2_10_9_3.tar.gz
# tar -xzvf ptlib-2_10_9_3.tar.gz
# cd ptlib-2_10_9_3
# ./configure
# make
# make install
- Установим библиотеку h323plus для поддержки Voip протокола H323:
# cd /usr/local/src
# wget https://github.com/willamowius/h323plus/archive/v1_27_1.zip
# mv v1_27_1.zip h323plus-1_27_1.zip
# unzip h323plus-1_27_1.zip
# mv h323plus-1_27_1 h323plus
# cd h323plus
# ./configure
# make
# make install
- Приступим к сборке Yate, для этого выполним ряд команд вида:
# cd /usr/src
# svn checkout http://voip.null.ro/svn/yate/trunk yate-SVN
# cd yate-SVN
# ./autogen.sh
# ./configure --with-openh323=/usr/local/src/h323plus
# make
# make install-noapi
- Добавляем в систему дополнительный путь для поиска библиотек YATE
# echo "/usr/local/lib" >> /etc/ld.so.conf
# ldconfig
- Создаем unit systemctl для сервиса YATE
# cp /usr/src/yate-SVN/packing/rpm/yate.service /etc/systemd/system/multi-user.target.wants/
# nano /etc/systemd/system/multi-user.target.wants/yate.service
И приведем команду запуска ExecStart к виду:
ExecStart=/usr/local/bin/yate -d -p /var/run/yate.pid $OPTS
- Приступим к редактированию конфигурационных файлов. Первым отредактируем конфигурационный файл SIP модуля:
# nano /usr/local/etc/yate/ysipchan.conf
Приведем данный файл к виду:
[general]
port=5070
addr=XXX.XXX.XXX.XXX
useragent=YATE/6.1.1
info=enable
dtmfinband=yes
rfc2833=yes
[sip-t]
[codecs]
default=off
alaw=yes
mulaw=yes
[hacks]
g729_annexb=no
где ключевые параметры для изменения:
port – порт сигнализации, должен быть отличным от порта Asterisk
addr – IP адрес сервера на котором производится установка Yate
Отредактируем конфигурационный файл H323 модуля:
# nano /usr/local/etc/yate/h323chan.conf
Приведем данный файл к виду:
[general]
debug=0
vendor=Yate
major=2
minor=0
build=0
status=release
needmedia=yes
dtmfinband=yes
external_rtp=yes
fallback_rtp=yes
forward_rtp=no
[codecs]
default=no
alaw=yes
mulaw=yes
[ep]
ep = true
gw = false
port=1720
faststart=true
h245tunneling=true
dtmfinband = true
silencedetect = none
gkclient = false
gkttl = 180
gkretry = 320
[gk]
server = false
[incoming]
context=default
где ключевые параметры для изменения:
debug – уровень логирования H323
needmedia – сбрасывать или не сбрасывать вызовы с несогласованными(не поддерживаемыми) медиа данными(согласование кодеков)(может принисать значения «yes» или «no»)
dtmfmethods — протокол поддерживаемого тонального сигнала(rfc2833,h323,inband)
external_rtp — использование внешнего модуля RTP вместо встроенного стека RTP H323plus(может принисать значения «yes» или «no»)
fallback_rtp — использование встроенного стека RTP H323plus если внешний модуль недоступен(может принисать значения «yes» или «no»)
forward_rtp — передача голосового трафика напрямую по приниципу «peer to peer»(может принисать значения «yes» или «no»)
ep – включения Endpoint сервера для принятия сигнализации по протоколу H323(может принимать значения «true» или «false»)
port – порт для принятия сигнализации по протоколу H323(по умолчанию 1720)
faststart – режим предварительного согласования медиа данных(может принисать значения «yes» или «no»)
h245tunneling — режим туннелирования H.245, очень важен при использовании NAT(может принимать значения «true» или «false»)
silencedetect – режим определения тишины(может принимать значения: none, fixed, adaptive)
context – контекст обработки входящих/исходящих вызовов(настраиваемый в конфигурационном файле regexroute.conf)
Отредактируем конфигурационный файл голосовых RTP портов:
# nano /usr/local/etc/yate/yrtpchan.conf
Приведем данный файл к виду:
[general]
minport=10000
maxport=20000
[timeouts]
где ключевые параметры для изменения:
minport – начальное значения диапазона RTP портов
maxport — конечное значение диапазона RTP портов
Отредактируем конфигурационный файл интерфейса управления Yate:
# nano /usr/local/etc/yate/rmanager.conf
Приведем данный файл к виду:
[general]
port=5039
Отредактируем конфигурационный файл маршрутизации звонков Yate:
# nano /usr/local/etc/yate/regexroute.conf
Приведем данный файл к виду:
[priorities]
[$once]
[$init]
[extra]
[contexts]
[default]
; опции для проверки работоспособности
^99991001$=tone/dial
^99991002$=tone/busy
^99991003$=tone/ring
^99991004$=tone/specdial
^99991005$=tone/congestion
^99991006$=tone/outoforder
^99991007$=tone/milliwatt
^99991008$=tone/info
.$=echo called is '${called}' = '${formats}' = '${caller}' = '${sip_to}' = '${callername}' =
${rtp_forward}possible=;rtp_forward=yes
${formats}^\([^,]*\)=;formats=\1;
${module}^sip$=h323/${called}@YYY.YYY.YYY.YYY;caller=${caller};callername=${caller};
${module}^h323$=sip/sip:${called}@XXX.XXX.XXX.XXX:5060;caller=${caller};callername=${caller};
.*=-;error=forbidden;reason=Protocol not allowed
где ключевые параметры для изменения:
XXX.XXX.XXX.XXX – IP адрес сервера Asterisk
YYY.YYY.YYY.YYY – IP адрес IP АТС Avaya
Отредактируем конфигурационный файл подключаемых модулей Yate:
# nano /usr/local/etc/yate/yate.conf
Приведем данный файл к виду:
[general]
[modules]
jabberserver.yate=false
jbfeatures.yate=false
jabberclient.yate=false
yradius.yate=false
mysqldb.yate=false
yjinglechan.yate=false
ciscosm.yate=false
mgcpca.yate=false
mgcpgw.yate=false
ysnmpagent.yate=false
g729.yate=true
[localsym]
h323chan.yate=yes
- Выполним запуск и добавление в автозагрузку Yate:
# systemctl daemon-reload
# systemctl start yate.service
# systemctl enable yate.service
- Перейдем к настройке Asterisk, для этого перейдём в WEB панель управления FreePBX через интернет обозреватель(Opera, Firefox, Google Chrome, Yandex Browser….) по ссылке вида: http://IP_адрес_сервера_Asterisk/ В примере ссылка имеет вид: http://192.168.170.163/
- Пройдём авторизацию во FreePBX, нажмём «FreePBX Administration», введем «username и password» и нажмём «Continue»
- Перейдем в меню Connectivity -> Trunks -> Add Trunk -> Add SIP Trunk и на вкладке «sip Settings» пропишем следующие настройки транка:
deny=0.0.0.0/0.0.0.0
host=XXX.XXX.XXX.XXX
type=peer
port=5070
qualify=yes
nat=no
context=from-internal
insecure=invite,port
permit=XXX.XXX.XXX.XXX/255.255.255.255
canreinvite=no
disallow=all
allow=allow
где ключевые параметры для изменения:
XXX.XXX.XXX.XXX – IP адрес сервера на который производилась установка Yate
- Перейдем в меню Connectivity -> Outbound Routes -> Add Outbound Route и добавим маршрут для исходящих звонков на внутренние номера Avaya через созданный SIP транк
14. На данном шаге все необходимые настройки выполнены и можно приступить к проверки прохождения звонков между Asterisk и IP АТС Avaya
Остались вопросы?
Я - Кондрашин Игорь, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.
категории
- DECT
- Linux
- Вспомогательный софт при работе с Asterisk
- Интеграция с CRM и другими системами
- Интеграция с другими АТС
- Использование Elastix
- Использование FreePBX
- Книга
- Мониторинг и траблшутинг
- Настройка Asterisk
- Настройка IP-телефонов
- Настройка VoIP-оборудования
- Новости и Статьи
- Подключение операторов связи
- Разработка под Asterisk
- Установка Asterisk
VoIP оборудование
ближайшие курсы
Новые статьи
10 доводов в пользу Asterisk
Распространяется бесплатно.
Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.
Безопасен в использовании.
Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.
Надежен в эксплуатации.
Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.
Гибкий в настройке.
Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.
Имеет огромный функционал.
Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.
Интегрируется с любыми системами.
То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.
Позволяет телефонизировать офис за считанные часы.
В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.
Отличная масштабируемость.
Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.
Повышает управляемость бизнеса.
Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.
Снижает расходы на связь.
Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.