|  | $Id: README.audio,v 1.8 1999/07/11 17:17:29 armin Exp $ | 
|  |  | 
|  | ISDN subsystem for Linux. | 
|  | Description of audio mode. | 
|  |  | 
|  | When enabled during kernel configuration, the tty emulator of the ISDN | 
|  | subsystem is capable of a reduced set of commands to support audio. | 
|  | This document describes the commands supported and the format of | 
|  | audio data. | 
|  |  | 
|  | Commands for enabling/disabling audio mode: | 
|  |  | 
|  | AT+FCLASS=8      Enable audio mode. | 
|  | This affects the following registers: | 
|  | S18: Bits 0 and 2 are set. | 
|  | S16: Set to 48 and any further change to | 
|  | larger values is blocked. | 
|  | AT+FCLASS=0      Disable audio mode. | 
|  | Register 18 is set to 4. | 
|  | AT+FCLASS=?      Show possible modes. | 
|  | AT+FCLASS?       Report current mode (0 or 8). | 
|  |  | 
|  | Commands supported in audio mode: | 
|  |  | 
|  | All audio mode commands have one of the following forms: | 
|  |  | 
|  | AT+Vxx?          Show current setting. | 
|  | AT+Vxx=?         Show possible settings. | 
|  | AT+Vxx=v         Set simple parameter. | 
|  | AT+Vxx=v,v ...   Set complex parameter. | 
|  |  | 
|  | where xx is a two-character code and v are alphanumerical parameters. | 
|  | The following commands are supported: | 
|  |  | 
|  | AT+VNH=x         Auto hangup setting. NO EFFECT, supported | 
|  | for compatibility only. | 
|  | AT+VNH?          Always reporting "1" | 
|  | AT+VNH=?         Always reporting "1" | 
|  |  | 
|  | AT+VIP           Reset all audio parameters. | 
|  |  | 
|  | AT+VLS=x         Line select. x is one of the following: | 
|  | 0 = No device. | 
|  | 2 = Phone line. | 
|  | AT+VLS=?         Always reporting "0,2" | 
|  | AT+VLS?          Show current line. | 
|  |  | 
|  | AT+VRX           Start recording. Emulator responds with | 
|  | CONNECT and starts sending audio data to | 
|  | the application. See below for data format | 
|  |  | 
|  | 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=?         Report possible parameters. | 
|  | AT+VSD?          Show current parameters. | 
|  |  | 
|  | AT+VDD=x,y       Set DTMF-detection parameters. | 
|  | Only possible if online and during this connection. | 
|  | Possible parameters: | 
|  | x = 0 ... 15  sensitivity threshold level. | 
|  | (default 0 , I4L soft-decode) | 
|  | (1-15 soft-decode off, hardware on) | 
|  | y = 0 ... 255 tone duration in units of 5ms. | 
|  | Not for I4L soft decode (default 8, 40ms) | 
|  | AT+VDD=?         Report possible parameters. | 
|  | AT+VDD?          Show current parameters. | 
|  |  | 
|  | AT+VSM=x         Select audio data format. | 
|  | Possible parameters: | 
|  | 2 = ADPCM-2 | 
|  | 3 = ADPCM-3 | 
|  | 4 = ADPCM-4 | 
|  | 5 = aLAW | 
|  | 6 = uLAW | 
|  | AT+VSM=?         Show possible audio formats. | 
|  |  | 
|  | AT+VTX           Start audio playback. Emulator responds | 
|  | with CONNECT and starts sending audio data | 
|  | received from the application via phone line. | 
|  | General behavior and description of data formats/protocol. | 
|  | when a connection is made: | 
|  |  | 
|  | On incoming calls, if the application responds to a RING | 
|  | with ATA, depending on the calling service, the emulator | 
|  | responds with either CONNECT (data call) or VCON (voice call). | 
|  |  | 
|  | On outgoing voice calls, the emulator responds with VCON | 
|  | upon connection setup. | 
|  |  | 
|  | Audio recording. | 
|  |  | 
|  | When receiving audio data, a kind of bisync protocol is used. | 
|  | Upon AT+VRX command, the emulator responds with CONNECT, and | 
|  | starts sending audio data to the application. There are several | 
|  | escape sequences defined, all using DLE (0x10) as Escape char: | 
|  |  | 
|  | <DLE><ETX>              End of audio data. (i.e. caused by a | 
|  | hangup of the remote side) Emulator stops | 
|  | recording, responding with VCON. | 
|  | <DLE><DC4>		    Abort recording, (send by appl.) Emulator | 
|  | stops recording, sends DLE,ETX. | 
|  | <DLE><DLE>              Escape sequence for DLE in data stream. | 
|  | <DLE>0                  Touchtone "0" received. | 
|  | ... | 
|  | <DLE>9                  Touchtone "9" received. | 
|  | <DLE>#                  Touchtone "#" received. | 
|  | <DLE>*                  Touchtone "*" received. | 
|  | <DLE>A                  Touchtone "A" received. | 
|  | <DLE>B                  Touchtone "B" received. | 
|  | <DLE>C                  Touchtone "C" received. | 
|  | <DLE>D                  Touchtone "D" received. | 
|  |  | 
|  | <DLE>q                  quiet. Silence detected after non-silence. | 
|  | <DLE>s                  silence. Silence detected from the | 
|  | start of recording. | 
|  |  | 
|  | Currently unsupported DLE sequences: | 
|  |  | 
|  | <DLE>c                  FAX calling tone received. | 
|  | <DLE>b                  busy tone received. | 
|  |  | 
|  | Audio playback. | 
|  |  | 
|  | When sending audio data, upon AT+VTX command, emulator responds with | 
|  | CONNECT, and starts transferring data from application to the phone line. | 
|  | The same DLE sequences apply to this mode. | 
|  |  | 
|  | Full-Duplex-Audio: | 
|  |  | 
|  | When _both_ commands for recording and playback are given in _one_ | 
|  | AT-command-line (i.e.: "AT+VTX+VRX"), full-duplex-mode is selected. | 
|  | In this mode, the only way to stop recording is sending <DLE><DC4> | 
|  | and the only way to stop playback is to send <DLE><ETX>. | 
|  |  |