Calculator audio de interfaţă pe bază de sârmă de la reţeaua de telefonie
Colin Fahey

Un computer poate face apeluri telefonice vocale, folosind orice modem şi un simplu circuit.
1. Introducere
Acest document descrie cum să utilizaţi orice convenţionale de modem şi un circuit simplu de a da orice computer personal (PC), cu orice sistem de operare, capacitatea de a plasa apeluri telefonice vocale care pot implica interactiune.
Un ordinare de modem este folosit pentru a activa fire de telefon, mergând "off cârlig," şi mai târziu, eliberarea de fire de telefon, mergând "pe cârlig (inchide)."
Un circuit electric simplu este folosit pentru a da orice dispozitiv audio, cum ar fi o placă de sunet sau de sunet interfata unui calculator personal (PC), acces la semnale audio pe o sârmă de telefon.
Astfel, un calculator personal (PC) pot iniţia o conexiune la un număr de telefon, apoi aşteptaţi un om sau pentru un sistem automat de a raspunde, apoi iniţia o conversaţie, pe baza de vorbire sau alte sunete.
Acest document este destinat pentru hobbyists interesat în aflarea câteva lucruri în legătură cu cerinţele şi electrice de protocol pentru interacţiunea cu Central Office (CO) de o sârmă de telefon conectat în reţea Statele Unite (US).
Exista multe tehnologii pentru a permite oamenilor să interacţioneze cu sistemele pe bază de voce prin intermediul telefoanelor.
Există multe produse comerciale şi servicii oferite de manipulat totul de telefon asociat cu interacţiunea cu o bază de date corporative.
Este destul de uşor de găsit hardware-ul pentru a gestiona mai multe apeluri telefonice la un singur număr.
De telefonie sa extins la Internet, cu protocoalele ca "Voice over Internet Protocol" (VoIP).
Calculatoare de oriunde din Internet poate fi configurat pentru a interacţiona cu VoIP prin recunoaşterea vorbirii şi discursului sinteză.
Aceste computere pot opţional, urmaţi vocea de conversaţie flowcharts exprimate în XML fişierele text (Voice XML).
Acest document nu are nimic de a face cu una dintre aceste solutii practice pentru problema automatizarea voce interacţiunea cu o afacere sau organizaţie.
Acest document este destinat pentru divertisment de hobbyists cu bugete mici.
2. Declaratiile noastre
Construirea unui circuit, şi conectarea în reţeaua de la un telefon, implică multe riscuri.
Sunteti responsabil pentru orice învăţare despre legile, pericolelor, a riscurilor şi că pot aplica.
Următoarea este o listă a unora dintre problemele de care trebuie să ia în considerare dacă sunteţi interesat în construcţia şi testarea un circuit similar cu cea de a apărea în acest articol:
1. Toate informaţiile despre specificaţii electrice de telefon de serviciu este valabil doar in Statele Unite (US).
2. Tensiunea de apel de pe telefon de sârmă (90 Volts) pot răni oameni.
Lightning sau scăzut puterea de fire poate duce la tensiuni pe telefon fire care pot răni oameni.
3. Sunteti responsabil pentru orice daune la telefon Compania circuite cauzate de utilizarea neautorizată a dispozitivelor dvs. de domiciliu sau de birou.
4. Înregistrare convorbiri telefonice fără aprobarea explicită a tuturor părţilor implicate, este împotriva legii.
(... Cu excepţia cazului în care sunteţi de guvern! Altfel, nu aşa cum se spune, şi nu ca o fac!)
5. Sunteti responsabil pentru orice daune cauzate de computer pentru a vă conectaţi-vă propriul circuitry la computer.
6. Nu se pot vinde orice produs destinat utilizării cu un telefon de reţea fără aprobarea de la FCC.
Acest document este doar o descriere a experienţele mele personale.
Sunteti responsabil pentru învăţarea despre legile şi riscurile de la surse de autoritate.
3. Telefon audio circuitul de interfaţă
Scopul circuitul descrise în această secţiune este de a permite convenţionale şi de înregistrare şi redare audio de echipamente, cum ar fi o placă de sunet pe portul sau audio de pe un computer personal (PC), pentru a trimite şi a primi audio convenţionale, pe o suprafata de cablu (cu fir) telefon conexiune.
Sârmă de telefon şi de echipamente audio nu sunt conectate direct, de remorcare este numai prin intermediul transformatoarelor.
Ambele părţi ale interfeţei sunt protejate de la tensiuni excesive.
Semnalele sunt limitate la un interval de frecvenţe (latime de banda) relevante pentru telefon audio (300 Hz la 3500 Hz).
O schema are doar componente "pasive;" permis de conducere toate tensiunile sunt externe.
O schema trebuie să fie utilizat în conjuncţie cu un modem, telefon, sau de alte circuit capabil de a merge "în afara cârlig" (aducerea de rezistenta din sarma suficient de scăzut pentru a indica la Oficiul central de sârmă (CO) că este în uz).
Ar fi trivial pentru a adăuga un "cârlig în afara" circuitului de la acest aspect, dar având un circuit de la toate este deja un mare obstacol pentru mulţi hobbyists.

