Section: Special files (4)
Updated: 2002/01/31
Page Index


ttyI - ISDN character devices with modem emulator  


ttyI[0-63] are emulated tty devices of the Linux ISDN subsystem. These devices can be used in the same way as the traditional serial devices ttySx. The official major device numbers are 43 for ttyI . The minor device numbers start with 0 and end with 63.

The ISDN tty devices are equipped with a modem emulation implementing a set of traditional and some special AT commands. This provides easy use together with almost all communication software that uses modem commands: minicom(1), seyon(1), XCept(1), uucico(8), mgetty(8), dip(8), pppd(8) and more. When enabled during kernel configuration, the emulator is capable of a reduced set of commands to support audio. To use audio features, an ISDN card with a audio-capable low-level driver is needed. Currently the only audio-capable drivers are the teles and HiSax driver.

The line disciplines are handled by the kernel so that SLIP, CSLIP and asynchronous PPP are possible.

The port speed of the ISDN tty devices is always 64000 bps.



The description of AT commands here does not cover audio related commands. For a description of audio related commands, see isdn_audio(4). The following AT commands are supported by ISDN tty devices:
Answer an incoming call.
Dial number num. Allowed are digits [0-9] and the characters ",", "#", ".", "*", "W", "P", "T", "S", "-". The characters are ignored except of "S" which indicates a SPV if it precedes the number (only German 1TR6 ISDN).
Echo off.
Echo on (default).
Hang up.
Hang up.
Off hook (ignored).
Return device Information ("ISDN for Linux...").
Return device Information ("ISDN for Linux...").
Return device Information ("ISDN for Linux...").
Return Statistics of last connection.
Return from command mode to online mode (data mode).
Enable result codes (default).
Disable result codes.
Set register x to value y.
Show content of register x.
Set register x, bit y to value z
Show bit y of register x.
Print result code as number.
Print result code as text (default).
Reset all registers and load profile values.
Set packet size of outgoing packets to value x (maximum 4000). The actual packet size depends on the hardware driver and may be smaller than x (e.g. with the teles driver). There will be no error message if the value is bigger than the hardware driver can process. However the size of the outgoing packets will be set correctly.
DTR falling edge: hang up and return to command mode (default).
DTR falling edge: hang up, return to command mode and reset all registers.
Set MSN (Euro-ISDN, EDSS1) or EAZ (German 1TR6) to value x. For MSNs, x is a string of digits representing the local phone number, while for EAZs x should be only the last digit of the Number.
Set all registers and profile to "factory-defaults".
Set list of phone numbers to listen on. plist is a list of wildcard patterns separated by semicolon. If this is set, it has precedence over the MSN set by AT&E.
Show current register settings.
Write registers and EAZ/MSN to profile. (You need to run iprofd(8) for making changes permanent.)
Disable BTX-Mode (default).
Enable BTX-Mode.


During a data connection, the driver can be set to command mode by typing in delay+++delay. The escape character (default "+") may be set via register 2. The delay must be at least 1.5 seconds and between each escape character the pause must not exceed 0.5 seconds. ATO brings the modem emulation back to data mode.  


0 (default 0)
Number of rings on which the "modem" will answer. (S0=0 will disable auto answering).
1 (default 0)
Counts and stores the number of rings from an incoming call.
2 (default 43 = '+')
ASCII code of the escape character.
3 (default 13 = CR)
ASCII code of Carriage Return.
4 (default 10 = LF)
ASCII code of Line Feed.
5 (default 8 = BS)
ASCII code of Backspace.
6 (default 3)
Duration, in number of seconds, modem waits before dialling.
7 (default 60)
Wait time for carrier in seconds.
8 (default 2)
Pause time for comma (',') in dial command in seconds (ignored).
9 (default 6)
Carrier detect time in tenths of seconds (ignored).
10 (default 7)
Wait time until hangup after carrier loss in tenths of seconds (ignored).
11 (default 70)
Duration and delay in milliseconds for touch tone dialling (ignored).
12 (default 69)
Bit-mapped register.
Bit    Description

