Project

General

Profile

Linux ISDN Stacks » History » Version 1

laforge, 02/19/2022 07:57 AM

1 1 laforge
h1. Linux ISDN Stacks
2
3
Linux had (at least) four different stacks/sub-systems for using ISDN interfaces:
4
* u-isdn
5
* isdn4linux
6
* mISDN
7
* DAHDI
8
9
h2. u-isdn
10
11
u-isdn, also called "Urlichs ISDN" in order to differentiate it from the other work on ISDN at the time.
12
13
It has a pre-Linux ancestry and hence a dependency on "STREAMS":https://en.wikipedia.org/wiki/STREAMS - and as STREAMS was never implemented in mainline Linux, there was never a chance to have u-isdn merged mainline at all.
14
15
Resources:
16
* "homepage of the author with some background info":http://matthias.urlichs.de/bio/comp/
17
* {original tar-ball releases":https://people.osmocom.org/laforge/retronetworking/u-isdn/u-isdn/ftp.noris.de/
18
* "tar-ball releases 7 to 45 imported into a git history":https://gitea.osmocom.org/retronetworking/u-isdn
19
20
h2. isdn4linux
21
22
isdn4linux (shorthand i4l) was the most popular ISDN stack for a long time.  It was part of mainline Linux from releases FIXME to FIXME.  Some of the main authors include Fritz Elfert, Karsten Keil.
23
24
i4l supported many ISDN related services, inclduing
25
* modem emulation via @/dev/ttyI*@ devices and AT-commands for terminal programs
26
* voice mailbox system e.g. via vboxgetty
27
* IP over ISDN using either PPP, raw-ip over HDLC (and possibly other configurations)
28
29
h3. hardware support
30
31
Hardware/driver support primarily focused on BRI interface cards, including active and passive cards.  Most users likely will have used the _hisax_ driver for the Siemens ISAC chipset used on boards like the [[Teles.S0]] cad family.
32
33
FIXME: more comprehensive list of drivers
34
35
36
h2. mISDN
37
38
mISDN was the attempt to create a clean, better architected second-generation ISDN stack for Linux.  It also became part of the mainline Linux kernel, and subsequently replaced some of the isnd4linux bits over time.
39
40
However, at least to the knowledge of the author of these lines, it never saw widespread adoption in terms of application usage.  The main user application of mISDN probably was [[LCR]], the Linux Call Router.  Later, it was also the first interface stack how the [[openbsc:]] OsmoNITB project interfaced with E1 based GSM base station hardware such as the [[openbsc:BS11]].
41
42
h3. hardware support
43
44
mISDN was primarily supporting the various CologneChip based ISDN adapters, such as the HFC-S and HFC-USB series (BRI) as well as the HFC-E1 (PRI).
45
46
47
h2. DAHDI
48
49
DAHDI is the driver stack developed originally within the Asterisk SoftSwitch universe.  It is a general telephony driver interface, supporting not just ISDN but also analog interface cards with [[FXS]] and [[FXO]] ports.  
50
51
While DAHDI also supports data applications (grep for DAHDI_NET and DAHDI_PPP), its main focus area has been voice telephony use cases.
52
53
Contrary to isdn4linux and mISDN, DAHDI never became part of the mainline Linux kernel. It always remained a set of out-of-tree kernel modules.  Due to its popularity, many distributions included it, for example in Debian via the dkms system.
54
55
In recent years, Digium/Sangoma have been a bit slow in maintaining this stack, so many distributions ship a ton of patches.  In Osmocom, we have also created our own fork of dahdi-linux, where we re-introduced support for hardware that was dropped from upstream, fixed various bugs and added [[e1-t1-adapter:icE1usb]] support, see https://git.osmocom.org/dahdi-linux/
56
57
58
h3. hardware support
59
60
As DAHDI was developed by Digum Inc., it natively supports only their hardware interface boards, which include a wide range of single- and multiport BRI and PRI interface boards for both PCI as well as PCIe.
61
62
Many other vendors also implemented DAHDI drivers, but those are primarily published by those vendors and were not adopted into the official @dahdi-linux@ repository of Digium
63
64
FIXME: more comprehensive list of DAHDI related hardware.
Add picture from clipboard (Maximum size: 48.8 MB)