Configuration and Reference guide for the DOS and Windows Internet-ISDN Drivers

Herbert Hanewinkel, Feb. 1997
heha@biochem.mpg.de

All drivers (ISPA, ISDI, CIPA, CINDI) and programs (WISPA, WISDI, WINCI, CANDI) need a configuration file in the format described below. The default name for this configuration file is "program-name".INI, e.g. ISPA.INI.

Structure of the configuration file

The configuration file consists of the following formal parts:
[global options]
[translation entry for incoming calls from numbers not specified]
[translation entries for incoming and outgoing calls]

The first section is optional, but there has to be at least one of the two types of translation entries.
The global options control thedrivers overall behaviour. Global options can be specified on one or more lines. Examples for global option:

-c0 # controller 0
-u # only one active channel
-w # active display on DOS screen

See the Global options section below for a complete reference.

The second and third part consist of translation entries to map IP-addresses to ISDN numbers and to select peer specific parameters for these entries.

The translation entries in the configuration file have two functionalities:

Incoming connections will be accepted only from ISDN numbers specified in the configuration file. To disable CLI and allow incoming calls from any number, the first translation entry has to contain a '*' in the common part of ISDN number field. For incoming calls from ISDN numbers not otherwise specified, the parameters of this entry will be used.

The translation entries in the file have to be in the following format:

ip-address ISDNnumber [options] [# comment]

ip-address defines the IP-address of the peer.
ISDNnumber defines the ISDN number of the peer.
options define the protocol, time-out, ... for this link.

If the same IP-address appears more than once in the configuration file, the dialler operates as a rotary dialler and will try all corresponding ISDN numbers until a connection is established.

Attention: If the first entry in the configuration file selects an ethernet bridging protocol, the use of the configuration file as a translation table for outgoing calls is disabled. All outgoing calls will be set up to the first entry. Further entries will be used only for CLI of incoming calls.

The driver can operate only in routing or bridging mode. You can not mix entries with routing and bridging protocols in the configuration file.

The system supports IP-address based routing (as it is implemented in PCROUTE) as well as interface based routing of IP packets.
For IP-applications not supporting IP-address based routing or in of simple point-to-point configurations, translation entries for outgoing calls may be specified with an IP-address of 0.0.0.0. In this case no IP-address based selection of the peer is done. An outgoing call will try all numbers until a connection is established. All IP packets (unicast and broadcast) sent from the application are forwarded over an active connection.
For translation entries having a non zero IP-address only unicast IP packets routed via this IP-gateway are forwarded to the corresponding ISDN peer. In this case the IP-address has to match the (or one of the) IP-gateway address(es) in your IP-configuration of your application software.

Up to 64 translation entries (256 in the ISPA8B Version) can be specified in the configuration file.

Global options:

-m my-ip-address
defines a static local IP-address for use in PPP negotiation and/or use with BOOTP,DHCP, RARP and NAT. Setting the local IP-address to 0.0.0.0 has a special meaning. In this case a received dynamic IP-address will be kept until the program is terminated or the IP-address is manually resetted to 0.0.0.0 again.
default: no address defined
-n nameserver-ip-address
defines an IP-address of a Nameserver for use with BOOTP and DHCP.
default: no address defined
-a
disables the auto-dialer. If not selected the driver will dial-on-demand.
default: auto-dialer enabled
-b
The driver will respond to BOOTP / DHCP requests, if a non-zero IP-address was configured through the -m Option or an IP-address was received via PPP from a link. This option disables responding to BOOTP or DHCP requests.
Disable BOOTP/DHCP responses only, if your IP-provider supports BOOTP or DHCP for dynamic IP-address assignment over ISDN.
default: BOOTP/DHCP response enabled
-k setup[,sleep[,callbackwait]
specifies the set-up time in seconds. The system will wait "setup" seconds for a connection to come up. If the connection does not reach the active state during this time, the channel is reset. The "sleep" parameter allows you to modify the delay between a disconnect and the next dial request. The "callbacklwait" parameter allows you to specify the delay before a callback will be made. In case of a callback request the request is cancelled after "callbackwait" seconds.
defaults: 10,5,2 seconds
-l interval[c]
if "interval" is non zero and a connection is up, a statistic message will be displayed every "interval"-seconds. "interval" should be a multiple of 8, otherwise it is internally rounded up to the next multiple of 8.
Appending a "c" to interval will force immediate log (on the screen or syslog host) of every charge message received from the CAPI software.
-r log-ip,my-ip
remote logging on a UNIX host with a syslogd. Using ISPA with IP-Router software this option can be used to log all connection related messages on a UNIX host with a Berkeley syslogd. The command can also used under windows in combination with a WINSOCK syslogd (e.g. freeware syslogd from CLS) to log all connections to file.
"log-ip" defines the IP address of the UNIX host.
"my-ip" defines the source IP address of syslog messages sent by the programs (a packet or NDIS driver can not automatically retrieve the information from the application layer).
Syslog-messages are sent with the characteristics "local0.info".
-s max-size
defines the maximum packet size for asynchronous protocols (async PPP and SLIP). Data packets are split into more than one X.75 or V.110 packet if they exceed this value.
default: 512 Bytes/packet
-u
Limits the programs to one active connection at a time. This will reduce the memory requirement of the DOS versions by 20kB.
Selecting loadsharing (-m) overrides this option.
-g n[,s]
the program allocates 8 buffers of 1536 Bytes each per B-channel for use by the CAPI software. With this option the allocated bufferspace can be set to n buffers per B-channel. For the Windows version the second parameter sets the send buffer size to s * 1536 Bytes per B-channel.
The default send buffer size is 4 *1536 Bytes per B-channel.
-j low[,high]
defines an ethernet type range for ethernet bridging. Ethernet packets with type values outside the selected range are discarded. This filter applies to all bridging protocols.
"low" defines the lower boundary. default: 0
"high" defines the upper boundary. default: 0xffff
for CAPI 1.1 only:
-c n
selects the ISDN controller (card), n specifies the controller number.
default: 0
-e EAZ | index[,mask]
German ISDN (1TR6) allows to specify 1 digit subaddress(EAZ). This option defines the EAZ used by ISPA for outgoing calls. The EAZ will be appended to the basic local address on outgoing calls. EAZ's range from 1 to 9.
In 1TR6 listening to EAZ 0 means accept all EAZ's.
For EuroISDN this option defines an index in the range 0 to 9. If your EuroISDN BRI supports MSN's (multiple subscriber numbers) this option defines an index into a table of local addresses defined during installation of your ISDN-API 1.1 software. The address defined for this index will be used as the local address on outgoing calls.
Mask defines the EAZ's or indices to listen for incoming calls in form of a bit mask. The least significant bit corresponds to EAZ or index 0. The default for the mask selects the same EAZ or index as used for outgoing calls. (e.g. EAZ 2 sets mask to 4).
A EAZ mask of 0x400 disables incoming calls completly
default: 2,4
-y mask
a mask to specify the Servicenumbers (call types) for incoming calls. Only calls matching the specified profile are signalled by the CAPI software. Specifying a service mask enables service checking on incoming calls in the programs.

0 = Video
1 = Telephony
2 = analog Services
3 = X.21 Services
4 = Fax Group 4
5 = Videotex
7 = Data

A CAPI implemenation may not support all Service types.
default: 0x88 = Data and X.21 Services, no service check by the application

for CAPI 2.0 only:
-c n
selects the ISDN controller (card), n specifies the controller number in the range 1..N.
default: 1
-e OutgoingNumber[,ListenNumber]
the "OutgoingNumber" is used as the calling number for outgoing calls. The number may be screened by the network.
the "ListenNumber" specifies the number CIPA will listen on incoming calls. If this number isn't defined CIPA will listen for any call.
-y [maskhigh,]masklow

a mask to specify the CIP values (Common Information Profile = call types) for incoming calls. Only calls matching the specified profile are signalled by the CAPI software. Specifying a CIP mask enables profile checking on incoming calls in the programs. CAPI 2.0 defines the following CIP values:

0 = no predefined profile
1 = Speech
2,3,9 = Data
4 = 3.1kHz Audio
5 = 7kHz Audio
6 = Video
7 = Packet mode
8 = Data 56kBit/s
16 = Telephony
17 = Fax group 2/3
18 = Fax group 4
19,20,21,23 = Teletex
22 = Videotex

A CAPI implemenation may not support all profiles.
default: 0x10c = Data

for Packet Drivers only:
-d
enables automatic disconnect on release of all Packet Driver applications.
default: don't disconnect on release
-p vector
specifies the software interrupt for communication with the Packet Driver application software.
default: 0x60
for Windows versions only:
-q
suppresses the Setup menu.
for DOS versions only:
-i vector
specifies the software interrupt for communication with the Common ISDN-API software.
default: 0xf1
-o
the drivers use direct screen output to avoid BIOS output delays.
if the automatic selection of the video-RAM fails, this option can be used to force screen output to the monochrome video-RAM at B000:0.
-q
suppresses any message output on the screen.
-v
the drivers tries to allocate buffers for the CAPI in upper memory (UMB). This option disables this feature and the program will use conventional memory at the top of the DOS memory for the CAPI buffers. Don't use this option, if you are running Windows.
-w
Display activity, state and charge information in the upper right corner of the screen. The display has the following layout:
/0_\0_APnnn
The symobls mark from left to right:
Status:
_ = free,
D = D-channel up,
C = B-channel requested,
B = B-channel up,
A = connection set up,
additional information for PPP:
L = LCP configuration up,
I = PAP/CHAP configuration up, IPCP configuration started,
P = PPP connection up
-z days[e]
forces an automatic restart of the PC after "days"-days, as soon as the system becomes idle. "days" should be in the range from 1 to 2761. Appending an "e" to the number of days enables automatic restart of the PC if the driver receives an error from the ISDN CAPI software. Specifying "0e" enables only reboot on errors.
default: disabled

Translation entry format

IP-Address

IP addresses should be specified in standard dot format. e.g.: 141.61.1.23

ISDN numbers and related features

PBX's sometimes require a special key-code for dialling out. If this prefix is not displayed on incoming calls, Dial back and CLI will normally fail. To solve this problem an outgoing call prefix supported, which is not checked on incoming calls. The prefix can be specified in front of each ISDN number separated by a comma.

Digits, which should not be used in an outgoing call, but have to be present for CLI can be marked by a decimal point from the common part of the number.

Examples:
089.345678 will dial 345678 and will match incoming calls from 089345678.
0,30.123456 will dial 0123456 and will match incoming calls from 30123456.
00,123456789 will dial 00123456789 and will match incoming calls from 123456789.

Subaddresses (available only in EuroISDN, E-DSS1) can be appended to a number by separating them with a /. Only digits are supported in a subaddress.

The total length of number + subaddress is limited to 26 characters.

A SPV connection (available only in German ISDN, 1TR6) is set up by appending an "s" to the end of the ISDN-number. An incoming SPV request is accepted only if the "s" is specified.

The CAPI standard doesn't define a standard set-up for PVC's.
Teles supports PVC's (Digitale Festverbindungen D64s) in their CAPI 1.1 implementations using a pseudo ISDN number "tap" and selecting one of the B-channels.
Eicon/Diehl supports PVC's in their CAPI 2.0 implemtations through a "manufacturer request". The programs support these features and allow the selection of a PVC with the ISDNnumbers "1" or "2", depending on the desired B-channel, and the Option -d7.

Translation entry options:

Supported encapsulation protocols:

(only one encapsulation protocol can be selected per peer)

-f dlci[i]
Frame-Relay protocol. "dlci" specifies the data link connection identifier. Appending an "i" to the dlci switches encapsulation from "early" style to IETF format as described in RFC 1294 (but without fragmentation support, a data size of 1500 is assumed).
-h type
simple HDLC based encapsulations
type = 0 IP-Data in HDLC frames, no header
type = 1 IP-Data with X.75 unnumbered information frame (UI) header
type = 2 IP-Data with Cisco style HDLC encapsulation
type = 3 Ethernet bridging, transfers the whole ethernet packet in a HDLC frame
-l type
LAPB (X.75) based encapsulations (caller=DCE, window=7, mod 8)
type = 0 IP-Data in X.75 packets, no header,
type = 1 multi-X.75 (called LAPB encapsulation on ACC-Routers or multi-LAPB encapsulation on Cisco routers)
type = 2[,file] Asynchronous PPP (with Byte-Stuffing), for PPP options see below (-p Option)
type = 3 Ethernet bridging, transfers the whole ethernet packet in a X.75 packet
type = 4 Synchronous PPP (not standard), for PPP options see below (-p Option)
type = 5[,file] SLIP
type = 6[,file] Ethernet bridging using SLIP encapsulation (SLX)

The "file" parameter specifies an optional login-script. See below for writing a login-script.

-e type
X.75/T.70NL based encapsulations (caller=DCE, window=7, mod 8)
type = 0 IP-Data in X.75/T.70NL packets, no header,
type = 1 multi-X.75/T.70NL
type = 2[,file] Asynchronous PPP (with Byte-Stuffing), for PPP options see below (-p Option)
type = 3 Ethernet bridging, transfers the whole ethernet packet in a X.75/T.70NL packet
type = 4 Synchronous PPP (not standard), for PPP options see below (-p Option)
type = 5[,file] SLIP
type = 6[,file] Ethernet bridging using SLIP encapsulation (SLX)
type = 7[,file] BTX mode

The "file" parameter specifies an optional login-script. See below for writing a login-script.

-p
Point-to-Point protocol using default PPP-parameters. Of the possible upper layer protocols, only IP is supported at this time.

The following PPP options are accepted from the remote site:

The PPP authentication methods PPP PAP and CHAP are supported in both directions. With the -n option an id/password combination can be specified for each remote site. With the -g option a local id/password can be defined for each peer.

Options for use with PPP. These options have to be specified after the protocol selection option.

-nuserid,password
Userid/password combination for the remote PPP site. The authentication string is send only, if the remote site requests Password authentication during PPP option negotiation.
-guserid,password

Defines a local userid/password combination. Incoming PPP connections are accepted only if the remote site sends this userid/password combination. More than one -g option can be specified per entry to allow more than a single userid/password combination.

For CHAP authentication with Cisco Routers the "userid" argument can have the form user@host. The user part is sent to the Cisco router in the CHAP-CHALLENGE name field to select the proper password in the router database. The routers return their hostname in the CHAP-RESPONSE name field.

-i
Operate as an IP-address provider for PPP. (If the IP-address of this entry isn't zero, tell the peer which IP-address it has to use.)
-d 6
Request PPP call back based on user authentication. Otherwise identical to -d 1 (see d-option).

for Plus versions only:
-c
The default authentication protocol is PAP. Authentication via CHAP can be selected with this option.
-b baudrate[,file]
asynchronous point-to-point-protocol (PPP) with V.110 bit-stuffing. "baudrate" defines the desired transfer rate.
baudrate = 9, 9600 baud, async, 8 bit, no parity, 1 stop bit
baudrate = 19, 19200 baud, async, 8 bit, no parity, 1 stop bit
baudrate = 38, 38400 baud, async, 8 bit, no parity, 1 stop bit

The "file" parameter specifies an optional login-script. See below for writing a login-script.

-s baudrate[,file]
SLIP protocol with V.110 bit-stuffing. "baudrate" defines the desired transfer rate.
baudrate = 9, 9600 baud, async, 8 bit, no parity, 1 stop bit
baudrate = 19, 19200 baud, async, 8 bit, no parity, 1 stop bit
baudrate = 38, 38400 baud, async, 8 bit, no parity, 1 stop bit

The "file" parameter specifies an optional login-script. See below for writing a login-script.

-y baudrate[,file]
SLX (Ethernet bridging using SLIP encapsulation) protocol with V.110 bitrate adjustment. "baudrate" defines the desired transfer rate.
baudrate = 9, 9600 baud, async, 8 bit, no parity, 1 stop bit
baudrate = 19, 19200 baud, async, 8 bit, no parity, 1 stop bit
baudrate = 38, 38400 baud, async, 8 bit, no parity, 1 stop bit

The "file" parameter specifies an optional login-script. See below for writing a login-script.

default protocol: -h0

Writing a login-script:

A login-script consists of a sequence of strings sent to the peer and/or exepected from the peer. A login-script is required by many terminal servers for transparent login, before switching to async PPP or SLIP operation.

A string to send has the format: string>
A string expected from the peer has the form: string<
If the string is not matched within 60 seconds the connection is released. An empty expect-string inserts a short delay.
A local IP-address assigned is captured with a ?
Control-characters can be inserted by preceding them with a $ and adding 64 to the ASCII code, e.g. $M sends a <CR>, $[ sends an <ESC>. The special characters itself must be escaped by a $, therfore: $$ inserts a $, $> a > and $< a <. e.g:

ogin:< expect ogin:
heha$M> send heha<CR>
word:< expect word:
hhh123$M> send hhh123<CR>
ocal$>< expect ocal>
show internet char$M> send show internet char<CR>
address< expect address
? match the next ip address found
< short delay
connect ppp$M> send connect ppp<CR>

In transparent mode the programs displays all characters received. It will switch to SLIP or PPP operation after the last string. The total length of the string sequence is limited to 128 characters.

Other translation entry options:

The following options can be specified for each ISDN number entry in the configuration file:

-d mode
Specifies the mode of operation
mode = 0, outgoing calls are disabled.
mode = 1, incoming and outgoing calls are allowed.
mode = 2, call back request. An outgoing call is dropped after sending the connect request and the system waits for a call back. The connection is dropped after call-back-timeout( see global k-option) seconds
mode = 3, incoming calls are rejected but trigger an outgoing call to the received ISDN number.
mode = 4, incoming calls are disabled.
mode = 5, call back request. An outgoing call is dropped after sending the connect request and the system waits for a call back. The connection is dropped after receiving the connect-indication-message.
mode = 6, PPP call back request based on user authentication.(only usefull for PPP connections)
mode = 7, PVC setup, only for Teles CAPI 1.1 implementations and Eicon/Diehl CAPI 2.0 implementations
default: 1, incoming and outgoing calls enabled
-t max-idle[,min-idle[s]]
an idle connection will be disconnected after "max-idle"-seconds. Setting "max-idle" to zero disables shutdown of idle connections. Specifying a "min-idle" value lower than "max-idle", an outgoing (charged) connection will be hold at least "min-idle" seconds, it will be closed down shortly before the next charge unit is exceeded or max-idle expires. The time of one charge unit is calculated from the first two units received. max-idle may be used to specify the length of the first charge-unit.
To use adaptive timeout without advice-of-charge an "s" can be appended to the min-idle value. In this advice-of-charge messages are simulated by the program itself. The max-idle value specifies the length of a charge unit.
default: max-idle: 300 seconds, min-idle: disabled
-m high[,low]
static or dynamic loadsharing over both s0-channels.
"high" = 0, static loadsharing, the caller will always try to activate both channels.
"high" <> 0, dynamic loadsharing, if the load is higher than 6000 Bytes/sec for "high"-seconds, the system will activate the second channel. After "down"-seconds of a load lower than 6000 Bytes/sec the second channel will be closed down. If "down" is not specified, the "max-idle" Time-out will be used (see option -t).
A -m option has to be specified at both ends of a link. However, only the caller of the first channel will activate the second channel.
The values for "high" and "low" should be multiples of 8, otherwise they will be rounded up to next multiple of 8.
To set up loadsharing to different target ISDN numbers, a second ISDN number can be specified for each translation entry.
-k
Don't reset disconnect timer on sending broadcast packets and some NetBios-Requests.
Don't open a connection by broadcast packets and NetBios-Requests.
Enable this option if your IP software should announce routing information when the link is up. Setting this option will allow the link to time out even if broadcast packets are sent. This option also suppresses unneccssary NetBios-Requests.
-r
Don't reset disconnect timer on received packets.
Some peers send packets on regular basis (e.g Cisco's keepalive packets, RIP routing information packets). These packets will normally keep a line up. The option allows a link to time out even if packets are received.
-u
Declares a link as a broadcast link. Broadcast packets are sent over this link.

for Plus versions only:
-o
Enables NAT (Network Address Translation) for this link
With NAT enabled, a received dynamic IP-address is replaced by a local defined IP-address in incoming packets. The locally defined IP-address is replaced by the dynamic IP-address in all transmitted packets. If a local IP-address is defined with the -m option, only this IP-address is translated. If no static IP-address is defined the local IP-address is captured from the source-IP field of outgoing packets.
-v
van Jacobson TCP header compression (can currently only used with SLIP encapsulations)

for CAPI 1.1 only:
-a [service,]addservice
(specific to German ISDN, however the API software should map the values to corresponding EuroISDN CIP-codes)
Additional service indicator and service indicator selection. The argument "service" redefines the service indicator the "addservice" argument the additional service indicator. Some ISDN equipment (e.g. Elink TA) use the additional service indicator field to selected a predefined mode/protocol of operation. However there is no standard for this field.

"service,addservice" is defined as 7,0 with the following exceptions:
addservice = 0xc5: -s 9, -y 9
addservice = 0xc7: -s 19, -y 19
addservice = 0x40: -s 38, -y 38
The option allows to override the default value with your own value. (To override the protocol specific default, the value has to be positioned after the protocol option on the line.)

To use the ISDN service "X.21 Services" in German national 1TR6 ISDN use a "service,addservice" value of "3,12".

for 8 B-Channel Versions only:
-i
Operate as an IP-address provider for ANY protocol. For PPP protocol the IP address is provided through IPCP ip-address negotiation, for all other protocols the program responds to BOOTP requests.
-j
Operate as a dynamic IP-address provider. The IP-address assigned depends on the number of currently open connections.
e.g.
192.1.2.1 * -p -d0 -i -j
192.1.2.1 12345 -p -d0 -i -j
192.1.2.10 6789 -p -i
incoming connections (unspecified or from 12345) receive the following IP-addresses
  1. connection: 192.1.2.1
  2. connection: 192.1.2.2
  3. connection: 192.1.2.3
  4. connection: 192.1.2.4

...

incoming calls from 6789 receive the fixed IP-address 192.1.2.10

Additional features

1.Dynamic IP address assignment:

All versions support dynamic IP address assignment by a remote system through PPP IPCP IP-ADDRESS negotiation.

Higher level software can retrieve the IP-address via BOOTP, DHCP or RARP:

If your IP implemenation doesn't support BOOTP, requires IP-address assignment at Windows startup or if you want to operate with temporay disconnects, you should make use of the NAT implementation, bescribed below.

2. Reuse of assigned IP-address:

If the peer supports the reuse of a once assigned dynamic IP-address, set the IP-address of the -m option to 0.0.0.0. The dynamic assigned IP-address will be kept by the program until termination and used in IP-address negotiation on reconnects after a temporary disconnect.

3.IP Address Translation (RFC 1631)

The Plus versions contain an implementation of NAT (Network Address Translation) to support

To use NAT on a link add the -o option to an connection entry.
Enable NAT for all links to IP-providers with dynamic IP-address assignment. With NAT enabled a static local IP-address will be automatically translated to a dynamic IP-address receieved via PPP in all packets sent and received.

4.Some Routers use the PPP IPCP IP-ADDRESS negotiation for remote system identification. They don't support asking for an IP-address using PPP IPCP IP-ADDRESS negotiation(as described above). For such routers you have to provide the correct IP-address to the peer. To accomplish this you can set the local IP-address with the -m global option in the configuration file. Under DOS you can modify the IP-address to any desired value using the -i option of the control programs, e.g. ISPACF-i 0x60 192.1.2.3 sets the local IP-address of the ISPA packet driver at 0x60 to 192.1.2.3.

5.All versions can operate as an IP address provider for PPP connections. This feature can be enabled on a peer basis using the -i entry option. The 8B-channel version con operate as an IP address provider for any protocol.

Examples

1. Using a Packet Driver (ISPA, CIPA, WISPA, WINCI) with Trumpet Winsock and with static assigned IP-address

A local IP-address of 141.61.224.1 is assigned. Trumpet Winsock should be configured for use with "bootp". The -d options enables WISPA to aumatically close an open connection on release of all packet types, e.g. unload of Trumpet Winsock's. The connection uses Cisco-style HDLC framing, the timeout on an idle connection is set to 90 seconds.
Because Trumpet Winsock supports only one gateway you can set up a point-to-point configuration by setting the IP-address of the peer in WISPA.INI to 0.0.0.0)
Configure Trumpet Winsock for BOOTP:
IP-ADDRESS :bootp
Netmask: 0.0.0.0
Gateway: 0.0.0.0
Nameserver: (ask your IP-Provider)

WISPA.INI:
-m 141.61.224.1 # local IP address
-d # automatic disconnect on release
0.0.0.0 0815712345 -h2 -t90
# end of configuration file

2. Using a Packet Driver (ISPA, CIPA, WISPA, WINCI) with Trumpet Winsock in case of dynamic IP-address assignment.

Because Trumpet Winsock supports only one gateway you can set up a point-to-point configuration by setting the IP-address of the peer in WISPA.INI to 0.0.0.0)
Configure Trumpet Winsock for BOOTP:
IP-Address :bootp
Netmask: 0.0.0.0
Gateway: 0.0.0.0
Nameserver: (ask your IP-Provider)

1) Configuration with dynamic IP-address and BOOTP.

WISPA.INI:
-d # automatic disconnect on release
-u # only one active channel
# connection entry
0.0.0.0 0,89987654 -p -nguest,test -t60 # PPP protocol with PAP, timeout 60 sec
# end of configuration file

The bootp request from TCPMAN will open an ISDN connection. Having received an IP-address, WISPA will respond to further BOOTP requests from TCPMAN and reply with the received IP-address.

2) Configuration for reuse of dynamic IP-address:

WISPA.INI:
-m 0.0.0.0
-u # only one active channel
-d
# connection entry
0.0.0.0 089987654 -p -nguest,gast -t60 # PPP with PAP, timeout 60 sec
# end of configuration file.

Same as above, but WISPA will keep the IP-address and will use this IP-address in further connections. Use this configuration only if your peer supports the reuse of IP-addresses and you want to make use of temporary disconnects on TCP (e.g. Telnet) sessions, otherwise use NAT.

2) Configuration for use with NAT:

