Computer audio interface til wire-baserede telefonnet
Colin Fahey

En computer kan yde telefonisk opkald via et modem og et simpelt kredsløb.
1. Indledning
Dette dokument beskriver, hvordan du kan bruge enhver konventionel modem og et simpelt kredsløb for at give en personlig computer (PC), med alle operativsystemer, evnen til at placere telefonsamtaler, som kan medføre stemme interaktion.
Et almindeligt modem bruges til at aktivere telefon-ledning ved at gå "off-hook" og senere frigivelse af telefon-ledning ved at gå "på krog (hænge op)."
Et simpelt elektrisk kredsløb bruges til at give enhver lydenhed, såsom et lydkort eller lyd-interface af en personlig computer (PC), adgang til lydsignaler på en telefon-ledning.
Således er en personlig computer (PC) kan indlede en forbindelse til et telefonnummer, og derefter vente på en menneskelig eller en ordning med automatisk svar, og derefter indlede en samtale baseret på indlæg eller andre lyde.
Dette dokument er beregnet til hobbyists interesseret i at lære et par ting om den elektriske krav og protokol for at interagere med Central Office (CO) af en ledning tilsluttet telefonnettet i USA (US).
Der er mange teknologier for at tillade folk at interagere med stemmen baserede systemer gennem telefoner.
Der er mange kommercielle produkter og services, der udbydes til at håndtere alt er forbundet med telefon interaktion med en corporate database.
Det er ganske nemt at finde hardware til at håndtere mange telefonopkald til et enkelt nummer.
Telefoni er blevet udvidet til internettet, med protokoller gerne "Voice over Internet Protocol" (VoIP).
Computere overalt på Internettet kan konfigureres til at interagere med VoIP via talegenkendelse og talesyntese.
Disse computere kan eventuelt følge stemme samtale arbejdsdiagram udtrykt i XML tekstfiler (Voice XML).
Dette dokument har intet at gøre med nogen af de praktiske løsninger på problemet med at automatisere stemme samspil med en virksomhed eller organisation.
Dette dokument er bestemt til underholdning for hobbyists med små budgetter.
2. Disclaimers
Sådan et elektronisk kredsløb, og forbinder til en telefonnet, indebærer mange risici.
Du er ansvarlig for at lære om alle love, farer og risici, der kan anvendes.
Nedenstående er en liste over nogle af de spørgsmål, du skal overveje, hvis du er interesseret i at konstruere og teste et kredsløb ligner det en featured i denne artikel:
1. Alle oplysninger om de elektriske specifikationer for telefon-service er kun gyldige i USA (US).
2. Ringetone spænding på telefon ledninger (90 volt) kan skade mennesker.
Lynnedslag eller faldet magt ledninger kan føre til spændinger på telefon ledninger, som kan skade mennesker.
3. Du er ansvarlig for enhver skade på telefon selskab kredsløb forårsaget af Deres brug af uautoriseret udstyr i dit hjem eller kontor.
4. Optagelse telefon samtaler uden udtrykkelig godkendelse af alle involverede parter er imod loven.
(... Medmindre du er den regering! Ellers kan gøre som de siger, og ikke som de gør!)
5. Du er ansvarlig for eventuelle skader på din computer forårsaget ved at koble dit eget udstyr til din computer.
6. Du kan ikke sælge et produkt beregnet til brug med et telefonnet uden godkendelse fra FCC.
Dette dokument er kun en beskrivelse af mine personlige erfaringer.
Du er ansvarlig for at lære om lovgivning og risici fra autoritative kilder.
3. Telefon audio interface kredsløb
Formålet med kredsløbet er beskrevet i dette afsnit er at give mulighed konventionelle audio optagelse og afspilning udstyr, såsom et lydkort eller lyd-port på en personlig computer (PC), til at sende og modtage lyd via en konventionel jord ledning (kabelforbundet) telefon-forbindelse.
Den telefon tråd og audio udstyr er ikke direkte forbundet; tilkoblingsanordningen er kun gennem transformere.
Begge sider af grænseflade er beskyttet mod alt for store spændinger.
Signalerne er begrænset til en række frekvenser (båndbredde) omsættes til telefon audio (300 Hz til 3500 Hz).
Kredsløbet har kun "passive" komponenter; al kørsel højspænding eksterne.
Kredsløbet skal bruges sammen med et modem, telefon eller andre kredsløb i stand til at gå "off-hook" (bringe modstand på wiren lav nok til at angive, til den centrale Office (CO) at wiren er i brug).
Det ville være trivielt at tilføje en "off-hook" aspekt i dette kredsløb, men som har et kredsløb på alle allerede er en stor hindring for mange hobbyists.