Aspect de asamblat de circuit

Aspect din circuitul bord

Schematic de telefon audio circuitul de interfaţă
Puteţi construi dispozitivul aproape exact aşa cum apare de mai sus, dacă veţi face următoarele investiţii:
1. Asiguraţi-vă că aveţi instrumente de bază: şurubelniţele, sudura fier, cutit;
2. Vizitaţi Radio Shack, cumpărarea elementele enumerate mai jos, pentru $ 29, după taxe;
3. Vizitaţi orice magazin de hardware, cumpără două nuci, bolţuri, şaibe, pentru $ 1.
4. Cheltuie despre patru oră construirii de circuit în funcţie de schematic;
Dacă nu aveţi experienţă de cladire circuite electronice, sudura, gauri de foraj, electrice şi de efectuare a măsurătorilor, nu face acest proiect prima dvs.!
Singura persoana care ar trebui să încerce să construiască acest circuit este persoana care deja stie cu siguranta ca el sau ea se poate construi o!
4. Radio Shack: omniprezente electrocasnice magazin
Radio Shack electronice de consum este o companie cu magazine din întreaga lume. Mai jos este un link către site-ul lor de internet:
Pe site-ul lor de internet o persoană poate găsi un link numit "Electronic Components", ceea ce duce la catalogul lor de componente electronice şi de documentaţia corespunzătoare.
O persoană poate găsi preţuri pentru piese.
O persoană poate obţine o listă de locaţii de cel mai apropiat magazin, şi hărţi.
Părţile pot fi comandate online.
Am decis de a construi meu simplu, folosind circuitul Radio Shack părţi, deoarece acest lucru înseamnă că oricine altcineva din lume pot reproduce cu uşurinţă munca mea.
De asemenea, orice parte oferite de Radio Shack este practic garantat pentru a fi disponibil pentru mai mulţi ani la un pret scazut.
Aici este o listă de Radio Shack părţi am folosit pentru a construi circuit, cu numerele de catalog:
| 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: nu-aşa-omniprezente hardware-ul magazinului
Am nevoie de bolţuri, şaibe, fructe cu coajă lemnoasă şi să fasten un telefon la jack de plastic cazul meu de circuit.
Am fost la Ace Hardware, dar mi-ar putea să fi mers la Home Depot, sau poate chiar un supermarket, pentru a găsi părţi similare.
| 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. Instrumente şi accesorii
Următorul tabel afişează unele din elementele I necesar pentru construcţie şi de utilizare a circuitului:
| 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. Comentarii cu privire la circuitul
Nu sunt un inginer electric.
Am studiat diferitele circuite de telefon (a se vedea referinţele menţionate aproape de sfârşitul acestui articol), precum şi diverse extrase de elemente care să sprijine obiectivele de propriile mele de design.
Dacă au fost într-adevăr disperată, şi riscul de a vă PC nu a fost un factor, puteţi să conectaţi un telefon sârmă pentru a plăcii dvs. de sunet de port, folosind doar o pereche de condensatori!
Asta este o idee foarte bună, pentru că de tensiune de apel, şi posibil aleatoare spikes de tensiune pe fire de telefon, poate deteriora neprotejat dispozitive.
De diode Zener în circuitul meu de scurt-circuit tensiuni excesive.
Observaţi că acestea se confruntă cu direcţii opuse, astfel încât pentru o anumită tensiune aplicată cu o anumită polaritate, o dioda Zener este poised de a efectua în mod normal, curente, iar celălalt este poised pentru reverse-defalcare de tensiune ar trebui să depăşească sale Rating (de exemplu, 5.1 V) .
Numai atunci când o tensiune mai mare de a inversa-defalcare de tensiune de una dintre diode Zener perechea va permite în ultimă instanţă, pentru a fluxului de curent, astfel, scurt-circuiting de fire la care pereche de diode este conectat.
Notaţi faptul că aceasta funcţionează, indiferent de unde provin semnale.
Curent alternativ (AC) semnale de la sârme de telefon care sunt mai mari atunci 5,8 Volts ( 5.1 V + 0.7 V ) după ce trece prin transformator va fi clipped.
(DC) de curent sau curent alternativ (AC) semnale audio de la o sursa audio, nu din fire de telefon, va fi, de asemenea, clipped la 5.8 Volts.
Deci, fiecare parte, Compania de telefonie şi audio echipamente, este protejat la tensiuni excesive, care provin din alte părţi.
Dispozitivul este de fapt o pereche de circuite identice. Fie audio plug poate fi utilizat pentru intrare sau de ieşire.
Practic, cele două semnale audio sunt cuplate unic de telefon la semnal.
8. Folosind un modem pentru a vă deplasa "în afara cârlig"
8.1 Scopul modem
Scopul modemul in acest sistem este de a crea un electrice condiţia ca furnizorul de servicii de telefonie va recunoaşte ca o cerere de a deveni un participant activ în reţeaua de telefonie.
Această solicitare se numeşte "merge off cârlig," o trimitere la telefon desene sau modele originale, care solicitau un utilizator să ridice un vorbitor sau telefonul jos de pe un carlig.
Solicitarea de activare este de aproape instantaneu acordate, în termen de o fracţiune de secundă.
După ce devine activ sârmă, toate celelalte aspecte legate de telefonie pot fi efectuate prin semnale audio.
Deşi transmiterea numere de telefon "(apel)" poate fi facuta prin redarea fişierelor audio ( *.WAV, *.MP3 ), înregistrate audio (DAT, audio CD, banda), sau software-ul audio de sinteză (sin() funcţii), modemul are capacitatea intrinsecă de a efectua această funcţie.
Cu toate acestea, ar trebui să se înţeleagă că singurul scop de modemul este solicitant de activare din sârmă de telefon.
Dacă o persoană are o metodă alternativă de simularea de reducere cârlig condiţie (de exemplu, scăderea rezistenţei pur şi simplu de pe sârmă de telefon), modemul nu este necesar.
Cu toate acestea, un modem este un foarte ieftine, obişnuit, şi convenabil dispozitiv pentru efectuarea de această funcţie.
Sistemul descris în acest articol nu are nevoie de un modem de înregistrare audio cu capacitate de redare sau, uneori numită o "voce de modem."
Cu toate acestea, într-o altă secţiune a acestui articol am discuta posibilitatea de a folosi un modem de voce ca o alternativă la utilizând un circuit electric.
8.2 Modem tipic
Am ales să folosească un modem extern fabricate de Hayes, denumit "Accura", un V.92 fax-modem cu capacitatea de mesaj vocal.
Orice modem poate fi folosit pentru sistemul descris în acest articol.
I vrut un modem extern pur şi simplu, pentru că este uşor să anexeze la orice computer, iar eu pot aduce la un prieten al casei lor de a folosi cu calculator, laptop sau desktop.
Deşi este greu de important, am considerat de asemenea, posibilitatea ca poate o Basic Stamp 2 ar putea utiliza computerul RS-232 de modem.
Atentie: porturi seriale (RS-232) porturi, porturi de genul PS/2, sunt în curs de etape, şi USB este noul standard.
Un modem extern USB de des pot fi accesate de către software-ului ca şi cum ar fi o mostenire "COM" port dispozitiv de drivere de dispozitiv care vin cu modemul.
Există o mică USB/RS-232 adaptor (~$30) care pot fi utilizate pentru a conecta contemporane calculatoare desktop si laptop-uri pentru a RS-232 dispozitive.
Astfel de un adaptor are un driver de dispozitiv pentru a corespunde emulate o mostenire port serial interfaţa (de exemplu, "COM" dispozitiv).

