[HowTo] Asterisk 16 mit FXS/FXO-Support fuer Digium Wildcard TDM410/AEX410 Karten auf Basis Debian 11 (Bullseye)

sparkie

Aktives Mitglied
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 will kann ich ja mal wieder ein kleines HOWTO, diesmal zum Umbau ISDN -> Analog, herausgeben.

Im Endeffekt habe ich in meiner alten Hardware lediglich die HFC-4S / HFC-8S durch eine Digium Wildcard TDM410(PCI) ersetzt. Für PCIe müsste man die AEX410 nehmen.
Die komplette Softwareinstallation von damals konnte für's erste völlig unverändert bleiben. Lediglich die Konfiguration musste angepasst werden.

Der Vollständigkeit halber möchte ich hier aber gleich eine Beschreibung auf Basis des neuesten Debian vorstellen.

debian version: 11
dahdi version: 2.11.1.0
asterisk version: 16

Die TDM410 Karten sind derzeit in der E-Bucht für sensationelle 25€(!) incl. 4-fach FXS Bestückung zu haben.
Mit mindestens einem FXO Port ideal geeignet um z.B. die Zwangs-Analogports der Provider Modems auf eigenes SIP umzusetzen. Somit
braucht man sich gar nicht mehr erst um die Herausgabe der Provider SIP-Daten zu kümmern.

Die Karte unterstützt an jedem Port bis zu satte 5 REN (ringer equivalence number) und versteht sogar noch Impulswahl.
Somit kann selbst ein Bakelit Tischfernsprecher W 48 ohne Einschränkung direkt am FXS Port betrieben werden:cool:
Die perfekte Symbiose wunderschöner alter Geräte mit neuester Technik.

Jedenfalls war es noch nie so einfach unter Linux eine TDM410 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:
- Bestückung der Karte mit den gewünschten FXS/FXO Modulen (ich beziehe mich hier auf 4x FXS Bestückung)
- Installation eines minimalen Debian 11 (aka Bullseye). z.B. mit 'network install'
- eine sshd muss am Ende laufen


Vorschlag fuer das Debian-Repository

/etc/apt/sources.list:

Code:
deb https://deb.debian.org/debian/ bullseye main contrib non-free
deb-src https://deb.debian.org/debian/ bullseye main contrib non-free
deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
deb http://deb.debian.org/debian/ bullseye-updates main contrib non-free
deb-src http://deb.debian.org/debian/ bullseye-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_telephony_drivers.conf:


Code:
# modules are explicitly loaded as of /etc/dahdi/modules, so don't load by default
blacklist hfcpci
blacklist hfcsusb
blacklist hfcmulti
blacklist mISDN_dsp
blacklist mISDN_core
blacklist mISDN_dsp_oslec
blacklist wcb4xxp
blacklist zaphfc

# loaded automatically by wcb4xxp/wctdm24xxp so blacklist here
blacklist dahdi

# encomment for WCTDM/0 "Wildcard TDM410P" cards after autoprobe [ dahdi_genconf -v ]
blacklist dahdi_transcode
blacklist wctdm24xxp


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|echo|dahdi|wcb4|wct'


Test ob die gesteckte Karte prinzipiell erkannt wird mit

Code:
dahdi_hardware -v


das ergibt fuer meine TDM410 (Beispiel) diese Ausgabe:

Code:
pci:0000:05:00.0     wctdm24xxp-  d161:8005 Wildcard TDM410P


zur Konfiguration der 4 Analog-Ports (FXS/FXO) dahdi manuell im auto_assign mode starten

Code:
modprobe dahdi auto_assign_spans=1


TDM410 Treiber manuell laden

Code:
modprobe wctdm24xxp


es sollte in den 'dmesg' der FXS/FXO Bestückung zur Folge (siehe oben) entsprechend
div. Eintraege erscheinen. Ein Beispiel fuer meine Karte:


/var/log/messages:

