feat(frontend): Platform > Infraestrutura > FreeSWITCH/SIP Profiles/Nodes
GET /platform/freeswitch/channels|profiles|nodes fazem introspecção ESL real
(show channels/show calls/sofia status/show registrations/status/show gateways),
reaproveitando os métodos do FreeSwitchTelephonyProvider já verificados manualmente
contra o FreeSWITCH real. Mesmo padrão de conexão avulsa do PlatformHealthController
(connect → comando → disconnect).
Nunca deixa a indisponibilidade do ESL virar 500/503 — devolve { ok: false, error }
com 200, mesma filosofia do health check. Necessário: nesta VM apps/api roda fora do
Docker e a porta 8021 é deliberadamente não publicada no host, então as 3 telas
sempre mostram essa explicação aqui (mesmo texto já usado em Infraestrutura >
Saúde), mesmo com o endpoint 100% funcional — confirmado indiretamente pelo
b2bcall-fs-events, que fala ESL de dentro da rede Docker e está com heartbeat ativo.
"Nodes" mostra explicitamente 1 node (container único, sem clustering) em vez de
fingir uma lista.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BFaBaBSQGhyXGEgtTYZGV8
This commit is contained in:
@@ -68,9 +68,21 @@ export const PLATFORM_NAV: NavSection[] = [
|
||||
label: "Infraestrutura",
|
||||
icon: ServerCog,
|
||||
children: [
|
||||
{ label: "FreeSWITCH" },
|
||||
{ label: "SIP Profiles" },
|
||||
{ label: "Nodes" },
|
||||
{
|
||||
label: "FreeSWITCH",
|
||||
href: "/platform/infraestrutura/freeswitch",
|
||||
description: "Canais e chamadas ativas agora, direto do ESL",
|
||||
},
|
||||
{
|
||||
label: "SIP Profiles",
|
||||
href: "/platform/infraestrutura/sip-profiles",
|
||||
description: "sofia status e registros SIP ativos",
|
||||
},
|
||||
{
|
||||
label: "Nodes",
|
||||
href: "/platform/infraestrutura/nodes",
|
||||
description: "Nodes FreeSWITCH desta implantação (hoje: 1)",
|
||||
},
|
||||
{
|
||||
label: "Saúde",
|
||||
href: "/platform/infraestrutura/saude",
|
||||
|
||||
Reference in New Issue
Block a user