artem
27.08.2014
7867

Подключение линии провайдера по потоку E1 с помощью шлюза Parabel ELF2-AE

В данной статье мы рассмотрим, как можно подключить к серверу Asterisk с веб-интерфейсом FreePBX линию провайдера с помощью шлюза Parabel ELF2-AE. Например, это может быть удобно в том случае, если линию E1 трудно подвести напрямую к серверу Asterisk (допустим, если сервер на другом этаже), или если в него нельзя установить карту E1, а также из других соображений.

ELF2-AE — это внешний интерфейс, предназначенный для ввода синхронных потоков E1 в сервер Asterisk. Имеет один порт Ethernet для подключения к серверу, один консольный порт для конфигурирования и один порт E1. Этот шлюз имеет ряд преимуществ по сравнению с обычными внутренними картами E1, например, возможна горячая замена интерфейса и добавление новых портов E1 без перезагрузки сервера. Шлюз работает по технологии TDMoE, а это значит, что он работает на канальном уровне, то есть кадры с голосом не имеют IP-адресов, а имеют только MAC-адреса. Это удобно с точки зрения безопасности, но осложнено тем, что шлюз и сервер Asterisk должны обязательно находиться в одной подсети, где коммутация пакетов может производиться без IP-адресов.

В нашей конфигурации сервер Asterisk соединен со шлюзом Parabel ELF2-AE с помощью консольного кабеля и Ethernet-кабеля (для передачи данных по технологии TDMoE). При этом консольный кабель, выходящий из шлюза, подключен к USB-порту сервера.

Подключение выполняется по следующей схеме:

Схема подключения

 

Шаг 1. Установка и настройка утилиты Minicom

Сначала нам нужно установить и настроить утилиту Minicom, с помощью которой будет производиться настройка шлюза через консольное соединение. В CentOS ее можно установить с помощью команды

yum install minicom -y

Далее нам необходимо узнать, под каким номером система на нашем сервере определила подключенный шлюз. Для этого мы будем смотреть логи мониторинга системы в файле /var/log/messages. В этом файле хранятся записи о различных формах активности в системе, в том числе о подключении новых устройств, что нам и нужно. Мы будем просматривать в реальном времени изменение последних строк этого файла с помощью утилиты tailf:

tailf /var/log/messages

Запустив ее, вытащим консольный кабель из нашего сервера, а затем вставим его обратно. При этом в конце должна появиться строка как на скриншоте:

Словосочетание FTDI USB Serial Device означает, что некоторое устройство было подключено с помощью консольного кабеля через USB, а ttyUSB0 – это идентификатор, под которым оно определилось в системе. Чтобы завершить работу этой утилиты, нажмем Ctrl + C.

Теперь мы можем настроить утилиту Minicom для соединения со шлюзом. В консоли Linux выполняем команду

minicom -s

Выбираем пункт Serial port setup и выставляем следующие настройки

Serial Device → /dev/ttyUSB0 (может быть другой идентификатор)
Lockfile Location → /var/lock
Callin Program →
Callout Program →
Bps/Par/Bits → 38400 8N1
Hardware Flow Control → No
Software Flow Control → No

Для навигации по данному меню нужно ввести с клавиатуры букву, указанную напротив соответствующего пункта настроек. Для выхода из данного меню жмем Enter.

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

Далее необходимо сохранить эти настройки как дефолтные (выбрав пункт Save setup as dfl) и завершить работу утилиты (Exit from Minicom).

Шаг 2. Настройка шлюза с помощью Minicom

Теперь мы можем заняться непосредственно настройкой шлюза. Чтобы сервер Asterisk и шлюз Parabel ELF2-AE увидели друг друга, нам нужно прописать MAC-адрес Ethernet-порта сервера в консоли шлюза с помощью утилиты Minicom.

Чтобы узнать MAC-адрес серверного порта, в который подключен Ethernet-кабель от шлюза, нужно выполнить в консоли команду

ifconfig

В нашем случае у сервера всего один Ethernet-порт, его обозначение в системе — eth0. MAC-адрес этого порта обозначен здесь как HWaddr и имеет значение 38:60:77:9E:94:9C. Записываем или копируем этот адрес куда-нибудь, так как в дальнейшем он нам пригодится.

Чтобы начать настройку, в консоли Linux запускаем Minicom:

minicom

Если на экране консоли не появилось меню с выбором пунктов, необходимо нажать на клавиатуре клавишу Q.

Все клавиатурные комбинации для ввода в этой статье записаны заглавными буквами (например, Ctrl + A), но это не означает, что требуется ввод именно заглавной буквы с зажатием Shift или предварительным нажатием Caps Lock.

Здесь, как и в режиме конфигурирования Minicom, нужно вводить с клавиатуры соответствующие цифры для навигации по меню.

Следуем в меню так:

Configuration → Common → DST MAC

Для этого нужно нажать 1, 1, 3 на клавиатуре и ввести MAC-адрес порта сервера Asterisk, который мы узнали несколько раньше.

При навигации и вводе адреса нельзя пользоваться дополнительной цифровой клавиатурой (а только той, которая непосредственно над клавишами), так как нажатия с нее обычно распознаются неправильно.

