Подключение городской линии с помощью аналоговой карты с портом FXO.
Рассмотрим подключение на примере карты Openvox A400p.
После подключения карты необходимо проверить не делит ли она прерывание с каким либо устройством.
Эту проверку нужно осуществить на уровне шины и на уровне ядра.
В командной строке вводим команду lspci -vb
05:00.0 Network controller: Tiger Jet Network Inc. Tiger3XX Modem/ISDN interface
Subsystem: OpenVox Communication Co. Ltd. Device 0001
Flags: bus master, medium devsel, latency 32, IRQ 4
I/O ports at d200
Memory at f7c42000 (32-bit, non-prefetchable)
Capabilities: [40] Power Management version 2
Kernel driver in use: wctdm
Kernel modules: wctdm, hisax, netjet
Мы видим, что карта получила прерывание 4, соответственно никаких других устройств на этом прерывании быть не должно.
Проверять прерывания только командой lspci -vb недостаточно, нужно посмотреть вывод команды lspci -vv.
Если карта делит с чем то прерывание, чаще всего - это usb, то usb, да и все остальное лишнее , типа com порта , флоппи и тд - нужно отключить в биосе.
Если это не помогло - поставить карту в другой слот.
Редактируем файл /etc/dahdi/modules , оставим только нужный модуль, остальные заремливаем
# Contains the list of modules to be loaded / unloaded by /etc/init.d/dahdi.
#
# NOTE: Please add/edit /etc/modprobe.d/dahdi or /etc/modprobe.conf if you
# would like to add any module parameters.
#
# Format of this file: list of modules, each in its own line.
# Anything after a '#' is ignore, likewise trailing and leading
# whitespaces and empty lines.
# Digium TE205P/TE207P/TE210P/TE212P: PCI dual-port T1/E1/J1
# Digium TE405P/TE407P/TE410P/TE412P: PCI quad-port T1/E1/J1
# Digium TE220: PCI-Express dual-port T1/E1/J1
# Digium TE420: PCI-Express quad-port T1/E1/J1
#wct4xxp
# Digium TE120P: PCI single-port T1/E1/J1
# Digium TE121: PCI-Express single-port T1/E1/J1
# Digium TE122: PCI single-port T1/E1/J1
#wcte12xp
# Digium T100P: PCI single-port T1
# Digium E100P: PCI single-port E1
#wct1xxp
# Digium TE110P: PCI single-port T1/E1/J1
#wcte11xp
# Digium TDM2400P/AEX2400: up to 24 analog ports
# Digium TDM800P/AEX800: up to 8 analog ports
# Digium TDM410P/AEX410: up to 4 analog ports
#wctdm24xxp
# X100P - Single port FXO interface
# X101P - Single port FXO interface
#wcfxo
# Digium TDM400P: up to 4 analog ports
wctdm
# Digium B410P: 4 NT/TE BRI ports
#wcb4xxp
# Digium TC400B: G729 / G723 Transcoding Engine
#wctc4xxp
# Xorcom Astribank Devices
#xpp_usb
Редактируем файл /etc/dahdi/system.conf
В данном примере задействован 4 порт
# Autogenerated by /usr/sbin/dahdi_genconf on Wed Dec 26 11:41:01 2012
# If you edit this file and execute /usr/sbin/dahdi_genconf again,
# your manual changes will be LOST.
# Dahdi Configuration File
#
# This file is parsed by the Dahdi Configurator, dahdi_cfg
#
# Span 1: WCTDM/4 "Wildcard TDM400P REV E/F Board 5" (MASTER)
# channel 1, WCTDM/4/0, no module.
# channel 2, WCTDM/4/1, no module.
# channel 3, WCTDM/4/2, no module.
fxsks=4
#echocanceller=mg2,4
# Global data
loadzone = us
defaultzone = us
Запускаем драйвер
service dahdi start
Проверяем конфигурацию
dahdi_scan
[1]
active=yes
alarms=OK
description=Wildcard TDM400P REV E/F Board 5
name=WCTDM/4
manufacturer=Digium
devicetype=Wildcard TDM400P REV E/F
location=PCI Bus 05 Slot 01
basechan=1
totchans=4
irq=0
type=analog
port=1,none
port=2,none
port=3,none
port=4,FXO
Проверяем прерывание карты на уровне ядра командой
cat/proc/interrupts
17: 1309018870 1156204 20069795 1082717836 IO-APIC-fasteoi wctdm
Запустим тест для выявления проблем с прерываниями
dahdi_test
Opened pseudo dahdi interface, measuring accuracy...
99.999% 99.995% 99.998% 99.998% 99.997% 99.998% 99.997% 99.998%
99.998% 99.997% 99.998% 99.998% 99.998% 99.998% 99.998% 99.998%
99.998% 99.998% 99.998% 99.998% 99.998% 99.998% 99.998% 99.998%
99.998% 99.998% 99.998% 99.998% 99.998% 99.998% 99.998% 99.997%
99.998% 99.997% 99.998% 99.998% 99.998% 99.995% 99.999% 99.998%
99.998% 99.998% 99.998% 99.998% 99.998% 99.998% 99.998% 99.998%
99.998% 99.998% 99.998% 99.998% 99.998% 99.998% 99.998% 99.998%
99.998% 99.998% 99.998% 99.998% 99.998% 99.998% 99.998% 99.997%
99.995% 99.998% 99.999% 99.998% 99.995% 99.999% 99.998% 99.998%
99.997% 99.998% 99.998% 99.998% 99.998% 99.998% 99.998% 99.998%
99.998% 99.997% ^C
--- Results after 82 passes ---
Best: 99.999% -- Worst: 99.995% -- Average: 99.997770%
Cummulative Accuracy (not per pass): 99.998
Значение Average не должно быть ниже 99.97
Редактируем файл /etc/asterisk/chan_dahdi.conf
В данном файле прописаны настройки для пульсового набора, если у вас тональный набор, то выделенные строчки можно удалить
[channels]
language=en
context=from-pstn
cidstart=polarity
pulsedial=yes
relaxdtmf=yes
signalling=fxs_ks
faxdetect=incoming
usecallerid=yes
echocancel=no
echocancelwhenbridged=no
rxgain=0.0
txgain=0.0
overlapdial=yes
busydetect=yes
busycount=3
group=1
channel=>4
Заходим в астериск , проверяем
CLI>dahdi show status
Description Alarms IRQ bpviol CRC Fra Codi Options LBO
Wildcard TDM400P REV E/F Board 5 OK 0 0 0 CAS Unk 0 db (CSU)/0-133 feet (DSX-1)
CLI> dahdi show channels
Chan Extension Context Language MOH Interpret Blocked State
pseudo default default In Service
4 from-pstn en default In Service
Далее заходим в вэб интерфейс эластикса, создаем inbound routes, в котором заполняем 2 поля - описание правила и destination.
Затем создаем DAHDI транк , в котором указываем название транка и идентификатор транка - g1
Создаем Outbound Routes, в котором прописываем название правила , dial patterns(например XXXXX -через правило будут набираться все 5-значные номера ) и транк назначение.