Comporre un numero di telefono col computer


Prefazione

Una domenica pomeriggio in cui non avevo nulla da fare mi sono messo a esplorare il programma audacity, un ottimo editor audio in grado di registrare, mixare, applicare effetti a dei file audio. In particolare ho provato la funzione che consente di generare una nota ad una determinata frequenza. Poi mi sono annoiato e ho spento il computer.
Appena il giorno dopo ecco che mi viene un'idea: usare audacity per comporre un numero di telefono :-) . E il bello è che si può fare usando soltanto la capacità di audacity di mixare più tracce e le funzioni per generare delle note (alias onde sinusoidali ad una certa frequenza) e delle "pause", ossia momenti in cui non c'è nessun suono.

Come funziona

Sicuramente vi sarà capitato, componendo un numero su un telefono fisso (non su un cellulare) di ascoltare nella cornetta dei suoni. Anche senza un orecchio da musicista è evidente che il suono che si ottiene digitando "1" è diverso dal suono che si ottiene digitando "5". Ogni numero genera un suono diverso, ed è proprio questo suono che, decodificato dalla centrale telefonica, permette alla centrale stessa di conoscere il numero che avete digitato. Questo metodo di codifica dei numeri con suoni è standard e si chiama DTMF (dual tone multi frequency). Lo standard prevede che ogni numero venga rappresentato da due note a frequenza diversa "mixate" tra loro. Per esempio il numero 1 è rappresentato dalle frequenze di 697Hz e 1209Hz. La nota deve durare almeno 75ms ed essere seguita da una pausa di almeno 50ms, ma per sicurezza è meglio usare 100ms di durata e 100ms di pausa. La tabella completa delle frequenze, nonchè una spiegazione più dettagliata sul DTMF è disponibile su wikipedia (qui).

Il trucco

La cosa importante è che il suono codifica il numero, ma non ha nessuna importanza come questo suono viene generato. Quindi basta alzare la cornetta, avvicinarla agli altoparlanti del computer, fare in modo che il computer generi un suono corrispondente a un numero di telefono valido per effettuare una chamata senza digitare il numero!
A questo punto basta procurarsi audacity (su sistemi windows basta scaricare il programma e installarlo, su ubuntu linux basta aprire un terminale e digitare "sudo apt-get install audacity" e attendere che il package manager lo scarichi e lo installi in automatico), aprire due tracce mono "vuote", pensare al numero che si vuole comporre e procedere una cifra alla volta: generare in una traccia la prima delle due frequenze (durata 0,1 secondi) e nell'altra traccia l'altra frequenza. Poi basta aggiungere una pausa di 0,1 secondi in ogni traccia e passare alla seconda cifra, e così fino all'ultima.
Infine si può provare a vedere se funziona.


In questa immagine è possibile vedere l'analisi in frequenza del suono del numero 1. I due picchi a 10db sono le due frequenze di 697 e 1209Hz.

Download

Il 4161 è il numero "ora esatta". Componendolo è possibile sapere che ore sono. Se volete provare a comporre un numero col computer scaricate il file 4161_DTMF.wav che contiene il suono del numere 4161. "Facendolo ascoltare al telefono" vi accorgerete che la centrale telefonica lo interpreta come se l'utente lo stesse digitando sulla tastiera.

Utilità pratiche

Per ora non riesco a pensare ad un utilità pratica per questo esperimento. :-)