=======
Credits
=======


I want to thank all who contributed to this project and especially to:
(in alphabetical order)

Thomas Bogendörfer (tsbogend@bigbug.franken.de)
  Tester, lots of bugfixes and hints.

Alan Cox (alan@lxorguk.ukuu.org.uk)
  For help getting into standard-kernel.

Henner Eisen (eis@baty.hanse.de)
  For X.25 implementation.

Volker Götz (volker@oops.franken.de)
  For contribution of man-pages, the imontty-tool and a perfect
  maintaining of the mailing-list at hub-wue.

Matthias Hessler (hessler@isdn4linux.de)
  For creating and maintaining the FAQ.

Bernhard Hailer (Bernhard.Hailer@lrz.uni-muenchen.de)
  For creating the FAQ, and the leafsite HOWTO.

Michael 'Ghandi' Herold (michael@abadonna.franken.de)
  For contribution of the vbox answering machine.

Michael Hipp (Michael.Hipp@student.uni-tuebingen.de)
  For his Sync-PPP-code.

Karsten Keil (keil@isdn4linux.de)
  For adding 1TR6-support to the Teles-driver.
  For the HiSax-driver.

Michael Knigge (knick@cove.han.de)
  For contributing the imon-tool

Andreas Kool (akool@Kool.f.EUnet.de)
  For contribution of the isdnlog/isdnrep-tool

Pedro Roque Marques (roque@di.fc.ul.pt)
  For lot of new ideas and the pcbit driver.

Eberhard Mönkeberg (emoenke@gwdg.de)
  For testing and help to get into kernel.

Thomas Neumann (tn@ruhr.de)
  For help with Cisco-SLARP and keepalive

Jan den Ouden (denouden@groovin.xs4all.nl)
  For contribution of the original teles-driver

Carsten Paeth (calle@calle.in-berlin.de)
  For the AVM-B1-CAPI2.0 driver

Thomas Pfeiffer (pfeiffer@pds.de)
  For V.110, extended T.70 and Hylafax extensions in isdn_tty.c

Max Riegel (riegel@max.franken.de)
  For making the ICN hardware-documentation and test-equipment available.

Armin Schindler (mac@melware.de)
  For the eicon active card driver.

Gerhard 'Fido' Schneider (fido@wuff.mayn.de)
  For heavy-duty-beta-testing with his BBS ;)

Thomas Uhl (uhl@think.de)
  For distributing the cards.
  For pushing me to work ;-)
