Plano de pendências — Deploy isolado Intelbras Impacta (CSTA)
Status: documento de planejamento — não implementado no lorentz-vps-stack atual.
Planta em produção hoje: Issabel/Asterisk + LorentzCTI (Docker).
Planta futura: Central Intelbras Impacta + LorentzCTI.Impacta (deploy nativo isolado).
1. Duas plantas Lorentz
Planta A — Stack VPS (atual)
Planta B — Impacta CSTA (pendente)
PBX
Issabel / Asterisk (hostnet)
Intelbras Impacta (on-prem ou VM)
Protocolo telefonia
AMI :5038
CSTA :7001 (TCP outbound)
Servidor CTI
LorentzCTI.dll
LorentzCTI.Impacta.dll
Runtime
Container Docker (.NET 9)
systemd Linux ou serviço Windows
Porta agentes
8000 TCP
5000 TCP (legado Attender)
Modelo INI
Modelo=asterisk
Modelo=Intelbras
Monitor operacional
Portal /cti/ + API :8090
Mesma API (já portada no Impacta)
Stack Compose
lorentz-vps-stack completo
Isolado — ver seção 4
flowchart LR
subgraph PlantaA["Planta A — lorentz-vps-stack"]
Issabel[Issabel AMI]
CTI_A[LorentzCTI Docker]
SQL_A[(SQL Server)]
SUP_A[Supervisor]
Issabel -->|AMI 5038| CTI_A
CTI_A --> SQL_A
SUP_A -->|TCP 3000| CTI_A
end
subgraph PlantaB["Planta B — pendente"]
Impacta[Central Impacta CSTA]
CTI_B[LorentzCTI.Impacta systemd]
SQL_B[(SQL Server)]
SUP_B[Supervisor]
Impacta -->|CSTA 7001| CTI_B
CTI_B --> SQL_B
SUP_B -->|TCP 3000| CTI_B
end
2. O que já está pronto (código)
Itens concluídos no repositório server/LorentzCTI.Impacta — não exigem rework para a Planta B:
Item
Arquivo / doc
Projeto unificado Attender + Lorentz
server/LorentzCTI.Impacta/
Cliente CSTA Impacta
Classes/clsImpacta.vb, CSTA/
Deploy Linux systemd
deploy/install-linux.sh, deploy/lorentz-cti-impacta.service
Guia migração Attender
docs/MIGRACAO-ATTENDER-LORENTZ.md
Monitor API REST/SSE
MonitorApiHost.vb, Classes/clsMonitorSnapshot.vb
Doc Monitor API
docs/api-monitor.md
3. O que não fazer na Planta B
Não substituir o container lorentz-cti do stack Issabel por Impacta no mesmo host sem replanejar portas e PBX.
Não usar net9.0.zip / Dockerfile.runtime — eles empacotam LorentzCTI.dll , não Impacta.
Não apontar CTI_Impacta_Ip do INI Asterisk para a central Intelbras — são drivers diferentes (Modelo).
4. Arquitetura alvo — deploy isolado
Cenário típico: cliente com central Impacta em rede corporativa; CTI em Linux dedicado (VM ou bare metal); Supervisor/SQL podem ser compartilhados ou locais.
┌─────────────────────────────┐
│ LorentzCTI.Impacta │
│ (systemd / Linux) │
│ /var/lorentz/ │
└─────────────────────────────┘
TCP :5000 │ │ │ TCP :7001 outbound
│ │ ▼
LorentzCliente Supervisor Central Intelbras
(agentes) :3000 Impacta (CSTA)
│ │
│ TCP :4000
▼ ▼
URA VB.NET SQL Server (LorentzCTI)
│
HTTP :8090 Monitor API
▼
Portal /cti/ (opcional — outro host)
Componentes mínimos
Componente
Obrigatório
Notas
LorentzCTI.Impacta
Sim
.NET 9 runtime
SQL Server LorentzCTI
Sim
Mesmo schema do Supervisor
Central Impacta + licença CTI
Sim
Porta CSTA configurada
Supervisor PHP
Recomendado
TCP Concentre :3000
Lorentz URA (Windows)
Opcional
TCP :4000
MonitorCTI desktop
Opcional
Substituído por API :8090
Issabel / Asterisk
Não
Planta B não usa AMI
5. Checklist de pendências (implementação futura)
Marque conforme for executando um novo projeto cliente.
Fase 0 — Decisão e sizing
[ ] Confirmar modelo de central: Intelbras Impacta com CTI/CSTA habilitado
[ ] Definir se SQL Server e Supervisor ficam no mesmo host do CTI ou no stack VPS remoto
[ ] Documentar IP/porta CSTA da central (CTI_Impacta_Ip, CTI_Impacta_Porta, padrão 7001 )
[ ] Validar licenciamento HardLock (se aplicável ao cliente legado Attender)
Fase 1 — Build e artefato
[ ] Build Release: dotnet publish server/LorentzCTI.Impacta -c Release -r linux-x64 -o ./publish/linux-x64
[ ] (Opcional) Criar script scripts/build-lorentz-cti-impacta-zip.sh espelhando build-lorentz-cti-zip.sh
[ ] (Opcional) Criar docker-compose.impacta.yml separado — somente se decidir containerizar Impacta no futuro
[ ] Commitar alterações Impacta no monorepo omnichannel (pendente hoje)
Fase 2 — INI e banco
[ ] Migrar [Parametros] de Lorentz Servidor.ini → LorentzCTI.Impacta.ini
(ver server/LorentzCTI.Impacta/docs/MIGRACAO-ATTENDER-LORENTZ.md §5)
[ ] Definir Modelo=Intelbras, PortaTCP=5000 (ou manter convenção do site)
[ ] Configurar SQL (ServidorSQL, BancoSQL, SenhaSQL criptografada)
[ ] Habilitar Monitor API:
MonitorApiEnabled = 1
MonitorApiPort = 8090
MonitorApiKey = <senha-forte>
MonitorApiSseIntervalMs = 2000
[ ] Restaurar/migrar banco LorentzCTI se novo ambiente
Fase 3 — Instalação Linux (systemd)
[ ] Criar usuário lorentz: incluído em deploy/install-linux.sh
[ ] Copiar publish para /var/lorentz/
[ ] Instalar unit: sudo cp deploy/lorentz-cti-impacta.service /etc/systemd/system/
[ ] Editar INI: sudo nano /var/lorentz/LorentzCTI.Impacta.ini
[ ] Iniciar: sudo systemctl enable --now lorentz-cti-impacta
[ ] Logs: sudo journalctl -u lorentz-cti-impacta -f
Referência completa: server/LorentzCTI.Impacta/README.md § Linux
Fase 4 — Rede e firewall
Porta
Direção
Serviço
5000
IN
Agentes LorentzCliente
3000
IN
Supervisor (Concentre)
4000
IN
URA
7001
OUT → central
CSTA Impacta
8090
IN (restrito)
Monitor API HTTP
8000
UDP IN
MonitorCTI legado (opcional)
1433
OUT/IN
SQL Server
[ ] Liberar 7001 outbound do host CTI → IP da central Impacta
[ ] Liberar 5000/3000/4000 conforme origem dos clientes
[ ] Restringir 8090 a IPs de supervisão/TI
Fase 5 — Integração Supervisor e portal
[ ] Supervisor: EW_PHOENIX_SERVER / att_config.php → IP do host Impacta, porta 3000
[ ] Testar login agente + estados no Supervisor
[ ] (Opcional) Portal /cti/: ajustar config.json → ctiMonitor.apiBase apontando para URL da API no host Impacta, ou proxy reverso nginx dedicado
[ ] (Opcional) Reutilizar dashboard portal/cti/ copiando assets para nginx local do cliente
Fase 6 — Testes de regressão
Checklist em MIGRACAO-ATTENDER-LORENTZ.md §8:
[ ] Serviço inicia sem erro SQL
[ ] Central associa CSTA (bAssociate=True)
[ ] Agente login TCP :5000
[ ] Supervisor recebe estados :3000
[ ] URA responde XML :4000
[ ] Chamada receptiva → fila → distribuição
[ ] Tabelas CTI_* atualizam
[ ] Monitor API: curl …/api/monitor/snapshot
[ ] SSE: curl -N …/api/monitor/stream
[ ] 24h estável (journalctl)
Fase 7 — Cutover (legado Attender)
[ ] Janela de manutenção conforme MIGRACAO-ATTENDER-LORENTZ.md §9
[ ] Manter AttenderCTI como rollback por 7 dias
[ ] Desativar serviço legado após estabilização
6. Diferenças de configuração — INI
Chave
Planta A (LorentzCTI Docker)
Planta B (Impacta)
Modelo
asterisk
Intelbras
PhoenixPortaTCP
8000
5000 (padrão Attender)
CTI_Impacta_Ip
IP Issabel / host.docker.internal
IP da central Impacta
CTI_Impacta_Porta
5038 (AMI)
7001 (CSTA)
Username / Secret
AMI Asterisk
N/A ou credenciais CSTA
Arquivo INI
LorentzCTI.ini
LorentzCTI.Impacta.ini
7. Monitoramento — Planta B
Ferramenta
Uso
Monitor API :8090
Substituto do MonitorCTI desktop — já no código Impacta
Portal /cti/
Dashboard web (copiar do stack ou proxy)
MonitorOPS :9090
Só se o host Impacta fizer parte de um stack Docker maior
journalctl
Logs primários em deploy systemd
Endpoints: ver server/LorentzCTI/docs/api-monitor.md (válido para ambos os projetos).
8. Itens opcionais (backlog técnico)
Prioridade baixa — implementar somente quando a Planta B for vendida/implantada:
#
Pendência
Esforço
1
Script build-lorentz-cti-impacta-zip.sh + publish automatizado
Baixo
2
docker-compose.impacta.yml isolado (sem Issabel)
Médio
3
Template LorentzCTI.Impacta.ini.template no stack + render-config-impacta.sh
Médio
4
Entrada separada no Portal (/cti-impacta/) ou flag multi-site em config.json
Baixo
5
Runbook MonitorOPS para host systemd (sem container lorentz-cti)
Baixo
6
Commit monorepo omnichannel: arquivos Impacta + Monitor API
Baixo
7
Khomp gravação tronco (UseKhomp=true, Windows only)
Conforme cliente
9. Documentação relacionada
10. Histórico deste plano
Data
Notas
2026-07-10
Criado após entrega Monitor API web (Planta A). API portada para Impacta em disco; deploy Impacta permanece pendente.