TCP/IP via ISDN - configuration - troubleshooting

Machine "max" Machine "moritz"

CASE (A): max with 1TR6 (PABX) - moritz with 1TR6 -> the number will be
+49 89 123456 <EAZ>
CASE (B): max with 1TR6 (PABX) - moritz with DSS1 (Euro-ISDN)
in germany you normally get 3 MSN's for 1 S0,
e.g.: moritz: +49 89 123455
+49 89 123456
+49 89 123457
Used encapsulation in the b channel: LAPB -> tcp/ip2 (NOL3;X.75)

/etc/default/isi (A) & (B)
... ...
BASE_myhost=max BASE_myhost=moritz
BASE_escape=0 BASE_escape=
BASE_national=00 BASE_national=0
BASE_internat=000 BASE_internat=00
BASE_iescape= BASE_iescape=
BASE_inational=0 BASE_inational=0
BASE_iinternat=00 BASE_iinternat=00
... ...
IP_defaultservice=tcp/ip IP_defaultservice=tcp/ip
IP_servicelist=tcp/ip IP_servicelist=tcp/ip
... ...

boards (A)
0 ielc 0 u_1tr6_pmp 0 ielc 0 u_1tr6_pmp

boards (B)
0 ielc 0 u_1tr6_pmp 0 ielc 0 u_dss1_pmp -e1=3455 -e2=3456 -e7=3457

hosts (A)
moritz_isi 49.89.1234561. max_isi 49.911.9673.261
moritz_ip 49.89.1234562. max_ip 49.911.9673.262
max 49.911.9673.26 # own host moritz 49.89.123456. # own host

hosts (B)
moritz_isi 49.89.123455. max_isi 49.911.9673.261
moritz_ip 49.89.123456. max_ip 49.911.9673.262
max 49.911.9673.26 # own host moritz 49.89.123456. # own host

ip (A) & (B)
INET ISDN moritz_ip,tcp/ip2 INET ISDN max_ip,tcp/ip2

ipif (A) & (B)
NET is0 TYPE isdn ADDR NET is0 TYPE isdn ADDR

services (both sides) (A) & (B)
LOCAL isitools 0070001
LOCAL tcp/ip 0070002 T.70;X.75
LOCAL tcp/ip2 0070002 NOL3;X.75
LOCAL tcp/ip3 0070002 NOL3;X.75(connmode=8)
LOCAL tcp/ip4 0070002 NOL3;NOL2
* isitools 007000
* tcp/ip 007000 T.70;X.75
* tcp/ip2 007000 NOL3;X.75
* tcp/ip3 007000 NOL3;X.75(connmode=8)
* tcp/ip4 007000 NOL3;NOL2

BIANCA commands to check the ISI/IP configuration (commands, executed on "max")

COMMAND> isipctl printco
ISDN moritz INET c8000002 NETMASK ffffffff FLG 0000000b MIN 20 MAX 0 BLK 300 FAIL 5 BIND 0070002
(A) ISDN 00700000891234562::
(B) ISDN 0070000089123456::

o This command prints the configured ISI/IP connections
- most interesting is the ISDN name (e.g. moritz -> /usr/isi/config/hosts)
and the configured number(s) (e.g. 00700000891234562)
^ ^ ^ ^ ^
^ ^
(A) number EAZ
(B) DSS1 do not know EAZ's

COMMAND> isipctl list

0 moritz IDLE 0 IO----- 205 0 0 0 0 0

o This command lists the configured ISI/IP connections
- most interesting is the INET address of the configured partners and
the STATE of the connection.
IF a connection is in the state BLOCKED you either can wait until
the BLOCKTIME (BLK) is over or you can reset the connection by calling
isipctl resetall (or isipctl reset moritz)
- When the connection is BLOCKED you will not get any outgoing call on this

UNIX commands to check the ISI/IP configuration (commands, executed on "max")

COMMAND> ifconfig is0
inet netmask ffffff00 broadcast

COMMAND> netstat -in
Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll
is0 1500 200 1751 0 1751 0 0

COMMAND> netstat -rn
Routing tables
Destination Gateway Flags Refs Use Interface UH 4 840 lo0
200 U 0 951 is0

o These are typical entries. You need nothing special to do to config
the ISDN interface or to create the routing table entry. This is all
done by the ISDN-software, started by /usr/isi/bin/startup.

Some hints for Troubleshooting:

0. At first you should check the ISDN line with isilogin ( -> another faq)
o if you do not know exactly, if the S0 interface is working correctly
try to login your own machine via ISDN, e.g.

on max try : isilogin =261
on moritz try (A): isilogin =0891234561

-> use the "=-notation"; in this case you have to use the number, you
would dial when using a normal telephone, do not forget the EAZ
for the service isitools in 1TR6.

or (B): isilogin =089123455

