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.
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.
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
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
IP addresses should be specified in standard dot format. e.g.: 141.61.1.23
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.
(only one encapsulation protocol can be selected per peer)
The "file" parameter specifies an optional login-script. See below for writing a login-script.
The "file" parameter specifies an optional login-script. See below for writing a login-script.
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.
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.
The "file" parameter specifies an optional login-script. See below for writing a login-script.
The "file" parameter specifies an optional login-script. See below for writing a login-script.
The "file" parameter specifies an optional login-script. See below for writing a login-script.
default protocol: -h0
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.
The following options can be specified for each ISDN number entry in the configuration file:
...
incoming calls from 6789 receive the fixed IP-address 192.1.2.10
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.
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" |
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
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