Linux ISDN Stacks

Linux had (at least) four different stacks/sub-systems for using ISDN interfaces:
  • u-isdn
  • isdn4linux
  • mISDN

There were also some other (more short-lived) approaches like v-isdn, and of course the notorious proprietary vendor protocol stacks.


u-isdn, also called "Urlichs ISDN" in order to differentiate it from the other work on ISDN at the time.

It has a pre-Linux ancestry and hence a dependency on STREAMS - and as STREAMS was never implemented in mainline Linux, there was never a chance to have u-isdn merged mainline at all.



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.

i4l supported many ISDN related services, inclduing
  • modem emulation via /dev/ttyI* devices and AT-commands for terminal programs
  • voice mailbox system e.g. via vboxgetty
  • IP over ISDN using either PPP, raw-ip over HDLC (and possibly other configurations)

hardware support

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.

FIXME: more comprehensive list of drivers


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.

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

See MISDN_Getting_Started for more details.

hardware support

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


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.

While DAHDI also supports data applications (grep for DAHDI_NET and DAHDI_PPP), its main focus area has been voice telephony use cases.

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.

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 icE1usb support, see

hardware support

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.

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

FIXME: more comprehensive list of DAHDI related hardware.

Updated by laforge over 1 year ago · 4 revisions

Add picture from clipboard (Maximum size: 48.8 MB)