Bsdadmin.ru

Записки администратора FreeBSD

Путь на сайте

Работа с DAHDi

После инсталляции карты, проверяем ее в системе
#lspci -v
Компилируем нужный пакет для нашей карты, парабел, например, тут http://parabel.ru/d/dahdi_2.4.1.2+2.4.1-parabel_2.4.3.tar.bz2
 
в /etc/dahdi/modules
комментим все модули, вписываем нужный нам, например, quasarm в /etc/dahdi/system.conf
 
Указываем зоновую (региональную) принадженость.
loadzone=ru
defaultzone=ru
 
Настраиваем согласование потока между АТС оператора и Asteris k.
  span = 1,0,0,CCS,HDB3,CRC4 //Задается источник синхронизации, тип кодирования и необходимость проверки четности
bchan=1-15,17-31 // Задаются тайм-слоты для голоса
dchan=16 //Задаются сигнальные тайм-слоты для данных (0-й - по умолчанию)
echocanceller=mg2,1-15,17-31 // Указывается тип эхоподавителя и тайм-слоты, на которых он будет задействован.
 
Теперь чуть более подробно по опциям.
span = <span_num>,<timing>,<LBO>,< framing>,<coding>[,crc4]
где
span_num – номер порта E1 (от 1 до максимального номера порта в плате)
timing – использовать ли порт как источник синхронизации
0 – порт адаптера ведущий по E1
1 и более – порт ведомый по E1 и является одним из источников
синхронизации адаптера. Чем больше число, тем меньше приоритет порта.
LBO – параметр не используется, ставить 0.
Framing – тип телефонной сигнализации, ставить ccs или cas.
Coding – кодирование в линии, может принимать значения ami или hdb3
Crc4 – разрешить проверку и генерацию crc4 (не обязательный параметр)
 
Делаем рестарт dahdi
 #service dahdi stop
#service dahdi status
 
Если не выгрузился, необходимо сначала остановить Asterisk
#service asterisk stop
после 
#service asterisk start
#service dahdi start
 
Проверка:
#dahdi_test
dahdi_test
Opened pseudo dahdi interface, measuring accuracy...
99.999% 99.995% 99.999% 99.999% 99.999% 99.999% 99.999%
--- Results after 7 passes ---
Best: 99.999 -- Worst: 99.995 -- Average: 99.998506, Difference: 99.998507
 
З начения не ниже 99,9 - хороший результат. Он означает, что DAHDI-устройство не вынуждено конкурировать с другими процессами за прерывания и время процессора. Значения ниже 99.9 будут приводить к ухудшению качества звука, срыву синхронизации канала E1, скрежету и обрывам голоса.
 
В случае, если значения ниже 99,9 (да и просто для профилактики), неободимо убедиться, что цифровая карта не делит прерывания с другими драйверами.
#cat /proc/interrupts
[pbx.localdomain ~]# cat /proc/interrupts
           CPU0       CPU1       
  0: 1326273128          0    IO-APIC-edge  timer
  1:       8959          0    IO-APIC-edge  i8042
  4:    2796129          0    IO-APIC-edge  serial
  6:          6          0    IO-APIC-edge  floppy
  7:          2          0    IO-APIC-edge  parport0
  8:          1          0    IO-APIC-edge  rtc
  9:          1          0   IO-APIC-level  acpi
 14:   50338541          0    IO-APIC-edge  ide0
 50:          0          0   IO-APIC-level  uhci_hcd:usb3
 58:       7369   23441503         PCI-MSI  ahci
114: 1326250778          0   IO-APIC-level  wctdm
146:   28024883          0         PCI-MSI  eth0
169:          0          0   IO-APIC-level  uhci_hcd:usb5
225:          0          0   IO-APIC-level  uhci_hcd:usb4
233:          0          0   IO-APIC-level  ehci_hcd:usb1, uhci_hcd:usb2
NMI:          0          0
LOC: 1325416311 1325416314
ERR:          0
MIS:          0
 
wctdm занимает отдельный irq, это правильно.Если с кем-то делит, то это может сказывать на работе карты и качестве голоса.
Чаще всего наблюдается ситуация, когда драйвера USB и DAHDI занимают одно прервывание. Это нежелательная ситуация, и в ней лучше всего либо разнести драйвера по разным прерываниям, либо отключить USB на уровне BIOS.
#dahdi_tool
тут можно увидеть ошибки в работе карты
#dahdi_scan
показывать сведения о карте
#dahdi_cfg -v
показывает конфигурационный файл, который используется
затем в /etc/asterisk/chan_dahdi.conf
примерный конфиг:
 
===================
[trunkgroups]
[channels]
language=ru
context=from-trunk
signalling=pri_cpe
rxwink=300              ; Atlas seems to use long (250ms) winks
;                                                                                                               
; Whether or not to do distinctive ring detection on FXO lines                                                  
;                                                                                                               
;usedistinctiveringdetection=yes                                                                                
                                                                                                                
usecallerid=yes                                                                                                 
hidecallerid=no                                                                                                 
callwaiting=yes                                                                                                 
usecallingpres=yes                                                                                              
callwaitingcallerid=yes                                                                                         
threewaycalling=yes                                                                                             
transfer=yes                                                                                                    
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=yes
echotraining=800
rxgain=0.0
txgain=0.0
group=0
callgroup=1
pickupgroup=1
immediate=no
;busydetect=yes
;busycount=5
faxdetect=no
 
switchtype=euroisdn ; or qsig
immediate=no
context=from-trunk
resetinterval=100000000
signalling=pri_cpe ; or pri_net
group=0
channel =>1-15,17-31
====================
В Астериск CLI
dahdi restart
dahdi show channels проверяем что каналы поднялись
dahdi show channel 1
 
Взято здесь http://www.voxlink.ru