WISPA.INI:
-m 10.10.10.10 # dummy IP-address
-u # only one active channel
-d
# connection entry
0.0.0.0 089987654 -p -nguest,gast -o -t60 # PPP with PAP, NAT, timeout 60 sec
# end of configuration file.

A static dummy IP-address 10.10.10.10 is configured as the local IP-address. The NAT option -o will substitute the dummy IP with the correct received IP-address in all outgoing packets. In all incoming packets the dummy IP is inserted as the destination IP-address.

3. A point-to-point configuration for ISPA to connect a standalone PC to an IP provider. The connections uses PPP protocol and the PC has to identify itself using the id "guest" and password "gast". Because the IP address in the ISPA configuration file is specified as 0.0.0.0 ALL packets will be send to the peer 0815712345. This way NO gateway IP address is required in the IP configuration.

ISPA.INI:
-u # only only one active channel
-w # activity display under DOS
0.0.0.0 089987654 -p -nguest,gast -t60 # PPP protocol with PAP, timeout 60 sec
# end of configuration file

And an example of an IP configuration for a PC in format of wattcp.cfg.

Local IP address 141.61.224.5.
The IP Provider has a nameserver with address 141.61.1.32.
Because interface-routing (0.0.0.0) is used in the configuration file above, a gateway entry is not necessary and you should set the netmask to 0.0.0.0.

