Настройка шлюзов 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
Теперь нам надо настроить порт. Выбираем пункт Serial port setup. В пункт serial device вписываем наш tty который мы увидели выполнив tailif /var/log/messages, у нас это ttyUSB0, а также выставляем скорость bps/par/bits – 38400 8N1.
После внесения всех настроек, нажимаем 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. Так мы укажем системе, какой драйвер необходимо использовать
Все остальные драйвера, если они не используются, можно закомментировать.
Далее нам необходимо объявить 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, проверим, подключился ли наш шлюз:
Статус OK будет означать, что шлюз подключен успешно (наш шлюз 5-й в списке)
Командой dahdi_test можно посмотреть скорость отклика сервера. Значения должны быть не ниже 99,9:
Теперь нам необходимо настроить каналы нашего шлюза. Откроем файл /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. Мы должны увидеть наши каналы.
Если шлюз FXS, то нам необходимо создать Dahdi extensions в веб интерфейсе FreePBX. Заходим в applicationsàextensions нажимаем добавить dahdi exteinsions.
На вкладке generals в поле display name – вводим внутренний номер
На вкладке advanced в строке signaling выбираем fxo_ls
В строке Dial пишем DAHDI/<номер канала>
Сохраняем внесенные изменения. Теперь наша трубка может звонить
Если шлюз FXO, то нам необходимо настроить транк и корректно задать входящий маршрут.
Для начала настроим транк:
· Перейдем в connectivityàTrunks
· Добавим dahdi транк
· Дадим имя транку и в dahdi settings в поле DAHDi Identifier укажем g1 (это группа, которую мы объявляли ранее)
Теперь нам нужно задать DID который будет приходить по данной линии, в этом на поможет модуль Dahdi Channel DIDs.
· Перейдем в модуль. Connectivityà Dahdi Channel DIDs
· Нажимаем add channel did
· В поле Channel – укажем номер канала
· В поле description – краткое описание
· В поле Did – номер, который мы в дальнейшем будем указывать во входящих маршрутах
Входящий маршрут настраиваем в connectivityà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 у вас будут свои)
Выполняем 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
Как видно на скриншоте, все шлюзы корректно определились
Теперь нам необходимо настроить каналы нашего шлюза. Откроем файл /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
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
)
Остались вопросы?
Я - Кондрашин Игорь, менеджер компании 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 сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.