Udseende af de forsamlede kredsløb

Udseende af kredsløb

Skematisk af telefon audio interface kredsløb
Du kan bygge enheden næsten nøjagtig som det fremgår ovenfor, hvis du foretage følgende investeringer:
1. Sørg for at du har grundlæggende værktøjer: skruetrækkere, lodning jern, kniv;
2. Besøg Radio hytte, køber varer opført nedenfor, for $ 29 efter skat;
3. Besøg enhver hardware butik, købe to møtrikker, bolte, spændeskiver, for $ 1.
4. Bruger omkring fire timer at opbygge kredsløbet efter de skematiske;
Hvis du ikke har erfaringer at bygge elektroniske kredsløb, lodning, bore huller og lave elektriske målinger, skal du ikke gøre dette til din første projekt!
Den eneste person, der skal forsøge at opbygge dette kredsløb er den person, der allerede kender til sikker på, at han eller hun kan bygge det!
4. Radio Shack: allestedsnærværende elektronik butik
Radio Shack er forbruger elektronik selskab med butikker rundt om i verden. Det følgende er et link til deres hjemmeside:
På deres hjemmeside en person kan finde et link med navnet "Electronic Components", som fører til deres katalog af elektroniske komponenter og tilhørende dokumentation.
En person kan finde priser for dele.
En person kan få en liste over de nærmeste butik steder, og kort.
Dele kan bestilles online.
Jeg har besluttet at bygge min simple kredsløb ved hjælp Radio Shack dele, fordi det betyder, at nogen anden i verden kan let reproducere mit arbejde.
Også en del tilbydes af Radio Shack er så godt som garanteret at være til rådighed for mange år til en lav pris.
Her er en liste over Radio Shack dele Jeg plejede at opbygge kredsløbet, med de katalog numre:
| 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: ikke så allestedsnærværende hardware butik
Jeg er nødvendige bolte, spændeskiver, og nødder til at spænde en telefonstikket til plast tilfældet i mit kredsløb.
Jeg gik til Ace Hardware, men jeg kunne have gået til Home Depot, eller måske endda et supermarked, for at finde lignende dele.
| 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. Værktøj og tilbehør
Nedenstående tabel viser nogle af de emner, jeg havde brug for konstruktion og brug af kredsløbet:
| 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. Henvendelse om kredsløbet
Jeg er ikke en elektroingeniør.
Jeg studerede forskellige telefon kredsløb (se henvisninger opført nær slutningen af denne artikel), og udvindes forskellige elementer, som vil støtte mit eget design mål.
Hvis du var virkelig desperat, og risiko for din PC ikke var en faktor, kan du tilslutte en telefon-ledning til din lyd havn ved hjælp af kun et par kondensatorer!
Det er en meget dårlig idé, fordi ringen spænding, og de mulige tilfældige spænding pigge på telefon tråd, kan skade ubeskyttede enheder.
De Zener dioder i mit kredsløb kortslutte uforholdsmæssigt store spændinger.
Bemærk, at de står overfor modsatte retninger, så for en given anvendt spænding med en given polaritet, en Zenerdiode er klar til at foretage løbende normalt, og den anden er klar til reverse-fordeling bør spændingen overstiger dets rating (eg, 5.1 V) .
Først når en spænding overstiger reverse opdeling spænding på en af de Zener dioder vil pair i sidste ende gøre det muligt løbende at flyde, således kortslutning de tråde, som par dioder er tilsluttet.
Bemærk at dette virker uanset hvor signalerne stammer fra.
Vekselstrøm (AC) signaler fra telefon-ledning, der er større derefter 5,8 volt ( 5.1 V + 0.7 V ) efter passerer gennem transformer vil blive klippet.
Jævnstrøm (DC) eller vekselstrøm (AC) lydsignaler fra en lydkilde, og ikke telefon tråd, vil også blive klippet på 5.8 Volts.
Så hver part, telefon-selskab og audio udstyr er beskyttet mod alt for store spændinger kommer fra den anden part.
Enheden er virkelig et par af identiske kredsløb. Enten audio plug kan bruges til input eller output.
Dybest set, både lyd-signaler er koblet til den fælles telefon-signal.
8. Ved hjælp af et modem til at gå "off-hook"
8.1 Formålet med modem
Formålet med modem i dette system er at skabe en elektrisk betingelse, at udbyderen af telefonitjenesten vil genkende som en anmodning om at blive en aktiv deltager i telefonnet.
Denne anmodning kaldes "gå off-hook," en henvisning til den oprindelige telefon design, kræves en bruger til at ophæve en højttaler eller håndsættet ud i en krog.
Aktiveringen anmodning er næsten øjeblikkeligt ydes inden for en brøkdel af et sekund.
Når wiren bliver aktiv, alle andre aspekter af telefoni kan gennemføres via audio-signaler.
Selv om indberetning af telefonnumre "(opkald)" kan ske ved at afspille lydfiler ( *.WAV, *.MP3 ), registreret audio (DAT, audio CD, bånd) eller software, lyd-syntese (sin() funktioner), modemet har den iboende evne til at varetage denne funktion.
Men det skal forstås, at det eneste formål med modem anmoder om aktivering af telefon-ledning.
Hvis en person har en alternativ metode til at simulere et off-hook tilstand (dvs. blot at sænke modstanden på tværs af telefon-wire), modemet er ikke påkrævet.
Men et modem er en meget billig hverdagskost, og bekvem anordning til at udføre denne funktion.
Systemet er beskrevet i denne artikel ikke kræver et modem med audio optagelse eller afspilning kapacitet, undertiden kaldet en "voice modem."
Men i et andet afsnit af denne artikel Jeg drøfte muligheden for at anvende en stemme modem som et alternativ til at bruge en tilpasset elektriske kredsløb.
8.2 Typiske modem
Jeg valgte at bruge et eksternt modem fremstillet af Hayes kaldes "Accura", en V.92 fax-modem med voicemail formåen.
Enhver modem kan bruges til systemet beskrevet i denne artikel.
Jeg ønskede et eksternt modem, blot fordi det er let at vedlægge en hvilken som helst computer, og jeg kan bringe det til en vens hus til brug sammen med deres bærbar eller stationær computer.
Selvom det er næsten vigtigere, jeg også overvejet muligheden for, at måske en Basic Stamp 2 computer kan bruge RS-232 modem.
Forsigtig: Serial havne (RS-232) havne, ligesom PS/2 havne, er ved at blive udfaset, og USB er den nye standard.
En ekstern USB modem ofte kan tilgås af software, som om det var en arv "COM" havn enhed ved enhedsdrivere, der kommer med modem.
Der er en lille USB/RS-232 adapter (~$30), der kan bruges til at forbinde nutidige laptops og desktop-computere til RS-232 enheder.
Sådan en adapter har en tilsvarende enhedsdriver til at emulere en arv seriel port interface (eg, "COM" enhed).

