Bruno Takahashi C. de Oliveira

Computação / DTMFPlay

Voltar à página de Computação

Prática

Compile o programa abaixo. Depois basta tirar um telefone do gancho, aproximá-lo do alto-falante, e executar o programa passando-lhe um número de telefone como argumento, e o programa produzirá os sons que farão o telefone discar para o número dado!

dtmfplay.c - clique aqui para baixar o código fonte do programa.

Para compilar: gcc -o dtmfplay dtmfplay.c

Pré-requisito: você deve ter o sox instalado, e o comando play deve estar no seu path.

Teoria

A discagem em telefones modernos funciona por tons DTMF, que são sons especialmente compostos que, quando ouvidos pela central, causam certos efeitos, por exemplo a discagem de um número.

Há toda uma ciência oculta sobre como usar tons não documentados para maliciosamente induzir centrais a fazerem operações inusitadas, como ligações internacionais gratuitas, etc. As pessoas que se envolvem com isso são chamadas phreakers, e eu não tenho nada a ver com eles!

Os tons DTMF funcionam assim: sempre são uma soma de duas ondas senoidais com frequências pré-estabelecidas. A central decompõe o tom em suas frequências básicas (através de análise de Fourier ou coisa similar), e assim descobre a qual número corresponde aquele tom. Eis as frequências para as teclas normalmente encontradas nos telefones:

1       2       3       A       697 Hz
4       5       6       B       770 Hz
7       8       9       C       852 Hz
*       0       #       D       941 Hz

1209Hz  1336Hz  1477Hz  1633Hz

Para descobrir as frequências componentes de uma tecla, basta ver a frequência indicada na linha e na coluna da tecla. Por exemplo a tecla "7" produz um tom que é a soma de ondas senoidais de frequências 852 Hz e 1209 Hz.