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. |