Code:
Oct  1 18:18:57 debootbullseye32 kernel: [  178.748785] dahdi: loading out-of-tree module taints kernel.
Oct  1 18:18:57 debootbullseye32 kernel: [  178.770222] dahdi: module verification failed: signature and/or required key missing - tainting kernel
Oct  1 18:18:57 debootbullseye32 kernel: [  178.794100] dahdi: Version: 2.11.1.0.20170917
Oct  1 18:18:57 debootbullseye32 kernel: [  178.817290] dahdi: Telephony Interface Registered on major 196
Oct  1 18:20:40 debootbullseye32 kernel: [  281.832223] wctdm24xxp 0000:05:00.0: Port 1: Installed -- AUTO FXS/DPO
Oct  1 18:20:40 debootbullseye32 kernel: [  281.854424] wctdm24xxp 0000:05:00.0: Port 2: Installed -- AUTO FXS/DPO
Oct  1 18:20:40 debootbullseye32 kernel: [  281.876178] wctdm24xxp 0000:05:00.0: Port 3: Installed -- AUTO FXS/DPO
Oct  1 18:20:40 debootbullseye32 kernel: [  281.898536] wctdm24xxp 0000:05:00.0: Port 4: Installed -- AUTO FXS/DPO
Oct  1 18:20:40 debootbullseye32 kernel: [  281.922020] wctdm24xxp 0000:05:00.0: Found a Wildcard TDM: Wildcard TDM410P (0 BRI spans, 4 analog channels)
Oct  1 18:20:40 debootbullseye32 'dahdi_handle_device'[505]: add: /devices/pci0000:00/0000:00:1e.0/0000:05:00.0/pci:0000:05:00.0
Oct  1 18:20:40 debootbullseye32 'dahdi_handle_device'[510]: auto_assign_spans=1. Skip /devices/pci0000:00/0000:00:1e.0/0000:05:00.0/pci:0000:05:00.0
Oct  1 18:20:40 debootbullseye32 'dahdi_span_config'[518]: add: /devices/pci0000:00/0000:00:1e.0/0000:05:00.0/pci:0000:05:00.0/span-1
Oct  1 18:20:40 debootbullseye32 'dahdi_span_config'[520]: auto_assign_spans=1. Skip /devices/pci0000:00/0000:00:1e.0/0000:05:00.0/pci:0000:05:00.0/span-1
Oct  1 18:20:40 debootbullseye32 'dahdi_span_config'[528]: UNHANDLED: bind: /devices/pci0000:00/0000:00:1e.0/0000:05:00.0/pci:0000:05:00.0/span-1


wie ersichtlich laufen bei mir 4x FXS Ports.
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
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


/etc/dahdi/system.conf:
Code:
# Span 1: WCTDM/0 "Wildcard TDM410P" (MASTER)
fxoks=1
echocanceller=oslec,1
fxoks=2
echocanceller=oslec,2
fxoks=3
echocanceller=oslec,3
fxoks=4
echocanceller=oslec,4

# Global data

loadzone        = us
defaultzone     = us

/etc/asterisk/dahdi-channels.conf:

Code:
; Span 1: WCTDM/0 "Wildcard TDM410P" (MASTER)
;;; line="1 WCTDM/0/0"
signalling=fxo_ks
callerid="Channel 1" <4001>
mailbox=4001
group=5
context=from-internal
channel => 1
callerid=
mailbox=
group=
context=default

;;; line="2 WCTDM/0/1"
signalling=fxo_ks
callerid="Channel 2" <4002>
mailbox=4002
group=5
context=from-internal
channel => 2
callerid=
mailbox=
group=
context=default

;;; line="3 WCTDM/0/2"
signalling=fxo_ks
callerid="Channel 3" <4003>
mailbox=4003
group=5
context=from-internal
channel => 3
callerid=
mailbox=
group=
context=default

;;; line="4 WCTDM/0/3"
signalling=fxo_ks
callerid="Channel 4" <4004>
mailbox=4004
group=5
context=from-internal
channel => 4
callerid=
mailbox=
group=
context=default

wie ersichtlich wird die Modulbestückung automatisch ausgelesen und hinterlegt.
Nummerierung der 4 Analog-Ports bei Draufsicht auf das Slotblech (liegende Karte, Bauteilseite nach oben) ist wie folgt:
Code:
    1 2 3 4

der Blacklisteintrag fuer wctdm24xxp wird nun wieder entfernt (auskommentiert),
damit der Treiber in Zukunft automatisch geladen wird

/etc/modprobe.d/blklist_telephony_drivers.conf:

Code:
# modules are explicitly loaded as of /etc/dahdi/modules, so don't load by default
blacklist hfcpci
blacklist hfcsusb
blacklist hfcmulti
blacklist mISDN_dsp
blacklist mISDN_core
blacklist mISDN_dsp_oslec
blacklist wcb4xxp
blacklist zaphfc

# loaded automatically by wcb4xxp/wctdm24xxp so blacklist here
blacklist dahdi

# encomment for WCTDM/0 "Wildcard TDM410P" cards after autoprobe [ dahdi_genconf -v ]
#blacklist dahdi_transcode
#blacklist wctdm24xxp

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 -i 'hfc|isdn|crc_ccitt|echo|dahdi|wcb4|wct'

liefert in meinem Fall:

Code:
dahdi_echocan_oslec    16384  1
echo                   16384  1 dahdi_echocan_oslec
wctdm24xxp             98304  1
dahdi_voicebus         61440  1 wctdm24xxp
dahdi_transcode        16384  0
dahdi                 212992  6 wctdm24xxp,dahdi_transcode,dahdi_voicebus,dahdi_echocan_oslec

fuer einen ersten Test wird nun ein Analog-Telefon mit einem der FXS-Ports der Karte verbunden.
Es sollte nach Abheben des Hoerers bereits ein wunderschoener Waehlton zu hoeren sein
falls ja -> herzliche Gratulation/ Installation war erfolgreich

Nachdem die ehemals teuren Digium Analog 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_FXS/FXO Gateways bauen um z.B. die Provider-Zwangstelefonie
mit Analogports zu umgehen und auf SIP umzusetzen.


Beispiel für einen kompakten, stromsparenden™ Hardwareaufbau:

- Intel® Desktop Board D945GSEJT, 2GB Speicher
- Digium Wildcard TDM410
- Delock PCI Riser Card #181086
- SanDisk Cruzer Fit Z33 16GB USB-Stick (root disk)
- 12V Netzteil




shot1113i.png
 
Zuletzt bearbeitet:
  • Love
Reaktionen: hominidae
In einer Zeit in der ISDN sowieso kaum mehr einer braucht kann ich ja mal ein kleines HOWTO zum Umbau ISDN -> Analog herausgeben.
Au contraire, ISDN kann man nur durch mehr ISDN ersetzen. Ich verbinde mittlerweile Asteriskse mit S0- und S2M-Gateways mit Systemtelefonanlagen. Man hat vernünftige Signalisierung, Blockwahl, und und und... Man muss sich keine PC-Kiste mit PCI-Slots hinstellen und hat das ganze Gepopel mit Treiber bauen, etc.
 
Was soll in diesem Zusammenhang der große Mehrwert sein? ISDN ist die Verkomplizierung von heutzutage 'einfach' realisierbaren Funktionen. S2M-Gateways sind völlig am Thema vorbei. Und Treiber bauen? Ein Kinderspiel, wenn man wie oben vorgeht. Das HowTo ist innerhalb kürzester Zeit abgearbeitet - fertig :)
 
Zuletzt bearbeitet:
In einer Zeit in der ISDN sowieso kaum mehr einer will kann ich ja mal wieder ein kleines HOWTO, diesmal zum Umbau ISDN -> Analog, herausgeben.

Im Endeffekt habe ich in meiner alten Hardware lediglich die HFC-4S / HFC-8S durch eine Digium Wildcard TDM410(PCI) ersetzt. Für PCIe müsste man die AEX410 nehmen.
Hi und heissen Dank für Deine Anleitung.
Ich habe das jetzt mal mit einer AEX410 in einer VM auf meinem NAS nachgebaut....war ein wenig kompliziert, weil ich zunächst eine andere LowProfile TDM PCIe am Start hatte, die aber in einer VM nicht läuft...die AEX410 tut es prima.

Allerdings ist mein Asterisk.Fu sehr eingerostet und ich habe aktuell ene FreePBX VM damit live, würde aber eben die schlankere Debian VM nehmen wollen.
Leider hapert es an der Asterisk Konfig.

In Debian nummeriert DAHDI die Ports auch anders herum, als in FreePBX..die Karte hat 1: FXS, 2: FXS, 3:FXO und 4:FXO ...
Was ich aus FreePBX mitgenommen habe, brauche ich dann 2x DAHDI Trunk, 2x DAHDI DID, für die FXO Ports - 2x DAHDI-Extension für die FXS und dann Inbound Route(s) und Outbound-Routes.
Für meine Fritz (welche die DECT Anbindung macht) noch 2x SIP/PJSIP Extensions.

Ich hab aber keinen echten Plan. Gibt es etwas leichtgewichtigeres als FreePBX als GUI oder Konfig-Tools mit UI?
Oder könnte ich die Konfigs aus einem FreePBX Backup rausholen und nach Debian verpflanzen?
 
sorry, aber mit FreePBX oder sonstigen fertig-Asterisk-Ditris kenne ich mich nicht aus. Letztlich installiere ich immer ein Minimal-Debian und konfiguriere dann den Dialplan mit meinen uralt extensions.conf der ersten Stunde:). Nicht mal zum PJSIP habe ich es bis jetzt geschafft. Andererseits funktioniert bei mir trotzdem alles wie es sollte...
 
  • Like
Reaktionen: hominidae
OK, danke für Deine Rückmeldung...dann muss ich wohl selbst mal ran, über die Feiertage, wenn das Homeoffice geschlossen ist...aktuell hat gebastel keinen WAF ;-)
Nochmal Danke für die Anleitung!
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.