artem
17.12.2012
12658

Использование TDMoE шлюзов совместно с Asterisk

Одним из способов подключения аналоговых телефонных портов к Asterisk, наряду с VoIP– технологиями типа SIP, H.323 и пр., можно эффективно использовать шлюзы ( или банки каналов), подключаемые по технологии TDMoE. Различие между этими технологиями довольно существенное. Во-первых, рассматривая в контексте стека TCP/IP, можно сказать, что высокоуровневые протоколы SIPи H.323, охватывают все уровни стека: канальный, сетевой, транспортный и прикладной. Это позволяет размещать шлюз в любой точке Интернета, откуда есть доступ до сервера IP-АТС Asterisk.

Одним из способов подключения аналоговых телефонных портов к Asterisk, наряду с VoIP– технологиями типа SIP, H.323 и пр., можно эффективно использовать шлюзы (или банки каналов), подключаемые по технологии TDMoE.

Различие между этими технологиями довольно существенное. Во-первых, рассматривая в контексте стека TCP/IP, можно сказать, что высокоуровневые протоколы SIPи H.323, охватывают все уровни стека: канальный, сетевой, транспортный и прикладной. Это позволяет размещать шлюз в любой точке Интернета, откуда есть доступ до сервера IP-АТС Asterisk.

Особенности работы TDMoE-шлюзов.

Напротив, TDMoE-шлюзы работают только на канальном уровне. Кадры с голосом не имеют IP-адресов, а имеют лишь MAC-адреса, что ограничивает возможность размещения таких шлюзов за границей коммутируемой сети, в которой расположен сервер Asterisk. Разместить такой шлюз в другой сети, за роутером уже будет невозможно. Итак, шлюз и Asteriskдолжны быть подключены напрямую в один Ethernet-коммутатор.

Второй важной особенностью является требования к сети у TDMoE-шлюзов. Технология TDMoE (TimeDivisionMultiplexingoverEthernet– Мультиплексирование потока с временным разделением и передачей через сети Ethernet) является аналогом потоков E1, в которой голосовые кадры идут в строго очередном порядке в строго отведенный временной промежуток. Фактически, это является привычным Е1 потоком, передающимся через Ethernet. К такому потоку предъявляются чрезвычайно строгие требования по задержке сигнала и джиттеру: не более 1,5 секунд.

Архитектура взаимодействия TDMoE-устройства и Asterisk.

Для понимания работы TDMoEв Asterisk, вспомним, каким образом Asteriskвзаимодействует с цифровыми и аналоговыми картами (напр., Digiumили Parabel). Цифровыми и аналоговыми картами занимается драйвер DAHDi, который работает как отдельный модуль ядра, позволяющий ОС Linuxвзаимодействовать с устройством и портами через PCI (PCI-Express) шину сервера. Со стороны Asteriskесть модуль chan_dahdi.so, который обеспечивает взаимодействие самого Астериска и драйверов DAHDi.

При использовании технологии TDMoE, внутренняя шина сервера PCI (PCI-Express) «заменяется» на Ethernet-кабель, фактически, позволяя вынести DAHDi-порты из сервера на расстояние до 100 метров и подключая к серверу произвольное количество портов (ограниченное лишь скоростью сети и мощностью сервера).

Какие преимущества у TDMoE-шлюзов.

Шлюзы TDMoEдля Asteriskявляются низкоуровневыми устройствами в хорошем смысле этого слова. Устройства взаимодействуют с Asteriskна уровне нативных драйверов DAHDi. SIPи H.323 – шлюзы могут иметь разнообразные проблемы с совместимостью из-за разнообразных вариаций по реализации SIP-стека.

Шлюз TDMoEтребует минимальной настройки. В базовой конфигурации достаточно лишь указать его МАС-адрес на Asterisk, чтобы устройства увидели друг друга.

К шлюзу TDMoEневозможно получить удаленный доступ, что влияет на безопасность сервера. К сожалению, SIPи H.323-шлюзы могут быть доступны по сети, при этом имея уязвимости служб или стека, из-за чего нередко атаки производятся именно на них.

Настройка TDMoE-портов производится целиком из Asterisk. Не требуется двойная настройка: первый раз на сервере, второй – на шлюзе, в отличие от VoIP-шлюзов.

Настройка шлюза TDMoE.

В большинстве случаев настройка шлюза не требуется, настройки по умолчанию уже предполагают возможность работы. В случае, если у вас более одного шлюза, необходимо вручную прописать МАС-адреса шлюзов, т.к. они имеют одинаковые значения.