0      0 = Suppress response messages.

       1 = Show response messages.

1      0 = Response messages as text.

       1 = Numeric response messages.

2      0 = Echo off.

       1 = Echo on.

3      0 = DCD always on.

       1 = DCD follows carrier.

4      0 = CTS follows RTS.

       1 = Ignore RTS, CTS always on.

5      0 = Low-edge on DTR: Hangup and return

               to command mode.

       1 = Same as 0 but also resets all


6      0 = DSR always on.

       1 = DSR on only if channel is available.

7      0 = Cisco-PPP-flag-hack off.

       1 = Cisco-PPP-flag-hack on.
13 (default 4)
Bit-mapped register.
Bit    Description

0      0 = Use delayed sending of data.

       1 = Immediately send data.

1      0 = T.70 protocol off.

       1 = T.70 protocol on.

2      0 = Don't hangup on DTR low.

       1 = Hangup on DTR low.

3      0 = Standard response messages.

       1 = Extended response messages.

4      0 = CALLER NUMBER before every RING.

       1 = CALLER NUMBER after first RING.

5      0 = Disable extended T.70 protocol.

       1 = Enable extended T.70 protocol.

6      0 = Disable RUNG message.

       1 = RUNG on cancelled incoming call.

7      0 = Disable display messages from net.

       1 = Enable disable messages from net.
14 (default 0)
Layer-2 protocol.

 0 = X75/LAPB with I-frames.

 1 = X75/LAPB with UI-frames.

 2 = X75/LAPB with BUI-frames.

 3 = HDLC.

10 = Analog Modem. (only if hardware supports this)
11 = Fax G3. (only if hardware supports this)
15 (default 0)
Layer-3 protocol.
0 = transparent
1 = transparent with audio features (e.g. DSP)
2 = Fax G3
16 (default 250)
Outgoing packet size / 16.
18 (default 4)
Service-Octet-1 to accept or to be used on dial out.
Bit-mapped register.
Bit    Description

0      Service 1 (audio) when set.

1      Service 5 (BTX) when set.

2      Service 7 (data) when set.

Note: It is possible to set more than one bit. In this case, on outgoing calls, the most significant 1-bit is chosen to select the outgoing service octet. On incoming calls the selected services are accepted, contents of register 14 is ignored and the Layer-2-protocol is automatically set with the following values to match the service of the incoming call:
Incoming service audio (Reg. 20.0 = 1)
L2-protocol is set to 4 (TRANSPARENT).
Incoming service BTX (Reg. 20.1 = 1)
L2-protocol is set to 0 (X75/LAPB with I-frames).
Incoming service date (Reg. 20.2 = 1)
L2-protocol is set to 0 (X75/LAPB with I-frames).
19 (default 0)
Service-Octet-2 (ignored when using EDSS1).
20 (read only)
Service-Octet-1 of last incoming call. This bit-mapped register is set on incoming call (during RING). Mapping is the same like register 18.
21 (read only)
Bit-mapped register. Set on incoming call (during RING) to the value of octet 3 of calling party number Information Element (Numbering plan). See section 4.5.10 of ITU Q.931.
22 (read only)
Bit-mapped register. Set on incoming call (during RING) to the value of octet 3a of calling party number Information Element (Screening info). See section 4.5.10 of ITU Q.931.
23 (default 0)
Bit-mapped register.
Bit    Description

0      0 = Disable CPN extended RING.

       1 = Enable CPN extended RING.

1      0 = Disable CPN extended FCON.

       1 = Enable CPN extended FCON.


There used also be cui devices (major device number 44), but since the cua devices for regular tty devices are no longer supported in the kernel, these are also no longer supported for ISDN4linux.



Fritz Elfert <>
modified by Paul Slootman <>



icnctrl(8), telesctrl(8), isdninfo(4), isdn_audio(4), isdnctrl(8).