my_ip=141.61.224.5
netmask=0.0.0.0 # netmask
nameserver=141.61.1.32 # nameserver
nameserver=141.61.1.23 # alternate nameserver
domainslist="biochem.mpg.de"

4.Set up of a ISPA multipoint configuration as a dial-in server with no outgoing connections. All connections are logged with the remote logging feature in the syslog file of host 141.61.1.32. The syslog messages will appear as coming from 141.61.224.1. The protocol for incoming calls from unknown numbers is PPP with identification "guest" and password "gast". The net 141.61 is connected to the Internet via 141.61.1.1. The ISPA and PCROUTE configuration will allow the PC of example 1. to dial in as an unknown ISDN peer and connect to the Internet.
ISPA is configured for listening on EAZ 4.
ISPA can handle two active connections, but only one unknown peer at a time.

ISPA.INI:
-r141.61.1.32,141.61.224.1 # remote logging on 141.61.1.32
-e4 # use EAZ 4
#
141.61.224.5 * -p -gguest, gast -t30 # no CLI, protocol PPP
141.61.224.2 0815712345 -d0 -t60 # incoming from 0815712345
141.61.224.3 08912345 -h1 -d0 -t60 # incoming from 08912345
141.61.224.4 08923456 -l1 -d0 -t60 # incoming from 08923456
# end of configuration file