Hayes eksternt modem: box

Hayes eksternt modem
8.3 Modem kommandoer
Når et modem er først aktiveret, den træder en tilstand kaldet "kommando-mode."
Hvis modemet held opretter forbindelse til en fjerncomputer modem eller fjernbetjening fax enheden over telefonen tråd, den træder en tilstand kaldet "data mode."
Men systemet er beskrevet i dette dokument ikke vil anvende modem til at etablere et "data-mode" forbindelse med en fjernbetjening enheden, så modemet vil altid være i "kommando mode."
Når du er i kommando mode, modemet accepterer kommandoer i form af almindelig ASCII tegn.
Figurer er udvekslet mellem modem og computeren via et serielt kabel, eller via en enhedsdriver, der gør en intern kortet (f.eks PCI kort) tilgængelig som en seriel enhed.
I begge tilfælde programmer bruger API opkald til adgang serielle enheder (f.eks "COM1" eller "/dev/modem").
En stor delmængde af modem-kommandoer kaldes "AT" (ay-tee) kommandoer, og disse kommandoer alle begynder med de bogstaver "at" (eller "AT").
Som modemer udviklet sig, en liste af kommandoer udvidet, tilbyder stadig mere esoteriske funktioner. Systemet er beskrevet i denne artikel kun kræver evne til at træffe de modem "off krogen" og senere vende tilbage modemet til "den krog" stat. Evnen til at ringe cifre, og eventuelt tænde en højttaler til overvågning af opkald, er nyttige funktioner, men er ikke afgørende. Nedenstående tabel viser det modem kommandoer som sandsynligvis vil blive anvendt med systemet er beskrevet i denne 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] |
Nedenstående tabel viser en hypotetisk sekvens af kommandoer bruges til at placere en telefonopringning, interagere med et automatisk system, der bruger "tryk toner" (DTMF), og derefter afslutte opkaldet "(hænge op):"
| 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 kommando sæt
De "AT kommando sæt er gennemført af næsten alle modemer i eksistens.
Dette sæt kommandoer blev oprindelig gennemført af Hayes modemer.
De fleste modemer er klassificeret som "Hayes forenelig fordi de gennemfører sæt AT kommandoer.
Alle AT kommandoer skal begynde med de AT prefix efterfulgt af en kommando brev, og sluttede med ENTER(*) nøgle.
(*...ENTER, CARRIAGE RETURN, CR, RETURN, '\r', 13, 0xd, Control-M, ^M)
Mellemrum er tilladt i kommandoen string at øge command line læsbarheden, men er ignoreret af modemet under kommando udførelse.
Alle kommandoer kan indtastes i enten øverste sag eller små bogstaver, men aldrig blandet.
En kommando er udstedt uden nogen parametre anses som præciserer den samme kommando med en parameter for 0 (nul).
Følgende er en fortættet liste over AT kommandoer.
En mere komplet og detaljeret liste kan let findes på internettet via en søgning ved hjælp af søgeord "at modem-kommandoer.
| 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 Test modemet
Dette afsnit beskriver metoder til hurtigt at kontrollere, evnen til at styre et modem tilsluttet computeren.
Den første metode er egnet til Windows 98/NT/Me/2K/XP.
Den grundlæggende idé er at starte "seriel kommunikation" software, der kan findes i næsten enhver typisk installation af Windows operativsystem: "HyperTerminal".
Windows 98 : "C:\Program Files\Accessories\HyperTerminal\Hypertrm.exe"
Windows 2000\XP: "C:\Program Files\Windows NT\hypertrm.exe"
(Den dobbelte anførselstegn vist ovenfor er nødvendige, når de foretager genveje eller når fuldbyrdelsesstaten fra kommandoprompten, fordi filen stier indeholde mellemrum.)
HyperTerminal kan affyres fra kommandoprompten eller ved at navigere i menuerne.
Under Windows 2000\XP for eksempel software-linket kan findes ved udgangen af den følgende sti på menuer:
Start -> Programs -> Accessories -> Communications -> HyperTerminal -> HyperTerminal
Menu hierarki fører fra Start menuen til HyperTerminal
Når du starter HyperTerminal flere dialogbokse vist:
HyperTerminal dialogs:
1. Connection Description: Indtast vilkårlige navn;
2. Connect To: Vælg port med modem (f.eks COM1);
3. COM1 Properties: bithastighed for kommunikationen mellem PC og modem osv.
Jeg angivet en lav bithastighed (2400 bit per sekund) mellem PC og modem simpelthen fordi det er sandsynligt, at arbejde for hvert modem, der er ikke officielt et antikt.
Det er almindeligt, at moderne modemer til at kommunikere med PC ved hastigheder omkring 115200 bits per sekund, selv når data rate på telefon tråd er så lav som 9600 bit per sekund.
Følgende billede viser et simpelt modem session bruger HyperTerminal:

Brug HyperTerminal at forsøge at bruge forskellige modem-kommandoer
Dette bemærker ovenfor viser en nem måde at teste et modem med Windows operativsystemet.
Der er talrige andre "seriel kommunikation" softwareprogrammer til Windows og Linux.
For Linux (eller UNIX varianter) kan du være i stand til at gøre noget lignende "echo atm2 > /dev/modem" på en kommandolinje, eller fp = fopen( "/dev/modem", "w" ); efterfulgt af udsagn såsom fprintf( fp, "atm2" ); på en enkel C program.
8.6 Kilde kode til at styre et modem
De C/C++ computer kode vist nedenfor viser transmittere tekst-kommandoer til et modem.
Selvom computeren kode vist nedenfor, er til den Windows operativsystem, de ideer er let generaliserede for andre operativsystemer.
#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);
}
Softwaren ovenfor få adgang til en seriel kommunikationsport (dvs. "COM1"), og vi antager et modem er tilsluttet til denne port.
Softwaren sender tekst-kommandoer til modemet for at gøre følgende ting:
1. Drej på det indre højttaler ("ATM2\r");
2. Tag den telefon wire "off-hook" ("ATH1\r");
3. Ringe til et telefonnummer ("ATDT5551212;\r");
4. Sæt telefonen tråd tilbage "på krog" ("ATH0\r");
5. Sluk for det indre højttaler ("ATM0\r").
Eksemplet computer kode ovenfor viser nogle af de relevante Windows API funktioner.
Men eksemplet computer kode er meget ufleksibelt og ikke kontrollere for eventuelle fejl.
De Sleep() funktion invocations sikre, at modemet har tid til at afslutte kommandoer før videre til næste kommando.
Ideelt set ville vi kontrollere for tekst svar fra modemet (f.eks "OK" eller "ERROR").
8.7 Modem kontrol C++ class (Windows operativsystem)
Følgende ZIP arkivfil indeholder en C++ class egnet til at kontrollere et modem via Windows operativsystemet.
Det er primært en mere omfattende version af demonstrationen kode præsenteret ovenfor.
Også den C++ class indhylle modemet funktionalitet på en sådan måde, at flytte til andre platforme (f.eks Linux) er gjort lettere.
En Microsoft Visual C++ 6.0 projekt fil er inkluderet med kildekoden, så man kan opbygge og udføre kode umiddelbart som en test.
Men alt hvad du behøver, er de to relevante kildefilerne ( modem_control.cpp, modem_control.h ) at bruge koden på dit eget software.
9. Brug af interface
9.1 Brug af interface med en computer

