== Host Software

Host Software is software running on the USB host computer to which the
icE1usb is attached.

At the time of this writing, there are two options for icE1usb driver interfaces:
`osmo-e1d` and `DAHDI`.

=== `osmo-e1d`

`osmo-e1d` is a pure user-space driver, not requiring any specific Linux kernel,
kernel patches or out-of-tree kernel modules.  It utilizes `libusb` to
talk to the icE1usb hardware and offers a unix domain socket based
interface to application software.

In theory, `osmo-e1d` should work on any operating system with libusb
support for isochronous transfers.  However, official support is limited
to GNU/Linux at this point.

Software such as `osmo-bsc` and `osmo-mgw` can interface `osmo-e1d` via
the `libosmo-abis` support for `osmo-e1d`.

More information about `osmo-e1d` can be found at its homepage
https://osmocom.org/projects/osmo-e1d/wiki

=== DAHDI driver

DAHDI (Digium Asterisk Hardware Driver Interface) is an extremely
popular driver for a variety of POTS/PSTN and also TDM interface boards
by originally Zaptel, later Digium and now most recently Sangoma.

DAHDI is available only for Linux, and is provided as source code for a
set of out-of-tree kernel modules.  You must compile those modules for
each specific Linux kernel version you are using.  Keep this in mind
when performing kernel upgrades and the like.

DAHDI is supported by a wide range of open source PBX / softswitch software,
including Asterisk, FreeSWITCH and yate.

There is a DAHDI driver for the icE1usb available from
the `laforge/icE1usb` branch of the https://github.com/osmocom/dahdi-linux
git repository.

When using that DAHDI Linux kernel driver, there is no need for
osmo-e1d.  The USB interface is directly managed inside the kernel.

=== Other software

you can interface 3rd party applications with osmo-e1d in the following
ways:

* by adding support for `osmo-e1d`, e.g. via `libosmo-e1d` to the
  respective application
* by directly implementing the USB interface exposed by icE1usb in your
  software

Should you require any related development/porting services, please do
not hesitate to reach out to sysmocom.