and the corresponding pcroute configuration:
Interface 1 (Ethernet): 141.61.1.200 255.255.255.0
Interface 2 (ISDN) : 141.61.224.1 255.255.255.0
Routes: Net: 0.0.0.0 Gateway: 141.61.1.1

5. ISPA in point-to-point configuration with dynamic Loadsharing. The second link will be established after 16 seconds of a load higher than 6000 Bytes/sec and will be closed after 24 seconds of a load lower than 6000 Bytes/sec. The connections uses Cisco-style HDLC framing, the timeout of idle connections is set to 90 seconds.

ISPA.INI:
-w # DOS activity display
0.0.0.0 0815712345 -h2 -m16,24 -t90

6. ISPA in multipoint configuration. For incoming calls from unknown numbers the -h1 protocol will be used.

ISPA.INI:
-e4 -w # global options
2.0.0.6 * -h1 -t60 # other incoming calls
2.0.0.1 089.89512300 -f100i -t200,30 # ietf frame-relay
2.0.0.2 089.89512301 -h2 -t20,5 -m8,30 # cisco-hdlc, dynnamic loadsharing
2.0.0.3 0033,815711111 -d0 -t40 # hdlc, only incoming
2.0.0.5 0,4518789123 -p -t60,10 # PPP, no PAP