Konfiguration bruges i mit forsøg
Vedhæft en splitter til telefon-tråd, med en filial gå til et modem, og den anden gren går til telefon-interface kredsløb.
Forbind de to audio tråde fra kredsløbet til "mikrofon input" og "højttaler output" fra lydkort eller lyd stikkontakter på den personlige computer eller anden lydenhed.
Brug af modem-kode beskrevet andetsteds i denne artikel, kan du bruge modem til at "ringe" og "telefon numre."
Så computeren kan optage og afspille lyd i alle ønskede måde.
Modemet kode kan derefter bruges til at "hænge op på telefon" til at afslutte opkaldet.
Du er ansvarlig for anmeldelse af opkald, hvis du ønsker at registrere nogen del af indkaldelsen.
(... Medmindre du er den regering! Ellers kan gøre som de siger, og ikke som de gør!)
9.2 Bruge grænseflade med lydudstyr
Vedhæft en splitter til telefon-tråd, med en filial gå til en almindelig telefon, og den anden gren går til telefon-interface kredsløb.
Tilslut enten audio signal fra kredsløbet til en mikrofon input til en forstærker eller indspilning enhed.
Forbind udgangen af enhver enhed, der producerer lav amplitude audio (eg, +/-1.0 volt) til enten audio stik på kredsløbet.
Tilslut ikke audio output af en stereoforstærker til kredsløbet, fordi de spændinger er meget sandsynligt at være meget stor for telefon-lyd.
Stereo forstærkere normalt har særlige resultater (f.eks RCA stik) for at sende output lyd til andre former for audio udstyr, der accepterer audio input (f.eks VCR, båndoptager, tv, etc); disse low voltage output er egnede til brug sammen med kredsløb beskrevet i denne artikel.
Således kan man acceptere eller placere opkald via telefon, og optage og afspille lyd ved brugen af telefon.
Du er ansvarlig for anmeldelse af opkald, hvis du ønsker at registrere nogen del af indkaldelsen.
(... Medmindre du er den regering! Ellers kan gøre som de siger, og ikke som de gør!)
10. Telefonnet begreber
10.1 Undersøgelse henvisninger
Driften af telefon-system ligger uden for denne artikel.
Consult henvisningerne i slutningen af denne artikel for nogle oplysninger om emnet.
Men jeg diskutere interessante højdepunkter i dette afsnit.
10.2 Grundlæggende elektriske aspekter
10.2.1 Telefon eller modem i "den krog" tilstand
Der er to mål, der førte til telefon-design:
(1) En telefon skal være elektrisk "usynlige" til jævnstrøm (DC), ligesom et åbent kredsløb eller en afbrydelse, når det er i on-hook stat;
(2) De Vekselstrøm (AC) spidser bruges til at lave telefoner ring bør accepteres af telefoner i den krog tilstand, så de vil ring.
Begge disse mål er opnået ved at have telefon udformet sådan, at en ikke-polariseret kondensator (eller to) er den telefon eneste link til telefon-ledning, når der i de on-hook stat.
Således jævnstrøm (DC) ikke kan komme igennem, og Vekselstrøm (AC) ringen signalet kan passere igennem til klokker eller ringen kredsløb.
Da jeg målte DC modstand på en telefon i den krog stat, men overskredet 40 Megaohms.
Da jeg målte DC modstand af et modem i den krog stat, men også overskredet 40 Megaohms.
De DC spænding leveres af telefon-selskab til at afsløre enhver modstand på grund af telefoner bliver off-hook er undertiden rapporteret som 48 Volts.
Jeg målte +23.02 Volts (DC), hvor jeg opfordrede den "røde tråd" positiv, og den "grønne tråd" jorden.
Bemærk, at denne DC spænding falder drastisk, når telefonen er taget off-hook, jeg målte +7.17 Volts (DC) når telefonen var i off-hook status.
Ringetone spænding er indberettet som 90 Volts (16-60 Hz vekselstrøm), hvilket kan overraske eller sårer mennesker under visse omstændigheder.
10.2.2 Telefon eller modem i "off-hook" tilstand
Telefoner og modemer anmodning brug af en telefon-ledning ved at reducere deres egne DC elektrisk modstand.
Denne betingelse er fundet af telefon-udbyderen og tråd bliver aktive.
Da jeg målte DC modstand på en telefon i off-hook stat, var det ca 6.83 Megaohms.
Da jeg målte DC modstand af et modem i off-hook stat, var det næsten nøjagtigt 1.500 Megaohms.
Recall, at begge disse anordninger havde resistenser, der oversteg 40 Megaohms når i den krog stat.
Interessant er denne modstand er temmelig høj, tæt på et menneskeligt elektriske modstand, når rørende tråd med tørre hænder.
For eksempel, hvis jeg holde en tråd i min venstre side og en tråd i min højre hånd med relativt tørre hænder, jeg kan få en modstand så lav som 0.5 Megaohms ved at klemme tæt på ledninger.
Udpresning meget let giver mig en højere DC modstand, ca 1.5 Megaohms, der er tilsyneladende stadig lav nok til at fortælle telefonselskab, at jeg er en telefon.
(Never touch telefon tråde!)
Således kan man simulere under en telefonsamtale eller modem off-hook blot ved at indføre en 1 Megaohm modstand hele telefon-ledning.
Man kan gøre dette gennem et kredsløb med et relæ styret af en port på en computer (RS-232, parallel port, USB osv.), men et modem er en nem, billig og alsidig alternativ til en brugerdefineret relay kredsløb.
Som nævnt ovenfor, telefon-selskab holder en jævnstrøm (DC) potential difference (spænding) på tværs af telefon-ledning til at opdage telefoner gå off-hook og vender tilbage til on-hook stat.
Jeg målte denne spænding som +23.02 Volts (DC) for on-hook, og +7.17 Volts (DC) for off-hook.
10.3 Lydsignaler
Med telefon i off-hook staten, "dial tone" synes at have en vekselstrømssokkel (AC) Root-Mean-Square (RMS) spænding på 0.139 Volts AC.
Hele signalet er påvirket af en betydelig DC spænding på ca +5 Volts DC, jeg målte +7.17 Volts DC under et eksperiment.
Den audio-signaler er meget små afvigelser (kun et par procent) omkring dette DC spænding.
Dette betyder for eksempel, at de lydsignaler ikke svinge omkring et nul spænding, lydsignaler aldrig gøre de nuværende flow i den modsatte retning på telefon ledning.
Det viser sig, at min telefon interface kredsløb konverterer 0.139 VAC signal til omkring 0.030 VAC (dvs. 30 mV AC) til brug af audio udstyr (f.eks, mikrofon indgang på et lydkort).
10.4 Audio båndbredde
Den primære funktion af en telefon-systemet er at muliggøre voice kommunikation mellem mennesker.
Følgende diagram viser den gennemsnitlige spektrale energi til et par sekunders indlæg lyd.

