Automatizando o impossível: Integração entre Asterisk e n8n com Google TTS

Essa integração não é só curiosa — ela é poderosa. Juntar Asterisk com n8n permite transformar seu servidor VoIP em uma central automatizada que se conecta com o mundo: APIs externas, bancos de dados, sistemas de alerta e até IA.

Neste post, vou mostrar um exemplo completo e funcional de como criar uma URA dinâmica, que:

  • Consulta dados externos em tempo real
  • Monta uma resposta personalizada
  • Gera áudio com voz do Google
  • Toca isso direto na ligação com o usuário

E ainda deixo no final outras ideias aplicáveis com essa mesma base.


O cenário

Você tem um Asterisk funcional, recebe ligações e quer que ele responda de forma personalizada para cada pessoa que liga. Mas, em vez de programar tudo no dialplan, você quer orquestrar com n8n — visual, dinâmico e conectado com qualquer coisa via API.


A estrutura da URA dinâmica

  1. Ligação entra no Asterisk
  2. Um script AGI dispara um Webhook para o n8n com os dados da chamada
  3. O n8n consulta um sistema externo (API, planilha, banco, etc.)
  4. Ele gera um texto de resposta
  5. Usa o Google TTS para transformar texto em áudio
  6. Converte esse áudio para formato aceito pelo Asterisk
  7. Envia o .wav pro servidor
  8. O Asterisk toca essa resposta para o usuário

Exemplo prático

1. Dialplan Asterisk

[ura-dinamica]
exten => s,1,NoOp(Iniciando URA dinâmica)
 same => n,AGI(agi://127.0.0.1:3000)
 same => n,Playback(custom/retorno)
 same => n,Hangup()

2. AGI ou Script para chamada ao Webhook (exemplo com curl)

curl -X POST https://n8n.seusite.com/webhook/ura \
  -H "Content-Type: application/json" \
  -d '{"numero":"5511999999999","contexto":"agendamento"}'

3. Fluxo no n8n

(a) Webhook → recebe número e contexto
(b) HTTP Request → busca dados externos (ex: agendamento do número)
(c) Function → monta frase como:

“Olá Anderson, seu agendamento está confirmado para amanhã às 14 horas.”

(d) HTTP Request → envia para o Google TTS e recebe um .mp3
(e) Exec Command / Node Function → converte MP3 para WAV com FFMPEG
(f) FTP → envia para /var/lib/asterisk/sounds/custom/retorno.wav


4. Google TTS: requisição de exemplo

curl -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  https://texttospeech.googleapis.com/v1/text:synthesize \
  -d '{
    "input": {"text": "Olá Anderson, seu agendamento é amanhã às 14 horas"},
    "voice": {"languageCode": "pt-BR", "name": "pt-BR-Wavenet-A"},
    "audioConfig": {"audioEncoding": "MP3"}
  }'

5. Conversão do áudio com FFMPEG

ffmpeg -i resposta.mp3 -ar 16000 -ac 1 -f wav resposta.wav

6. Resultado

O usuário liga, o Asterisk pergunta pro n8n o que deve dizer, o n8n consulta dados externos, gera a fala, converte, envia, e o Asterisk fala como se fosse um humano informado.


Outras ideias com Asterisk + n8n

A estrutura acima serve como base para outros fluxos mais complexos, como:

  • Análise de humor do cliente: Transcreve e envia áudio para uma IA analisar sentimentos.
  • Ligação ativa em falhas de sistema: Detecta queda de serviço e inicia ligação automática com alerta.
  • Bot de cobrança automática: Liga para clientes com fatura em aberto e envia boleto por WhatsApp.
  • Confirmação de presença em eventos: Robô liga e registra respostas DTMF em planilha.
  • Segurança e antifraude: Detecta chamadas suspeitas e dispara alertas ou bloqueios.
  • Gravação e envio automático de áudios: n8n pega gravações do Asterisk e envia por e-mail, Google Drive ou Telegram.

Conclusão

Integrar o Asterisk ao n8n abre uma nova camada de inteligência nas ligações. Dá pra conectar telefonia com qualquer outro sistema de forma visual, rápida e com alto grau de automação. E o melhor: sem depender de fornecedores ou soluções engessadas.

Rolar para cima