Teaching OpenBSD 2.8 ISDN


Table of Content


1 - Introduction

ISDN support for various BSD flavours was done by Hellmuth Michaelis and is called isdn4bsd or short i4b. Isdn4bsd is integrated part of FreeBSD since FreeBSD 3.0 and is to be integrated into NetBSD soon. Sadly the isdn4bsd package does not support OpenBSD 2.6 or newer -- Hellmuth had to drop OpenBSD support due to lack of time. Thats the point this page kicks in: here you'll find a patched i4b packet which applies cleanly to OpenBSD 2.8 and enables full ISDN support on OpenBSD.

2 - Supported hardware

ISA-Karten:
- Teles S0/8 or Niccy 1008
- Teles S0/16 or Creatix ISDN-S0 or Niccy 1016    (tested)
- Teles S0/16.3                                   (tested)
- AVM A1 or AVM Fritz!Card                        (tested)
- USRobotics Sportster ISDN TA intern
- Teles S0/16.3 PnP
- Creatix ISDN-S0 P&P

PCI-Karten:
- ELSA QuickStep 1000
- AVM Fritz!Card PCI                              (tested)
   

Kernel PPP does not work right now, but uerlevel PPP offers much more features (channel-bundling, dialin support, etc.) and works fine for me. You'll need to compile your own userlevel ppp daemon since the version OpenBSD is shipping does not support HDLC or isdnd-signaling.

3 - Downloading files

This stuff applies against OpenBSD 2.8 (actually OpenBSD-20010116) and Isdn4BSD-00.90.00-beta-111299.
As stated earlier you need to compile a new version of the userlevel ppp daemon since the one OpenBSD is shipping does not support HDLC and isdnd signaling.

4 - Step by step installation

# cd /usr/src
# tar -xzf ~/i4b-0.90.0-OpenBSD-20010116.tar.gz      # unpack patched i4b sources
# cd i4b/OpenBSD
# more INSTALL                                       # READ !
# sh ./install-openbsd.sh
# cd /dev; sh /usr/src/i4b/OpenBSD/MAKEDEV.i4b all
# [EDIT YOUR KERNEL CONFIG] && [BUILD KERNEL] && [INSTALL KERNEL]
# cd /usr/src/i4b
# cp -Rp machine /usr/include/i4b                    # IMPORTANT !
# cd /root
# tar -xzf ppp-20000608-OpenBSD.tar.gz               # unpack patched ppp sources
# cd ppp-OpenBSD
# make && make install

Reboot, read 'man ppp', 'man isdnd', 'man isdnd.rc' etc.
   
Setting up a PPP link over ISDN is just like setting up a PPP link over a modem execep two entries in your /etc/ppp/ppp.conf:
set device /dev/i4brbch0
set speed sync
   

5 - Example configuration

You may have a look at my running example configuration -- it proofed to be very stable:

6 - Special features

6.1 - Dialin configuration

Upon dialin ppp normally connects to the stdin/sdtout of the tty that executes ppp -direct without looking at the "set device" line in ppp.conf, To get ppp to work with i4b the "glue" programm i4brunppp is used to connect /dev/i4brbchx with the ppp -direct process.

Compile i4brunppp:
# cd /usr/src/i4b/user-ppp
# make
# cp i4brunppp /etc/isdn
# cp i4brunppp.cat8 /usr/share/man/cat8/i4brunppp.0
     
Here are the example ppp.conf and isdnd.rc from the /usr/src/i4b/user-ppp directory.

6.2 - Callback configuration

A very nice feature is having the ppp-server call back a Windows client.(ppp.conf isdnd.rc ppp.secret)

But a weired thing sometimes(always?) happens: Using a Windows machine to call an NT ppp-server the callback is almost instantanious, doing this with a OpenBSD ppp-server, the period between hangup and callback is 15 seconds. Curiously enough the ppp logs show that it is the Windows client that requests this lengthy timeout. There seems to be no configuration option on either system to adjust this period, no idea how it is on NT machines.

It seems to be hard to find information about this on the web.

[ToDo]
[ToDo] write some stuff setup of a answering machine etc...
[ToDo]
   

7 - Troubleshooting

8 - Feedback / Other resources

You may reach me at joerg@zilium.de
Please drop me a line if managed to get a not yet tested card running and report any unforeseen difficulties you encountered while installing -- doing so may help making future versions more userfriendly.

Thanks to Marcus Daniel (danielm@uni-muenster.de) for documentation enhancements.

Some links you may find helpfull:

[1] http://www.unrest.de -- Alex Hoffmanns page about setting up ISDN on OpenBSD
[2] http://www.freebsd-support.de/i4b -- Isdn4bsd homepage
[3] http://www.awfulhak.org/ppp.html -- PPP daemons home
[4] obsd27-isdn.html -- ISDN patches for OpenBSD 2.7



Joerg Bornschein