Plataforma de Discador VoIP para Call Center

← voltar ao portfólio

01/2025 – 07/2026 · 12 a 18 meses

Plataforma completa de discagem para call center: painel de operação, motor de discagem horizontal e uma linguagem própria de fluxo de IVR.

PythonFlask 3.1PostgreSQL 17Asterisk PJSIPARIODBC realtimeReact 18TailwindCSSDocker ComposeLXCProxmox VEpytest

O problema

Operações de call center precisam discar em escala controlada, respeitar regras por campanha e montar fluxos de URA sem depender de um programador para cada alteração. As soluções de mercado ou eram caixas-pretas caras ou exigiam editar dialplan do Asterisk à mão a cada mudança.

A arquitetura

O painel é Flask 3.1 sobre PostgreSQL 17, com cerca de 45 rotas REST e cliente próprio da API do Proxmox VE (autenticação por ticket PVEAuthCookie mais CSRFPreventionToken) para provisionar containers direto da interface. O motor de discagem usa concurrent.futures e threading para discagem horizontal, recebendo os eventos do Asterisk por webhook em vez de polling. O banco tem 13 tabelas e 12 índices, com postgresql.conf e pg_hba.conf tunados à mão. O Asterisk conversa com o PostgreSQL por ODBC realtime (res_odbc, func_odbc, cdr_adaptive_odbc, cel_odbc) sobre unixODBC, com SQL escrito direto no dialplan. O IVR não é um menu fixo: são 16 contextos que interpretam um fluxo descrito em JSON, e um editor em React 18 converte bidirecionalmente entre o grafo visual e os passos que o motor executa.

O resultado

Evolução real de protótipo em CSV até arquitetura MVC com discagem horizontal multinível e motor de IVR completo, com 15 arquivos de teste pytest só do motor de IVR. É o maior projeto do portfólio.

Painel de operação: campanhas, mailing e estado do discador
Painel de operação: campanhas, mailing e estado do discador
Fluxos de IVR cadastrados, cada um ligado a um DID
Fluxos de IVR cadastrados, cada um ligado a um DID
Editor visual de fluxo em React: os nós viram os passos que o motor executa
Editor visual de fluxo em React: os nós viram os passos que o motor executa

🔒 Código-fonte

git clone https://git.programandosolucoes.com.br/git/repos/painel-discador.git

Código-fonte privado. As credenciais de leitura são liberadas sob solicitação — me chame para conversar sobre o projeto.

Carlos Alberto — carlosalberto4ti@gmail.com · +55 11 2615-2880