| 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 |  |