Hayes modem extern: casetă

Hayes modem extern
8.3 Modem comenzi
Atunci când un modem este primul pornit, se introduce o "comandă" de stat, denumit "în modul."
Dacă modemul cu succes se conectează la o distanţă de modem sau fax dispozitiv la distanţă prin telefon sârmă, se introduce o stare "de date," denumit "în modul."
Cu toate acestea, sistemul descris în acest document nu va folosi modem pentru a stabili o conexiune "de date în modul" cu un dispozitiv la distanţă, deci modemul va fi întotdeauna în "modul de comandă."
Când în modul de comandă, modemul accepta comenzi sub formă de câmpie ASCII de caractere.
Caractere sunt schimbate între computer şi un modem de peste un cablu serial, sau prin intermediul unui driver de dispozitiv care face o carte de interne (de exemplu, carte de PCI) accesibile ca un dispozitiv serial.
În ambele cazuri, programele de utilizare API solicită accesul la dispozitivele de serie (de exemplu, "COM1" sau "/dev/modem").
Unul majore subset de comenzi de modem se numeşte "AT" (ay-tee) comenzi, şi toate aceste comenzi încep cu caracterele "at" (sau "AT").
După cum a evoluat de modemuri, a extins lista de comenzi, oferind din ce în ce mai esoteric caracteristici. Sistemul descris în acest articol doar necesită abilitatea de a lua "off cârlig" de modem, iar mai târziu de modem pentru a vă întoarce de "pe cârlig" de stat. Capacitatea de cifre pentru a forma şi, opţional, la rândul său, un vorbitor pentru monitorizarea la apel, sunt caracteristici utile, dar nu sunt esenţiale. Următorul tabel listează comenzile de modem care ar putea fi utilizat cu sistemul descris în acest articol:
| 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] |
Următorul tabel afişează un ipotetic secvenţă de comenzi utilizate pentru a plasa un apel telefonic, interacţionează cu un sistem automat care utilizează "legătura de tone" (DTMF), apoi termina apelul "(inchide):"
| 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 comanda set
"AT set de comandă este pusă în aplicare de către aproape toate modemurile existente.
Acest set de comenzi care a fost iniţial pusă în aplicare de către Hayes modemuri.
Cele mai multe modemuri sunt clasificate ca "Hayes compatibile, deoarece punerea în aplicare a AT set de comenzi.
AT Toate comenzile trebuie să înceapă cu prefixul AT, urmată de o scrisoare de comandă, şi sa încheiat cu ENTER(*) cheie.
(*...ENTER, CARRIAGE RETURN, CR, RETURN, '\r', 13, 0xd, Control-M, ^M)
Spaţiile nu sunt permise în şir de comandă în linia de comandă pentru a spori lizibilitatea, dar sunt ignorate de către modem în timpul executării comenzii.
Toate comenzile pot fi tastat, fie în caz de sus sau de jos, dar nu amestecat.
A eliberat, fără nici o comandă parametrii este considerat ca specificând aceeaşi comandă cu un parametru de 0 (zero).
Următoarea este o listă de condensat AT comenzi.
O mai complete şi detaliate, lista poate fi uşor de găsit pe Internet printr-o căutare folosind cuvinte cheie "at modem de comenzi.
| 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 Testarea modem
Această secţiune descrie metodele pentru verificarea rapid capacitatea de a controla un modem conectat la calculator.
Prima metodă este potrivit pentru Windows 98/NT/Me/2K/XP.
Ideea de baza este de a porni software-ul "serial de comunicaţie," care poate fi găsit în aproape orice tipice de instalare a sistemului de operare Windows: "HyperTerminal".
Windows 98 : "C:\Program Files\Accessories\HyperTerminal\Hypertrm.exe"
Windows 2000\XP: "C:\Program Files\Windows NT\hypertrm.exe"
(Dublu-a cita arătat mai sus, sunt necesare atunci când efectuează sau când execută comenzile rapide de la promptul de comandă, pentru ca fişierul să conţină căi de spaţii.)
HyperTerminal poate fi lansat de la promptul de comandă sau prin navigarea în meniuri.
Sub Windows 2000\XP, de exemplu, software-ul link-ul poate fi găsit la sfârşitul celui de-al următoarea cale de meniuri:
Start -> Programs -> Accessories -> Communications -> HyperTerminal -> HyperTerminal
Meniu de frunte din ierarhia Start meniu pentru a HyperTerminal
Când porniţi HyperTerminal, apar mai multe casete de dialog:
HyperTerminal dialoguri:
1. Connection Description: Introduceţi numele de arbitrare;
2. Connect To: Selectaţi portul cu modem (de exemplu, COM1);
3. COM1 Properties: Rată de biţi pentru comunicarea între PC şi modem, etc
Am specificat o scăzută rată de biţi (2400 biţi pe secundă) şi între PC modemul pur şi simplu pentru că aceasta este de natură să lucreze pentru fiecare modem care nu este oficial un antic.
Aceasta este comun pentru moderne de modemuri de a comunica cu PC jurul 115200 la rate de biţi pe secundă, chiar şi atunci când datele cu privire la rata de sârmă de telefon este la fel de mici ca 9600 biţi pe secundă.
Următoarele imagine arată un simplu modem de sesiune, folosind HyperTerminal:

