artem
09.04.2018
3732

Настройка шлюзов Parabel Asteroid FXS/FXO

В данной статье мы рассмотрим настройку шлюзов parable asteroid 32 FXO и 32 FXS, разберем возможные проблемы, а также способы их устранения.

Более краткая статья по настройке шлюзов parabel находится тут.

Все настройки выполняются на centOS 6.9 и FreePBX 13.

Начнём с подключения и настройки одного шлюза к нашей телефонной сети. Для начала нам необходимо подключить Ethernet кабель в локальную сеть, затем подключить COM или USB кабель к серверу телефонии.

Рекомендую предварительно выполнить на сервере tailif /var/log/messages, чтобы увидеть tty подключенного устройство.

После того как кабель подключен нам потребуется настроить утилиту minicom, если она у вас не установлена, выполните yum install minicom –y.

После установки утилиты выполняем minicom –s

minicom -s

Теперь нам надо настроить порт. Выбираем пункт Serial port setup. В пункт serial device вписываем наш tty который мы увидели выполнив tailif /var/log/messages, у нас это ttyUSB0, а также выставляем скорость bps/par/bits – 38400 8N1.

Serial port setup

После внесения всех настроек, нажимаем save setup as dfl

Теперь подключаемся к нашему шлюзу введя minicom. Будет проходит инициализация нашего устройства.

После того, как устройство пройдет инициализацию, вы увидите следующее окно:

После инициализации устройства

·         Параметр Clock Source выставляем в asteroid master

·         В параметр MAC пишем мак-адрес нашего шлюза

·         В параметр DST MAC пишем мак-адрес сетевого интерфейса сервера телефонии

·         Coding law выставляем в A

·         Echo Cancellation (EC) выставляем в off

·         FIFO выставляем в Standart

 

Эхоподавление выключить как на шлюзах, так и в конфигурационных файлах, т.к. лучше оставить приятный фоновый шум, а не включать полную тишину при молчании. 

Затем нажимаем кнопку 9, чтобы настройки сохранились. Чтобы выйти из шлюза, нажимаем ctrl+A и X.

Теперь нам необходимо скачать и собрать драйвер Dahdi.

Информер. Рекомендуется использовать версию драйвера  dahdi_2.9.2+2.9.2-parabel_2.9.2
Находясь в root директории выполняем следующее:

mkdir dahdi
cd dahdi/
wget http://parabel.ru/d/software/dahdi/dahdi_2.9.2+2.9.2-parabel_2.9.2.tar.bz2
tar xvf dahdi_2.9.2+2.9.2-parabel_2.9.2.tar.bz2
cd dahdi_2.9.2+2.9.2-parabel_2.9.2/
./build.sh
./install.sh

Более подробно о настройке Dahdi, можно узнать по следующей ссылке.

Теперь нам надо открыть текстовым редактором файл /etc/dahdi/modules и в самом низу файла прописать quasar. Так мы укажем системе, какой драйвер необходимо использовать

Все остальные драйвера, если они не используются, можно закомментировать.

quasar

Далее нам необходимо объявить span нашего шлюза в файле /etc/dahdi/system.conf

Перед редактированием файла system.conf необходимо останавливать драйвер dahdi командой «dahdi_cfg -s»

В самом низу файла пишем:

dynamic=eth,eth0/24:58:02:2B:01:57,32,1
alaw=1-32
fxsls=1-32 // типа сигналинга зависит от того, какой тип шлюза мы подключаем

В строке dynamic: eht0 – это интерфейс, 32 – количество портов, 1 – источник синхронизации времени, если ставим 1, синхронизация происходит на шлюзе.

Теперь, чтобы настройки вступили в силу, выполняем:

Service asterisk stop
Service dahdi restart
Service asterisk start

Введя команду dahdi_tool, проверим, подключился ли наш шлюз:

DAHDI Telephony Interfaces

Статус OK будет означать, что шлюз подключен успешно (наш шлюз 5-й в списке)

Командой dahdi_test можно посмотреть скорость отклика сервера. Значения должны быть не ниже 99,9:

Dahdi test

Теперь нам необходимо настроить каналы нашего шлюза. Откроем файл /etc/asterisk/dahdi-channels.conf, в нем пишем:

context=from-internal // контекст зависит от того, какой шлюз подключаем. Если FXO то from-trunk или from-dahdi, но лучше from-dahdi
group=1 // группа
channel=1-32 // количество каналов
signalling=fxs_ls // тип сигналинга

Теперь заходим в консоль asterisk, выполняем dahdi restart и dahdi show channels. Мы должны увидеть наши каналы.

 dahdi show channels

Если шлюз FXS, то нам необходимо создать Dahdi extensions в веб интерфейсе FreePBX. Заходим в applicationsàextensions нажимаем добавить dahdi exteinsions.

На вкладке generals в поле display name – вводим внутренний номер

На вкладке advanced в строке signaling выбираем fxo_ls

В строке Dial пишем DAHDI/<номер канала>

Edit extension

Сохраняем внесенные изменения. Теперь наша трубка может звонить

 

Если шлюз FXO, то нам необходимо настроить транк и корректно задать входящий маршрут.

Для начала настроим транк:

·         Перейдем в connectivityàTrunks

·         Добавим dahdi транк

·         Дадим имя транку и в dahdi settings в поле DAHDi Identifier укажем g1 (это группа, которую мы объявляли ранее)

Trunk edit

Теперь нам нужно задать DID который будет приходить по данной линии, в этом на поможет модуль Dahdi Channel DIDs.

·         Перейдем в модуль. Connectivityà Dahdi Channel DIDs

·         Нажимаем add channel did

·         В поле Channel – укажем номер канала

·         В поле description – краткое описание

·         В поле Did – номер, который мы в дальнейшем будем указывать во входящих маршрутах

DAHDI Channel DID's

Входящий маршрут настраиваем в connectivityàinbound routes. Образец настроек представлен на скриншоте ниже:

Inbound routes

Исходящий маршрут настраивается также как и с любым другим транком.

На этом настройка шлюза закончена. Теперь рассмотрим ситуацию когда шлюзов не 1, а например 5. Тут нам уже потребуются немного другие манипуляции

Т.к. данные шлюзы работают в мультикаст режиме по TDMoE, то нагрузка на нашу локальную сеть сильно возрастает.

Информер. TDMoE трафик — ethertype 0xD00D. Он игнорируется IP стеком (0x0800 , 0x0806). Пакет будет забивать всю сеть, если switch не получает, на каком порту получатель (Asteroid). Но при получении первого пакета от Asteroid обновит таблицу mac, и будет слать адресно.

В dahdi_tdmox шлются пробные пакеты 2 раза в секунду, и только получив пакет от Asteroid включается работа (1000 пакетов в секунду).

264 байта * 1000 * 60*60*24 = 22,9 Gb за сутки  с одного шлюза.

Чтобы избежать дополнительной нагрузки на локальную сеть, нам потребуются две вещи:

1. Дополнительный сетевой интерфейс на сервере телефонии

2. Неуправляемый свитч, подключенный к дополнительному сетевому интерфейсу.

Все шлюзы должны быть подключены к нашему новому свитчу.

Для начала настроим наш сетевой интерфейс. IP адрес ему не нужен, т.к. обращения идут только по мак-адресу.

·         В консоли пишем ifup eth1

·         Открываем /etc/sysconfig/network-scripts/ifcfg-eth1 и вносим туда следующие настройки (HWADDR и UUID у вас будут свои)

ifcfg-eth1

Выполняем service network restart

Теперь выполним настройки наших шлюзов. Делаем по аналогии настройки для одного шлюза, но необходимо внести некоторые корректировки:

В параметр DST MAC пишем мак-адрес нового сетевого интерфейса (eth1)

Параметр Clock Source выставляем в asteroid master только на том шлюзе, который будет стоять первым в файле /etc/dahdi/system.conf, на остальных шлюзах выставляем параметр asteroid slave.

Теперь объявим span наших шлюзов. Откроем файл /etc/dahdi/system.conf и в самом низу пишем:

#================2458022B0153==========================
#FXS-1-2458022B0153    30 ports
dynamic=eth,eth1/24:58:02:2B:01:53,32,1
alaw=1-32
fxols=1-32
loadzone=ru
defaultzone=ru
 
#================2458022B0154==========================
#FXS-2-2458022B0154    32 ports
dynamic=eth,eth1/24:58:02:2B:01:54,32,0
alaw=33-64
fxols=33-64
 