Видим, что после ввода MAC-адреса порта eth0 сервера Asterisk значение dst сменилось на нужный нам адрес.

После этого сохраним настройки. Для этого нажмем 0, 9 и 0 (это будут соответственно команды Quit, Save и снова Quit). Далее перезагружаем шлюз, нажав 9 (Reset). В процессе перезагрузки будет виден следующий экран:

После перезагрузки шлюза выходим из его консоли, нажав Ctrl + A, затем Q. Программа предложит выйти без перезагрузки шлюза (Leave without reset), выбираем Yes и нажимаем Enter.

Шаг 3. Установка и настройка драйвера DAHDI сборки Parabel

Переходим на официальный сайт компании Parabel.

http://parabel.ru/

Далее идем в раздел Файлы и ищем актуальную сборку драйвера DAHDI. На момент написания статьи это была сборка «Сборка DAHDI с исправлениями и дополнениями, драйверами адаптеров Quasar, Quasar-mini. Версия 2.7.0.2+2.7.0.2, версия сборки 2.7.2». Копируем ссылку Скачать.

На сервере Asterisk создаем папку для исходников драйвера:

cd /usr/src
mkdir dahdi
cd dahdi

Затем скачиваем драйвера по ссылке, скопированной ранее:

wget http://parabel.ru/d/dahdi_2.7.0.2%2B2.7.0.2-parabel_2.7.2.tar.bz2

После распаковываем, компилируем и устанавливаем их:

tar xfv dahdi_2.7.0.2+2.7.0.2-parabel_2.7.2.tar.bz2
cd dahdi_2.7.0.2+2.7.0.2-parabel_2.7.2
./build.sh
./install.sh

В файле /etc/dahdi/modules закомментируем все модули, так как данный шлюз не использует ни один из них. Для этого необходимо открыть файл в любом текстовом редакторе (например, в nano), и в начале каждой строчки с названием модуля поставить символ начала комментария #:

В файле /etc/dahdi/system.conf закомментируем все строки, после чего добавляем в самый верх следующие строки

# Parabel ELF2-AE
dynamic=eth,eth0/00:55:55:55:55:00,31,1
bchan=1-15
dchan=16
bchan=17-31
# Setting ALAW for timeslots
alaw=1-15,17-31
# Setting the OSLEC Echo Canceller
echocanceller=oslec,1-15
echocanceller=oslec,17-31
# Setting correct zone info (tone info)
loadzone=ru
defaultzone=ru

где eth0 — идентификатор Ethernet-порта сервера, в который подключен шлюз
00:55:55:55:55:00 — MAC-адрес нашего шлюза Parabel ELF2-AE.

Некоторые настройки потока E1 должен сообщить провайдер. Здесь это bchan – номера слотов (каналов) для передачи данных, dchan – номер канала для синхроимпульсов.

Для вступления изменений в силу требуется рестарт DAHDI. В консоли Linux выполняем команды

amportal stop
service dahdi restart
amportal start

Смотрим на состояние каналов:

service dahdi status

Должен быть примерно такой же вывод, как на скриншоте.

Далее тестируем DAHDI:

dahdi_test

Эта утилита проверяет работу DAHDI. Если присутствуют значения ниже 99.9, то это значит, что DAHDI-устройство вынуждено конкурировать с другими процессами за прерывания и время процессора, что может привести к ухудшению качества звука, срыву синхронизации канала E1, скрежету и обрывам голоса.

Проверяем состояние карты E1:

dahdi_tool

Должно быть указано состояние «OK», в противном случае нужно перепроверить конфигурацию DAHDI и шлюза.

Далее нам нужно настроить Asterisk на работу с DAHDI. Для этого в пустом, но существующем файле /etc/asterisk/dahdi-channels.conf нам нужно прописать все каналы и задать им параметры. Откроем файл в текстовом редакторе и запишем туда строки:

language=ru

group=0
context=from-trunk
switchtype = euroisdn
signalling = pri_cpe
channel => 1-15,17-31

Настройки протокола сигнализации (в нашем случае это euroisdn) должен сообщить провайдер.

Так мы мы подключаемся к провайдеру, вполне логично, что он является источником синхроимпульсов. Поэтому наш сервер конфигурируется как Ведомое устройство (Slave), и мы указываем в signalling тип сигнализации pri_cpe.

В консоли Asterisk перегружаем модули, службу DAHDI и делаем просмотр каналов DAHDI

module reload chan_dahdi.so
dahdi restart
dahdi show channels

В списке должны отобразиться все каналы с 1 по 31. В противном случае нужно перепроверить конфигурацию каналов в файле /etc/asterisk/dahdi-channels.conf

Шаг 4. Создание DAHDI-транка во FreePBX

Чтобы совершать звонки с помощью линии E1, предоставленной провайдером, необходимо создать DAHDI-транк, с которым в дальнейшем можно будет работать как с обычным транком.

В меню FreePBX выбираем Подключение → Транки → Добавить DAHDi транк.

Введем название транка, например, MyE1Trunk, все остальное можно оставить по умолчанию. Нажимаем «Сохранить изменения» и потом «Apply Config».

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

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

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

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

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

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