Gennemsnitlig spektrale energi (decibel skala) i flere sekunder af tale over hele hørbare rækkevidde (20 Hz til 20 kHz). Den lodrette skala er i decibel, så selv et beskedent fald på denne graf viser et dramatisk fald i sund energi.
De decibel skala af diagrammet ovenfor betyder, at lavere værdier på kortet er faktisk ordrer størrelsesorden mindre, at højere værdier på hitlisten.
Det er indlysende, at en betydelig del af det samlede energiforbrug i indlæg Lyden er indeholdt i intervallet fra 0 Hz til 4000 Hz.
Mennesker kan pålideligt forstå tale, selv når alle audio energi uden for intervallet 300 Hz til 3000 Hz er elimineret.
Men den subjektive effekt af at begrænse audio energi til dette interval er, at røster forsvarlig dump og manglende artikulation.
Den subtile forskel mellem 'F' og 'S' er let mistet over en telefon.
Den telefon-system i USA har en stemme kanal, som kun bærer frekvenser mellem 0 Hz til 4000 Hz.
Men stemmen passband er begrænset til intervallet 300 Hz til 3000 Hz, og der er hastigt stigende dæmpning af stemmen energi uden for dette bånd.

Voice båndbredde ( 300 Hz - 3000 Hz ) inden for Voice Channel ( 0 Hz - 4000 Hz ) af telefon-systemet i USA
Følgende billede er en spektral plot af flere sekunder af et typisk registreres telefon samtale.

