Audio extension of ttyi isdn character devices
This document describes the audio related extensions of the modem emulation, provided by /dev/ttyIx.
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 port speed of the ISDN tty devices is always 64000 bps.
This description does not include the standard AT command set. For a description of the standard AT command set, provided by the Linux ISDN subsystem, see ttyI(4). All commands starting with AT+ except AT+FCLASS are enabled only, if audio mode is active. The following audio related AT commands are supported by ISDN tty devices:
AT+FCLASS=0
Disable audio mode (default). This command sets register 18 to 4.
AT+FCLASS=8
Enable audio mode. This command sets register 18 to 5.
AT+FCLASS=?
Show possible modes.
AT+FCLASS?
Show current mode.
AT+VNH=x
No function, provided for compatibility only.
AT+VNH=?
Always showing "1".
AT+VNH?
Always showing "1".
AT+VIP
Reset all audio parameters.
AT+VLS=x
Select line x, where x is one of the following:
0 = No device.
2 = Phone line.
AT+VLS=?
Always showing "0,2".
AT+VLS?
Show current line.
AT+VRX
Start audio recording. See below for more information.
AT+VSD=x,y
Set silence-detection parameters.
Possible parameters:
x = 0 ... 31 sensitivity threshold level.
(default 0 , deactivated)
y = 0 ... 255 range of interval in units of 0.1 second. (default 70)
AT+VSD=?
Show possible parameters.
AT+VSD?
Show current parameters.
AT+VSM=x
Select audio data format to x, where x is:
2 = ADPCM-2
3 = ADPCM-3
4 = ADPCM-4
5 = aLAW
6 = uLAW
AT+VSM=?
Show possible audio data formats.
AT+VSM?
Show current audio data format.
AT+VTX
Start audio playback. See below for more information.
On incoming calls, if the application responds to a RING by sending ATA, depending on the calling service, the emulator responds with either CONNECT (data call) or VCON (voice call).
When starting audio playback or recording, the emulator responds with CONNECT. After that, the data transfer protocol described below is used. It is possible to initiate full duplex data transfer by issuing AT+VRX+VTX in a single command. In this case, no CONNECT message is sent to the application and the protocol described below is started immediately.
When stopping audio playback or recording, the message returned by the emulator depends on how the data transfer is stopped. If the data transfer is stopped by a remote hangup, NO CARRIER is sent to the application, while stopping data transfer with one of the DLE sequences, VCON is sent. In any case, the message is preceded by the appropriate DLE sequence for end of audio data and/or abort respectively.
On outgoing voice calls, the emulator responds with VCON upon connection setup.
When recording or playing back audio data, a kind of modified bisync protocol is used. When recording audio data, the modem emulator is considered to be the sender, while the application is the receiver. When playing back, this relationship is reversed: The modem emulator acts as receiver, while the application is the sender. With the bisync protocol the character DLE (0x10) has a special meaning and is used like an escape character. It is always followed by a second character which has the following meanings defined:
ETX (0x03)
End of audio data. This code has to be sent by the sender, indicating end of audio data.
DC4 (0x14)
Abort sending. This code has to be sent by the receiver, when it wishes to abort receiving data. The sender has to reply by stop sending data and finally indicating end of audio data.
DLE (0x10)
a single byte with value 0x10 in the data stream.
0
Touch-tone "0" received. Valid only in direction from emulator to application.
1
Touch-tone "1" received. Valid only in direction from emulator to application.
2
Touch-tone "2" received. Valid only in direction from emulator to application.
3
Touch-tone "3" received. Valid only in direction from emulator to application.
4
Touch-tone "4" received. Valid only in direction from emulator to application.
5
Touch-tone "5" received. Valid only in direction from emulator to application.
6
Touch-tone "6" received. Valid only in direction from emulator to application.
7
Touch-tone "7" received. Valid only in direction from emulator to application.
8
Touch-tone "8" received. Valid only in direction from emulator to application.
9
Touch-tone "9" received. Valid only in direction from emulator to application.
#
Touch-tone "#" received. Valid only in direction from emulator to application.
*
Touch-tone "*" received. Valid only in direction from emulator to application.
A
Touch-tone "A" received. Valid only in direction from emulator to application.
B
Touch-tone "B" received. Valid only in direction from emulator to application.
C
Touch-tone "C" received. Valid only in direction from emulator to application.
D
Touch-tone "D" received. Valid only in direction from emulator to application.
Fritz Elfert <[email protected]>