Utilizarea HyperTerminal la încercarea de a utiliza diverse comenzi de modem
Acest notele de mai sus arată o modalitate uşoară de a testa un modem cu Windows sistem de operare.
Există numeroase alte programe software "de comunicaţii de serie" pentru Windows şi Linux.
Pentru Linux (sau variante UNIX) s-ar putea să fi capabil la spre a face ceva similar cu "echo atm2 > /dev/modem" pe o linie de comandă, sau fp = fopen( "/dev/modem", "w" ); urmate de declaraţii cum ar fi fprintf( fp, "atm2" ); în C un simplu program.
8.6 Codul sursă pentru a controla un modem
C/C++ de calculator codul specificat textul de mai jos demonstrează transmitere comenzi la un modem.
Deşi computerul codul specificat mai jos este pentru Windows sistem de operare, ideile sunt usor de generalizat şi pentru alte sisteme de operare.
#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);
}
Software-ul de mai sus avea acces la un port serial de comunicaţie (de exemplu, "COM1"), şi vom presupune un modem este conectat la acest port.
Software-ul pentru a trimite comenzi text de modem pentru a face următoarele lucruri:
1. Viraj pe vorbitor interne ("ATM2\r");
2. Călătoriţi cu fire de telefon "în afara cârlig" ("ATH1\r");
3. Formaţi un număr de telefon ("ATDT5551212;\r");
4. Puneţi înapoi sârmă de telefon "de pe cârlig" ("ATH0\r");
5. Dezactivaţi interne vorbitor ("ATM0\r").
De exemplu, computerul codul de mai sus arată unele dintre relevante Windows API funcţii.
Cu toate acestea, exemplul de cod de computer este foarte inflexibil şi nu verifică pentru orice erori.
Sleep() funcţia de invocations asigura că modemul are timp pentru a completa comenzi, înainte de promovarea la urmatoarea comanda.
În mod ideal, ne-ar verifica răspunsurile pentru textul de la modem (de exemplu, "OK" sau "ERROR").
8.7 Modem de control C++ class (Windows de sistemul de operare)
Următoarele ZIP arhiva conţine un fişier de C++ class de control adecvate pentru modem prin intermediul Windows sistem de operare.
În esenţă este o versiune a elabora mai multe demonstraţii de cod prezentat mai sus.
De asemenea, C++ class mister modemul de funcţionalitate în aşa fel încât să porting alte platforme (de exemplu, Linux) se face mai uşor.
Un proiect Microsoft Visual C++ 6.0 fişier este inclus în codul sursă, deci se poate construi şi a executa codul de imediat ca un test.
Dar tot ce ai nevoie de relevante sunt cele două fişiere sursă ( modem_control.cpp, modem_control.h ) de a folosi codul în propria dumneavoastră software-ul.
9. Utilizarea interfeţei
9.1 Folosind interfaţa cu un computer

