Computer audio-interface met kabels die op de telefoon-netwerk
Colin Fahey

Een computer kan maken stem telefoongesprekken met behulp van een modem en een gewone circuit.
1. Inleiding
Dit document beschrijft hoe gebruik te maken van alle conventionele modem en een eenvoudige schakeling te geven elke personal computer (PC), met elk besturingssysteem, de mogelijkheid om telefoongesprekken kan zijn stem interactie.
Een gewone modem wordt gebruikt voor het activeren van de telefoon draad door „off haak,“ en later het vrijgeven van de telefoon draad door er „aan de haak (ophangen).“
Een eenvoudige elektrische schakeling wordt gebruikt voor het geven van een audio-apparaat, zoals een geluidskaart of sound interface van een personal computer (PC), de toegang tot de audio-signalen over een telefoon draad.
Zo heeft een personal computer (PC) kunt beginnen met een verbinding naar een telefoonnummer, en vervolgens wachten op een mens of een geautomatiseerd systeem te beantwoorden, en daarna een gesprek op basis van spraak of andere geluiden.
Dit document is bedoeld voor hobbyisten die geïnteresseerd zijn in het leren van een paar dingen over de elektrische eisen en protocol voor interactie met de Central Office (CO) van een draad verbonden telefoonnet in de Verenigde Staten (US).
Er zijn tal van technologieën voorzien in de mogelijkheid van mensen om te communiceren met spraak-gebaseerde systemen door middel van telefoons.
Er zijn tal van commerciële producten en diensten aangeboden om alles in verband met telefoon interactie met het corporate database.
Het is heel gemakkelijk te vinden hardware te hanteren veel telefoontjes op een enkel nummer.
Telefonie is uitgegroeid tot het internet, met protocollen zoals „Voice over Internet Protocol“ (VoIP).
Computers overal in het Internet kan worden geconfigureerd om te interageren met VoIP door middel van spraakherkenning en spraaksynthese.
Deze computers kunnen naar keuze volgen stem conversatie flowcharts uitgedrukt in XML tekstbestanden (Voice XML).
Dit document heeft niets te maken met een van deze praktische oplossingen voor het probleem van de automatisering stem interactie met een bedrijf of organisatie.
Dit document is bedoeld voor het vermaak van hobbyisten met kleine budgetten.
2. Disclaimers
Het construeren van een elektronisch circuit, en voor de aansluiting bij een telefoonnetwerk, houdt grote risico's.
U bent verantwoordelijk voor het leren over alle wetten, gevaren en risico's die van toepassing kunnen zijn.
Het volgende is een lijst van enkele van de kwesties die moet je wel als je geïnteresseerd bent in de bouw en het testen van een schakeling die vergelijkbaar is met de functies in dit artikel:
1. Alle informatie over de elektrische specificaties van de telefoon-dienst is alleen geldig in de Verenigde Staten (US).
2. Bellen spanning op de telefoon draden (90 Volt) kunnen verwonden mensen.
Bliksem of gedaald macht draden kan leiden tot spanningen op de telefoon draden die mensen kunnen verwonden.
3. U bent verantwoordelijk voor eventuele schade aan de telefoonmaatschappij, veroorzaakt door het gebruik van niet-geautoriseerde apparaten in uw huis of kantoor.
4. Opnemen van telefoongesprekken zonder de expliciete toestemming van alle betrokken partijen is tegen de wet.
(... Tenzij je de regering! Anders doen wat ze zeggen, en niet als ze doen!)
5. U bent verantwoordelijk voor eventuele schade aan uw computer, veroorzaakt door de aansluiting van uw eigen circuit op uw computer.
6. U kunt niet verkopen elk product dat bestemd is voor gebruik met een telefoon-netwerk zonder de goedkeuring van de FCC.
Dit document is slechts een beschrijving van mijn persoonlijke ervaringen.
U bent verantwoordelijk voor het leren over de wetten en de risico's van gezaghebbende bronnen.
3. Telefoon audio-interface circuit
Het doel van het circuit zoals beschreven in deze sectie is om conventionele audio-opname en weergave-apparatuur, zoals een geluidskaart of audio-poort op een personal computer (PC), te versturen en ontvangen van audio over een conventionele land draad (met draad) telefoon aansluiting.
De telefoon draad en de audio-apparatuur zijn niet direct verband houdt; de koppeling is alleen door middel van transformatoren.
Beide zijden van de interface worden beschermd tegen te grote spanningen.
De signalen zijn beperkt tot een aantal frequenties (bandbreedte) met betrekking tot telefoon-audio (300 Hz te 3500 Hz).
Het circuit heeft alleen „passieve“ componenten; besturen van alle externe spanningen zijn.
Het circuit moet worden gebruikt in combinatie met een modem, telefoon, of een andere route kunnen gaan „off haak“ (om de weerstand van de draad laag genoeg om aan te geven bij het Centraal Bureau (CO) dat de draad in gebruik is).
Het zou triviaal om een „off haak“ aspect aan dit circuit, maar met een circuit te allen is reeds een groot obstakel voor veel hobbyisten.

De aanwezigheid van het circuit gemonteerd

De aanwezigheid van het circuit board

