- Mitglied seit
- 13 Nov 2005
- Beiträge
- 1,610
- Punkte für Reaktionen
- 26
- Punkte
- 48
In einer Zeit in der ISDN sowieso kaum mehr einer braucht (oder gar will) kann ich ja mal ein kleines HOWTO
zum Thema nachreichen
Jedenfalls war es noch nie so einfach unter Linux eine 4-Port HFC-Karte am Asterisk einzurichten und zu
betreiben. Dementsprechend kurz geraten die nun folgenden Ausfuehrungen.
Mein Vorgehen war wie folgt. Es ist nur ein Beispiel und natuerlich *ohne jede Gewaehr*.
Verbesserungsvorschlaege sind wie immer willkommen.
Vorgehen:
- Jumpern der Karte entsprechend der gewuenschten TE-/ NT-Port Konfiguration (wird spaeter durch Software eingelesen)
- Installation eines minimalen Debian 9 (aka Stretch). z.B. mit 'network install'
- eine sshd muss am Ende laufen
Vorschlag fuer das Debian-Repository
/etc/apt/sources.list:
Repository aktivieren
Installieren der Pakete zum Bau der DAHDI Treiber
Installieren der DAHDI Treiber Sourcen
Installieren von asterisk + asterisk-module
Bau der DAHDI Treiber + Installation
Blacklisten diverser Treiber z.B. in neuem File
/etc/modprobe.d/blklist_isdn_drivers.conf:
reboot
nach reboot darf folgendes Kommando keine Ausgabe haben (d.h. Treiber sind nicht geladen):
Test ob die gesteckte Karte prinzipiell erkannt wird mit
das ergibt fuer meine Swyx (Beispiel) diese Ausgabe:
zur Konfiguration der 4 ISDN-Ports dahdi manuell im auto_assign mode starten
HFC Treiber manuell laden
es sollte in den 'dmesg' den TE/ NT Jumperpositionen (siehe oben) entsprechend
div. Eintraege erscheinen. Ein Beispiel fuer meine Karte:
/var/log/messages:
wie ersichtlich laufen bei mir Port 1 und 4 im NT-Mode, die restlichen Ports im TE-Mode.
Zudem erkennt man Eintraege im /sys Filesystem, die wir jetzt in ein
Konfigurationsfile schreiben lassen:
das erzeugt 3 Konfigurationsfiles, die abhaengig von der Hardware und
der Jumperung verschieden aussehen. Fuer meine Hardware sehen sie beispielsweise so aus:
/etc/dahdi/assigned-spans.conf:
/etc/dahdi/system.conf:
/etc/asterisk/dahdi-channels.conf:
wie ersichtlich werden die Jumperpositionen automatisch ausgelesen und hinterlegt.
Nummerierung der 4 ISDN-Ports bei Draufsicht auf das Slotblech (liegende Karte, Bauteilseite nach oben) ist wie folgt:
der Blacklisteintrag fuer wcb4xxp wird nun wieder entfernt (auskommentiert),
damit der Treiber in Zukunft automatisch geladen wird
/etc/modprobe.d/blklist_isdn_drivers.conf:
das eben erzeugte dahdi-channels.conf muss dem System noch bekannt gemacht werden
z.B. durch ein #include am Ende von chan_dahdi.conf
ein nun folgender Reboot sollte alle Treiber automatisch laden:
liefert in meinem Fall:
fuer einen ersten Test wird nun ein ISDN-Telefon mit einem der NT-Ports der Karte verbunden. Wir erstellen jetzt noch eine triviale extensions.conf
/etc/asterisk/extensions.conf:
nach einem anschliessenden Asterisk- Restart mit
sollte nach Abheben des Hoerers bereits ein wunderschoener Waehlton zu hoeren sein
falls ja -> herzliche Gratulation/ Installation war erfolgreich
Nachdem die ehemals teuren 4-Port HFC Karten in der Bucht inzwischen fuer 'n Appel und 'n Ei
zu bekommen sind, sollte dem Spass damit keine Grenzen mehr gesetzt sein
Insbesondere kann man schoene SIP_2_ISDN Gateways bauen um z.B. seine alte Gigaset SX205 (die einfach nicht kaputt gehen will) zu recyclen.
Es gibt allerdings Varianten der 4-Port HFC-Karte, die kein automatisches Probing
durch den Treiber erlauben. Um diese Karten dennoch wie beschrieben nutzen zu koennen
ist ein kleiner Treiberpatch erforderlich. Falls jemand eine entsprechende Karte
erwischt hat kann ich den Patch und ein HOWTO-Update dazu gerne nachreichen.
BTW: ein Hardwarevorschlag findet sich hier: Hardwarevorschlag 4-port ISDN/SIP Gateway | IP Phone Forum
zum Thema nachreichen
Jedenfalls war es noch nie so einfach unter Linux eine 4-Port HFC-Karte am Asterisk einzurichten und zu
betreiben. Dementsprechend kurz geraten die nun folgenden Ausfuehrungen.
Mein Vorgehen war wie folgt. Es ist nur ein Beispiel und natuerlich *ohne jede Gewaehr*.
Verbesserungsvorschlaege sind wie immer willkommen.
Vorgehen:
- Jumpern der Karte entsprechend der gewuenschten TE-/ NT-Port Konfiguration (wird spaeter durch Software eingelesen)
- Installation eines minimalen Debian 9 (aka Stretch). z.B. mit 'network install'
- eine sshd muss am Ende laufen
Vorschlag fuer das Debian-Repository
/etc/apt/sources.list:
Code:
deb https://ftp.de.debian.org/debian/ stretch main contrib non-free
deb-src https://ftp.de.debian.org/debian/ stretch main contrib non-free
deb http://security.debian.org/ stretch/updates main contrib non-free
deb-src http://security.debian.org/ stretch/updates main contrib non-free
Repository aktivieren
Code:
apt update
apt upgrade
Installieren der Pakete zum Bau der DAHDI Treiber
Code:
apt build-dep dahdi-source
Installieren der DAHDI Treiber Sourcen
Code:
apt install dahdi-source
Installieren von asterisk + asterisk-module
Code:
apt install asterisk-dahdi
Bau der DAHDI Treiber + Installation
Code:
m-a -t a-i dahdi
Blacklisten diverser Treiber z.B. in neuem File
/etc/modprobe.d/blklist_isdn_drivers.conf:
Code:
blacklist hfcpci
blacklist hfcsusb
blacklist hfcmulti
blacklist mISDN_dsp
blacklist mISDN_core
blacklist mISDN_dsp_oslec
blacklist dahdi
blacklist wcb4xxp
blacklist zaphfc
reboot
Code:
init 6
nach reboot darf folgendes Kommando keine Ausgabe haben (d.h. Treiber sind nicht geladen):
Code:
lsmod | egrep -i 'hfc|isdn|crc_ccitt|dahdi|echo|wcb4'
Test ob die gesteckte Karte prinzipiell erkannt wird mit
Code:
dahdi_hardware -v
das ergibt fuer meine Swyx (Beispiel) diese Ausgabe:
Code:
pci:0000:05:00.0 wcb4xxp- 1397:08b4 Swyx 4xS0 SX2 QuadBri
zur Konfiguration der 4 ISDN-Ports dahdi manuell im auto_assign mode starten
Code:
modprobe dahdi auto_assign_spans=1
HFC Treiber manuell laden
Code:
modprobe wcb4xxp
es sollte in den 'dmesg' den TE/ NT Jumperpositionen (siehe oben) entsprechend
div. Eintraege erscheinen. Ein Beispiel fuer meine Karte:
/var/log/messages:
Code:
Aug 29 12:44:08 debootstretch32 kernel: [ 1167.464340] wcb4xxp 0000:05:00.0: probe called for b4xx...
Aug 29 12:44:08 debootstretch32 kernel: [ 1167.494750] wcb4xxp 0000:05:00.0: Identified Swyx 4xS0 SX2 QuadBri (controller rev 1) at 0001d000, IRQ 20
Aug 29 12:44:09 debootstretch32 kernel: [ 1167.528261] wcb4xxp 0000:05:00.0: NOTE: hardware echo cancellation has been disabled
Aug 29 12:44:09 debootstretch32 kernel: [ 1167.573698] wcb4xxp 0000:05:00.0: Port 1: NT mode
Aug 29 12:44:09 debootstretch32 kernel: [ 1167.625250] wcb4xxp 0000:05:00.0: Port 2: TE mode
Aug 29 12:44:09 debootstretch32 kernel: [ 1167.669276] wcb4xxp 0000:05:00.0: Port 3: TE mode
Aug 29 12:44:09 debootstretch32 kernel: [ 1167.719213] wcb4xxp 0000:05:00.0: Port 4: NT mode
Aug 29 12:44:09 debootstretch32 'dahdi_handle_device'[808]: add: /devices/pci0000:00/0000:00:1e.0/0000:05:00.0/pci:0000:05:00.0
Aug 29 12:44:09 debootstretch32 'dahdi_handle_device'[811]: auto_assign_spans=1. Skip /devices/pci0000:00/0000:00:1e.0/0000:05:00.0/pci:0000:05:00.0
Aug 29 12:44:09 debootstretch32 kernel: [ 1167.776078] wcb4xxp 0000:05:00.0: Did not do the highestorder stuff
Aug 29 12:44:09 debootstretch32 'dahdi_span_config'[840]: add: /devices/pci0000:00/0000:00:1e.0/0000:05:00.0/pci:0000:05:00.0/span-1
Aug 29 12:44:09 debootstretch32 'dahdi_span_config'[841]: add: /devices/pci0000:00/0000:00:1e.0/0000:05:00.0/pci:0000:05:00.0/span-4
Aug 29 12:44:09 debootstretch32 'dahdi_span_config'[844]: add: /devices/pci0000:00/0000:00:1e.0/0000:05:00.0/pci:0000:05:00.0/span-3
Aug 29 12:44:09 debootstretch32 'dahdi_span_config'[853]: auto_assign_spans=1. Skip /devices/pci0000:00/0000:00:1e.0/0000:05:00.0/pci:0000:05:00.0/span-1
Aug 29 12:44:09 debootstretch32 'dahdi_span_config'[851]: add: /devices/pci0000:00/0000:00:1e.0/0000:05:00.0/pci:0000:05:00.0/span-2
Aug 29 12:44:09 debootstretch32 'dahdi_span_config'[849]: auto_assign_spans=1. Skip /devices/pci0000:00/0000:00:1e.0/0000:05:00.0/pci:0000:05:00.0/span-4
Aug 29 12:44:09 debootstretch32 'dahdi_span_config'[852]: auto_assign_spans=1. Skip /devices/pci0000:00/0000:00:1e.0/0000:05:00.0/pci:0000:05:00.0/span-3
Aug 29 12:44:09 debootstretch32 'dahdi_span_config'[857]: auto_assign_spans=1. Skip /devices/pci0000:00/0000:00:1e.0/0000:05:00.0/pci:0000:05:00.0/span-2
wie ersichtlich laufen bei mir Port 1 und 4 im NT-Mode, die restlichen Ports im TE-Mode.
Zudem erkennt man Eintraege im /sys Filesystem, die wir jetzt in ein
Konfigurationsfile schreiben lassen:
Code:
dahdi_genconf -v
das erzeugt 3 Konfigurationsfiles, die abhaengig von der Hardware und
der Jumperung verschieden aussehen. Fuer meine Hardware sehen sie beispielsweise so aus:
/etc/dahdi/assigned-spans.conf:
Code:
# Device: [] @PCI_Bus_05_Slot_01 /sys/devices/pci0000:00/0000:00:1e.0/0000:05:00.0/pci:0000:05:00.0
/sys/devices/pci0000:00/0000:00:1e.0/0000:05:00.0/pci:0000:05:00.0 1:1:1
/sys/devices/pci0000:00/0000:00:1e.0/0000:05:00.0/pci:0000:05:00.0 2:2:4
/sys/devices/pci0000:00/0000:00:1e.0/0000:05:00.0/pci:0000:05:00.0 3:3:7
/sys/devices/pci0000:00/0000:00:1e.0/0000:05:00.0/pci:0000:05:00.0 4:4:10
/etc/dahdi/system.conf:
Code:
# Span 1: B4/0/1 "B4XXP (PCI) Card 0 Span 1" (MASTER)
span=1,0,0,ccs,ami
# termtype: nt
bchan=1-2
hardhdlc=3
echocanceller=oslec,1-2
# Span 2: B4/0/2 "B4XXP (PCI) Card 0 Span 2"
span=2,1,0,ccs,ami
# termtype: te
bchan=4-5
hardhdlc=6
echocanceller=oslec,4-5
# Span 3: B4/0/3 "B4XXP (PCI) Card 0 Span 3"
span=3,2,0,ccs,ami
# termtype: te
bchan=7-8
hardhdlc=9
echocanceller=oslec,7-8
# Span 4: B4/0/4 "B4XXP (PCI) Card 0 Span 4"
span=4,0,0,ccs,ami
# termtype: nt
bchan=10-11
hardhdlc=12
echocanceller=oslec,10-11
# Global data
loadzone = us
defaultzone = us
/etc/asterisk/dahdi-channels.conf:
Code:
; Span 1: B4/0/1 "B4XXP (PCI) Card 0 Span 1" (MASTER)
group=0,11
context=from-pstn
switchtype = euroisdn
signalling = bri_net_ptmp
channel => 1-2
context = default
group = 63
; Span 2: B4/0/2 "B4XXP (PCI) Card 0 Span 2"
group=0,12
context=from-pstn
switchtype = euroisdn
signalling = bri_cpe_ptmp
channel => 4-5
context = default
group = 63
; Span 3: B4/0/3 "B4XXP (PCI) Card 0 Span 3"
group=0,13
context=from-pstn
switchtype = euroisdn
signalling = bri_cpe_ptmp
channel => 7-8
context = default
group = 63
; Span 4: B4/0/4 "B4XXP (PCI) Card 0 Span 4"
group=0,14
context=from-pstn
switchtype = euroisdn
signalling = bri_net_ptmp
channel => 10-11
context = default
group = 63
wie ersichtlich werden die Jumperpositionen automatisch ausgelesen und hinterlegt.
Nummerierung der 4 ISDN-Ports bei Draufsicht auf das Slotblech (liegende Karte, Bauteilseite nach oben) ist wie folgt:
Code:
4 3 2 1
der Blacklisteintrag fuer wcb4xxp wird nun wieder entfernt (auskommentiert),
damit der Treiber in Zukunft automatisch geladen wird
/etc/modprobe.d/blklist_isdn_drivers.conf:
Code:
blacklist hfcpci
blacklist hfcsusb
blacklist hfcmulti
blacklist mISDN_dsp
blacklist mISDN_core
blacklist mISDN_dsp_oslec
blacklist dahdi
#blacklist wcb4xxp
blacklist zaphfc
das eben erzeugte dahdi-channels.conf muss dem System noch bekannt gemacht werden
z.B. durch ein #include am Ende von chan_dahdi.conf
Code:
echo '#include dahdi-channels.conf' >> /etc/asterisk/chan_dahdi.conf
ein nun folgender Reboot sollte alle Treiber automatisch laden:
Code:
lsmod | egrep 'crc_ccitt|dahdi|echo|wcb4'
liefert in meinem Fall:
Code:
dahdi_echocan_oslec 16384 8
echo 16384 1 dahdi_echocan_oslec
wcb4xxp 69632 12
dahdi 212992 26 wcb4xxp,dahdi_echocan_oslec
crc_ccitt 16384 1 dahdi
fuer einen ersten Test wird nun ein ISDN-Telefon mit einem der NT-Ports der Karte verbunden. Wir erstellen jetzt noch eine triviale extensions.conf
/etc/asterisk/extensions.conf:
Code:
[from-pstn]
exten => s,1,Set(TIMEOUT(response)=300)
exten => s,n,DISA(no-password,dial-out)
nach einem anschliessenden Asterisk- Restart mit
Code:
systemctl restart asterisk
sollte nach Abheben des Hoerers bereits ein wunderschoener Waehlton zu hoeren sein
falls ja -> herzliche Gratulation/ Installation war erfolgreich
Nachdem die ehemals teuren 4-Port HFC Karten in der Bucht inzwischen fuer 'n Appel und 'n Ei
zu bekommen sind, sollte dem Spass damit keine Grenzen mehr gesetzt sein
Insbesondere kann man schoene SIP_2_ISDN Gateways bauen um z.B. seine alte Gigaset SX205 (die einfach nicht kaputt gehen will) zu recyclen.
Es gibt allerdings Varianten der 4-Port HFC-Karte, die kein automatisches Probing
durch den Treiber erlauben. Um diese Karten dennoch wie beschrieben nutzen zu koennen
ist ein kleiner Treiberpatch erforderlich. Falls jemand eine entsprechende Karte
erwischt hat kann ich den Patch und ein HOWTO-Update dazu gerne nachreichen.
BTW: ein Hardwarevorschlag findet sich hier: Hardwarevorschlag 4-port ISDN/SIP Gateway | IP Phone Forum
Zuletzt bearbeitet: