Pular para o conteúdo
DeskVoiceDeskVoiceGitHub ★ 31Instalar

Central telefônica open source · agentes de IA · na sua VPS

A ligação não é o produto. É o começo de um trabalho.

O DeskVoice atende o telefone com um agente de IA que executa ferramentas durante a conversa, pede aprovação a uma pessoa quando precisa, transfere quando é o caso e deixa tarefas rodando depois que a chamada termina.

  • Licença MIT
  • Sem versão paga
  • Banco de dados na sua VPS

v0.2.0 Fundação em construção. Veja até onde cada capacidade foi provada.

Chamada recebidaClínica Bem Viver
  1. Marina, na linha

    Tenho uma limpeza de pele marcada para quinta às duas da tarde e preciso remarcar. E queria saber se consigo um desconto fechando o pacote de três sessões.

  2. Lia, agente da recepção

    Claro, Marina. Vou deixar o pedido de remarcação anotado para a recepção confirmar o novo horário com você.

  3. notify_human

    A recepção recebe o aviso no painel: remarcar de quinta às 14h para sexta de manhã.

  4. Lia

    Sobre o desconto no pacote, eu não posso decidir sozinha.

  5. request_approval

    “Posso dar 10% de desconto no pacote de três sessões?” Uma pessoa responde pelo painel, com prazo, enquanto a Marina espera na linha.

  6. Lia

    Obrigada por aguardar, Marina. Já tenho a resposta da responsável.

  7. transfer_to_human

    A ligação vai para a recepção. O resumo do que já foi dito fica no painel.

  8. depois da chamada

    Resumo, avisos e tarefas de acompanhamento entram na fila. O custo fica registrado na linha do tempo.

Este é o roteiro da chamada de demonstração do repositório. pnpm install && pnpm demo a executa no seu computador, sem chave de IA e sem operadora.

O problema

Um robô que atende bem e não faz nada é uma secretária eletrônica cara.

Quando alguém liga para uma empresa, quer que algo aconteça: marcar, remarcar, saber onde está o pedido, falar com a pessoa certa. A conversa por voz é só a parte audível.

O trabalho de verdade é o que acontece durante e depois: consultar um sistema, avisar alguém, pedir uma autorização, registrar o que foi combinado, cumprir o combinado. O DeskVoice existe para esse resto. A tese inteira está em VISION.md.

Como trabalha

Durante a ligação, com uma pessoa no meio, e depois que desliga.

  1. durante

    O agente executa ferramentas no meio da conversa

    Avisar alguém, pedir aprovação, transferir, chamar um webhook. Cada ferramenta é um arquivo, e cada uso vira um evento na linha do tempo da chamada.

    Ver as ferramentas no código
  2. no meio

    Uma pessoa decide, sem a ligação cair

    O agente pergunta “posso dar este desconto?” a alguém de verdade enquanto o cliente espera. Se ninguém responder no prazo, vale a resposta padrão que o dono definiu.

    Ler a doutrina do sistema vivo
  3. depois

    O trabalho continua quando a chamada termina

    Resumo, avisos e tarefas de acompanhamento entram numa fila e são executados por um processo separado. Toda chamada termina com um desfecho registrado.

    Ver as rotinas no código

Silêncio é defeito

Se o modelo de IA cai, quem ligou ouve um sinal de aviso e é transferido, ou a chamada é encerrada. A tela mostra o que houve. Uma mensagem gravada no lugar do sinal ainda não existe: está em SECURITY.md.

Custo à vista

Cada chamada mostra quanto custou, e cada agente tem um teto de custo e de duração por chamada.

Configuração tem tela

Tronco, número, chave de IA e agente se configuram pelo painel. Nenhum recurso exige SSH para ser ligado.

O caminho de uma ligação, da operadora ao painel, está em ARCHITECTURE.md.

Provas

Até onde cada capacidade foi provada.

O DeskVoice é uma fundação recém-lançada. Para ninguém instalar esperando o que ainda não foi provado, o repositório mantém esta tabela. O site a lê do README: quando uma prova muda lá, muda aqui.

Provado numa instalação real 4

Rodou numa VPS de teste, do jeito e até o ponto que a linha descreve.

  • Instalar numa VPS pelo kit de instalaçãoProvado numa instalação real, sem domínio
  • Painel e voz do navegador pelo mesmo endereço, a entrada única do CaddyProvado numa instalação real, sem domínio
  • Conversar por voz com o agente pela tela "Falar com o agente"Provado numa instalação real com o motor OpenAI Realtime, por um cliente de teste que faz o papel do navegador com fala gravada. Ainda não por um navegador com microfone
  • Motor de voz OpenAI RealtimeProvado numa instalação real, na conversa pela tela "Falar com o agente" descrita acima

Provado em simulação 5

Coberto por teste de ponta a ponta com o motor simulado, que percorre a chamada inteira sem operadora e sem chave.

  • Conversa da chamada: saudação, falas, ferramentas, encerramentoProvado em simulação
  • Avisar um humano e pedir aprovação no meio da chamada, com prazo e resposta padrãoProvado em simulação
  • Linha do tempo de cada chamada, evento por evento, com custoProvado em simulação
  • Tarefas depois que a ligação termina (resumo, avisos, tarefas de acompanhamento)Provado em simulação
  • Teto de custo e de duração por chamadaProvado em simulação

Testado, sem prova completa 4

Fora das três categorias do README. Leia a linha: ela diz o que foi testado e o que falta.

  • Painel web em português, inglês e espanholRotas testadas com banco real; telas conferidas em português
  • Conectar um WhatsApp por QR Code (Configurações → WhatsApp) e enviar por ele os avisos e as mensagens do agenteO serviço não vem instalado: instala-se pela tela, e custa cerca de 360 MB de memória e 3,2 GB em disco (medido). Rotas testadas com banco real e com um serviço de WhatsApp falso; instalar e remover pelo agente, com Docker simulado. Ainda sem prova com um número real: nenhum QR Code foi lido e nenhuma mensagem saiu. É um cliente não oficial do WhatsApp; veja o guia
  • Atualização, checagem de saúde, backup e restauraçãoTestados com Docker simulado; backup e restauração conferidos à mão num Postgres real
  • Atualizar pela tela (Configurações → Versão e atualização), por um agente do kit no servidorRotas testadas com banco real; agente e agendamento testados com Docker e systemd simulados. Ainda sem prova numa instalação real

Aguardando prova real 7

Implementado e testado contra servidores falsos, mas ainda sem uma ligação feita por operadora real.

  • Painel com domínio e HTTPSAguardando prova real
  • Atender ligação recebida por uma linha de operadora (tronco SIP)Aguardando prova real
  • Transferir a ligação para uma pessoaAguardando prova real (o caminho no Asterisk foi conferido, sem operadora)
  • Motor de voz Gemini LiveAguardando prova real (testado contra servidor falso, sem chave)
  • Enviar WhatsApp durante a chamada, por conectorAguardando prova real
  • Chamar um webhook durante a chamadaAguardando prova real (sem um receptor de verdade)
  • Ligações feitas pelo agenteAguardando prova real, e desligado de fábrica. Veja "Ligações de saída", abaixo

Fez a primeira ligação real? Conte como foi numa issue: é a contribuição mais valiosa neste momento. O que ainda não existe e o que está aberto para a comunidade está no roadmap.

Instalação

Uma linha na sua VPS. O resto é pela tela.

No terminal da VPS
curl -fsSL https://raw.githubusercontent.com/DeskLabs-OpenSource/DeskVoice/main/install/get.sh | bash

O instalador confere a máquina e a rede, faz poucas perguntas, gera todos os segredos, sobe os serviços, cria o primeiro usuário e mostra o endereço do painel. Você não edita variável de ambiente à mão.

Abrir o guia de instalação
  • Uma VPS com Ubuntu 22.04 ou mais novo. Qualquer VPS com Docker serve.
  • Um domínio apontado para a VPS. Opcional para testar.
  • Um tronco SIP com um número, da operadora de sua escolha.
  • Uma chave de IA de voz: Gemini ou OpenAI.
  • Ainda sem nada disso? pnpm install && pnpm demo roda uma chamada inteira no seu computador.

Custos

O software é gratuito. Você paga três coisas, direto ao fornecedor.

  1. 01

    A VPS

    O servidor onde o DeskVoice e o banco de dados rodam. É seu.

  2. 02

    A telefonia

    Depende do tronco que você contratar com a operadora.

  3. 03

    A IA de voz

    Paga por uso ao provedor do modelo. O painel mostra o custo medido de cada chamada.

Não existe versão paga nem recurso travado. Como estimar a sua conta está em docs/guides/custos.md.

Limites

Ligações de saída nascem desligadas.

O agente pode fazer ligações, e o recurso vem desligado. Quem é dono da instalação liga pela tela, depois de declarar a finalidade. O DeskVoice não foi feito para disparo em massa e não aceita contribuição que facilite isso. Leia o guia de conformidade no Brasil antes de ligar o recurso.

  • Teto diário de chamadas por linha
  • Lista de não ligar
  • Janela de horário
  • Limite de tentativas por pessoa
  • Aviso de gravação no início da chamada

Quem constrói

Construído em público, com a comunidade.

O DeskVoice foi criado por Rafael Melgaço e é irmão do DeskcommCRM. Um não precisa do outro. Crédito é regra: quem contribui mantém a autoria do commit e tem o nome nas notas da versão.

Perguntas frequentes

O que costumam perguntar antes de instalar.

Preciso saber programar para instalar?

Programar, não. Você precisa abrir um terminal no servidor e colar um comando; o instalador faz poucas perguntas e não pede edição de arquivo. Se você usa um assistente de código, ele conduz a instalação pela skill deskvoice-instalar. O caminho completo está em Instalar.

Preciso do DeskcommCRM para usar o DeskVoice?

Não. São sistemas independentes. O motivo da separação está em uma decisão registrada.

Já dá para atender ligações de uma operadora?

O caminho está implementado e testado contra um Asterisk de verdade, mas a ligação por operadora real ainda aguarda prova. A tabela de provas mostra o estado de cada capacidade.

Onde ficam os dados das ligações?

Num Postgres dentro da sua VPS, e o sistema não depende de serviço de nuvem para subir. Durante a chamada, a conversa passa pelo provedor de IA que você contratou, sob os termos dele. Veja o guia de conformidade no Brasil.

O DeskVoice grava o áudio das ligações?

Ainda não. A fundação guarda a transcrição e a linha do tempo de eventos. Gravação com retenção configurável está no roadmap, sem data.

Posso instalar para clientes e cobrar por isso?

Pode. A licença é MIT, e há um guia para quem implementa.