Schematische voorstelling van de telefoon-audio-interface circuit
U kunt de bouw van het apparaat bijna precies zoals die hierboven als u de volgende investeringen:
1. Zorg ervoor dat u fundamentele instrumenten: Schroevers, een soldeerbout, mes;
2. Bezoek Radio Shack, het kopen van onderstaande punten, voor $ 29 na belastingen;
3. Bezoek alle hardware winkel, de aankoop van twee moeren, bouten, sluitringen, voor $ 1.
4. Breng ongeveer vier uur de bouw van het circuit volgens het schema;
Als u geen ervaring hebben met de opbouw van elektronische schakelingen, solderen, boren van gaten en het aanbrengen van elektrische metingen, niet dit uw eerste project!
De enige persoon die moet proberen op te bouwen dit circuit is de persoon die al weet zeker dat hij of zij kan bouwen!
4. Radio Shack: de alomtegenwoordige elektronica winkel
Radio Shack is een bedrijf met consumenten-elektronica-winkels over de hele wereld. Het volgende is een link naar hun website:
Op hun website een persoon vindt een link genaamd „Electronic Components“, die leidt tot de catalogus van elektronische componenten en de bijbehorende documentatie.
Een persoon vindt de prijzen voor onderdelen.
Een persoon kunt een lijst opvragen van de dichtstbijzijnde winkel locaties, en kaarten.
Delen kunnen worden besteld online.
Ik heb besloten om mijn eenvoudige schakeling met behulp van Radio Shack delen, omdat dit betekent dat iemand anders in de wereld kan gemakkelijk reproduceren mijn werk.
Ook een deel aangeboden door Radio Shack is vrijwel gegarandeerd beschikbaar te zijn voor vele jaren tegen een lage prijs.
Hier is een lijst van Radio Shack delen I gebruikt voor de bouw van het circuit, met de catalogus nummers:
| Qty | Description | Serial # | Price | Total |
| 1 | Project Enclosure (6"x3"x2") | #270-1805 | $ 3.79 | $ 3.79 |
| 1 | Surface Mount Modular Jack (RJ11/RJ14) | #279-0202 | $ 4.99 | $ 4.99 |
| 1 | 3-Conductor Stereo 1/8th" Phone Jack (Pkg.2) | #274-0249 | $ 2.99 | $ 2.99 |
| 1 | Component PC Board (71x94mm), 750 holes | #276-0158 | $ 2.99 | $ 2.99 |
| 2 | Audio Isolation Transformer (1:1) | #273-1374 | $ 3.99 | $ 5.98 |
| 2 | Metalized-Film Capacitor 1.0uF, 250WVDC | #272-1055 | $ 1.49 | $ 2.98 |
| 1 | 2.2K ohm 1/2W 5% Carbon Film Resistor (Pkg.5) | #271-1121 | $ 0.99 | $ 0.99 |
| 2 | 1N4733A, 5.1V, 1.0W Zener Diode (Pkg.2) | #276-0565 | $ 0.99 | $ 1.98 |
SUBTOTAL: $26.69
TAX: $ 2.07 (California 7.75% sales tax)
TOTAL: $28.76
5. Ace Hardware: de niet-zo-alomtegenwoordige hardware store
Ik nodig bouten, sluitringen en moeren te bevestigen een telefoon-aansluiting aan de plastic behuizing van mijn circuit.
Ik ging naar de Ace Hardware, maar ik had kunnen gaan om Home Depot, of misschien zelfs een supermarkt, te vinden soortgelijke delen.
| Qty | Description | Price | Total |
| 2 | Bolt No.8-32 4.2mm-32 | $ 0.17 | $ 0.34 |
| 2 | Washer No.8 | $ 0.10 | $ 0.20 |
| 2 | Nuts No.8-32 2" | $ 0.10 | $ 0.20 |
SUBTOTAL: $0.74
TAX: $0.06 (California 7.75% sales tax)
TOTAL: $0.80
6. Gereedschappen en accessoires
De volgende tabel geeft een aantal van de items ik nodig voor de bouw en het gebruik van de route:
| Soldering iron | $ 5.00 (approx) |
| Solder | $ 3.00 (approx) |
| Precision knife | $ 3.99 |
| Wires | $ 1.00 (approx) |
| Telephone extension cord #279-0374 | $ 5.79 |
| Male-Male mini-phono 6' extension cord (qty.2) | $ 3.00 (approx) |
| Four-wire 3-way coupler (RJ11/RJ14) #279-0447 | $ 4.99 |
7. Reacties op het circuit
Ik ben niet een elektrisch ingenieur.
Ik studeerde verschillende circuits telefoon (zie referenties die bijna aan het einde van dit artikel), en haalde verschillende elementen die steun zou mijn eigen ontwerp te bereiken.
Als je echt wanhopig zijn, en de risico's voor uw PC geen factor was, zou je kunnen verbinden met een telefoon draad aan uw gezonde haven met behulp van slechts een paar condensatoren!
Dat is een heel slecht idee, omdat de ringen spanning, en de mogelijke willekeurige spanning pieken op de telefoon draad, kan schade onbeschermde apparaten.
De Zener diodes in mijn circuit kortsluiting overmatige spanningen.
Merk op dat zij worden geconfronteerd met tegengestelde richting, zodat er voor een bepaalde toepassing spanning met een bepaalde polariteit, een Zener diode is klaar om de huidige regel, en de andere is klaar voor reverse-indeling moet de spanning hoger is dan de rating (bijvoorbeeld 5.1 V) .
Pas als een spanning hoger is dan het omgekeerde-verdeling spanning van een van de Zener diodes zal het paar uiteindelijk te maken dat de huidige stroom, waardoor kortsluiting aan de draden die de combinatie van de dioden is aangesloten.
Merk op dat dit werkt, ongeacht waar de signalen vandaan komen.
Wisselstroom (AC) signalen van de telefoon draad die groter zijn dan 5,8 Volt ( 5.1 V + 0.7 V ) na het passeren door middel van de transformator wordt afgekapt.
Direct Current (DC) of Wisselstroom (AC) audio signalen van een audio-bron, niet de telefoon draad, zal ook worden afgekapt op 5.8 Volts.
Dus, elke partij, telefoon en audio-apparatuur is beschermd tegen extreme spanningen uit de andere partij.
Het apparaat is eigenlijk een combinatie van identieke circuits. Ofwel audio plug kan worden gebruikt voor de ingang of uitgang.
Kortom, zowel audio-signalen worden gekoppeld aan de interne telefoon signaal.
8. Met behulp van een modem te gaan „off haak“
8.1 Het doel van de modem
Het doel van de modem in dit systeem is het creëren van een elektrische voorwaarde dat de telefoon dienstverlener zal herkennen als een verzoek om een actieve deelnemer aan het telefoonnet.
Dit verzoek wordt „off haak,“ een verwijzing naar de originele ontwerpen die nodig zijn telefoon van een gebruiker te heffen, een luidspreker of hoorn van de haak af.
De activering aanvraag is bijna direct verleend, binnen een fractie van een seconde.
Zodra de draad wordt actief, alle andere aspecten van telefonie kan worden verleend via audio signalen.
Hoewel de overdracht van telefoonnummers „(nummerkeuze)“ kan worden gedaan door het afspelen van audio-bestanden ( *.WAV, *.MP3 ), audio (DAT, audio CD, tape), audio-of software-synthese (sin() functies), het modem heeft de intrinsieke vermogen tot het uitvoeren van deze functie.
Maar het moet duidelijk zijn dat het enige doel van de modem vraagt activering van de telefoon draad.
Indien een persoon heeft een alternatieve methode voor de controle van de haak af staat (dat wil zeggen, gewoon een verlaging van de weerstand in de telefoon draad), het modem is niet vereist.
Maar een modem is een zeer goedkope gemeengoed, en handig hulpmiddel voor de uitoefening van deze functie.
Het systeem zoals beschreven in dit artikel niet is voorzien in een modem met audio-opname-en weergave mogelijkheid, soms een „stem modem.“
Echter, in een ander deel van dit artikel zal ik bespreken de mogelijkheid van het gebruik van een voice-modem als een alternatief voor het gebruik van een aangepast elektrisch circuit.
8.2 Typische modem
Ik koos voor het gebruik van een externe modem, vervaardigd door Hayes genaamd „Accura“, een V.92 fax-modem met voicemail mogelijkheden.
Elke modem kan worden gebruikt voor het systeem zoals beschreven in dit artikel.
Ik wilde een externe modem, enkel en alleen omdat het gemakkelijk is om aan elke computer, en ik kan brengen aan het huis van een vriend te gebruiken met hun laptop of desktop computer.
Ook al is het niet belangrijk, ik ook de mogelijkheid dat misschien een Basic Stamp 2 computer gebruik kunnen maken van de RS-232 modem.
Let op: Seriële poorten (RS-232) havens, zoals PS/2 havens, worden afgebouwd, en USB is de nieuwe standaard.
Een externe USB modem kan vaak worden bereikt door software als ware het een erfenis „COM“ haven apparaat door device drivers die worden meegeleverd met het modem.
Er is een kleine USB/RS-232 adapter (~$30) die kunnen worden gebruikt om verbinding te maken hedendaagse laptops en desktop computers te RS-232 apparaten.
Een dergelijke adapter heeft een overeenkomstige device driver te emuleren een erfenis seriële poort interface (bijvoorbeeld „COM“ apparaat).

Hayes externe modem: doos

Hayes externe modem
8.3 Modem commando's
Als een modem voor het eerst wordt ingeschakeld, nu het een „commando-modus.“
Als de modem met succes wordt aangesloten op een externe modem of fax-apparaat op afstand via de telefoon draad, het naar een staat met de naam „data-modus.“
Echter, het systeem beschreven in dit document zal geen gebruik maken van de modem om een „data-modus“ verbinding met een extern apparaat, zodat de modem wordt altijd in „commando-modus.“
Wanneer in commando-mode, het modem accepteert commando's in de vorm van platte ASCII tekens.
Personages worden uitgewisseld tussen de modem en de computer over een seriële kabel, of via een apparaat dat de bestuurder voor een interne kaart (bijvoorbeeld PCI kaart) toegankelijk als een seriële apparaat.
In beide gevallen, programma's gebruik API verzoekt om toegang te krijgen tot seriële apparaten (bijvoorbeeld „COM1“ of „/dev/modem“).
Een belangrijke subset van modem commando heet „AT“ (ay-tee) commando's, en deze alle commando's beginnen met de letters „at“ (of „AT“).
Zoals modems geëvolueerd, de lijst van commando's uitgebreid, het aanbieden van steeds meer esoterische kenmerken. Het systeem zoals beschreven in dit artikel alleen de mogelijkheid om de modem „af haak“ en later terugkeer van de modem aan „op“ de „haak.“ Het vermogen om dial cijfers, en eventueel op hun beurt een spreker voor het toezicht op de oproep, zijn nuttige functies, maar zijn niet essentieel. De volgende tabel geeft de modem commando's zullen worden gebruikt met het systeem zoals beschreven in dit artikel:
| Action | Command |
| On-Hook ("Hang Up") | ATH [zero] [return] |
| Off-Hook ("Pick Up") | ATH [one] [return] |
| "Dial" Digits | ATDT [digits,#,*] ; [return] |
| "Dial" Digit | ATDT [digit,#,*] ; [return] |
| Speaker Off | ATM [zero] [return] |
| Speaker On | ATM [two] [return] |
De volgende tabel geeft een hypothetische sequentie van commando's gebruikt voor het plaatsen van een telefoongesprek, met een geautomatiseerd systeem dat gebruik maakt van „touch-tonen“ (DTMF), en vervolgens het gesprek te beëindigen „(ophangen):“
| Command | Action |
| ATM 2 [return] | Speaker On |
| ATH 1 [return] | Off-Hook ("Pick Up") |
| ATDT 5551212 ; [return] | "Dial" 5551212 |
| ATDT 3 ; [return] | "Press" 3 |
| ATDT # ; [return] | "Press" Pound (#) |
| ATDT * ; [return] | "Press" Star (*) |
| ATH 0 [return] | On-Hook ("Hang Up") |
| ATM 0 [return] | Speaker Off |
8.4 AT commando set
De „AT reeks commando wordt uitgevoerd door bijna alle modems in het bestaan.
Deze reeks van commando's was oorspronkelijk uitgevoerd door Hayes modems.
De meeste modems worden geclassificeerd als „Hayes verenigbaar zijn, omdat ze de uitvoering van de set van AT commando's.
Alle AT commando's moet beginnen met de AT prefix, gevolgd door een commando schrijven, en eindigde met de ENTER(*) toets.
(*...ENTER, CARRIAGE RETURN, CR, RETURN, '\r', 13, 0xd, Control-M, ^M)
Spaties zijn niet toegestaan in de commando string om de command line gelezen, maar worden genegeerd door de modem tijdens het uitvoeren.
Alle opdrachten worden met de schrijfmachine, hetzij in hoofdletters of kleine letters, maar nooit gemengd.
Een opdracht die zonder enige parameters wordt beschouwd als het opgeven van hetzelfde commando, met een parameter van 0 (nul).
Hieronder volgt een verkorte lijst van AT commando's.
Een meer volledige en gedetailleerde lijst kan gemakkelijk gevonden worden op het internet via een zoekopdracht op basis van de zoekwoorden „at modem commando's.
| Cmd | Action |
| A | Answer incoming call |
| D | 0-9, A-D, # and * (e.g., AT T D 5551212*#) |
| P | Pulse dial |
| T | Tone dial |
| W | Wait for second dial tone |
| , | Pause |
| @ | Wait for 5 secs of silence |
| ! | Flash (very brief on-hook) |
| ; | Return to command mode after dialing |
| E0 | Command echo disabled |
| E1 | Command echo enabled |
| F0 | Autoscan mode |
| F1 | 300 bps connection only |
| F3 | V.23 connection only |
| F4 | 1200 bps connection only |
| F5 | 2400 bps connection only |
| F6 | 4800 bps connection only |
| F7 | 7200 bps connection only |
| F8 | 9600 bps connection only |
| F9 | 12000 bps connection only |
| F10 | 14400 bps connection only |
| H0 | Modem on-hook (hang up) |
| H1 | Modem off-hook (pick up) |
| I0 | Product code |
| I1 | Checksum code |
| I2 | ROM test |
| I3 | Firmware and device ID |
| L0 | Low speaker volume |
| L1 | Low speaker volume |
| L2 | Medium speaker volume |
| L3 | High speaker volume |
| M0 | Speaker off |
| M1 | Speaker on until carrier detect |
| M2 | Speaker on |
| M3 | Speaker off during dialing, on until carrier detected |
| N0 | Connect only at DTE rate |
| N1 | Auto rate negotiation |
| O0 | Return to data mode |
| O1 | Initiate an equalizer retrain and return to data mode |
| P | Pulse dial |
| Q0 | Result codes enabled |
| Q1 | Result codes disabled |
| T | Tone dial |
| V0 | Numeric responses |
| V1 | Text responses |
| W0 | Report DTE speed only |
| W1 | Report wire speed, error correction protocol, and DTE speed |
| W2 | Report DCE speed only |
| X0 | Hayes Smartmodem 300 compatible responses/blind dialing |
| X1 | Same as X0 plus all CONNECT responses/blind dialing |
| X2 | Same as X1 plus dial tone detection |
| X3 | Same as X1 plus busy signal detection/blind dialing |
| X4 | All responses and dial tone and busy signal detection |
| Y0 | Long space disconnect disabled |
| Y1 | Long space disconnect enabled |
| Z0 | Reset and recall user profile 0 |
8.5 Het testen van de modem
In dit gedeelte wordt beschreven methoden om snel na te gaan of de mogelijkheid om een modem is aangesloten op de computer.
De eerste methode is geschikt voor Windows 98/NT/Me/2K/XP.
Het basisidee is om te beginnen met „seriële communicatie-software,“ die gevonden kunnen worden in bijna alle typische installatie van het besturingssysteem Windows: „HyperTerminal“.
Windows 98 : "C:\Program Files\Accessories\HyperTerminal\Hypertrm.exe"
Windows 2000\XP: "C:\Program Files\Windows NT\hypertrm.exe"
(De dubbele aanhalingstekens hierboven weergegeven nodig zijn bij het maken van snelkoppelingen of bij het uitvoeren van de command-prompt, want het bestand paden spaties bevatten.)
HyperTerminal kunnen worden gelanceerd vanaf de command prompt of door te navigeren menu's.
Onder Windows 2000\XP, bijvoorbeeld, de software link is te vinden aan het einde van de weg van de volgende menu's:
Start -> Programs -> Accessories -> Communications -> HyperTerminal -> HyperTerminal
Menu hiërarchie leiden uit de Start menu te HyperTerminal
Als je begint met HyperTerminal, meerdere dialoogvensters verschijnen:
HyperTerminal dialoogvensters:
1. Connection Description: Geef willekeurige naam;
2. Connect To: Selecteer haven met modem (bijvoorbeeld COM1);
3. COM1 Properties: Bit rate voor de communicatie tussen de PC en de modem, enzovoort
Ik vermeld een lage bitsnelheid (2400 bits per seconde) tussen de PC en het modem alleen maar omdat dit waarschijnlijk aan het werk voor iedere modem dat is niet officieel een antiek.
Het is gebruikelijk dat bij moderne modems te communiceren met de PC bij snelheden rond 115200 bits per seconde, zelfs wanneer de gegevens-tarief op de telefoon draad is zo laag 9600 bits per seconde.
De volgende afbeelding toont een simpele modem sessie met HyperTerminal:

Met behulp van HyperTerminal te proberen gebruik te maken van verschillende modem commando's
Deze aantekeningen blijkt een gemakkelijke manier om een modem met de Windows besturingssysteem.
Er zijn tal van andere „seriële communicatie“ softwareprogramma's voor Windows en Linux.
Voor Linux (of UNIX varianten) je zou kunnen doen van iets wat lijkt op „echo atm2 > /dev/modem“ op een command line, of fp = fopen( "/dev/modem", "w" ); gevolgd door verklaringen zoals fprintf( fp, "atm2" ); op een eenvoudige C programma.
8.6 Broncode voor de controle een modem
De C/C++ computer code hieronder toont het verzenden van tekst-commando's naar een modem.
Hoewel de computer code wordt hieronder weergegeven voor de Windows besturingssysteem, de ideeën zijn gemakkelijk gegeneraliseerd voor andere besturingssystemen.
#include < windows.h >
HANDLE hCom = ((HANDLE)(0));
int main()
{
DCB dcb;
unsigned long int n = 0;
char * str = "COM1";
hCom = CreateFile( str, (GENERIC_READ | GENERIC_WRITE),
0, NULL, OPEN_EXISTING, 0, NULL );
GetCommState ( hCom, (&(dcb)) );
dcb.BaudRate = CBR_9600;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
SetCommState ( hCom, (&(dcb)) );
WriteFile( hCom, "ATM2\r", strlen("ATM2\r"), (&(n)), 0 );
FlushFileBuffers( hCom );
Sleep(1000);
WriteFile( hCom, "ATH1\r", strlen("ATH1\r"), (&(n)), 0 );
FlushFileBuffers( hCom );
Sleep(1000);
WriteFile( hCom, "ATDT5551212;\r", strlen("ATDT5551212;\r"), (&(n)), 0 );
FlushFileBuffers( hCom );
Sleep(3000);
WriteFile( hCom, "ATH0\r", strlen("ATH0\r"), (&(n)), 0 );
FlushFileBuffers( hCom );
Sleep(1000);
WriteFile( hCom, "ATM0\r", strlen("ATM0\r"), (&(n)), 0 );
FlushFileBuffers( hCom );
Sleep(1000);
CloseHandle( hCom );
return(0);
}
De bovenstaande software toegang te krijgen tot een seriële poort (dat wil zeggen, „COM1“), en we gaan uit van een modem is aangesloten op deze poort.
De software stuurt tekst commando's naar de modem te doen de volgende dingen:
1. Zet de interne luidspreker („ATM2\r“);
2. Neem de telefoon „uitgeschakeld“ draad „haak“ („ATH1\r“);
3. Dial een telefoonnummer („ATDT5551212;\r“);
4. Zet de telefoon draad weer „op de haak“ („ATH0\r“);
5. Schakel de interne luidspreker („ATM0\r“).
De computer code voorbeeld hierboven toont een aantal van de relevante Windows API functies.
Maar het voorbeeld computer-code is zeer flexibel en niet te controleren op eventuele fouten.
De Sleep() functie aanroepingen ervoor zorgen dat het modem heeft de tijd om commando's uit alvorens je de volgende opdracht.
Idealiter zouden we controleren of er tekst reacties van de modem (bijvoorbeeld „OK“ of „ERROR“).
8.7 Modem controle C++ class (Windows besturingssysteem)
De volgende ZIP archief-bestand bevat een C++ class geschikt voor het beheersen van een modem via de Windows besturingssysteem.
Het is in wezen een meer uitgebreide versie van de demonstratie-code werd gepresenteerd.
Ook de C++ class wraps het modem functionaliteit op een zodanige wijze dat het porten naar andere platforms (bijvoorbeeld Linux) wordt eenvoudiger.
Een Microsoft Visual C++ 6.0 project bestand is opgenomen met de broncode, zodat men kan bouwen en voer de code meteen als een test.
Maar alles wat je nodig hebt zijn de twee relevante bron bestanden ( modem_control.cpp, modem_control.h ) de code te gebruiken in uw eigen software.
9. Het gebruik van de interface
9.1 Het gebruik van de interface met een computer

Configuratie gebruikt in mijn experimenten
Bevestig een splitter aan de telefoon draad, met een vertakking naar een modem, en de andere tak die naar de telefoon interface circuit.
Sluit de twee audio kabels van het circuit naar de „microfoon ingang“ en „luidspreker uitgang“ van de geluidskaart of audio-aansluitingen op de personal computer of andere audio-apparaat.
Met behulp van de modem-code beschreven elders in dit artikel kunt u gebruik maken van de modem „te“ komen, „de telefoon-en telefoon-nummers.“
Dan is de computer kunt opnemen en afspelen van audio in elke gewenste manier.
De modem code kan vervolgens worden gebruikt voor het „ophangen van de telefoon“ om het gesprek te beëindigen.
U bent verantwoordelijk voor het melden van de beller, indien u van plan om elk gedeelte van de oproep.
(... Tenzij je de regering! Anders doen wat ze zeggen, en niet als ze doen!)
9.2 Het gebruik van de interface met audio-apparatuur
Bevestig een splitter aan de telefoon draad, met een vertakking naar een gewone telefoon, en de andere tak die naar de telefoon interface circuit.
Sluit een audio signaal van de route naar een microfoon-ingang op een versterker of opname-apparaat.
Sluit de uitgang van een apparaat dat produceert low-amplitude audio (bijv. +/-1.0 Volt) naar een audio-aansluiting op de route.
Sluit niet de audio-uitgang van een stereo versterker aan het circuit, omdat de spanningen zijn zeer waarschijnlijk zeer overdreven voor telefoon-audio.
Stereo-versterkers hebben meestal speciale uitgangen (bijvoorbeeld RCA connectoren) voor het versturen van audio naar andere vormen van audio-apparatuur dat accepteren audio-ingang (bijvoorbeeld VCR, tape recorder, televisie, etc); deze "low-voltage uitgangen zijn geschikt voor gebruik met de circuit zoals beschreven in dit artikel.
Zo kan men aanvaarden of gesprekken plaats met behulp van de telefoon, en audio opnemen en afspelen tijdens het gebruik van de telefoon.
U bent verantwoordelijk voor het melden van de beller, indien u van plan om elk gedeelte van de oproep.
(... Tenzij je de regering! Anders doen wat ze zeggen, en niet als ze doen!)
10. Telefoonnetwerk concepten
10.1 Studie verwijzingen
De bediening van de telefoon systeem valt buiten het bestek van dit artikel.
Raadpleeg de referenties aan het einde van dit artikel voor meer informatie over dit onderwerp.
Maar ik bespreken interessante hoogtepunten in deze rubriek.
10.2 Basic elektrische aspecten
10.2.1 Telefoon of modem in de „haak op“ staat
Er zijn twee doelstellingen die hebben geleid tot telefoon-ontwerp:
(1) Een telefoon moet worden elektrisch "onzichtbaar" voor Direct Current (DC), net als een open circuit of een afsluiting, wanneer die in de on-haak staat;
(2) De Wisselstroom (AC) spikes gebruikt voor het maken van telefoons ring moet worden aanvaard door telefoons in de on-haak staat, zodat zij zullen ring.
Beide doelen zijn bereikt door de telefoon zo ontworpen dat een niet-gepolariseerde condensator (of twee) wordt de telefoon de enige verbinding met de telefoon in de draad bij het op-haak staat.
Zo Direct Current (DC) kan niet door, en de Wisselstroom (AC) ringen signaal kan door te bellen of de beltoon circuit.
Toen ik de DC gemeten weerstand van een telefoon in de on-haak staat, maar is overschreden 40 Megaohms.
Toen ik de DC gemeten weerstand van een modem in de on-haak staat, maar is ook beter dan 40 Megaohms.
De DC spanning die door de telefoonmaatschappij om enige weerstand te wijten aan telefoons worden off-haak is soms gerapporteerd als 48 Volts.
Ik gemeten +23.02 Volts (DC), waar ik wel de „rode draad“ positief, en de „groene draad.“
Merk op dat dit DC spanning daalt dramatisch wanneer de telefoon is genomen buiten de haak; ik +7.17 Volts (DC) gemeten wanneer de telefoon was in de off-haak status.
Bellen spanning wordt gemeld te worden 90 Volts (16-60 Hz Wisselstroom), die kan opgeschrikt of verwonden mensen onder bepaalde omstandigheden.
10.2.2 Telefoon of modem in de „haak“ stand „off“
Telefoons en Modems verzoek gebruik van een telefoon draad door het verminderen van hun eigen DC elektrische weerstand.
Deze voorwaarde wordt ontdekt door de telefoon en de draad wordt actief.
Toen ik de DC gemeten weerstand van een telefoon op de haak off-stand, het was ongeveer 6.83 Megaohms.
Toen ik de DC gemeten weerstand van een modem in de off-haak staat, het was bijna precies 1.500 Megaohms.
Herinneren eraan dat deze beide apparaten had overschreden 40 Megaohms resistenties dat wanneer in de on-haak staat.
Interessant is dat deze weerstand is vrij hoog, in de buurt van een mens de elektrische weerstand bij het aanraken van de draden met droge handen.
Als ik bijvoorbeeld een draad in mijn linkerhand, en een draad in mijn rechterhand, met relatief droge handen, ik kan wel een weerstand zo laag 0.5 Megaohms door knijpen stevig aan de kabels.
Knijpen zeer licht geeft mij een hoger DC weerstand, ongeveer 1.5 Megaohms, die blijkbaar nog altijd laag genoeg om te vertellen het telefoonbedrijf dat ik een telefoon.
(Nooit telefonisch contact draden!)
Zo kan men de simulatie van het nemen van een telefoon of modem off-haak alleen door de invoering van een 1 Megaohm weerstand in de telefoon draad.
Men kan dit doen door middel van een schakeling met relais gecontroleerd door een poort van een computer (RS-232, parallel port, USB, etc), maar een modem is een gemakkelijke, goedkope en veelzijdig alternatief voor een aangepaste relais circuit.
Zoals hierboven vermeld, de telefoonmaatschappij houdt een Direct Current (DC) potentiaalverschil (spanning) over de telefoon draad op te sporen telefoons off-haak en terug te keren naar de on-haak staat.
Ik gemeten deze spanning als +23.02 Volts (DC) voor on-haak, en +7.17 Volts (DC) voor off-haak.
10.3 Audio-signalen
Met de telefoon in de off-haak staat, de „kiestoon“ lijkt te hebben een Wisselstroom (AC) Root-Mean-Square (RMS) spanning van 0.139 Volts AC.
De hele signaal wordt vertekend door een aanzienlijke DC spanning van ongeveer +5 Volts DC; ik +7.17 Volts DC gemeten tijdens een experiment.
De audio-signalen worden zeer kleine afwijkingen (slechts een paar procent) rondom deze DC spanning.
Dit betekent bijvoorbeeld dat de audio-signalen niet schommelen rond een nul spanning; de audio signalen nooit de huidige stroming in de tegenovergestelde richting over de telefoon draad.
Het blijkt dat mijn telefoon interface circuit zet de 0.139 VAC signaal tot ongeveer 0.030 VAC (dat wil zeggen, 30 mV AC) voor het gebruik van audio-apparatuur (bijvoorbeeld, microfoon ingang van een geluidskaart).
10.4 Audio bandbreedte
De primaire functie van een telefoon-systeem is in staat te stellen gesproken communicatie tussen mensen.
Het volgende diagram toont de gemiddelde spectrale energie voor een paar seconden van meningsuiting audio.

Gemiddelde spectrale energie (decibel schaal) van enkele seconden van meningsuiting voor de gehele hoorbare bereik (20 Hz te 20 kHz). De verticale schaal is in decibel, dus zelfs een bescheiden daling op deze grafiek geeft een dramatische daling van de energie-geluid.
De decibel schaal van de grafiek hierboven betekent dat lagere waarden op de grafiek zijn eigenlijk orde van grootte minder dat hogere waarden op de grafiek.
Het is duidelijk dat een aanzienlijk deel van de totale energie van meningsuiting geluid is in het interval 0 Hz te 4000 Hz.
Mensen betrouwbaar kan begrijpen toespraak zelfs wanneer alle audio-energie buiten het interval 300 Hz te 3000 Hz wordt geëlimineerd.
Echter, de subjectieve gevolgen van de beperking van audio-energie aan deze reeks is dat stemmen geluid muffled en gebrek articulatie.
Het subtiele verschil tussen 'F' en 'S' is gemakkelijk verloren meer dan een telefoon.
De telefoon-systeem in de Verenigde Staten heeft een voice-kanaal dat alleen uitoefent frequenties tussen 0 Hz te 4000 Hz.
Maar de stem passband is beperkt tot het bereik 300 Hz te 3000 Hz, en er is snel toenemende verzwakking van de energie buiten de stem van deze band.

Voice bandbreedte ( 300 Hz - 3000 Hz ) binnen de Voice Channel ( 0 Hz - 4000 Hz ) van de telefoon in de Verenigde Staten
De volgende afbeelding is een spectrale perceel van enkele seconden van een typisch opgenomen telefoongesprek.

Spectrale perceel van enkele seconden van een typisch geregistreerd telefoongesprek (mannelijke stem)
Hoewel de frequentie resolutie is relatief laag, de gevolgen van de beperkte bandbreedte van de telefoon is duidelijk.
Voor experimentele doeleinden, de audio eigenschappen van een telefoon-systeem kan worden gesimuleerd met een grafische equalizer, of een bandfilter filter in een degelijke editing software pakket, simpelweg door te filteren op alles onder 350 Hz en alles boven 3500 Hz.
10.5 Belangrijke audio-frequenties
Het „touch-tonen“ gebruikt om „nummers“ en interactie met geautomatiseerde systemen staan bekend als de Dual-Tone Multi-Frequency (DTMF) signalen.
Deze kleuren kunnen worden die enkel door het toevoegen van twee sine golven samen met de goede frequenties, zoals weergegeven in de volgende matrix van frequenties.
Merk op dat de minimale tijd houden bij het verzenden van een DTMF geluid is 50 milliseconds, en de minimale release tijd (stille kloof tussen DTMF geluiden) is 50 milliseconds.
Met behulp van vertragingen van 200 milliseconds zou waarschijnlijk betrouwbaar.
De „beltoon is, drukke signaal,“ en „ring-back“ klinkt ook omschreven frequentie combinaties in de Verenigde Staten:
11. Alternatieve methoden telefoon-interface
Ik investeerde $30 en vier uur voor het opbouwen van het circuit om een computer te verzenden en ontvangen van audio-signalen over een telefoon draad.
Dit vereist een cetain vorm van expertise en apparatuur.
Ook, tenzij u bereid bent te gaan in op de business van de productie van deze route, kunt u niet leiden tot een product (goedkope voice-mail of antwoordapparaat) vereist dat deze interface.
De eenvoudigste, goedkoop alternatief voor de hardware methode ik beschreven in dit artikel is gebruik te maken van een software-methode om toegang te krijgen tot de stem mogelijkheden van een „voice-modem.“
Maar ik moet zeggen dat in vergelijking met het gebruik van een aangepaste route, met behulp van een voice-modem in combinatie met speciale software wordt waarschijnlijk zeer platform-specifieke en over het algemeen erg pijnlijk te programmeren, configureren en gebruiken.
Het voordeel (in de veronderstelling dat u een voice-modem) is dat dit een pure software-oplossing.
Als u een voice-modem en speciale software, uw systeem kan worden net zo eenvoudig als het volgende diagram.

Systeem met behulp van een interne „spraak-modem“ en software
Afhankelijk van uw behoeften, de stem van gegevens aspect van de voice-modem kan worden half-duplex (dwz, de software kan „praten“ of „luisteren,“ maar niet beide tegelijk) of full-duplex.
Half-duplex kan toevoegen wat de complexiteit van de controle-software, want je moet beslissen wanneer het verzenden en ontvangen van audio.
De stem modem digitaliseert telefoon draad audio en stuurt de gegevens over USB of RS-232 als extern, of over het PCI bus, als intern.
12. Microsoft Telephony API (TAPI)
Microsoft besturingssystemen hebben TAPI 2.0 en TAPI 3.0 DLLs.
TAPI 3.0 zou kunnen hebben tal van software-problemen, en de meeste mensen die gebruik hebben gemaakt van Microsoft TAPI hebben gewoon gebruikt TAPI 2.0 (die heeft bijna alle gewenste functionaliteit) in plaats van TAPI 3.0.
Gebruik de „wave/in“ en „wave/out“ hulpmiddelen om toegang te krijgen tot een voice-modem-audio streams.
Zie de TAPI boek in het referenties van dit artikel. Het boek is oud, maar het TAPI 2.0 beschrijft in detail.
13. Java Telephony API
Ik weet niet iets over de Java Telephony API.
Maar ik neem aan dat het heeft het voordeel van is onafhankelijk van de besturingssystemen, en waarschijnlijk heeft veel eenvoudiger dan de abstracties Microsoft TAPI!
14. Diverse commerciële producten
Commerciële, rack geplaatst hardware-interfaces met meerdere externe telefoon draden in staat zijn de uitwisseling van spraak-data met computers.
„Voice Over IP“ (VoIP) producten, zoals „Internet telefoons,“ worden nu overal (bijvoorbeeld „Skype).“
Uiteraard computer software kan gemakkelijk toegang te krijgen tot de audio voor deze telefoonverbindingen.
15. Referenties
De beste, meest complete gids voor de telefoon circuits die ik heb ondervonden op het internet:
Een andere interessante referentie:
Hilarious (en krankzinnig) gids voor betaal-telefoons in de Verenigde Staten en Canada:
(Kijk naar de „top“ van de „respondenten“ pay-telefoonnummers, de telefoon-audio-samples, en de telefoon foto's.)
16. Boeken
16.1 Understanding Telephone Electronics (4th ed)
Understanding Telephone Electronics (4th ed);
Newnes; 2001;
Stephen J. Bigelow, Joseph J. Carr, Steve Winder;
$25.45 US (2001)
Dit boek beschrijft een groot aantal aspecten van de telefoon-circuits en de werking van het telefoonnet in de VS.
Er zijn veel details over de circuits en protocollen; alles van een telefoon naar de telefoon-netwerk zelf.
Ongetwijfeld de technologie is heel anders nu, maar dit boek is waarschijnlijk wat meer praktische dan een geschiedenisboek.
16.2 Windows Telephony Programming: A Developer's Guide to TAPI
Windows Telephony Programming: A Developer's Guide to TAPI;
Addison-Wesley; 1998;
Chris Sells;
$33.95 US (1998)
De Microsoft Telephony API (TAPI) is onnodig rommelig en onoverzichtelijk, en is nu erg verouderd. Het boek bovengenoemde wellicht de enige boek ooit gepubliceerd over de Microsoft Telephony API (TAPI).