Несмотря на все преимущества ip-протоколов, переход полностью на SIP иногда невозможен, да и просто не обоснован ввиду наличия развернутой телефонной инфраструктуры, и если от аналоговых телефонов можно и нужно отказываться в пользу более функциональных IP-телефонов, то отказываться от внешних линий, будь то медные аналоговые линии или цифровые Е1-потоки, не всегда имеет смысл: ведь тогда будут потеряны номера, по которым, в том числе, идентифицируют компанию.
Безусловно, если есть техническая возможность получить те же номера по SIP - то это решает множество проблем, но провайдеры не всегда идут навстречу клиенту, а иногда и вовсе не имеют необходимого оборудования. И что же делать в таком случае? Продолжать использовать нефункциональные, сложные в настройке, громоздкие аналоговые или цифровые АТС? Выход есть: специально для заведения всех внешних голосовых потоков в сервер с Asterisk компанией Digium, которая подарила миру Asterisk, были разработаны аналоговые и цифровые платы.
Платы Digium также требуют настройки, но в отличии от настройки плат для аналоговых и цифровых АТС, настройка не требует сверхчеловеческих усилий, процесс настройки довольно прост и логичен, а также, как и все в Asterisk, сопровождается подробным логированием.
Условно процесс настройки можно разбить на несколько этапов:
-
Установка платы в сервер
-
Конфигурирование
-
Поиск неисправностей (тут не стоит пугаться, как правило с самой платой их не возникает, а вот с провайдером иногда приходится повозиться:))
-
Настройка диалплана
Специально для облегчения настройки телефонии и экономии вашего времени компания “АТС Дизайн” - представитель Digium на территории РФ и СНГ - в лице своих сертифицированных Asterisk-инженеров, предлагает услуги по настройке плат: купив у нас плату вы можете возложить бремя :) настройки на наши плечи всего за 10 долларов.
А тех, кто не поленился и дочитал статью до данного момента ожидает небольшой, но приятный бонус в виде примера конфигурации цифровой платы Digium TE133 на сервере Asterisk, развернутом на Ubuntu 12.04 (процесс установки был нами описаны в этой статье), а также типичные встречающиеся проблемы и способы их решения, ибо, как говорил классик: “Те, кто читают книги (а от себя добавлю, что и гайды в том числе), всегда будут управлять теми, кто смотрит телевизор”:)
Итак, начнем:
1. Установка платы в сервер - тут все просто, либо PCI, либо PCI-E. Платы для PCI-E-шины универсальны (х.1, х.4, х.8, х.16), PCI: однопортовые платы универсальны, многопортовые - TE205, TE207, TE405, TE407 - 5V, TE210, TE212, TE410, TE412 - 3.3V.
Далее нужно выбрать тип PRI (E1/T1): если в старой линейке плат это делалось джампером, то в новой - исключительно программно:
T1 - добавить в /etc/modprobe.d/dahdi.conf следующую строку:
options wcte13xp default_linemode=t1
или выполнить под рутом на сервере:
# modprobe wcte13xp default_linemode=t1
E1 добавить в /etc/modprobe.d/dahdi.conf следующую строку:
options wcte13xp default_linemode=e1
или выполнить под рутом на сервере:
# modprobe wcte13xp default_linemode=e1
Далее смотрим, корректно ли определилась у нас плата:
# lspci
Вывод терминала должен показать:
3:00.0 Network controller: Digium, Inc. Wildcard TE133 single-span T1/E1/J1 card (PCI-Express) (rev 01)
3. Конфигурирование платы
Правим конфиг /etc/asterisk/chan_dahdi.conf:
Типы сигнализации:
national: National ISDN 2 (default)
dms100: Nortel DMS100
4ess: AT&T 4ESS
5ess: Lucent 5ESS
euroisdn: EuroISDN
ni1: Old National ISDN 1
qsig: Q.SIG
Эхоподавление:
echocancel = yes
channel => 1-15,17-31
либо
echocancel = no
Синхронизация сигнализации:
pri_cpe если slave (ведомый)
pri_net если master (ведущий)
Пример для E1 PRI:
group=1
signalling = pri_cpe
switchtype = euroisdn
context = incoming
channel => 1-15,17-31
Правим конфиг /etc/dahdi/system.conf:
loadzone = ru
defaultzone = ru
Конфигурация каналов имеет вид:
span => <Number>,<Timing>,<Line Build Out>,<Framing>,<Coding>,<CRC4>
<Number> – номер порта платы
<Timing> – использовать ли порт как источник синхронизации,
0 – порт ведущий по E1, 1 и более – порт ведомый по E1, является одним из источников синхронизации. Чем больше число, тем меньше приоритет порта.
<Line Build Out> – параметр не используется, ставим 0.
<Framing> – тип телефонной сигнализации, ccs или cas.
<Coding> – кодирование в линии, ami или hdb3
<CRC4> – проверка и генерация crc4
Например:
# Span 1: WCTE1/0/1 "WCTE13X (PCI) Card 0 Span 1" CCS/HDB3 BLUE RED
# termtype: te
bchan=1-15,17-31
dchan=16
echocanceller=mg2,1-15,17-31
Тест конфигурации:
Загружаем драйвер платы:
# modprobe wcte13xp
# dahdi_cfg -vv
Запускаем утилиту dahdi_tool:
# dahdi_tool
Если все настроено правильно, то все каналы будут в статусе OK
Если нет - переходим к следующей главе:
4. Поиск неисправностей
Статусы состояние платы:
Зеленый - карта синхронизирована с удаленной стороной, все в порядке, поток есть.
Желтый (yellow alarm) - Нет входящего сигнала у противоположной стороны. Данное сообщение означает, что удаленная сторона уведомляет, что с нашей стороны нет сигнала. Как правило проблема в неправильной кроссировке кабеля или в его физическом повреждении, либо в разном параметре CRC4 (с одной стороны включен, с другой нет)
Синий (blue alarm): Нарушение передачи суперфрейма. Означает, что есть поток, который невозможно правильно декодировать. Проблема может означать несогласованность настроек с двух сторон, проблему со стороны передающей стороны, либо наведении сильного магнитного поля (встречается крайне редко).
Красный (red alarm) Разрыв линии. Полное отсутствие сигнала.
Постоянно отваливается D-канал:
Проверьте параметры тайминга
Утилита dahdi_maint:
dahdi_maint это утилита для диагностики проблем с T1/E1 платами. Она позволяет проводить loopback-тесты. Есть три основных типа Loopback: network line, network payload и localhost.
network line loopback настраивает нужный порт на тест на физическом уровне. Это полезно для PRI-провайдера для проверки сети при подключении платы Digium. При данном варианте теста фреймы не проходят через кадрирование и кодирование на плате. Этот тип тестирования функционально эквивалентен физическому замыкания линии PRI, приходящей от провайдера, loopback-коннектором. Чтобы включить тест, например на первом порту, выполните следующую команду:
dahdi_maint --span 1 --loopback networkline
network payload loopback похож network line loopback, за исключением того, что фреймы будут проходить через кадрирование и кодирование, прежде чем возвращаются обратно. Это требует, чтобы плата была правильно настроена в /etc/dahdi/system.conf. Тест позволяет определить, правильно ли работает плата. Чтобы включить тест, например на третьем порту, выполните следующую команду:
dahdi_maint --span 3 --loopback networkpayload
Последний тип loopback-тестирования - это localhost loopback. Этот тип тестирования функционально эквивалентен физическому замыканию платы loopback-коннектором, используется для проверки работоспособности и правильной настройки платы. Чтобы включить тест, например на втором порту, выполните следующую команду:
dahdi_maint --span 2 --loopback localhost
Как правильно обжать кабель для Е1:
После настройки платы осталось сконфигурировать extensions.conf на использование потока и наслаждаться всеми преимуществами PRI:)
Конфигурация extensions.conf для E1 состоит в том, чтобы разрешить звонить абонентам через DAHDI, например через префикс 0, и в самом просто виде выглядит как:
exten =>_0X.,1,Dial(DAHDI/g1/${EXTEN:1})
Если у вас возникли какие-то проблемы при настройке, команда инженеров АТС Дизайн всегда готова помочь вам в настройке всего за 70$/час.