== Host Software

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

At the time of this writing, the only software implementing icE1usb
support is `osmo-e1d`.

=== `osmo-e1d`

`osmo-e1d` utilizes `libusb` to talk to the icE1usb hardware and offers
a unix domain socket based interface to application software.

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 supported by a wide range of open source PBX / softswitch software,
including Asterisk, FreeSWITCH and yate.

There is an experimental 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.

