Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | $Id: README.audio,v 1.8 1999/07/11 17:17:29 armin Exp $ |
| 2 | |
| 3 | ISDN subsystem for Linux. |
| 4 | Description of audio mode. |
| 5 | |
| 6 | When enabled during kernel configuration, the tty emulator of the ISDN |
| 7 | subsystem is capable of a reduced set of commands to support audio. |
| 8 | This document describes the commands supported and the format of |
| 9 | audio data. |
| 10 | |
| 11 | Commands for enabling/disabling audio mode: |
| 12 | |
| 13 | AT+FCLASS=8 Enable audio mode. |
| 14 | This affects the following registers: |
| 15 | S18: Bits 0 and 2 are set. |
| 16 | S16: Set to 48 and any further change to |
| 17 | larger values is blocked. |
| 18 | AT+FCLASS=0 Disable audio mode. |
| 19 | Register 18 is set to 4. |
| 20 | AT+FCLASS=? Show possible modes. |
| 21 | AT+FCLASS? Report current mode (0 or 8). |
| 22 | |
| 23 | Commands supported in audio mode: |
| 24 | |
| 25 | All audio mode commands have one of the following forms: |
| 26 | |
| 27 | AT+Vxx? Show current setting. |
| 28 | AT+Vxx=? Show possible settings. |
| 29 | AT+Vxx=v Set simple parameter. |
| 30 | AT+Vxx=v,v ... Set complex parameter. |
| 31 | |
| 32 | where xx is a two-character code and v are alphanumerical parameters. |
| 33 | The following commands are supported: |
| 34 | |
| 35 | AT+VNH=x Auto hangup setting. NO EFFECT, supported |
| 36 | for compatibility only. |
| 37 | AT+VNH? Always reporting "1" |
| 38 | AT+VNH=? Always reporting "1" |
| 39 | |
| 40 | AT+VIP Reset all audio parameters. |
| 41 | |
| 42 | AT+VLS=x Line select. x is one of the following: |
| 43 | 0 = No device. |
| 44 | 2 = Phone line. |
| 45 | AT+VLS=? Always reporting "0,2" |
| 46 | AT+VLS? Show current line. |
| 47 | |
| 48 | AT+VRX Start recording. Emulator responds with |
| 49 | CONNECT and starts sending audio data to |
| 50 | the application. See below for data format |
| 51 | |
| 52 | AT+VSD=x,y Set silence-detection parameters. |
| 53 | Possible parameters: |
| 54 | x = 0 ... 31 sensitivity threshold level. |
| 55 | (default 0 , deactivated) |
| 56 | y = 0 ... 255 range of interval in units |
| 57 | of 0.1 second. (default 70) |
| 58 | AT+VSD=? Report possible parameters. |
| 59 | AT+VSD? Show current parameters. |
| 60 | |
| 61 | AT+VDD=x,y Set DTMF-detection parameters. |
| 62 | Only possible if online and during this connection. |
| 63 | Possible parameters: |
| 64 | x = 0 ... 15 sensitivity threshold level. |
| 65 | (default 0 , I4L soft-decode) |
| 66 | (1-15 soft-decode off, hardware on) |
| 67 | y = 0 ... 255 tone duration in units of 5ms. |
| 68 | Not for I4L soft decode (default 8, 40ms) |
| 69 | AT+VDD=? Report possible parameters. |
| 70 | AT+VDD? Show current parameters. |
| 71 | |
| 72 | AT+VSM=x Select audio data format. |
| 73 | Possible parameters: |
| 74 | 2 = ADPCM-2 |
| 75 | 3 = ADPCM-3 |
| 76 | 4 = ADPCM-4 |
| 77 | 5 = aLAW |
| 78 | 6 = uLAW |
| 79 | AT+VSM=? Show possible audio formats. |
| 80 | |
| 81 | AT+VTX Start audio playback. Emulator responds |
| 82 | with CONNECT and starts sending audio data |
| 83 | received from the application via phone line. |
| 84 | General behavior and description of data formats/protocol. |
| 85 | when a connection is made: |
| 86 | |
| 87 | On incoming calls, if the application responds to a RING |
| 88 | with ATA, depending on the calling service, the emulator |
| 89 | responds with either CONNECT (data call) or VCON (voice call). |
| 90 | |
| 91 | On outgoing voice calls, the emulator responds with VCON |
| 92 | upon connection setup. |
| 93 | |
| 94 | Audio recording. |
| 95 | |
| 96 | When receiving audio data, a kind of bisync protocol is used. |
| 97 | Upon AT+VRX command, the emulator responds with CONNECT, and |
| 98 | starts sending audio data to the application. There are several |
| 99 | escape sequences defined, all using DLE (0x10) as Escape char: |
| 100 | |
| 101 | <DLE><ETX> End of audio data. (i.e. caused by a |
| 102 | hangup of the remote side) Emulator stops |
| 103 | recording, responding with VCON. |
| 104 | <DLE><DC4> Abort recording, (send by appl.) Emulator |
| 105 | stops recording, sends DLE,ETX. |
| 106 | <DLE><DLE> Escape sequence for DLE in data stream. |
| 107 | <DLE>0 Touchtone "0" received. |
| 108 | ... |
| 109 | <DLE>9 Touchtone "9" received. |
| 110 | <DLE># Touchtone "#" received. |
| 111 | <DLE>* Touchtone "*" received. |
| 112 | <DLE>A Touchtone "A" received. |
| 113 | <DLE>B Touchtone "B" received. |
| 114 | <DLE>C Touchtone "C" received. |
| 115 | <DLE>D Touchtone "D" received. |
| 116 | |
| 117 | <DLE>q quiet. Silence detected after non-silence. |
| 118 | <DLE>s silence. Silence detected from the |
| 119 | start of recording. |
| 120 | |
| 121 | Currently unsupported DLE sequences: |
| 122 | |
| 123 | <DLE>c FAX calling tone received. |
| 124 | <DLE>b busy tone received. |
| 125 | |
| 126 | Audio playback. |
| 127 | |
| 128 | When sending audio data, upon AT+VTX command, emulator responds with |
| 129 | CONNECT, and starts transferring data from application to the phone line. |
| 130 | The same DLE sequences apply to this mode. |
| 131 | |
| 132 | Full-Duplex-Audio: |
| 133 | |
| 134 | When _both_ commands for recording and playback are given in _one_ |
| 135 | AT-command-line (i.e.: "AT+VTX+VRX"), full-duplex-mode is selected. |
| 136 | In this mode, the only way to stop recording is sending <DLE><DC4> |
| 137 | and the only way to stop playback is to send <DLE><ETX>. |
| 138 | |