#================2458022B0155==========================
#FXS-4-2458022B0155    32 ports
dynamic=eth,eth1/24:58:02:2B:01:55,32,0
alaw=65-96
fxols=65-96
 
#================2458022B0156==========================
#FXS-3-2458022B0156    32 ports
dynamic=eth,eth1/24:58:02:2B:01:56,32,0
alaw=97-128
fxols=97-128
 
 
#================2458022B0155==========================
#FXO-1-2458022B0157    32 ports
dynamic=eth,eth1/24:58:02:2B:01:57,32,0
alaw=129-160
fxsls=129-160

 

Объявлять span необходимо в порядке четности последней цифры мак-адреса шлюза, иначе шлюз может получить статус RED. Также обратите внимание на последнее значение в строках dynamic. 1 – ставится только на одном шлюзе, на остальных ставим 0, чтобы время синхронизировалось только через 1 шлюз.
Теперь, чтобы настройки вступили в силу, выполняем:

Service asterisk stop
Service dahdi restart
Service asterisk start

Dandi telephony interfaces

Как видно на скриншоте, все шлюзы корректно определились

Теперь нам необходимо настроить каналы нашего шлюза. Откроем файл /etc/asterisk/dahdi-channels.conf, в нем пишем:

signalling=fxo_ls
context=from-internal
group=1
channel=1-32
 
group=2
context=from-internal
channel=33-64
signalling=fxo_ls
 
group=3
context=from-internal
channel=65-96
signalling=fxo_ls
 
group=4
context=from-internal
channel=97-128
signalling=fxo_ls
 
group=5
context=from-dahdi
channel=134
signalling=fxs_ls
callerid=asreceived
usecallerid=yes
immediate=no
relaxdtmf=yes
 
Screenshot_13.png

Все остальные настройки проводятся аналогично.

 

Что может пригодится для мониторинга работы наших каналов.

 

tcpdump -i eth1 -s 14 «ether proto 0xd00d» // проверить прохождение пакетов между АТС и шлюзом, работающим по tdmoe

 

tcpdump

watch -n 1 «cat /proc/dahdi/1» // Посмотреть каналы на занятость и источник синхронизации

 

Занятость каналов и источник синхронизации

Скрипт для сбора всей информации по вашим dahdi устройствам, вся информация в дальнейшем будет собрана в архив. Не забудьте дать данному скрипту разрешение на исполнение (chmod + x <имя файла>)

 

#!/bin/bash
 
TMPDIR=`mktemp -d /tmp/dumpdahdi.XXXXXXXXXX`
BN=`basename $TMPDIR`
SECONDS=60
 
echo «Collecting system configuration & statistics.»
(
  cd $TMPDIR
 
  dmesg > dmesg
  lspci -vv > lspci -vv
  cat /proc/cpuinfo > cpuinfo
  cp -r /etc/dahdi dahdi
  chmod a+w dahdi
 
  echo «Collecting TDMoX statistics.»
  echo «It will take $SECONDS seconds.»
  echo 1 > /sys/module/dahdi_tdmox/parameters/rxtx_time
   echo 1 > /sys/module/dahdi_tdmox/parameters/tasklet_time
   echo > /proc/dahdi/tdmox_stats
   echo > /proc/dahdi/dahdi_dynamic_stats
 
  NOW=`date +’%Y-%m-%d-%H-%M-%S’`
  mkdir $TMPDIR/$NOW; cd $TMPDIR/$NOW
  cp -r /proc/dahdi procdahdi
  chmod a+w procdahdi
  /sbin/ifconfig > ifconfig
 
  secs=$SECONDS
  while [ $secs -gt 0 ]; do
       echo -ne «$secs33[0Kr»
       sleep 1
       : $((secs—))
  done
 
  NOW=`date +’%Y-%m-%d-%H-%M-%S’`
  mkdir $TMPDIR/$NOW; cd $TMPDIR/$NOW
  cp -r /proc/dahdi procdahdi
  chmod a+w procdahdi
  /sbin/ifconfig > ifconfig
 
  echo «Compressing files.»
  cd /tmp
  tar —remove-files -cf dahdistat4parabel.tgz $TMPDIR
)

 

 dumpdahdi

 

Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments

Остались вопросы?

Я - Першин Артём, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

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 сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.