Configurarea utilizate în experimentele mele
Ataşaţi un Splitter la telefon cablu, cu o filiala a merge la un modem, şi a altor filiala a merge la circuitul de interfaţă de telefon.
Conectaţi cele două audio fire din circuit la "microfon de intrare" şi "de ieşire pentru difuzor" de placa de sunet sau audio prize de pe computerul personal sau alt dispozitiv audio.
Folosind modemul codul de descris în altă parte în acest articol se pot utiliza modemul "de a" îmbarca "de telefon" şi "de apelare numere de telefon."
Apoi, computerul poate înregistra şi de redare audio, în orice mod doriţi.
Modem de cod pot fi apoi folosite pentru a "inchide telefonul" pentru "a" termina apelul.
Sunteti responsabil pentru notificarea apelanti dacă intenţionaţi să înregistreze orice parte a apelului.
(... Cu excepţia cazului în care sunteţi de guvern! Altfel, nu aşa cum se spune, şi nu ca o fac!)
9.2 Folosind interfaţa cu echipamente audio
Ataşaţi un Splitter la telefon cablu, cu o filiala a merge la un telefon obişnuit, şi de altă ramură a merge la circuitul de interfaţă de telefon.
Connect fie semnalul audio de la un microfon pentru a circuitului de intrare la un amplificator sau dispozitiv de înregistrare.
Conectaţi ieşirea din orice dispozitiv care produce mici de amplitudine audio (de exemplu, +/-1.0 Volts) să fie audio de pe soclu de circuit.
Nu conectaţi ieşirea audio a unui amplificator stereo de la circuit, pentru ca tensiunile sunt foarte foarte probabil să fie excesiv de telefon audio.
Amplificatoare stereo de obicei, au iesiri speciale (de exemplu, RCA conectori) pentru trimiterea de ieşire audio de la alte tipuri de echipamente audio care acceptă Intrare audio (de exemplu, VCR, tape recorder, televizor, etc); aceste mici iesiri de tensiune sunt adecvate pentru utilizare cu Circuitul descris în acest articol.
Astfel, o poate accepta sau de loc, solicită utilizarea de telefon, şi înregistra şi reda în timpul utilizării de telefon.
Sunteti responsabil pentru notificarea apelanti dacă intenţionaţi să înregistreze orice parte a apelului.
(... Cu excepţia cazului în care sunteţi de guvern! Altfel, nu aşa cum se spune, şi nu ca o fac!)
10. Reţeaua de telefonie concepte
10.1 Studiu de trimiteri
De funcţionare a sistemului de telefon este dincolo de sfera de aplicare a prezentului articol.
Consultaţi trimiteri la sfârşitul acestui articol, pentru anumite informaţii pe această temă.
Cu toate acestea, am discuta interesante subliniază, în această secţiune.
10.2 Aspecte de bază electrice
10.2.1 De telefon sau modem de "pe cârlig" de stat
Există două obiective care au dus la telefon de design:
(1) Un telefon ar trebui să fie electric "invizibile" pentru a (DC) de curent, la fel ca un circuit deschis sau o deconectare, atunci când aceasta este în de pe cârlig de stat;
(2) de curent alternativ (AC) spikes folosite pentru a face telefoanele inel ar trebui să fie acceptate de către telefoanele în pe-cârlig de stat, astfel încât acestea să va inel.
Ambele scopuri sunt atinse prin telefon proiectat astfel că un nu-condensator polarizat (sau două) este de doar link-ul de telefon la telefon, atunci când în sârmă de pe cârlig de stat.
Astfel, de curent (DC) nu poate trece prin, şi de curent alternativ (AC) semnal de apel pot trece printr la clopote de apel sau de circuit.
Când m-am măsurat rezistenţa DC de la un telefon de pe cârlig de stat, el a depăşit 40 Megaohms.
Când m-am măsurat rezistenţa DC de modem de pe cârlig de stat, de asemenea, ea a depăşit 40 Megaohms.
DC de tensiune furnizate de către compania de telefonie pentru a detecta orice rezistenta din cauza telefoanelor fiind în afara cârlig, uneori este raportat ca 48 Volts.
I +23.02 Volts (DC) măsurate, în cazul în care i-am sunat de "sârmă" pozitive "roşu, verde" şi "fire de" teren.
Notaţi faptul că această DC tensiune scade dramatic, atunci când este luată de telefon off-cârlig; am măsurat +7.17 Volts (DC) de telefon atunci când a fost în stare off-cârlig.
Tensiunea de apel este raportată a fi 90 Volts (16-60 Hz curent alternativ), care poate startle sau răniţi oameni în anumite împrejurări.
10.2.2 De telefon sau modem in "afara cârlig" de stat
Telefoane şi Modemuri cererea utilizarea unui telefon sârmă prin reducerea lor proprii DC electrice de rezistenta.
Această condiţie este detectat de către furnizorul de telefon şi de sârmă devine activ.
Când m-am măsurat rezistenţa DC de un telefon în off-cârlig de stat, el a fost de aproximativ 6.83 Megaohms.
Când m-am măsurat rezistenţa DC de modem în off-cârlig de stat, el a fost aproape exact 1.500 Megaohms.
Reamintească faptul că ambele aceste dispozitive au avut rezistenţă care a depăşit în momentul în 40 Megaohms de pe cârlig de stat.
Interesant, aceasta rezistenta este destul de mare, aproape de un om al rezistenţei electrice, atunci când atinge fire cu mâinile uscate.
De exemplu, dacă am organiza o sârmă în stânga mea parte, şi o sârmă din dreapta mea, cu mâinile relativ uscat, pot beneficia de o rezistenţă cât mai jos 0.5 Megaohms de squeezing bine pe fire.
Squeezing foarte superficial dă-mi o mai mare rezistenta DC, aproximativ 1.5 Megaohms, care aparent este încă suficient de scăzut pentru a spune de telefon pe care compania Sunt un telefon.
(Niciodată nu atinge telefon fire!)
Astfel, se poate lua simulează un telefon sau modem de off-cârlig tocmai prin introducerea unui 1 Megaohm Rezistor de telefon de pe fir.
Se poate face acest lucru printr-un circuit cu un releu controlate de către un port de pe un computer (RS-232, parallel port, USB, etc), dar un modem este un convenabil, ieftin, versatil şi alternativă la un releu de circuit.
Aşa cum am menţionat mai sus, telefon, pastrand o companie de curent (DC) potential difference (de tensiune) din sârmă de telefon pentru a detecta telefoanelor merge off-cârlig şi la întoarcere de pe cârlig de stat.
Am măsurat această tensiune ca pe-+23.02 Volts (DC) pentru cârlig, şi +7.17 Volts (DC) pentru off-cârlig.
10.3 Semnale audio
Cu telefonul în afara cârlig de stat, "ton de apel" pare a avea un curent alternativ (AC)-Root Mean-Square (RMS) tensiune de 0.139 Volts AC.
Intreaga semnal este părtinitoare DC semnificative de către o tensiune de aproximativ +5 Volts DC; +7.17 Volts DC am măsurat în timpul unui experiment.
De semnale audio sunt foarte mici abateri (doar cateva procente) în jurul acestui DC tensiune.
Aceasta înseamnă, de exemplu, că semnale audio nu fluctuează în jurul unui zero de tensiune; semnalelor audio nu face curentă a fluxului în direcţie opusă pe fire de telefon.
Se dovedeşte că interfaţa meu de telefon de circuit 0.139 VAC converteşte în semnal la aproximativ 0.030 VAC (de exemplu, 30 mV AC) pentru utilizarea de echipamente audio (de exemplu, microfon de intrare pe o placă de sunet).
10.4 Audio latime de banda
Funcţia de primar al unui sistem de telefonie vocală este de a permite comunicarea între oameni.
Următoarea diagramă arată medie spectrale de energie, pentru câteva secunde de vorbire audio.

