Денис Здесенко
14.06.2020
37176

Подключение двух серверов Asterisk между собой по Ethernet с помощью DAHDI

В процессе изучения методов работы с DAHDI и цифровыми потоками Е1 возникла идея соединить 2 АТС между собой, не используя при этом стандартные решения вроде протокола IAX или SIP-транки, при условии отсутствия плат и шлюзов для работы с е1. Внимание сразу же было обращено на TDMoE. В данной статье будет рассмотрена непосредственно сама технология TDMoE […]

В процессе изучения методов работы с DAHDI и цифровыми потоками Е1 возникла идея соединить 2 АТС между собой, не используя при этом стандартные решения вроде протокола IAX или SIP-транки, при условии отсутствия плат и шлюзов для работы с е1. Внимание сразу же было обращено на TDMoE. В данной статье будет рассмотрена непосредственно сама технология TDMoE и её применение для соединения двух серверов на базе Астериск.

О технологии TDMoE

Перед тем как начинать сборку нашего экспериментального стенда, первым делом необходимо разобрать что из себя представляет TDMoE. Расшифровывается название как TimeDivisionMultiplexing-over-Ethernet, эта технология была изобретена для тех случаев, когда необходима надежность TDM, но нет классического оборудования для реализации.

Телефония на основе TDM использует временн̀ое мультиплексирование. Это значит, что голосовые потоки дробятся на порции, пакеты которых снабжаются минимальным заголовком, включающим в себя лишь маркировку начала пакета, и в дальнейшем все каналы «упаковываются» в определенном порядке. Каналы при этом будут дифференцироваться не по этим заголовкам, а по времени прибытия, т.е. сигнал будет делиться на временн̀ые интервалы, несущие данные одного канала. Таким образом работает цифровой поток E1.

Поскольку TDMoE реализован над MAC уровнем Ethernet, для использования в сегменте сети допустимы только хабы и коммутаторы, а не маршрутизаторы.

Отличительной особенностью является то, что, по сути, технология TDMoE запускает цифровой Е1 поток не по специализированным линиям, а банально по Ethernet. Чтобы использовать TDMoE в сегменте сети должен присутствовать Zaptel-интерфейс, ныне известный как DAHDI (проект был переименован 19 мая 2008 года). На примере Астериска выглядеть должно примерно следующим образом: при «поднятии» TDMoE линка АТС увидит 30 каналов, выглядящих как поток E1.

Сборка

Итак, перед нами стоит задача собрать экспериментальный стенд, состоящий из двух серверов Астериск, соединенных между собой с помощью TDMoE. Собрать было решено на двух виртуальных машинах VM VirtualBox в одной подсети. В качестве подопытных будут использованы CentOS 6.10 и CentOS 7, на обеих системах Астериск 13 версии. Ниже на скриншотах представлены настройки для первой виртуальной машины:

Настройки VirtualBox для первой виртуальной машины 1
Настройки VirtualBox для первой виртуальной машины 2
Настройки VirtualBox для первой виртуальной машины 3
ifconfig для первой виртуальной машины

По аналогии настраиваем вторую:

Настройки VirtualBox для второй виртуальной машины 1
Настройки VirtualBox для второй виртуальной машины 2
Настройки VirtualBox для второй виртуальной машины 3
ifconfig для второй виртуальной машины

Далее нам необходимо, чтобы на виртуалках был установлен Астериск и сам DAHDI. Процесс установки расписывать нет смысла, т.к. статья не об этом. Мы просто убедимся, что DAHDI встал корректно, вызвав инструмент отладки и тестирования с помощью команды:

#dahdi_test
Выполнение dahdi_test на первой виртуальной машине
Выполнение dahdi_test на второй виртуальной машине

Следующим шагом нам необходимо на виртуальной машине 1 прописать в файле /etc/dahdi/system.conf следующее:

#dynamic=eth,eth0/ XX:XX:XX:XX:XX:XX,32,0
#bchan=1-15,17-32
#dchan=16
/etc/dahdi/system.conf

Итак, разберем, что же мы записали в наш файл конфигурации:

  1. Строка dynamic=eth,eth0/ XX:XX:XX:XX:XX:XX,32,0
  • dynamic = eth – определяем тип динамического драйвера (в нашем случае для ethernet)
  • eth0/XX:XX:XX:XX:XX:XX – мак адрес виртуалки с которой будем работать (с которой устанавливаем соединение нашей текущей машины)
  • 32 – количество каналов
  • 0 – приоритет синхронизации (тайминг) каналов
  1. Строка bchan=1-15,17-32 – задаем голосовые тайм-слоты
  2. Строка dchan=16 – задаем сигнальный (для данных) тайм-слот

Перезапускаем DAHDI c помощью команды «service dahdi restart» и заходим в утилиту работы с устройствами (команда «dahdi_tool») и видим следующее:

Устройство отображается в dahdi_tool
Если DAHDI не выгрузился, то сначала надо остановить запущенный Астериск

Если мы где-то в синтаксисе допустили ошибку, то при перезапуске сервиса увидим следующее сообщение:

Ошибка при перезагрузке сервиса dahdi

Итак, наше устройство начало отображаться в списке устройств dahdi_tool, но статус все еще RED. Это означает, что отсутствует связь с устройством. Исправляется это симметричным конфигом на второй станции, но уже с указанием мак-адреса сетевого интерфейса первой машины:

Конфиг файл /etc/dahdi/system второй машины

Результат не заставил себя долго ждать:

Статус поменялся на OK с двух сторон

Далее нам необходимо настроить наши каналы в файле /etc/asterisk/chan_dahdi.conf с двух сторон. Записываем одинаковый конфиг в оба файла:

/etc/asterisk/chan_dahdi.conf на одной из машин

Проверить, что каналы поднялись командой dahdi show channels в консоли Астериска или с помощью команды dahdi_cfg -v в bash:

dahdi_cfg -v на одной из машин

На этом настройку можно считать завершенной. В дальнейшем можно настраивать каналы таким образом, который будет необходим для решения конкретных задач.

Подробнее о работе с DAHDI можно прочитать в статье «Работа с DAHDi»

Вывод

Данная статья является по сути своей экспериментом, в результате которого удалось рассмотреть процесс соединения 2 серверов Астериск с помощью DAHDI с использованием технологии TDMoE.

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