O que é DTMF? Tons, frequências e agentes de voz

Rene, Kabir Goel 
O que é DTMF? Tons, frequências e agentes de voz

DTMF é o som de apertar uma tecla do telefone. Cada tecla toca dois tons ao mesmo tempo, um de um grupo grave e outro de um grupo agudo, e o sistema do outro lado decodifica o par como um dígito. O nome diz exatamente isso: dual-tone multi-frequency, multifrequência de tom duplo. A Bell lançou o padrão como Touch-Tone em 1963, e a Recomendação ITU-T Q.23 ainda define as frequências.

Mais de sessenta anos depois, o DTMF é como quem liga digita número de conta, pula menus e informa senhas, e como um software navega pela URA de outro software. Também é uma fonte frequente de chamados do tipo “ontem os dígitos funcionavam”, porque numa chamada VoIP os tons podem trafegar de três jeitos diferentes. Este guia cobre os tons, os três transportes, por que os dígitos somem e o que muda quando quem atende ou disca é um agente de voz com IA. Foi escrito para engenheiros e equipes de contact center que cuidam de um fluxo telefônico.

(Procurando “DtMF” do Bad Bunny? É uma música do DeBÍ TiRAR MáS FOToS. Página errada, ótimo disco.)

Frequências DTMF

O teclado é uma grade de quatro por quatro. Cada linha tem uma frequência grave, cada coluna uma aguda, e uma tecla toca a sua linha e a sua coluna juntas.

1209 Hz1336 Hz1477 Hz1633 Hz
697 Hz123A
770 Hz456B
852 Hz789C
941 Hz*0#D

O 5 toca 770 Hz e 1336 Hz. O # toca 941 Hz e 1477 Hz. A quarta coluna, de A a D, era usada em equipamentos militares e de rede e quase nunca aparece num telefone comum, então na prática você vai lidar com doze teclas: de 0 a 9, asterisco e cerquilha.

O truque é usar dois tons em vez de um. A voz humana e a música raramente concentram energia exatamente numa frequência grave e numa aguda desses conjuntos no mesmo instante, então um decodificador diferencia uma tecla de uma voz. O padrão também define limites de duração e de diferença de volume entre os dois tons, o que mantém raras as detecções falsas mesmo quando alguém está falando na linha.

Como o DTMF trafega numa chamada moderna

Numa linha de cobre, o DTMF era só áudio no fio. Numa chamada IP há três opções, e as duas pontas precisam concordar em uma.

MétodoComo o dígito trafegaOnde quebra
Áudio em bandaOs tons são misturados ao áudio da chamada como qualquer outro somCodecs comprimidos e perda de pacotes distorcem os tons; o decodificador perde ou duplica dígitos
Eventos RTP (RFC 4733 / 2833)Um pacote telephone-event no fluxo RTP informa o dígito e a duraçãoUm lado envia eventos e o outro só escuta áudio
SIP INFOUma mensagem SIP INFO no caminho de sinalização leva o dígito, fora do áudioProxies e operadoras que não repassam INFO, e um tempo que se desalinha do áudio

A RFC 4733 substituiu a RFC 2833 em 2006, mas muitas configurações de PABX e de operadoras ainda dizem “RFC 2833”. É a mesma opção. A RFC explica numa frase por que ela existe: codecs de voz de baixa taxa “não podem garantir a reprodução desses tons com precisão suficiente para reconhecimento automático”. O G.711, codec de 8 kHz usado na maioria das chamadas, transporta bem os tons. Codecs de baixa taxa como o G.729 muitas vezes não.

Eventos RTP são o padrão seguro. Eles sobrevivem a qualquer codec, carregam o dígito exato em vez de um som a ser decodificado, e a maioria das operadoras e plataformas os suporta. A pilha de telefonia da LiveKit, por exemplo, envia DTMF como eventos telephone-event/8000.

Por que os dígitos DTMF somem