7.WISDI in point-to-point configuration to connect a standalone PC to an IP provider (in this example COMPUSERV) using async PPP protocol with transparent login. For login WISDI uses the contents of the script file COMPUSRV.SCR. After this WISDI automatically switches to PPP protocol. Because a dynamic IP-address is received via PPP negotiation, a static IP-address is defined and NAT enabled for the link.

WISDI.INI:
-u # only one active channel
-m 200.199.199.201# IP-address configured in local IP-stack
0.0.0.0 089987654 -b38,compusrv.scr -t60 -o

COMPUSRV.SCR:

$M> send <return>
Host< expect "Host"
+$M> send "+<return>"
Name:< expect "Name:"
rechner,userid$M> send "rechner,userid<return>"
word< expect "word"
passwort$M> send "passwort"

Restrictions in current versions

  1. Option parsing is far away from being perfect. It is possible to specify conflicting options. Don't specify more than one encapsulation protocol option per line (translation entry).
  2. On a PPP link with bidirectional authentication configured, the same authentication protocol (PAP or CHAP) has to be used in both directions.
  3. Setting the pseudo Ethernet address in the NDIS versions is not supported in the current release.

CAPI 1.1 Error codes

2001 incorrect controller
2002 incorrect PLCI
2003 incorrect NCCI
2004 incorrect type
3101 B-channel incorrectly coded
3102 Info-mask incorrectly coded
3103 Serviced EAZ-mask incorrectly coded
3104 Serviced SI mask incorrectly coded
3105 B-channel protocol, level 2 incorrect
3106 DLPD incorrect
3107 B-channel protocol, level 3 incorrect
3108 NCPD incorrect
3109 NCPI incorrect
310A Flags incorrectly coded
3201 Controller error
3202 Conflict between registrations, check SI mask and EAZ
3203 Function not supported
3204 PLCI not active
3205 NCCI not active
3206 B-channel protocol, level 2 not supported
3207 Changeover of B-channel protocol, level 2 in this state not possible
3208 B-channel protocol, level 3 not supported
3209 Changeover of B-channel protocol, level 3 in this state not possible
320A Unsupported parameters in DLPD
320B Unsupported parameters in NCPD
320C Unsupported parameters in NCPI
320D Data length not supported
3301 Error on setup of D-channel, level 1
3302 Error on setup of D-channel, level 2
3303 Error on setup of B-channel, level 1
3304 Error on setup of B-channel, level 2
3305 Abort D-channel, level 1
3306 Abort D-channel, level 2
3307 Abort D-channel, level 3
3308 Abort B-channel, level 1
3309 Abort B-channel, level 2
330A Abort B-channel, level 3
330B B-channel connection, level 2 re-established
330C B-channel connection, level 3 re-established

