Для настройки платы нам понадобится установленный DAHDI, с включенной поддержкой HDLC, и архив с драйвером Quasar, который прилагается на CD-диске, поставляемом с платой. Из физического оборудования потребуется сама плата и кабель для подключения потока E1, распиновка и прочая информация показаны на рисунке:
После установки оборудования установим драйвер.
Скопируйте архив с драйвером на сервер. На компакт-диске его можно найти в директории Quasar-driver, файл quasar-4.0.3.tar.bz2
Распакуйте архив и перейдите в директорию с исходниками:
$ tar xjvf quasar-4.0.3.tar.bz2 && cd quasar-4.0.3
Для компиляции модулей необходимы заголовочные файлы и конфигурация целевого ядра ОС. По умолчанию, используются заголовочные файлы DAHDI из директории /usr/include. Если DAHDI компилировался вручную, то расположение заголовочных файлов нужно будет указывать вручную, как будет показано ниже.
Установите заголовочные файлы текущего ядра:
# apt-get install linux-headers-`uname -r`
Если DAHDI комплировался вручную, то необходимо указать директорию с его заголовочными файлами:
# DAHDI_INCLUDE="/usr/local/src/dahdi-linux-complete-2.10.0.1+2.10.0.1/linux/include/"
В противном случае нужно установить пакет с исходниками DAHDI:
# apt-get install dahdi-source
Теперь можно приступить к сборке и установке самого драйвера Quasar:
# make && make install
После сборки и установки загрузите драйвера в систему:
# modprobe dahdi && modprobe quasar
Затем выполняем сканирование оборудования, которое видит DAHDI:
# dahdi_scan
[1]
active=yes
alarms=OK
description=Parabel Quasar 0 Span 1
name=Quasar_0_1
manufacturer=Parabel ltd.
devicetype=Parabel Quasar E1
location=PCI Bus 07 Slot 01
basechan=1
totchans=31
irq=0
type=digital-E1
syncsrc=1
lbo=0 db (CSU)/0-133 feet (DSX-1)
coding_opts=AMI,HDB3
framing_opts=CCS,CRC4
coding=HDB3
framing=CCS/CRC4
[2]
active=yes
alarms=RED
description=Parabel Quasar 0 Span 2
name=Quasar_0_2
manufacturer=Parabel ltd.
devicetype=Parabel Quasar E1
location=PCI Bus 07 Slot 01
basechan=32
totchans=31
irq=0
type=digital-E1
syncsrc=1
lbo=0 db (CSU)/0-133 feet (DSX-1)
coding_opts=AMI,HDB3
framing_opts=CCS,CRC4
coding=
framing=CAS
[3]
active=yes
alarms=OK
description=Wildcard TDM410P
name=WCTDM/0
manufacturer=Digium
devicetype=Wildcard TDM410P
location=PCI Bus 05 Slot 01
basechan=63
totchans=4
irq=0
type=analog
port=63,FXS
port=64,FXS
port=65,FXO
port=66,FXO
Вывод данной команды может различаться на разных системах и приведен как пример. Здесь мы видим, что DAHDI распознал три логических устройства с которыми он может работать, их данные располагаются под строчками [1], [2] и [3] соответственно. Первое устройство — это первый порт E1 на плате Quasar, ему принадлежат каналы 1-31. Второе — это второй порт E1, которому принадлежат каналы 32-62. Эти каналы выделяются даже несмотря на то, что рассматриваемая версия платы имеет только один порт E1. Судя по всему, это особенность работы драйвера quasar.
Третье устройство — это аналоговая плата Digium Wildcard TDM410P, имеющая два FXS и два FXO порта (каналы 63-64 и 65-66 соответственно).
Отредактируем файл /etc/dahdi/system.conf в соответствии с полученным выводом:
loadzone=ru
defaultzone=ru
echocanceller=mg2,63-66
span=1,1,0,ccs,hdb3,crc4
bchan=1-15,17-31
dchan=16
fxoks=63,64
fxsks=65,66
Применим конфигурацию:
# dahdi_cfg
Проверим конфигурацию каналов:
# tpri
0
Если команда выводит число отличное от нуля, значит что-то настроено неправильно и стоит проверить предыдущие шаги.
После этого отредактируем /etc/asterisk/chan_dahdi.conf и добавим туда следующие строки:
[channels]
; Принимаем CallerID от АТС
usecallerid=yes
; E1 trunk
group=0
context=incoming_e1
signalling=pri_cpe
switchtype=euroisdn
; Возможность перехватить цифры, отправляемые в поток АТС Мультиком
overlapdial=yes
channel=>1-15,17-31
Далее добавим эту группу каналов в диалплан, отредактировав файл /etc/asterisk/extensions.conf (очень примерно):
[globals]
E1 = DAHDI/g0
; обработка входящих вызовов потока E1. В данном случае будет выполняться простой дозвон до SIP-пользователя 1000.
; никакого смысла в этом нет, но для примера пойдет
[incoming_e1]
exten => s,1,NoOp()
same => n,Answer()
same => n,Dial(SIP/1000)
same => n,Hangup()
; отправка исходящих звонков в поток E1
[outbound_e1]
exten => _3XXX,1,NoOp()
same => n,Dial(${E1}/${EXTEN})
same => n,Hangup()
Подключившись к командной строке Asterisk выполним следующие действия:
# asterisk -r
> module unload chan_dahdi.so
> module load chan_dahdi.so
> dialplan reload
На этом настройка завершается, поток готов к работе!