Numărul mediu de energie spectrale (Decibel scara) de mai multe secunde de vorbire pe parcursul întregii game auditive (20 Hz la 20 kHz). La scară verticală este în decibeli, deci chiar şi o scădere modestă de pe acest grafic indică o scădere dramatică în sunet de energie.
Decibel de scară de la graficul de mai sus înseamnă că valorile mai mici de pe diagramă sunt de fapt de ordine de magnitudine mai mică de valori mai mari de pe diagramă.
Este evident că o parte semnificativă din totalul de energie din discursul de sunet este cuprinsă în intervalul de la 0 Hz la 4000 Hz.
Humans poate fiabil înţeles discurs, chiar şi atunci când toate audio de energie în afara intervalului 300 Hz la 3000 Hz este eliminat.
Cu toate acestea, efectul de a limita subiective audio de la această gamă de energie este faptul că vocile sunet muffled şi lipsa articulării.
Subtilă diferenţa dintre 'F' şi 'S' este usor de pierdut peste un telefon.
Sistemul de telefon din Statele Unite are o voce de canal care desfăşoară numai între frecvenţele 0 Hz la 4000 Hz.
Cu toate acestea, vocea passband este limitată la intervalul 300 Hz la 3000 Hz, şi acolo este creşterea rapidă a atenuare a vocii de energie în afara de aceasta trupa.