34xx Abort by network, low order 8 Bit contain the cause value according 1TR6, the MSB is used to signal an error, but is not set by all ISDN-API 1.1 implementations:

3400 Normal termination (0 = local, 3400 = from the network)
3481 Invalid call reference value
3483 Bearer service not implemented
3487 Unknown caller identity
3488 Caller identity already suspended
348A No B-channel available
348F Disconnect
3490 Facility code unknown in this network
3491 Requested service rejected
34A0 Outgoing calls barred
34A1 User access busy
34A2 Closed-user-group refused connection
34A3 Nonexistent closed-user-group
34A5 SPV not enabled for this number
34A9 Temporarily not available
34B5 Destination not obtainable
34B8 Number of called station has changed
34B9 Remote station not ready
34BA No user responding
34BB Called station busy
34BD Incoming calls barred
34BE Call was rejected by called station
34D9 Network congestion
34DA Connection was terminated or rejected by called station
34E0 Call id incomplete
34F0 Local procedure error
34F1 Disconneted due to an error at the remote station
34F2 Remote user suspended call
34FF Local reject of user-to-user info

CAPI 2.0 Error codes

2001 Message not supported in current state
2002 Illegal Controller / PLCI / NCCI
2003 Out of PLCI
2004 Out of NCCI
2005 Out of LISTEN
2007 llegal message parameter coding
3001 B1 protocol not supported
3002 B2 protocol not supported
3003 B3 protocol not supported
3004 B1 protocol parameter not supported
3005 B2 protocol parameter not supported
3006 B3 protocol parameter not supported
3007 B protocol combination not supported
3008 NCPI not supported
3009 CIP Value unknown
300A Flags not supported (reserved bits)
300B Facility not supported
300C Data length not supported by current protocol
300D Reset procedure not supported by current protocol
3301 Protocol error layer 1 (broken line or B-channel removed by signalling protocol)
3302 Protocol error layer 2
3303 Protocol error layer 3
3304 Another application got that call
3480 Normal termination
3481 Unallocated (unassigned) number
3482 No route to specified transit network
3483 No route to destination
3486 Channel unacceptable
3487 Call awarded and being delivered in an established channel
3490 Normal call clearing
3491 User busy
3492 No user responding
3493 No answer from user (user alerted)
3495 Call rejected
3496 Number changed
349A Non-selected user clearing
349B Destination out of order
349C Invalid number format
349D Facility rejected
349E Response to STATUS ENQUIRY
349F Normal, unspecified
34A2 No circuit / channel available
34A6 Network out of order
34A9 Temporary failure
34AA Switching equipment congestion
34AB Access information discarded
34AC Requested circuit / channel not available
34AF Resources unavailable, unspecified
34B1 Quality of service unavailable
34B2 Requested facility not subscribed
34B9 Bearer capability not authorized
34BA Bearer capability not presently available
34BF Service or option not available, unspecified
34C1 Bearer capability not implemented
34C2 Channel type not implemented
34C5 Requested facility not implemented
34C6 Only restricted digital information bearer capability is available
34CF Service or option not implemented, unspecified
34D1 Invalid call reference value
34D2 Identified channel does not exist
34D3 A suspended call exists, but this call identity does not
34D4 Call identity in use
34D5 No call suspended
34D6 Call having the requested call identity has been cleared
34D8 Incompatible destination
34DB Invalid transit network selection
34DF Invalid message, unspecified
34E0 Mandatory information element is missing
34E1 Message type non-existent or not implemented
34E2 Message not compatible with call state or message type non-existent or not implemented
34E3 Information element non-existent or not implemented
34E4 Invalid information element contents
34E5 Message not compatible with call state
34E6 Recovery on timer expiry
34EF Protocol error, unspecified
34FF Interworking, unspecified