Spectral plot af flere sekunder af et typisk registreres telefon samtale (mandlig stemme)
Selv om hyppigheden beslutning er forholdsvis lav, er virkningen af den begrænsede båndbredde på telefon system er tydelige.
Til forsøgsbrug, audio-egenskaber ved et telefon system kan simuleres med en grafisk equalizer, eller en bandpass filter i en sund redigering softwarepakke, blot ved at frafiltrere alt under 350 Hz og alt ovenfor 3500 Hz.
10.5 Vigtigt audio frekvenser
"Touch toner" bruges til at "ringe antal" og interagere med automatiserede systemer er kendt som DTMF (DTMF) signaler.
Disse toner kan genereres ved blot at tilføje to afgørende runder sammen med de korrekte frekvenser, som vist i følgende matrix af frekvenser.
Bemærk, at det minimum holde gang, når du sender en DTMF Lyden er 50 milliseconds, og det mindste frigive tid (tavse kløft mellem DTMF lyde) er 50 milliseconds.
Brug af forsinkelser på 200 milliseconds ville sandsynligvis være pålidelige.
De "klartone, optaget signal," og "ring-back" lyder også har defineret frekvens kombinationer i USA:
11. Alternativ telefon interface metoder
Jeg investerede $30 og fire timer at bygge kredsløbet at give en personlig computer til at sende og modtage lydsignaler over en telefon-ledning.
Dette kræver en cetain form af ekspertise og udstyr.
Also, medmindre du er villig til at gå med til udøvelse af fremstillingsindustrien dette kredsløb, kan du ikke oprette et produkt (billig voice-mail eller telefonsvarer), der kræver denne grænseflade.
Den letteste og billig alternativ til den hardware jeg beskrevet i denne artikel er at bruge et software-metode til at få adgang til voice kapaciteter af en "stemme modem."
Men jeg må sige, at i forhold til ved hjælp af en tilpasset kredsløb ved hjælp af en stemme modem sammenholdt med speciel software vil sandsynligvis være meget platform-specifikt og generelt meget smertefuldt at programmere, konfigurere og bruge.
Fordelen (hvis du har en stemme modem) er, at dette ville være en ren software løsning.
Hvis du bruger en stemme modem og speciel software, dit system kan være lige så simpelt som det fremgår af nedenstående diagram.