Quando as teclas falham numa chamada VoIP, a causa costuma ser uma destas:

  • Métodos diferentes. A operadora envia eventos RFC 4733 e o sistema do outro lado só decodifica áudio em banda, ou o contrário. Confira o modo DTMF na oferta e na resposta SDP dos dois trechos da chamada.
  • Áudio comprimido. Um trecho que transcodifica para um codec de baixa taxa estraga os tons em banda. Mude esse trecho para eventos RTP ou mantenha-o em G.711.
  • Dígitos duplicados. Um gateway envia o tom como áudio e como evento, e o receptor conta os dois. “1234” chega como “11223344”.
  • Um fluxo de mídia que só escuta. Algumas APIs de streaming só repassam teclas em certos modos. O Twilio Media Streams, por exemplo, só envia mensagem dtmf em fluxos bidirecionais.
  • Tempo esgotado. Quem liga faz uma pausa entre os dígitos e o sistema envia uma entrada incompleta. O <Gather> do Twilio espera 5 segundos por padrão e envia ao receber #. Peça para quem liga terminar com cerquilha e defina a quantidade de dígitos quando souber.

O teste mais rápido é um telefone de verdade na operadora de verdade. Ligue, aperte todas as teclas e digite um número com dígitos repetidos. Softphones de navegador e clientes SIP de teste costumam negociar um método diferente do de um celular na rede pública.

DTMF e agentes de voz com IA

Agentes de voz estão substituindo muitos menus do tipo “tecle 1 para cobrança”, mas o teclado não vai sumir. Um agente lida com DTMF em duas direções: quem liga apertando teclas para o agente, e o agente apertando teclas no sistema de outra pessoa.

Receber teclas de quem liga

Tem gente que prefere digitar a falar, e tem número que é mais fácil digitar do que dizer. Um número de conta de 16 dígitos dito em voz alta numa linha com ruído é um teste de reconhecimento de fala; o mesmo número no teclado são dezesseis toques sem ambiguidade. Um bom agente aceita os dois na mesma conversa, sem menu.

Algumas regras fazem a entrada pelo teclado funcionar com um agente:

  • Espere a entrada completa. Quem liga digita o número de cadastro de uma vez. Se o agente responde depois do primeiro dígito, fala por cima do resto. O Cartesia Managed Agents junta os dígitos até a pessoa fazer uma pausa e passa a entrada ao modelo como um único turno de teclado, marcado para que o modelo saiba que foi digitado e não falado.
  • Deixe a tecla interromper. Quem começa a digitar no meio da frase quer que o agente pare de falar. No Managed Agents, uma tecla corta a resposta do agente do mesmo jeito que a fala.
  • Mantenha segredos longe do modelo. Não colete números de cartão nem senhas completas pelo agente. Transfira para uma linha de pagamento dentro do seu escopo PCI e devolva só um token ou um resultado. O guia de bancos detalha isso.
  • Diga o que apertar. “Digite seu número de cadastro e depois cerquilha” funciona melhor que “Informe seu número de cadastro”, porque a pessoa sabe que as duas opções existem.

No Managed Agents, as teclas chegam ao agente nas chamadas pelo Twilio e pelo WebSocket do agente. Se você conectar o seu próprio cliente ao WebSocket, repasse cada tecla como um evento dtmf_input:

{ "type": "dtmf_input", "digit": "5" }

Os dígitos válidos são de 0 a 9, * e #. Em qualquer outro caminho de telefonia, incluindo um tronco SIP, faça uma chamada de teste e confirme que o agente recebe as teclas antes de montar um fluxo que dependa delas.

Enviar tons para navegar em outro menu telefônico

A outra direção é o agente apertando teclas. Agentes de saída que ligam para operadoras de saúde, farmácias ou fornecedores passam o primeiro minuto de cada chamada na URA de outra empresa. A SuperDial, que faz chamadas a operadoras de saúde para organizações da área usando a Cartesia, incorporou a navegação de URA aos seus agentes justamente por isso.

No Managed Agents, ative a ferramenta de sistema send_dtmf (Send keypad tones na página Tools do Playground). O agente passa a enviar um ou mais tons, como 12#, quando um menu pedir.

