Zur Installation von Debian Squeeze auf dem Igel habe ich einen TFTP Server eingerichtet und dort das Debian Netinstall Image entpackt. Komischerweise hatte ich mit allen getesteten Ubuntu CD’s Probleme beim Download von Paketen. Das ganze passierte auch unter Squeeze, lies sich durch Änderung des Mirrors jedoch umgehen.
Grundsätzlich bin ich folgender dieser Anleitung aus dem Digium Blog gefolgt.
Nach erfolglosen Versuchen mit dem von DIGIUM bereitgestellten DAHDI Paketen (scheinbar wegen fehlendem Treiber für meine Cologne Chips HFC-S PCI-A Karte) habe ich folgendes Projekt gefunden:
http://sourceforge.net/projects/dahdi-hfcs/
Nicht ganz aktuell, funktioniert jedoch tadellos. Anstelle des normalen Dahdi Pakets aus der Anleitung von Digium konnte ich das von SourceForge nehmen.
Hardware
- Igel LX 564 Premium
- 1 Ghz VIA Nehemiah
- 2 GB Compact Flash Karte
- 256 MB Ram
- HFC-S PCI-A, Cologne Chip Designs GmbH
lspci
00:08.0 Network controller: Cologne Chip Designs GmbH ISDN network controller [HFC-PCI] (rev 02)
Subsystem: Cologne Chip Designs GmbH ISDN Board
Flags: bus master, medium devsel, latency 16, IRQ 11
I/O ports at e000 [disabled] [size=8]
Memory at ee000000 (32-bit, non-prefetchable) [size=256]
Capabilities: [40] Power Management version 1
Kernel driver in use: dahdi_hfcs
Der Interrupt 11 wird leider bei meiner Installation aktuell von diversen anderen Geräten genutzt, ob das ein Problem ist/wird kann ich nicht sagen, wird die Zeit zeigen:
uhci_hcd:usb2, uhci_hcd:usb3, uhci_hcd:usb4, yenta, dahdi_hfcs, VIA8233, eth0
Compact Flash
Der Hauptschuldige für die benötigte Zeit bei der Installation war natürlich die CompactFlash Karte, jedoch trägt dazu der schmale Via Prozessor wahrscheinlich auch seinen Teil bei (Meine 2Mbit Leitung mal außer Acht gelassen).
Im Gehäuse ist hinter dem Compact Flash Slot auf der Hauptplatine eine Stiftleiste angebracht bei der man Notebook IDE Platten anschließen kann.
Ich habe zwar eine alte 2,5“ IDE Platte da, leider fehlt mir aber ein passendes Flachbandkabel. Für die normalen 3,5“ Anschlüsse kein Problem, aber eines für die 2,5“ Variante habe ich bisher nie gebraucht. Kann man auf jeden Fall günstig in der Bucht erwerben.
Installation des Betriebssystems
Zur Debian Installation gibt es nicht viel zu sagen. Sie verläuft wie auf einem normalen PC, genutzt habe ich die Text Installation.
Das ganze hat gut und gerne 2 Stunden in Anspruch genommen. Bei der Paketauswahl habe ich alles abgewählt um eine möglichst schlanke Installation zu erhalten.
Installation der nötigen Pakete
Da auf die Installation zusätzlicher Pakete verzichtet wurde muss ich noch die für den täglichen Gebrauch unverzichtbare Tools nachinstallieren. Natürlich ist das Geschmackssache, bei mir sieht das in etwa so aus:
apt-get install vim mc multitail wget
Nun kommen wir zu den Paketen die zum Bauen von dahdi, libpri und Asterisk nötig sind:
apt-get install build-essential libssl-dev libncurses5-dev libnewt-dev libxml2-dev libsqlite3-dev libmysqlclient-dev zlib1g-dev linux-headers-`uname -r`
Download & Entpacken der Pakete
- Cd /usr /src
- dahdi-hfcs-2011-10-30.tar.gz von obigem Sourceforge Projekt
- Libpri:
http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4-current.tar.gz - Asterisk 11:
http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-current.tar.gz -
tar xf *.tar.gz
Kompilieren von Dahdi, libpri und Asterisk
Dahdi
make && make install && make config
libpri
make && make install
Asterisk 11
Beim menuselect kann man res_config_mysql aktivieren, das wird AFAIK gebraucht um Call Data Recording mit MySQL zu nutzen.
./configure && make menuselect && make && make install && make config && make samples
Konfiguration
Debian
Um Dahdi den Weg zu bereiten müssen 2 Kernelmodule in die Blacklist aufgenommen werden. Dazu wurde die Datei /etc/modprobe.d/blacklist.conf um die folgenden Zeilen erweitert:
blacklist hfcpci
blacklist mISDN_core
Dahdi
Leider habe ich stundenlang probiert und es versäumt mir Notizen zu machen. In groben Zügen müssen folgende Schritte ausgeführt werden (AFAIK wird genconf bereits durch make config ausgeführt). Mit dem Thema Echocanceller habe ich mich noch nicht weiter auseinander gesetzt, die Dahdi Basiskonfiguration unten war mir für erste Tests erstmal genug. Solange keine Probleme auftreten bleibt das auch so.
Durch ausführen des Befehls „dahdi_genconf“ versucht dahdi eine die für die Hardware passende Basiskonfiguration zu ermitteln. Dabei werden einige Konfigurationsdatein überschrieben ! Da das System frisch installiert war konnte hier natürlich nichts verloren gehen. Sicherheitshalber hatte ich vorher /etc/dahdi und /etc/asterisk einmal komplett gesichert. Die Kommentare sind in den eigentlichen realen Konfigurationsdateien eigentlich mehr störend als nützlich, als Referenz jedoch Klasse !
/etc/dahdi/system.conf
# Span 1: DAHDI_HFCS_FKA_ZTHFC1 "HFC-S PCI A ISDN card 0 [TE] "
span=1,1,0,ccs,ami
# termtype: te
bchan=1-2
hardhdlc=3
echocanceller=mg2,1-2
# Global data
loadzone = de
defaultzone = de
Asterisk
Um Asterisk mitzuteilen wie die Karte anzusprechen ist und welche Kanäle verfügbar sind müssen noch 2 Konfigurationsdateien in /etc/asterisk bearbeitet werden.
In beiden Dateien muss bei signalling der Modus der Karte festgelegt werden. Dabei gibt es 4 Möglichkeiten die für unser Euro ISDN am Basisanschluß relevant sind. Jeweils 2 für den Betrieb als Slave und als Master. Dabei ist Slave der normale Modus am Anschluß des Providers (ob Mehrgeräte- oder Anlagenanschluß ist egal), der Master Modus kann genutzt werden um einen internen S0 Bus zu betreiben.
- Anlagenanschluss – Client (normal)
signalling = bri_cpe - Mehrgeräteanschluß – Client (normal)
signalling = bri_cpe_ptmp - Anlagenanschluss – Master
signalling = bri_cpe - Mehrgeräteanschluß – Master
signalling = bri_cpe_ptmp
In meinem Beispiel gehe ich von einem normalen ISDN Mehrgeräteanschluß an einem NTBA des Providers aus. Fehler bei der Konfiguration machen sich nicht unbedingt sofort bemerkbar. Zumindest kann ich aus Erfahrung sagen das eine Digium 4 Fach Karte im p2mp Modus durchaus auch an einem Anlagenanschluß funktioniert, nur eben nicht richtig und mit teilweise komischen Nebenwirkungen (einseitige Stille ist zB. ein Probleme das hierdurch zeitweise auftrat).
/etc/asterisk/dahdi-channels.conf
; Span 1: DAHDI_HFCS_FKA_ZTHFC1 "HFC-S PCI A ISDN card 0 [TE] "
group=0,11
context=from-pstn
switchtype = euroisdn
signalling = bri_cpe_ptmp
channel => 1-2
context = default
group = 63
/etc/asterisk/chan_dahdi.conf
[channels]
language=de
switchtype=euroisdn
pridialplan=unknown
prilocaldialplan=dynamic
internationalprefix = 00
nationalprefix = 0
overlapdial=yes
callwaiting=yes
usecallingpres=yes
callwaitingcallerid=yes
threewaycalling=yes
transfer=yes
canpark=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=yes
callgroup=1
pickupgroup=1
; -----------------------------------------------------
signalling = bri_cpe_ptmp
group = 1
context=ISDN-PORT
channel => 1-2
/etc/asterisk/extensions.ael
Im Dialplan (ich verwende AEL, Beispiele für die extensions.conf sollten sich im Netz finden lassen) muss nun für den ISDN-PORT noch ein Context angelegt werden
context ISDN-PORT {
MSN => {
Answer();
Playback(hello-world); //Dial(SIP/100);
Hangup()
}
}
Neustart und Check
Um alle Änderungen zu aktivieren habe ich einen Neustart durchgeführt.
Dahdi sollte durch ausfüheren von „dahdi_cfg –vv“ auf der Konsole etwas wie das hier ausgeben:
# dahdi_cfg -vv
DAHDI Tools Version - 2.6.2
DAHDI Version:
Echo Canceller(s): HWEC, OSLEC, MG2
Configuration
======================
SPAN 1: CCS/ AMI Build-out: 0 db (CSU)/0-133 feet (DSX-1)
Channel map:
Channel 01: Clear channel (Default) (Echo Canceler: mg2) (Slaves: 01)
Channel 02: Clear channel (Default) (Echo Canceler: mg2) (Slaves: 02)
Channel 03: Hardware assisted D-channel (Default) (Echo Canceler: none) (Slaves: 03)
3 channels to configure.
Setting echocan for channel 1 to mg2
Setting echocan for channel 2 to mg2
Setting echocan for channel 3 to none
Innerhalb der CLI („asterisk –rvvv“) sollten folgende Kommandos ähnliche Ausgaben zu Tage fördern:
CLI> dahdi show version
DAHDI Version: Echo Canceller: HWEC, OSLEC, MG2
CLI> dahdi show status
Description Alarms IRQ bpviol CRC Fra Codi Options LBO
HFC-S PCI A ISDN card 0 [TE] OK 0 0 0 CCS AMI 0 db (CSU)/0-133 feet (DSX-1)
CLI> dahdi show channels
Chan Extension Context Language MOH Interpret Blocked State Description
pseudo default default In Service
1 ISDN-PORT de default In Service
2 ISDN-PORT de default In Service
Fazit
Die ganze Sache beschäftigt mich schon seit über 2 Jahren, damals noch mit einem Pentium 2 350 zum Testen. Die Dahdi Geschichte habe ich nie zum Laufen bekommen und habe nach tagelangen Versuchen die Karten weggepackt und die Sache aufgeschoben. Auch bei diesem neuen Anlauf ging einiges nicht sofort.
Dieser Artikel wurde bereits im März geschrieben, das ganze lief sehr stabil, wurde natürlich nie unter Last getestet. Da die CF Karte auf dauer doch zu langsam war hat eine alte P-ATA Notebook Festplatte Ihren Weg in den Igel gefunden. Diese war jedoch wahrscheinlich der Grund das der Igel in der Sommerhitze irgendwann seinen Geist aufgegeben hat. Nicht mehr per LAN erreichbar und ein Reboot war auch nicht von Erfolgen gekrönt. Ich muss gestehen das ich noch nicht zum nachschaun gekommen bin, das ganze steht im Regal und wartet darauf das ich zu viel Zeit habe.
Ich hatte übrigens keinerlei Qualitätsprobleme bei Gesprächen über die ISDN Karte, allerdings kam es zu Störungen von Gesprächen die über eine Fritz Box geführt wurden, die am gleichen NTBA hing.