Настройка шлюза возможна после подключения консольного кабеля к шлюзу. Подключаясь через СОМ-порт, попадаем в псевдографический интерфейс, где можно настроить все параметры шлюза:

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

Проблема решилась отключением эхоподавления на шлюзе (опция ЕС):

Настройка сервера Астериск.

Настройка сводится к нескольким этапам.

1.  Настройка DAHDi.

2.  Конфигурация каналов через chan_dahdi.confв Asterisk.

3.  Конфигурация DialPlan в Asterisk

 

Настройка DAHDi в свою очередь сводится к двум этапам:

1.1. Настраиваем SPAN (DynamicSPAN). В файл /etc/dahdi/system.confпрописываем следующие параметры:

dynamic=eth,eth0/00:01:02:03:04:00,30,1

; В этой строке 4 переменных, разделенных запятыми:

  • тип устройства: eth,
  • адрес TDMoIP-шлюза и порт, через который он доступен: eth0/00:01:02:03:04:00,
  • количество каналов – 30 штук
  • Источник синхронизации: 1 означает что само устройство является источником синхроимпульсов

 

fxols=1-7 ; Задаем FXS-каналы 1 банка (обратите внимание, что FXSканалы имеют FXO-сигнализацию и наоборот)

fxsls=8-15 ; Задаем FXO-каналы 2 банка (обратите внимание, что FXSканалы имеют FXO-сигнализацию и наоборот)

 

fxols=16-22 ; Задаем FXS-каналы 3 банка

fxols=23-30 ; Задаем FXS-каналы 4 банка

alaw=1-30 ; Задаем тип кодирования звукового потока (alawили ulaw)

 

loadzone=ru; Задаем локальную принадлежность для корректного определения сигналов КПВ.

defaultzone=ru;

 

Проверка.

Сохраняем файл и перезагружаем dahdi при остановленном Asterisk. Рекомендуется перед этим выполнить dahdi_cfg–s, для выгрузки SPAN-а.

После перезапуска dahdiзапускаем dahdi_tool. Шлюз должен определиться и отобразить статус OK:

Также необходимо убедиться, что сетевой тракт работает корректно и не допускает задержки и пропуска кадров. Для этого нужно запустить команду
watch -n 0.1 cat /proc/dahdi/dahdi_dynamic_stats

В данном выводе важно смотреть на последнюю строку и следить за тем, чтобы значения параметров slip, skipи прочих не росли, а оставались фиксированными. Они могут отличаться от нуля, но главное – чтобы они не росли.

2.     Конфигурация каналов в /etc/asterisk/chan_dahdi.conf

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

Параметры можно разделить на глобальные и индивидуальные (канальные).

Глобальныенастройки:

[trunkgroups]

[channels]

language=en

context=from-zaptel

signalling=fxs_ks

rxwink=300             ; Atlas seems to use long (250ms) winks

busydetect=yes

busycount=10

usecallerid=yes

hidecallerid=no

callwaiting=yes

usecallingpres=yes

callwaitingcallerid=yes

threewaycalling=yes

transfer=yes

cancallforward=yes

callreturn=yes

echocancel=yes

echocancelwhenbridged=no

echotraining=800

rxgain=0.0

txgain=0.0

group=0

callgroup=1

pickupgroup=1

immediate=no

Индивидуальные (канальные) настройки могут быть в этом же файле, однако чаще всего выносятся в отдельный файл, например dahdi-channels.conf. Это делается исключительно для удобства.

Например, для настройки ФХО канала мы задаем следующие параметры:

signalling=fxo_ls

pickupgroup=

mailbox=10@device

immediate=no

echotraining=800

echocancelwhenbridged=no

echocancel=no

context=from-internal

callprogress=yes

callgroup=

callerid=device <10>

busydetect=yes

busycount=7

accountcode=

channel≥16

 

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

После того как сохранили файл, выполняем команду dahdirestartв консоли Астериск.

Далее убеждаемся в том, что канал поднялся и стал доступен командой dahdishowchannels:

 Более подробно посмотреть параметры настройки конкретного канала можно увидеть из команды dahdishowchannel16 (любой существующий номер канала):

3.      Далее, переходим к заключительной части, настраивая диалплан Астериск

В файл extensions.confв контекст from-internal (или в том, в котором находится данный канал), создаем диалплан аналогичный следующему:

[from-tdmoe]

Exten ≥ _.,1,Dial (SIP/trunk_to_operator/${EXTEN},60,Ttr)

Same ≥ n,Hangup ()

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