isdn4linux
 

To setup the TeleS 16.3 ISDN cards to work properly the package isdn4linux is needed. First of all, download a copy from here. The version I use is v3.0beta2.

As mention in the compile kernel section, if I didn't upgrade the kernel according to the RedHat Errata the isdn4k-utils terminated the compiling of isdnctrl with errors.


When downloaded, decompress it with:
"tar -xzvf isdn4k-utils-3.0beta2.tar.gz"
Then make the config-file to use for compiling the package by running
"make config" in the source directory. At least choose to make "ipppd" and "isdnctrl", the other applications are nice-to-have like writing log, statusinfo etc.
Then run "make" to compile it and "make install" to install the applications.


To load the ISDN modules I crate a file called "/etc/rc.d/rc.modules" which looks like this:

# Loading HiSax Driver, two TeleS BRI 16.3 (NB!! One line!)
/sbin/modprobe hisax type=3,3 protocol=2,2 
io=0x180,0x380 irq=10,15 id=teles_1%teles_2

# Loading script for the ISDN-cards
/etc/rc.d/rc.isdn0
/etc/rc.d/rc.isdn1
/etc/rc.d/rc.isdn2
/etc/rc.d/rc.isdn3

In the file above I have two TeleS ISDN cards in the machine. When I use only on card the file looks like this:

# Loading HiSax Driver, one TeleS BRI 16.3
#/sbin/modprobe hisax type=3 protocol=2 io=0x180 irq=10

# Loading script for the ISDN-cards
/etc/rc.d/rc.isdn0
/etc/rc.d/rc.isdn1

In  "/etc/rc.d/rc.modules" above I call  "/etc/rc.d/rc.isdnX". This is the script that sets the card's ISDN options. You can see mine here.
The "CARD_ID" is "HiSax" as default when using one TeleS card...


When loading "ipppd", which is the daemon that waits for a call, this requires a few other configuration-files. One is "/etc/ppp/ioptions". The always "ipppd" looks for this file when it starts, so I put the default options here, so it reads:

auth
login
proxyarp
-defaultroute
netmask 255.255.255.255
+pap
-chap

The netmask for the ppp-connection is specified because I use ip-addresses in the 10.x.x.x range, and then ipppd assigns the netmask 255.0.0.0 as default. And if I where using a class-C net, it would set up a route to the ipppX-device with a netmask on 255.255.255.0. Both would result in the machine loosing connection to it's LAN when the first caller logged in because the route to the ISDN-interface would act as the gateway.
The option "proxyarp" give the dial in user access to the whole LAN where the ppp-terminal server is placed, and not just the server. Login means that the username and password are checked against the machines usernames.


Dynamic ip is a nice thing! :) In "/etc/rc.d/rc.isdnX" the ip-address that shall be assigned to a caller is specified to set up the routes. Also a file called "/etc/ppp/options.ttyIX" needs to be made. This tells the ipppd which ip-address actually will get and looks like this (x=local ip-address, y=ip-address to assign):

xxx.xxx.xxx.xxx:yyy.yyy.yyy.yyy

We also have to make I file called " /etc/ppp/pap-secrets". The one for ISDN is pretty similar to the one for modem, but there is a difference; if you allow every ip-address  use "", not "*" as with modem. My pap-secrets for ISDN dial in looks like this:

# Secrets for authentication using PAP with ISDN

# client  server  secret  IP addresses
    *        *      ""

This means that it allows any clients (e.g.: username) and use password authentication against the machines usernames.

Tip: If the same machine should answer incoming calls on both modem and ISDN the "/etc/ppp/pap-secrets" must have an entry for each one like this:

# Secrets for authentication using PAP with
# ISDN and modem

# client  server  secret  IP addresses
    *        *      ""
    *        *      ""         *

Tip: When the "ipppd" daemon goes up and down it looks for some files in "/etc/ppp" called respectively "auth-up", "ip-up" and "auth-down", "ip-down". If these don't exist there will be a non-critical error in the syslog. To get rid of these messages, create an executable file (type "chmod u+x filename") with the same filename that contents:

#!/bin/bash
#
# This is just a dummy file...
#

So, this is what I did to set up a terminal server to accept incoming calls.It works fine for me, so I hope this might have been any useful to you as well.

 
  | Index | mgetty+sendfax | Kernel | isdn4linux | Links |

Design 19©96-20©03, Robert Grefstad