System ved hjælp af en indre "stemme modem" og software
Afhængigt af dine behov, stemmen data aspekt af voice-modem kan halv duplex (dvs. software kan "tale" eller "lytte," men ikke begge dele samtidigt), eller full-duplex.
Halv duplex kan tilføje nogle kompleksitet til den kontrollerende software, fordi du skal beslutte, hvornår de skal sende og modtage lyd.
Den stemme modem digitizes telefon tråd lyd og transmitterer data over USB eller RS-232 hvis ydre, eller over PCI bus, hvis interne.
12. Microsoft Telephony API (TAPI)
Microsoft operativsystemer har TAPI 2.0 og TAPI 3.0 DLLs.
TAPI 3.0 kan have mange software problemer, og de fleste mennesker der har brugt Microsoft TAPI har simpelthen brugt TAPI 2.0 (som har næsten alle ønskede funktionalitet) i stedet for TAPI 3.0.
Brug "wave/in" og "wave/out" enheder for at få adgang til et voice modem's audio streams.
Se TAPI bog i henvisningerne i denne artikel. Bogen er gammel, men den beskriver TAPI 2.0 i detaljer.
13. Java Telephony API
Jeg ved ikke noget om Java Telephony API.
Men jeg formoder, det har fordelen af at være uafhængig af operativsystemer, og sandsynligvis er langt enklere indvinding end Microsoft TAPI!
14. Forskellige kommercielle produkter
Kommerciel, rack-monterede hardware grænseflader til flere eksterne telefon ledninger er i stand til at udveksle stemme data med computere.
"Voice Over IP" (VoIP) produkter, såsom "internet telefoner," er nu overalt (fx "Skype)."
Selvfølgelig computer software kan nemt få adgang til lyd for en sådan telefon-forbindelser.
15. Referencer
Bedste, mest omfattende guide til telefon-kredsløb, jeg har stødt på internettet:
En anden interessant reference:
Lattervækkende (og sindssyg) guide til betalings-telefoner rundt omkring i USA og Canada:
(Se "øverst bidragydere" af betalings-telefon numre, telefon audio prøver, og telefon-billeder.)
16. Bøger
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)
Denne bog beskriver mange aspekter af telefon-kredsløb og drift af telefonnettet i USA.
Der er mange detaljer om kredsløb og protokoller; alt fra en telefon til telefonnettet selv.
Utvivlsomt teknologien er meget anderledes nu, men denne bog er sandsynligvis noget mere praktisk end en historie bog.
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) er unødvendigt rodet og forvirrende, og er nu meget forældede. Bogen er nævnt ovenfor kan være den eneste bog nogensinde udgivet om Microsoft Telephony API (TAPI).