-> take the number, which is mapped to the EAZ, which is bound to
isitools (services:LOCAL isitools 0070001 <-> boards: -e1=3455)

o if you are not successful, read technical note 1 (at the moment)

1. Next step would be trying to reach your partner by isilogin:

o on max try : isilogin moritz_isi or isilogin =00891234561 (A)
isilogin =0089123455 (B)
o on moritz try: isilogin max_isi or isilogin =09119673261

o Setup the call (e.g. by using isilogin) and check, if you get an incoming
call at the servers side; therefore you can use the "isidemo" Monitor
(only for UNIX systems), especially at the called side.

o if you see no incoming call, you have to check the calling side (can be
a wrong phone number, or missing the EAZ, ...)

o if you had an incoming call at the called side, check if:

- the call is still connected, e.g. with isistat
-> See the line with DATA_XFER, e.g.

6 DATA_XFER 0070002 0 007000262:: 18 15 0

When the call is not connected and there was an incoming call
you must find an entry in the /usr/isi/acct/base file or in the
/usr/isi/log/refused file.

- If there is an entry in the /usr/isi/acct/base file,
the call was accepted.

08.05.95 17:47:01 08.05.95 17:47:41 40 93 82 0.00 - 007000T209119673261::0 0070001::0 0 0 0 0 -75 isdn006 0

Now you must check, if the call was connected to the
right service.
Check this out by comparing the Laddr (LOCAL
ISDN address, which is called by an incoming call, e.g. 0070001)
with the entries in the /usr/isi/config/services file.
Beware of duplicate LOCAL bindings!

Every service you have configured in the /usr/isi/config/cond file
and every service you have defined with IP_servicelist in
the /etc/default/isi file can be bound local.
You can either use LOCAL or, if you have no entry with LOCAL the
* entry is valid.a
The bind of the services from IP_servicelist you can see with

2 ACCTQ 999001 0 0 0 none
3 IDLE ...... 2 0 0 none
4 IDLE 0070002 2 0 0 none

These services are controlled be the isipd

The services from the cond file are controlled by the isd
which is a multiplexer, bound to ......, which means that the
isd takes every incoming call and looks for a service in the
cond file, which have the right Laddr.

o If no service is bound to the right Laddr, there must be an entry
in the /usr/isi/log/refused file.

A typical failure, respectively entry could be:

18.04.95 10:50:59 isd: refused call from 001001114::0 for 0010011::0
because no matching configuration

- this entry is caused by:
the isd and the isipd had found no service in the
/usr/isi/config/services which is bound to the local address

001001 or 001... would also match, because the matching
algorithm is left to right.
If you want to connect this incoming call to the isitools you
could make one of the following entries:

LOCAL isitools 0010011
LOCAL isitools 001...1 -> would also connect 0010021, ...
LOCAL isitools 001001 -> would also connect 0010012 or 0010017, ...
LOCAL isitools 001... -> would also connect 001002, ...

another possibility is:

12.04.95 10:55:37 isipd: refused call from 007000T20221904810::0 for 0070002::0
because ip entry not found for service tcp/ip

- this entry is caused by:
the isipd had successfully bound the incoming call
the isipd now checks for the calling party number, e.g.
the first 6 digits are SI & AI, all following letters with
one subsequent digit are ignored, the rest is the real
phone number, which have to be matched from left to right.
-> the following entries would match the number correctly:


partner 49.221.904810.
myhost 49.911.967321.

- if BASE_myhost=myhost and BASE_inational=0
- (-> /etc/default/isi, restart the ISDN
software, when changing these parameters)

partner >=90221904810 <=0221904810
^ ^
only outgoing only for matching incoming calls
to the right symbolic name,
needed for ISI/IP and the .ihosts

would also match, because of the "<=" - entry,
This is the most secure way:

- take the part form the calling party number, which is
described as "real phone number" above and make the
"<=" - entry with it (see above).

- because the matching works form left to right, <=02219048
would also match.
<= will match, too. (this matches any number, the first
entry with <= , which is found in the /usr/isi/config/hosts
will take an incoming call with any calling party number,
to match it to the used symbolic name,
so you should place this entry just before the entry for
the own host (for BASE_myhost -> /etc/default/isi),
which should be the last in this case, e.g.

partner 49.221.904810. <=
myhost 49.911.967321.

This is a special configuration for configuring ISI/IP to a
partner whose number is not transmitted through the ISDN
If possible, it is better to configure such partners by
using the PPP protocol (with INSECURE and PAP or CHAP
authentification -> FAQ 2)

1. isipctl printco
- if the configured host is not shown by this command

o If any of the above commands does not show the expected output:
- check your log files (-> /usr/isi/log directory)
especially the isipd file should give hints for made failures.


Wichtige Links

If you have comments or suggestions, send email  at support@BinTec.DE