{
	"config": {
		"system_tools": {
			"send_dtmf": {}
		}
	}
}

Menus telefônicos foram feitos para humanos pacientes, então diga ao agente como se comportar neles:

  • Ouça a mensagem inteira antes de apertar. Muitos menus ignoram a entrada até a mensagem terminar, e a opção que você quer costuma ser a última.
  • Coloque os caminhos conhecidos no prompt. “Na Acme Health, tecle 2, depois 4, depois informe o NPI do prestador seguido de cerquilha.” Variáveis dinâmicas podem preencher os identificadores em cada chamada.
  • Não fale enquanto navega. Fala na linha pode confundir um menu que está ouvindo tons ou voz. A ferramenta envia os tons sem o agente narrá-los.
  • Prepare-se para o atendente. Quando uma pessoa atende, o agente precisa sair do modo menu e entrar na conversa. Escreva essa transição no prompt.

Para conferir que tudo funciona, rode os mesmos cenários que você usaria em qualquer fluxo telefônico. O guia de testes de URA cobre caminhos de teclado roteirizados e como avaliar um agente pelo resultado.

Onde a Cartesia entra

A Cartesia desenvolve os modelos de voz em que os agentes rodam: Sonic para texto para fala e Ink para fala para texto. O Managed Agents junta os dois num agente hospedado que atende chamadas em números da Cartesia, no Twilio ou no seu próprio tronco SIP, com send_dtmf e transferências integrados. Chamadas de agente custam US$ 0,06 por minuto, e você pode criar um no playground e ligar para ele do seu telefone.

Se você só precisa de um menu fixo de teclado, um CPaaS como o Twilio ou o seu PABX já fazem isso bem. Um agente compensa quando quem liga mistura fala e teclado, ou quando as suas próprias chamadas precisam passar pelo menu de outra empresa.

Guias relacionados

Perguntas frequentes

O que é DTMF?

DTMF significa dual-tone multi-frequency, ou multifrequência de tom duplo. É a sinalização que o telefone usa quando você aperta uma tecla: cada tecla toca dois tons ao mesmo tempo, um grave e um agudo, e o sistema do outro lado decodifica o par como um dígito. A Bell lançou o padrão como Touch-Tone em 1963, e a Recomendação ITU-T Q.23 padroniza as frequências.

Quais são as frequências dos tons DTMF?

As linhas do teclado usam 697, 770, 852 e 941 Hz. As colunas usam 1209, 1336, 1477 e 1633 Hz. Apertar o 5, por exemplo, toca 770 Hz e 1336 Hz juntos. A coluna de 1633 Hz tem as teclas A, B, C e D, que a maioria dos telefones não tem.

Por que o DTMF não funciona na minha chamada VoIP?

Normalmente as duas pontas não concordam sobre como transportá-lo. O DTMF pode trafegar como áudio dentro da chamada, como eventos telefônicos RTP (RFC 4733) ou como mensagens SIP INFO. Codecs comprimidos distorcem os tons em banda e, se um lado envia eventos enquanto o outro escuta o áudio, os dígitos desaparecem. Confira se as duas pontas negociam o mesmo método e prefira eventos RFC 4733.

Qual é a diferença entre RFC 2833 e RFC 4733?

Elas descrevem a mesma coisa. A RFC 4733 substituiu a RFC 2833 em 2006 e define como enviar dígitos DTMF como eventos nomeados dentro do fluxo de áudio RTP. Muitos equipamentos e operadoras ainda chamam a opção de "RFC 2833", então trate os dois nomes como uma única opção.

Um agente de voz com IA consegue detectar e enviar tons DTMF?

Sim, se a plataforma suportar. No Cartesia Managed Agents, a ferramenta de sistema send_dtmf permite que o agente aperte teclas para navegar no menu telefônico de outra empresa, com os tons de 0 a 9, asterisco e cerquilha. Em chamadas pelo Twilio e pelo WebSocket do agente, o agente também lê o que quem liga digita e responde. Teste as teclas recebidas no seu próprio caminho de operadora antes de depender delas.