mirror of
https://github.com/torvalds/linux.git
synced 2024-12-05 02:23:16 +00:00
600 lines
29 KiB
Plaintext
600 lines
29 KiB
Plaintext
|
README for the ISDN-subsystem
|
|||
|
|
|||
|
1. Preface
|
|||
|
|
|||
|
1.1 Introduction
|
|||
|
|
|||
|
This README describes how to set up and how to use the different parts
|
|||
|
of the ISDN-subsystem.
|
|||
|
|
|||
|
For using the ISDN-subsystem, some additional userlevel programs are
|
|||
|
necessary. Those programs and some contributed utilities are available
|
|||
|
at
|
|||
|
|
|||
|
ftp.isdn4linux.de
|
|||
|
|
|||
|
/pub/isdn4linux/isdn4k-utils-<VersionNumber>.tar.gz
|
|||
|
|
|||
|
|
|||
|
We also have set up a mailing-list:
|
|||
|
|
|||
|
The isdn4linux-project originates in Germany, and therefore by historical
|
|||
|
reasons, the mailing-list's primary language is german. However mails
|
|||
|
written in english have been welcome all the time.
|
|||
|
|
|||
|
to subscribe: write a email to majordomo@listserv.isdn4linux.de,
|
|||
|
Subject irrelevant, in the message body:
|
|||
|
subscribe isdn4linux <your_email_address>
|
|||
|
|
|||
|
To write to the mailing-list, write to isdn4linux@listserv.isdn4linux.de
|
|||
|
|
|||
|
This mailinglist is bidirectionally gated to the newsgroup
|
|||
|
|
|||
|
de.alt.comm.isdn4linux
|
|||
|
|
|||
|
There is also a well maintained FAQ in English available at
|
|||
|
http://www.mhessler.de/i4lfaq/
|
|||
|
It can be viewed online, or downloaded in sgml/text/html format.
|
|||
|
The FAQ can also be viewed online at
|
|||
|
http://www.isdn4inux.de/faq/
|
|||
|
or downloaded from
|
|||
|
ftp://ftp.isdn4linux.de/pub/isdn4linux/FAQ/
|
|||
|
|
|||
|
1.1 Technical details
|
|||
|
|
|||
|
In the following Text, the terms MSN and EAZ are used.
|
|||
|
|
|||
|
MSN is the abbreviation for (M)ultiple(S)ubscriber(N)umber, and applies
|
|||
|
to Euro(EDSS1)-type lines. Usually it is simply the phone number.
|
|||
|
|
|||
|
EAZ is the abbreviation of (E)ndgeraete(A)uswahl(Z)iffer and
|
|||
|
applies to German 1TR6-type lines. This is a one-digit string,
|
|||
|
simply appended to the base phone number
|
|||
|
|
|||
|
The internal handling is nearly identical, so replace the appropriate
|
|||
|
term to that one, which applies to your local ISDN-environment.
|
|||
|
|
|||
|
When the link-level-module isdn.o is loaded, it supports up to 16
|
|||
|
low-level-modules with up to 64 channels. (The number 64 is arbitrarily
|
|||
|
chosen and can be configured at compile-time --ISDN_MAX in isdn.h).
|
|||
|
A low-level-driver can register itself through an interface (which is
|
|||
|
defined in isdnif.h) and gets assigned a slot.
|
|||
|
The following char-devices are made available for each channel:
|
|||
|
|
|||
|
A raw-control-device with the following functions:
|
|||
|
write: raw D-channel-messages (format: depends on driver).
|
|||
|
read: raw D-channel-messages (format: depends on driver).
|
|||
|
ioctl: depends on driver, i.e. for the ICN-driver, the base-address of
|
|||
|
the ports and the shared memory on the card can be set and read
|
|||
|
also the boot-code and the protocol software can be loaded into
|
|||
|
the card.
|
|||
|
|
|||
|
O N L Y !!! for debugging (no locking against other devices):
|
|||
|
One raw-data-device with the following functions:
|
|||
|
write: data to B-channel.
|
|||
|
read: data from B-channel.
|
|||
|
|
|||
|
In addition the following devices are made available:
|
|||
|
|
|||
|
128 tty-devices (64 cuix and 64 ttyIx) with integrated modem-emulator:
|
|||
|
The functionality is almost the same as that of a serial device
|
|||
|
(the line-discs are handled by the kernel), which lets you run
|
|||
|
SLIP, CSLIP and asynchronous PPP through the devices. We have tested
|
|||
|
Seyon, minicom, CSLIP (uri-dip) PPP, mgetty, XCept and Hylafax.
|
|||
|
|
|||
|
The modem-emulation supports the following:
|
|||
|
1.3.1 Commands:
|
|||
|
|
|||
|
ATA Answer incoming call.
|
|||
|
ATD<No.> Dial, the number may contain:
|
|||
|
[0-9] and [,#.*WPT-S]
|
|||
|
the latter are ignored until 'S'.
|
|||
|
The 'S' must precede the number, if
|
|||
|
the line is a SPV (German 1TR6).
|
|||
|
ATE0 Echo off.
|
|||
|
ATE1 Echo on (default).
|
|||
|
ATH Hang-up.
|
|||
|
ATH1 Off hook (ignored).
|
|||
|
ATH0 Hang-up.
|
|||
|
ATI Return "ISDN for Linux...".
|
|||
|
ATI0 "
|
|||
|
ATI1 "
|
|||
|
ATI2 Report of last connection.
|
|||
|
ATO On line (data mode).
|
|||
|
ATQ0 Enable result codes (default).
|
|||
|
ATQ1 Disable result codes (default).
|
|||
|
ATSx=y Set register x to y.
|
|||
|
ATSx? Show contents of register x.
|
|||
|
ATV0 Numeric responses.
|
|||
|
ATV1 English responses (default).
|
|||
|
ATZ Load registers and EAZ/MSN from Profile.
|
|||
|
AT&Bx Set Send-Packet-size to x (max. 4000)
|
|||
|
The real packet-size may be limited by the
|
|||
|
low-level-driver used. e.g. the HiSax-Module-
|
|||
|
limit is 2000. You will get NO Error-Message,
|
|||
|
if you set it to higher values, because at the
|
|||
|
time of giving this command the corresponding
|
|||
|
driver may not be selected (see "Automatic
|
|||
|
Assignment") however the size of outgoing packets
|
|||
|
will be limited correctly.
|
|||
|
AT&D0 Ignore DTR
|
|||
|
AT&D2 DTR-low-edge: Hang up and return to
|
|||
|
command mode (default).
|
|||
|
AT&D3 Same as AT&D2 but also resets all registers.
|
|||
|
AT&Ex Set the EAZ/MSN for this channel to x.
|
|||
|
AT&F Reset all registers and profile to "factory-defaults"
|
|||
|
AT&Lx Set list of phone numbers to listen on. x is a
|
|||
|
list of wildcard patterns separated by semicolon.
|
|||
|
If this is set, it has precedence over the MSN set
|
|||
|
by AT&E.
|
|||
|
AT&Rx Select V.110 bitrate adaption.
|
|||
|
This command enables V.110 protocol with 9600 baud
|
|||
|
(x=9600), 19200 baud (x=19200) or 38400 baud
|
|||
|
(x=38400). A value of x=0 disables V.110 switching
|
|||
|
back to default X.75. This command sets the following
|
|||
|
Registers:
|
|||
|
Reg 14 (Layer-2 protocol):
|
|||
|
x = 0: 0
|
|||
|
x = 9600: 7
|
|||
|
x = 19200: 8
|
|||
|
x = 38400: 9
|
|||
|
Reg 18.2 = 1
|
|||
|
Reg 19 (Additional Service Indicator):
|
|||
|
x = 0: 0
|
|||
|
x = 9600: 197
|
|||
|
x = 19200: 199
|
|||
|
x = 38400: 198
|
|||
|
Note on value in Reg 19:
|
|||
|
There is _NO_ common convention for 38400 baud.
|
|||
|
The value 198 is chosen arbitrarily. Users
|
|||
|
_MUST_ negotiate this value before establishing
|
|||
|
a connection.
|
|||
|
AT&Sx Set window-size (x = 1..8) (not yet implemented)
|
|||
|
AT&V Show all settings.
|
|||
|
AT&W0 Write registers and EAZ/MSN to profile. See also
|
|||
|
iprofd (5.c in this README).
|
|||
|
AT&X0 BTX-mode and T.70-mode off (default)
|
|||
|
AT&X1 BTX-mode on. (S13.1=1, S13.5=0 S14=0, S16=7, S18=7, S19=0)
|
|||
|
AT&X2 T.70-mode on. (S13.1=1, S13.5=1, S14=0, S16=7, S18=7, S19=0)
|
|||
|
AT+Rx Resume a suspended call with CallID x (x = 1,2,3...)
|
|||
|
AT+Sx Suspend a call with CallID x (x = 1,2,3...)
|
|||
|
|
|||
|
For voice-mode commands refer to README.audio
|
|||
|
|
|||
|
1.3.2 Escape sequence:
|
|||
|
During a connection, the emulation reacts just like
|
|||
|
a normal modem to the escape sequence <DELAY>+++<DELAY>.
|
|||
|
(The escape character - default '+' - can be set in the
|
|||
|
register 2).
|
|||
|
The DELAY must at least be 1.5 seconds long and delay
|
|||
|
between the escape characters must not exceed 0.5 seconds.
|
|||
|
|
|||
|
1.3.3 Registers:
|
|||
|
|
|||
|
Nr. Default Description
|
|||
|
0 0 Answer on ring number.
|
|||
|
(no auto-answer if S0=0).
|
|||
|
1 0 Count of rings.
|
|||
|
2 43 Escape character.
|
|||
|
(a value >= 128 disables the escape sequence).
|
|||
|
3 13 Carriage return character (ASCII).
|
|||
|
4 10 Line feed character (ASCII).
|
|||
|
5 8 Backspace character (ASCII).
|
|||
|
6 3 Delay in seconds before dialing.
|
|||
|
7 60 Wait for carrier.
|
|||
|
8 2 Pause time for comma (ignored)
|
|||
|
9 6 Carrier detect time (ignored)
|
|||
|
10 7 Carrier loss to disconnect time (ignored).
|
|||
|
11 70 Touch tone timing (ignored).
|
|||
|
12 69 Bit coded register:
|
|||
|
Bit 0: 0 = Suppress response messages.
|
|||
|
1 = Show response messages.
|
|||
|
Bit 1: 0 = English response messages.
|
|||
|
1 = Numeric response messages.
|
|||
|
Bit 2: 0 = Echo off.
|
|||
|
1 = Echo on.
|
|||
|
Bit 3 0 = DCD always on.
|
|||
|
1 = DCD follows carrier.
|
|||
|
Bit 4 0 = CTS follows RTS
|
|||
|
1 = Ignore RTS, CTS always on.
|
|||
|
Bit 5 0 = return to command mode on DTR low.
|
|||
|
1 = Same as 0 but also resets all
|
|||
|
registers.
|
|||
|
See also register 13, bit 2
|
|||
|
Bit 6 0 = DSR always on.
|
|||
|
1 = DSR only on if channel is available.
|
|||
|
Bit 7 0 = Cisco-PPP-flag-hack off (default).
|
|||
|
1 = Cisco-PPP-flag-hack on.
|
|||
|
13 0 Bit coded register:
|
|||
|
Bit 0: 0 = Use delayed tty-send-algorithm
|
|||
|
1 = Direct tty-send.
|
|||
|
Bit 1: 0 = T.70 protocol (Only for BTX!) off
|
|||
|
1 = T.70 protocol (Only for BTX!) on
|
|||
|
Bit 2: 0 = Don't hangup on DTR low.
|
|||
|
1 = Hangup on DTR low.
|
|||
|
Bit 3: 0 = Standard response messages
|
|||
|
1 = Extended response messages
|
|||
|
Bit 4: 0 = CALLER NUMBER before every RING.
|
|||
|
1 = CALLER NUMBER after first RING.
|
|||
|
Bit 5: 0 = T.70 extended protocol off
|
|||
|
1 = T.70 extended protocol on
|
|||
|
Bit 6: 0 = Special RUNG Message off
|
|||
|
1 = Special RUNG Message on
|
|||
|
"RUNG" is delivered on a ttyI, if
|
|||
|
an incoming call happened (RING) and
|
|||
|
the remote party hung up before any
|
|||
|
local ATA was given.
|
|||
|
Bit 7: 0 = Don't show display messages from net
|
|||
|
1 = Show display messages from net
|
|||
|
(S12 Bit 1 must be 0 too)
|
|||
|
14 0 Layer-2 protocol:
|
|||
|
0 = X75/LAPB with I-frames
|
|||
|
1 = X75/LAPB with UI-frames
|
|||
|
2 = X75/LAPB with BUI-frames
|
|||
|
3 = HDLC
|
|||
|
4 = Transparent (audio)
|
|||
|
7 = V.110, 9600 baud
|
|||
|
8 = V.110, 19200 baud
|
|||
|
9 = V.110, 38400 baud
|
|||
|
10 = Analog Modem (only if hardware supports this)
|
|||
|
11 = Fax G3 (only if hardware supports this)
|
|||
|
15 0 Layer-3 protocol:
|
|||
|
0 = transparent
|
|||
|
1 = transparent with audio features (e.g. DSP)
|
|||
|
2 = Fax G3 Class 2 commands (S14 has to be set to 11)
|
|||
|
3 = Fax G3 Class 1 commands (S14 has to be set to 11)
|
|||
|
16 250 Send-Packet-size/16
|
|||
|
17 8 Window-size (not yet implemented)
|
|||
|
18 4 Bit coded register, Service-Octet-1 to accept,
|
|||
|
or to be used on dialout:
|
|||
|
Bit 0: Service 1 (audio) when set.
|
|||
|
Bit 1: Service 5 (BTX) when set.
|
|||
|
Bit 2: Service 7 (data) when set.
|
|||
|
Note: It is possible to set more than one
|
|||
|
bit. In this case, on incoming calls
|
|||
|
the selected services are accepted,
|
|||
|
and if the service is "audio", the
|
|||
|
Layer-2-protocol is automatically
|
|||
|
changed to 4 regardless of the setting
|
|||
|
of register 14. On outgoing calls,
|
|||
|
the most significant 1-bit is chosen to
|
|||
|
select the outgoing service octet.
|
|||
|
19 0 Service-Octet-2
|
|||
|
20 0 Bit coded register (readonly)
|
|||
|
Service-Octet-1 of last call.
|
|||
|
Bit mapping is the same as register 18
|
|||
|
21 0 Bit coded register (readonly)
|
|||
|
Set on incoming call (during RING) to
|
|||
|
octet 3 of calling party number IE (Numbering plan)
|
|||
|
See section 4.5.10 of ITU Q.931
|
|||
|
22 0 Bit coded register (readonly)
|
|||
|
Set on incoming call (during RING) to
|
|||
|
octet 3a of calling party number IE (Screening info)
|
|||
|
See section 4.5.10 of ITU Q.931
|
|||
|
23 0 Bit coded register:
|
|||
|
Bit 0: 0 = Add CPN to RING message off
|
|||
|
1 = Add CPN to RING message on
|
|||
|
Bit 1: 0 = Add CPN to FCON message off
|
|||
|
1 = Add CPN to FCON message on
|
|||
|
Bit 2: 0 = Add CDN to RING/FCON message off
|
|||
|
1 = Add CDN to RING/FCON message on
|
|||
|
|
|||
|
Last but not least a (at the moment fairly primitive) device to request
|
|||
|
the line-status (/dev/isdninfo) is made available.
|
|||
|
|
|||
|
Automatic assignment of devices to lines:
|
|||
|
|
|||
|
All inactive physical lines are listening to all EAZs for incoming
|
|||
|
calls and are NOT assigned to a specific tty or network interface.
|
|||
|
When an incoming call is detected, the driver looks first for a network
|
|||
|
interface and then for an opened tty which:
|
|||
|
|
|||
|
1. is configured for the same EAZ.
|
|||
|
2. has the same protocol settings for the B-channel.
|
|||
|
3. (only for network interfaces if the security flag is set)
|
|||
|
contains the caller number in its access list.
|
|||
|
4. Either the channel is not bound exclusively to another Net-interface, or
|
|||
|
it is bound AND the other checks apply to exactly this interface.
|
|||
|
(For usage of the bind-features, refer to the isdnctrl-man-page)
|
|||
|
|
|||
|
Only when a matching interface or tty is found is the call accepted
|
|||
|
and the "connection" between the low-level-layer and the link-level-layer
|
|||
|
is established and kept until the end of the connection.
|
|||
|
In all other cases no connection is established. Isdn4linux can be
|
|||
|
configured to either do NOTHING in this case (which is useful, if
|
|||
|
other, external devices with the same EAZ/MSN are connected to the bus)
|
|||
|
or to reject the call actively. (isdnctrl busreject ...)
|
|||
|
|
|||
|
For an outgoing call, the inactive physical lines are searched.
|
|||
|
The call is placed on the first physical line, which supports the
|
|||
|
requested protocols for the B-channel. If a net-interface, however
|
|||
|
is pre-bound to a channel, this channel is used directly.
|
|||
|
|
|||
|
This makes it possible to configure several network interfaces and ttys
|
|||
|
for one EAZ, if the network interfaces are set to secure operation.
|
|||
|
If an incoming call matches one network interface, it gets connected to it.
|
|||
|
If another incoming call for the same EAZ arrives, which does not match
|
|||
|
a network interface, the first tty gets a "RING" and so on.
|
|||
|
|
|||
|
2 System prerequisites:
|
|||
|
|
|||
|
ATTENTION!
|
|||
|
|
|||
|
Always use the latest module utilities. The current version is
|
|||
|
named in Documentation/Changes. Some old versions of insmod
|
|||
|
are not capable of setting the driver-Ids correctly.
|
|||
|
|
|||
|
3. Lowlevel-driver configuration.
|
|||
|
|
|||
|
Configuration depends on how the drivers are built. See the
|
|||
|
README.<yourDriver> for information on driver-specific setup.
|
|||
|
|
|||
|
4. Device-inodes
|
|||
|
|
|||
|
The major and minor numbers and their names are described in
|
|||
|
Documentation/devices.txt. The major numbers are:
|
|||
|
|
|||
|
43 for the ISDN-tty's.
|
|||
|
44 for the ISDN-callout-tty's.
|
|||
|
45 for control/info/debug devices.
|
|||
|
|
|||
|
5. Application
|
|||
|
|
|||
|
a) For some card-types, firmware has to be loaded into the cards, before
|
|||
|
proceeding with device-independent setup. See README.<yourDriver>
|
|||
|
for how to do that.
|
|||
|
|
|||
|
b) If you only intend to use ttys, you are nearly ready now.
|
|||
|
|
|||
|
c) If you want to have really permanent "Modem"-settings on disk, you
|
|||
|
can start the daemon iprofd. Give it a path to a file at the command-
|
|||
|
line. It will store the profile-settings in this file every time
|
|||
|
an AT&W0 is performed on any ISDN-tty. If the file already exists,
|
|||
|
all profiles are initialized from this file. If you want to unload
|
|||
|
any of the modules, kill iprofd first.
|
|||
|
|
|||
|
d) For networking, continue: Create an interface:
|
|||
|
isdnctrl addif isdn0
|
|||
|
|
|||
|
e) Set the EAZ (or MSN for Euro-ISDN):
|
|||
|
isdnctrl eaz isdn0 2
|
|||
|
|
|||
|
(For 1TR6 a single digit is allowed, for Euro-ISDN the number is your
|
|||
|
real MSN e.g.: Phone-Number)
|
|||
|
|
|||
|
f) Set the number for outgoing calls on the interface:
|
|||
|
isdnctrl addphone isdn0 out 1234567
|
|||
|
... (this can be executed more than once, all assigned numbers are
|
|||
|
tried in order)
|
|||
|
and the number(s) for incoming calls:
|
|||
|
isdnctrl addphone isdn0 in 1234567
|
|||
|
|
|||
|
g) Set the timeout for hang-up:
|
|||
|
isdnctrl huptimeout isdn0 <timeout_in_seconds>
|
|||
|
|
|||
|
h) additionally you may activate charge-hang-up (= Hang up before
|
|||
|
next charge-info, this only works, if your isdn-provider transmits
|
|||
|
the charge-info during and after the connection):
|
|||
|
isdnctrl chargehup isdn0 on
|
|||
|
|
|||
|
i) Set the dial mode of the interface:
|
|||
|
isdnctrl dialmode isdn0 auto
|
|||
|
"off" means that you (or the system) cannot make any connection
|
|||
|
(neither incoming or outgoing connections are possible). Use
|
|||
|
this if you want to be sure that no connections will be made.
|
|||
|
"auto" means that the interface is in auto-dial mode, and will
|
|||
|
attempt to make a connection whenever a network data packet needs
|
|||
|
the interface's link. Note that this can cause unexpected dialouts,
|
|||
|
and lead to a high phone bill! Some daemons or other pc's that use
|
|||
|
this interface can cause this.
|
|||
|
Incoming connections are also possible.
|
|||
|
"manual" is a dial mode created to prevent the unexpected dialouts.
|
|||
|
In this mode, the interface will never make any connections on its
|
|||
|
own. You must explicitly initiate a connection with "isdnctrl dial
|
|||
|
isdn0". However, after an idle time of no traffic as configured for
|
|||
|
the huptimeout value with isdnctrl, the connection _will_ be ended.
|
|||
|
If you don't want any automatic hangup, set the huptimeout value to 0.
|
|||
|
"manual" is the default.
|
|||
|
|
|||
|
j) Setup the interface with ifconfig as usual, and set a route to it.
|
|||
|
|
|||
|
k) (optional) If you run X11 and have Tcl/Tk-wish version 4.0, you can use
|
|||
|
the script tools/tcltk/isdnmon. You can add actions for line-status
|
|||
|
changes. See the comments at the beginning of the script for how to
|
|||
|
do that. There are other tty-based tools in the tools-subdirectory
|
|||
|
contributed by Michael Knigge (imon), Volker G<>tz (imontty) and
|
|||
|
Andreas Kool (isdnmon).
|
|||
|
|
|||
|
l) For initial testing, you can set the verbose-level to 2 (default: 0).
|
|||
|
Then all incoming calls are logged, even if they are not addressed
|
|||
|
to one of the configured net-interfaces:
|
|||
|
isdnctrl verbose 2
|
|||
|
|
|||
|
Now you are ready! A ping to the set address should now result in an
|
|||
|
automatic dial-out (look at syslog kernel-messages).
|
|||
|
The phone numbers and EAZs can be assigned at any time with isdnctrl.
|
|||
|
You can add as many interfaces as you like with addif following the
|
|||
|
directions above. Of course, there may be some limitations. But we have
|
|||
|
tested as many as 20 interfaces without any problem. However, if you
|
|||
|
don't give an interface name to addif, the kernel will assign a name
|
|||
|
which starts with "eth". The number of "eth"-interfaces is limited by
|
|||
|
the kernel.
|
|||
|
|
|||
|
5. Additional options for isdnctrl:
|
|||
|
|
|||
|
"isdnctrl secure <InterfaceName> on"
|
|||
|
Only incoming calls, for which the caller-id is listed in the access
|
|||
|
list of the interface are accepted. You can add caller-id's With the
|
|||
|
command "isdnctrl addphone <InterfaceName> in <caller-id>"
|
|||
|
Euro-ISDN does not transmit the leading '0' of the caller-id for an
|
|||
|
incoming call, therefore you should configure it accordingly.
|
|||
|
If the real number for the dialout e.g. is "09311234567" the number
|
|||
|
to configure here is "9311234567". The pattern-match function
|
|||
|
works similar to the shell mechanism.
|
|||
|
|
|||
|
? one arbitrary digit
|
|||
|
* zero or arbitrary many digits
|
|||
|
[123] one of the digits in the list
|
|||
|
[1-5] one digit between '1' and '5'
|
|||
|
a '^' as the first character in a list inverts the list
|
|||
|
|
|||
|
|
|||
|
"isdnctrl secure <InterfaceName> off"
|
|||
|
Switch off secure operation (default).
|
|||
|
|
|||
|
"isdnctrl ihup <InterfaceName> [on|off]"
|
|||
|
Switch the hang-up-timer for incoming calls on or off.
|
|||
|
|
|||
|
"isdnctrl eaz <InterfaceName>"
|
|||
|
Returns the EAZ of an interface.
|
|||
|
|
|||
|
"isdnctrl delphone <InterfaceName> in|out <number>"
|
|||
|
Deletes a number from one of the access-lists of the interface.
|
|||
|
|
|||
|
"isdnctrl delif <InterfaceName>"
|
|||
|
Removes the interface (and possible slaves) from the kernel.
|
|||
|
(You have to unregister it with "ifconfig <InterfaceName> down" before).
|
|||
|
|
|||
|
"isdnctrl callback <InterfaceName> [on|off]"
|
|||
|
Switches an interface to callback-mode. In this mode, an incoming call
|
|||
|
will be rejected and after this the remote-station will be called. If
|
|||
|
you test this feature by using ping, some routers will re-dial very
|
|||
|
quickly, so that the callback from isdn4linux may not be recognized.
|
|||
|
In this case use ping with the option -i <sec> to increase the interval
|
|||
|
between echo-packets.
|
|||
|
|
|||
|
"isdnctrl cbdelay <InterfaceName> [seconds]"
|
|||
|
Sets the delay (default 5 sec) between an incoming call and start of
|
|||
|
dialing when callback is enabled.
|
|||
|
|
|||
|
"isdnctrl cbhup <InterfaceName> [on|off]"
|
|||
|
This enables (default) or disables an active hangup (reject) when getting an
|
|||
|
incoming call for an interface which is configured for callback.
|
|||
|
|
|||
|
"isdnctrl encap <InterfaceName> <EncapType>"
|
|||
|
Selects the type of packet-encapsulation. The encapsulation can be changed
|
|||
|
only while an interface is down.
|
|||
|
|
|||
|
At the moment the following values are supported:
|
|||
|
|
|||
|
rawip (Default) Selects raw-IP-encapsulation. This means, MAC-headers
|
|||
|
are stripped off.
|
|||
|
ip IP with type-field. Same as IP but the type-field of the MAC-header
|
|||
|
is preserved.
|
|||
|
x25iface X.25 interface encapsulation (first byte semantics as defined in
|
|||
|
../networking/x25-iface.txt). Use this for running the linux
|
|||
|
X.25 network protocol stack (AF_X25 sockets) on top of isdn.
|
|||
|
cisco-h A special-mode for communicating with a Cisco, which is configured
|
|||
|
to do "hdlc"
|
|||
|
ethernet No stripping. Packets are sent with full MAC-header.
|
|||
|
The Ethernet-address of the interface is faked, from its
|
|||
|
IP-address: fc:fc:i1:i2:i3:i4, where i1-4 are the IP-addr.-values.
|
|||
|
syncppp Synchronous PPP
|
|||
|
|
|||
|
uihdlc HDLC with UI-frame-header (for use with DOS ISPA, option -h1)
|
|||
|
|
|||
|
|
|||
|
NOTE: x25iface encapsulation is currently experimental. Please
|
|||
|
read README.x25 for further details
|
|||
|
|
|||
|
|
|||
|
Watching packets, using standard-tcpdump will fail for all encapsulations
|
|||
|
except ethernet because tcpdump does not know how to handle packets
|
|||
|
without MAC-header. A patch for tcpdump is included in the utility-package
|
|||
|
mentioned above.
|
|||
|
|
|||
|
"isdnctrl l2_prot <InterfaceName> <L2-ProtocolName>"
|
|||
|
Selects a layer-2-protocol.
|
|||
|
(With the ICN-driver and the HiSax-driver, "x75i" and "hdlc" is available.
|
|||
|
With other drivers, "x75ui", "x75bui", "x25dte", "x25dce" may be
|
|||
|
possible too. See README.x25 for x25 related l2 protocols.)
|
|||
|
|
|||
|
isdnctrl l3_prot <InterfaceName> <L3-ProtocolName>
|
|||
|
The same for layer-3. (At the moment only "trans" is allowed)
|
|||
|
|
|||
|
"isdnctrl list <InterfaceName>"
|
|||
|
Shows all parameters of an interface and the charge-info.
|
|||
|
Try "all" as the interface name.
|
|||
|
|
|||
|
"isdnctrl hangup <InterfaceName>"
|
|||
|
Forces hangup of an interface.
|
|||
|
|
|||
|
"isdnctrl bind <InterfaceName> <DriverId>,<ChannelNumber> [exclusive]"
|
|||
|
If you are using more than one ISDN card, it is sometimes necessary to
|
|||
|
dial out using a specific card or even preserve a specific channel for
|
|||
|
dialout of a specific net-interface. This can be done with the above
|
|||
|
command. Replace <DriverId> by whatever you assigned while loading the
|
|||
|
module. The <ChannelNumber> is counted from zero. The upper limit
|
|||
|
depends on the card used. At the moment no card supports more than
|
|||
|
2 channels, so the upper limit is one.
|
|||
|
|
|||
|
"isdnctrl unbind <InterfaceName>"
|
|||
|
unbinds a previously bound interface.
|
|||
|
|
|||
|
"isdnctrl busreject <DriverId> on|off"
|
|||
|
If switched on, isdn4linux replies a REJECT to incoming calls, it
|
|||
|
cannot match to any configured interface.
|
|||
|
If switched off, nothing happens in this case.
|
|||
|
You normally should NOT enable this feature, if the ISDN adapter is not
|
|||
|
the only device connected to the S0-bus. Otherwise it could happen that
|
|||
|
isdn4linux rejects an incoming call, which belongs to another device on
|
|||
|
the bus.
|
|||
|
|
|||
|
"isdnctrl addslave <InterfaceName> <SlaveName>
|
|||
|
Creates a slave interface for channel-bundling. Slave interfaces are
|
|||
|
not seen by the kernel, but their ISDN-part can be configured with
|
|||
|
isdnctrl as usual. (Phone numbers, EAZ/MSN, timeouts etc.) If more
|
|||
|
than two channels are to be bundled, feel free to create as many as you
|
|||
|
want. InterfaceName must be a real interface, NOT a slave. Slave interfaces
|
|||
|
start dialing, if the master interface resp. the previous slave interface
|
|||
|
has a load of more than 7000 cps. They hangup if the load goes under 7000
|
|||
|
cps, according to their "huptimeout"-parameter.
|
|||
|
|
|||
|
"isdnctrl sdelay <InterfaceName> secs."
|
|||
|
This sets the minimum time an Interface has to be fully loaded, until
|
|||
|
it sends a dial-request to its slave.
|
|||
|
|
|||
|
"isdnctrl dial <InterfaceName>"
|
|||
|
Forces an interface to start dialing even if no packets are to be
|
|||
|
transferred.
|
|||
|
|
|||
|
"isdnctrl mapping <DriverId> MSN0,MSN1,MSN2,...MSN9"
|
|||
|
This installs a mapping table for EAZ<->MSN-mapping for a single line.
|
|||
|
Missing MSN's have to be given as "-" or can be omitted, if at the end
|
|||
|
of the commandline.
|
|||
|
With this command, it's now possible to have an interface listening to
|
|||
|
mixed 1TR6- and Euro-Type lines. In this case, the interface has to be
|
|||
|
configured to a 1TR6-type EAZ (one digit). The mapping is also valid
|
|||
|
for tty-emulation. Seen from the interface/tty-level the mapping
|
|||
|
CAN be used, however it's possible to use single tty's/interfaces with
|
|||
|
real MSN's (more digits) also, in which case the mapping will be ignored.
|
|||
|
Here is an example:
|
|||
|
|
|||
|
You have a 1TR6-type line with base-nr. 1234567 and a Euro-line with
|
|||
|
MSN's 987654, 987655 and 987656. The DriverId for the Euro-line is "EURO".
|
|||
|
|
|||
|
isdnctrl mapping EURO -,987654,987655,987656,-,987655
|
|||
|
...
|
|||
|
isdnctrl eaz isdn0 1 # listen on 12345671(1tr6) and 987654(euro)
|
|||
|
...
|
|||
|
isdnctrl eaz isdn1 4 # listen on 12345674(1tr6) only.
|
|||
|
...
|
|||
|
isdnctrl eaz isdn2 987654 # listen on 987654(euro) only.
|
|||
|
|
|||
|
Same scheme is used with AT&E... at the tty's.
|
|||
|
|
|||
|
6. If you want to write a new low-level-driver, you are welcome.
|
|||
|
The interface to the link-level-module is described in the file INTERFACE.
|
|||
|
If the interface should be expanded for any reason, don't do it
|
|||
|
on your own, send me a mail containing the proposed changes and
|
|||
|
some reasoning about them.
|
|||
|
If other drivers will not be affected, I will include the changes
|
|||
|
in the next release.
|
|||
|
For developers only, there is a second mailing-list. Write to me
|
|||
|
(fritz@isdn4linux.de), if you want to join that list.
|
|||
|
|
|||
|
Have fun!
|
|||
|
|
|||
|
-Fritz
|
|||
|
|