Get news? 2011 | 2010 | 2009 | 2008 | 2007 | 2006 | 2005 | 2004 | 2003 | 2002 | 2001 | 2000 | 1999 | 1998 | 1997 | About | Contact Want to help?

Linux-Kongress 2002
9th International Linux System Technology Conference
September 4-6, 2002 in Cologne, Germany

Home | Events | Program | Abstracts | Tutorials | BoFs | Fees | Exhibition | Location | Accommodations | Keysigning Party | Sponsors | Supporters | Reports and Photos | Papers and Slides | Call for Papers

See the list of all papers
Author Kai Germaschewski
Title ISDN4Linux, CAPI4Linux, CAPI4Hisax and other cute acronyms
PDF: lk2002-germaschewski.pdf (625045 Bytes)

During the 2.5 development cycle, the ISDN subsystem in the Linux kernel will undergo major changes. This paper gives an outline of the layers of the legacy ISDN code, called ISDN4Linux. The core part of that code, called the ISDN link layer, is a multi/demultiplexing layer which coordinates data exchange between hardware drivers on one side and applications using ISDN service on the other side.

We will show how replacing this layer with a CAPI based solution, called CAPI4Linux, benefits both hardware drivers and applications. CAPI is an open standard ("Common ISDN Application Programming Interface"), which provides a standard interface to using ISDN communication services independently of the actual hardware and drivers used. In contrast to the old ad-hoc interface which was extended bit by bit to match growing requirements, CAPI is a well known and documented interface. Porting user space applications from and to other OS's is simplified a lot using a common API. On the driver side, an obvious advantage is accomplished for so-called active ISDN cards, which implement the CAPI interface in firmware. They can now be interfaced directly to the kernel CAPI layer without being translated back and forth from the old ISDN link layer API.

However, an overwhelming market share is owned by so-called passive ISDN adapters. They do not come with a processor of their own but expect the host processor to handle the ISDN protocols, call control and the like. Linux has a driver which handles almost all existing passive cards and implements the necessary protocol layers. Currently this driver ("hisax") interfaces to the old ISDN4Linux API, rendering it unusable with the CAPI4Linux subsystem. We describe the conversion of this driver to a open source CAPI compliant driver (the project goes by "CAPI4HiSax"), which is an essential building block on the way towards the new CAPI based ISDN layer.

About the Author

Kai Germaschewski obtained his Ph.D in plasma physics from the University of Duesseldorf in 2001. After a year of research at the Ruhr-University Bochum, he is currently working on massively parallel numerical simulations as a postdoctoral scholar at the University of Iowa, USA.

His first serious contact with Linux happened during his time as a research assistent at the Institute for Theoretical Physics, Duesseldorf, where Linux workstations were taking over tasks of typical UNIX workstations. Not much later, he got an ISDN line at home, which lead him to investigate the status of the Linux ISDN subsystem. Fascinated by the opportunity to see how an actual ISDN stack works and even the possibility to change and adapt it (thanks, open source) he quickly became familiar with the world of ISDN. One of his early projects was a small extension which allows to setup call diversion by means of running a small program on your computer. Actually initially driven by the lack of a suitable interface for that kind of extension, he started developing a CAPI interface for the hisax driver, which is now being merged in the 2.5 kernel.

With time passing, he became aware of the difficulties in communication between the ISDN developers and Linus Torvalds and started syncing pieces with Linus' official kernels and eventually became maintainer for the ISDN subsystem.

Apart from his interest in ISDN, the author sometimes gets distracted into other areas of the Linux kernel, for example currently into improving the 2.5 developer kernel's build system.

Comments or Questions? Mail to Last change: 2005-09-17