artem
17.12.2012
10364

Использование TDMoE шлюзов совместно с 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 ()

 
avatar
  Подписаться  
Уведомление о

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

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

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

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

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

ONLINE

Why Choose HUGE?

Unlimited pre-designed elements

Each and every design element is designed for retina ready display on all kind of devices

User friendly interface and design

Each and every design element is designed for retina ready display on all kind of devices

100% editable layered PSD files

Each and every design element is designed for retina ready display on all kind of devices

Created using shape layers

Each and every design element is designed for retina ready display on all kind of devices