Latime de banda de voce ( 300 Hz - 3000 Hz ) în termen de voce Canal ( 0 Hz - 4000 Hz ) a sistemului de telefon din Statele Unite
Următoarele imagine spectrala este un teren de cateva secunde de la un telefon înregistrat tipic de conversaţie.

Spectral de teren de câteva secunde de la un telefon înregistrat tipic de conversaţie (voce masculină)
Deşi frecvenţa de rezoluţie este relativ redus, ca efect limitat latime de banda a sistemului de telefon este evidentă.
În scopuri experimentale, audio proprietăţile unui sistem de telefonie pot fi simulate cu un egalizor grafic, sau un filtru bandpass într-un pachet software de editare de sunet, pur şi simplu, prin filtrarea totul 350 Hz de mai jos si tot mai sus 3500 Hz.
10.5 Important frecvenţelor audio
De utilizate pentru a "atinge tonuri de numere de apelare" şi a interacţiona cu sistemele automate sunt cunoscute ca Dual-Tone Multi-Frequency (DTMF) semnale.
Aceste tonuri poate fi generat prin simpla adăugare de două valuri de film împreună cu frecvenţele corespunzătoare, după cum se arată în următoarea matrice de frecvenţe.
Reţineţi că, în timp minim de aşteptare atunci când a trimite un DTMF sunet este 50 milliseconds, şi minime de timp (silentios dintre DTMF sunete) este 50 milliseconds.
Utilizarea unor întârzieri de 200 milliseconds, probabil, ar fi de încredere.
De "ton de apel, ocupat de semnal," şi sunetele "înapoi inel-au" definit de asemenea, frecvenţa de combinaţii în Statele Unite:
11. Metode alternative de telefon de interfaţă
Am investit $30 şi patru de ore pentru a construi circuitul pentru a permite un calculator personal pentru a trimite şi a primi semnale audio pe o sârmă de telefon.
Acest lucru necesită o cetain fel de expertiză şi echipamente.
De asemenea, cu excepţia cazului în care sunteţi dispus să treceţi în a activităţii de fabricaţie acest circuit, nu puteţi crea un produs (ieftine de voce-mail sau robot) care necesită această interfaţă.
Cea mai simplă, necostisitoare alternativă la hardware-ul metodă descrisă în acest articol este de a utiliza o metodă de a accesa produsul software de capabilităţi de voce de o "voce de modem."
Cu toate acestea, eu trebuie să spun că în comparaţie cu folosind un circuit, utilizând un modem de voce coroborat cu un soft special este foarte probabil să fie platforma-specifice şi în general foarte dureroasă pentru a programului, configurarea şi utilizarea.
Beneficiul (Presupunând că aveţi un modem de voce) este că acest lucru ar fi o soluţie software pur.
Dacă utilizaţi un modem de voce şi un software special, sistemul dumneavoastră ar putea fi la fel de simplu ca urmatoarea diagrama.

