Kstreamer
From VoiSmart Open Source Wiki
Kstreamer is a kernel subsystem whose purpose is to handle streams, channels and routing through hardware or software devices along with an application interface to control such architecture.
A stream flows trough a pipeline which is a series of channels which connect nodes from a starting node to an end node. All the channels and nodes build a graph representing the whole streaming network.
There is only one system-wide streaming network shared among applications.
Kstreamer mimics Gstreamer (hence the name) in its vision of elements to be connected together, although with a much more essential and simplified approach.
Kstreamer is the middle-level layer on which vISDN is based.
Why Kstreamer?
- Several non-VoIP or non-packet-oriented networks separate streams at layer-1, channels get handled separately at hardware and drivers level
- Linux kernel is missing a way to uniformly describe channel interconnections, which are often real, hardware entities made by physical crossconnectors or TDM buses.
- Other approaches (zaptel anyone?) are very implementation-specific
- Other?
Interfaces
In its role as a middleware, Kstreamer offers interfaces to both the userland and to lower-level drivers.
The main interface between kstreamer and the userland is a Netlink socket. Refer to Kstreamer Netlink interface page for a in-depth description of it.
Some of the information is exported in /sys/
The low-level drivers, as usual for kernel drivers, register their available resources to Kstreamer and receive callbacks from the kernel.