Sistemul de interne, utilizând un "modem de voce" şi de software
În funcţie de nevoile dumneavoastră, voce date aspect al vocii modem poate fi semi-duplex (de exemplu, software-ul poate "vorbi" sau "asculta," dar nu ambele simultan), sau duplex complet.
Half-duplex, poate să adauge unele complexitate pentru a software-ului de control, deoarece va trebui să decidă când să transmită şi să primească audio.
Vocea digitizes de modem şi audio de sârmă de telefon transmite date peste USB sau dacă RS-232 externe, sau peste PCI autobuz, dacă interne.
12. Microsoft Telephony API (TAPI)
Microsoft sisteme de operare au TAPI 2.0 şi TAPI 3.0 DLLs.
TAPI 3.0 ar putea avea numeroase probleme de software, şi de cele mai multe persoane care s-au folosit Microsoft TAPI pur şi simplu au folosit TAPI 2.0 (care are aproape toate dorit funcţionalitatea) în loc de TAPI 3.0.
Folosiţi "wave/in" şi "wave/out" dispozitive pentru a avea acces la un modem de voce a fluxurilor audio.
Vezi TAPI carte în secţiunea trimiterile din acest articol. Cartea este vechi, dar este TAPI 2.0 descrie în detaliu.
13. Java Telephony API
Nu stiu nimic despre Java Telephony API.
Cu toate acestea, am să presupunem, are avantajul de a fi independent de sisteme de operare, şi, probabil, mult mai simple abstractiuni are decât Microsoft TAPI!
14. Diverse produse comerciale
Comercial, rack-mount hardware de la mai multe interfeţe de telefon extern fire sunt capabile de a schimbului de date cu voce computere.
"Voice Over IP" (VoIP) produse, cum ar fi "Internet telefoanelor," acum sunt peste tot (de exemplu, "Skype)."
Evident software de computer poate avea acces cu uşurinţă la telefon audio pentru astfel de conexiuni.
15. Referinte
Cel mai bun, cel mai cuprinzător ghid pentru circuite de telefon l-am întâlnit pe internet:
Un alt interesant de referinţă:
Hilarious (si nebun) ghid pentru a plăti în jur de telefoane-Statele Unite şi Canada:
(Uita-te la "început de colaboratori" de plata-numere de telefon, telefon mostre audio, telefon si poze.)
16. Cărţi
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)
Aceasta carte descrie multe aspecte ale circuitelor de telefon şi de funcţionare a reţelei de telefonie în SUA.
Există mai multe detalii despre circuite şi protocoale; totul de la un telefon la reţeaua de telefonie în sine.
Tehnologia fără îndoială, este foarte diferit acum, dar aceasta carte este, probabil, ceva mai practice decât o carte de istorie.
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)
Microsoft Telephony API (TAPI) de messy este inutil si confuz, si este acum extrem de învechit. Cartea de mai sus ar putea fi singura carte publicata vreodata despre Microsoft Telephony API (TAPI).