collabSupport/services/voiceDiag/checks/wan
jmcqueen 9d0dbb071e Add per-app DPI voice-quality checks + widen WAN window to 7d
Adds three new SD-WAN checks (wanAppRtpMos/Loss/Jitter) that measure
REAL voice-traffic quality on actual RTP frames via Prisma DPI, not
synthetic link probes. Graded against the WORST 5-minute window so
transient degradation the 24h link-probe averages smooth away
actually surfaces.

Voice-app selection is tenant-configurable via PRISMA_APP_ID_VOICE +
PRISMA_APP_NAME_VOICE (Webex_Calling_RTP recommended for Webex
Calling shops — the Webex-specific DPI signature excludes non-Webex
UDP noise). Legacy PRISMA_APP_ID_RTP_BASE still honored with a
one-time deprecation warning.

Widens the default WAN look-back from 24h to 7 days: per-app metrics
only get datapoints when calls actually happen, so sporadic Webex
Calling stores (3-4 calls/day) need a wider window for worst-window
statistics to be meaningful. Interval picker snaps 7d to 1hour
buckets (168 pts) to keep payloads bounded while preserving
worst-hour granularity. Hard-capped at 7d — beyond that Prisma
downsamples to 1-day buckets and the signal collapses.

Also:
- Client-side concurrency limiter (PRISMA_MAX_INFLIGHT, default 3)
  to prevent 429 cascades when /voicediag fans out 10+ parallel
  metric fetches
- "View in Prisma UI" deep links in both /phonestatus WAN follow-up
  and /voicediag details, threading through a new
  integrations/paloalto/urls.js builder
- humanizeMetricUnit maps raw API unit strings ("percentage",
  "milliseconds") to display symbols ("%", "ms") to fix
  "11.83percentage" leaking to the UI
- getAppAudio envelope distinguishes not-configured / fetch-failed /
  no-traffic states so misleading "set env var" messages don't fire
  when the real problem is a 429

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-09 13:54:15 -04:00
..
_helpers.js Add per-app DPI voice-quality checks + widen WAN window to 7d 2026-07-09 13:54:15 -04:00
wanAlarms.js Clean up SD-WAN alarm rendering + explain overlay vs physical 2026-07-09 10:19:15 -04:00
wanAppRtpJitter.js Add per-app DPI voice-quality checks + widen WAN window to 7d 2026-07-09 13:54:15 -04:00
wanAppRtpLoss.js Add per-app DPI voice-quality checks + widen WAN window to 7d 2026-07-09 13:54:15 -04:00
wanAppRtpMos.js Add per-app DPI voice-quality checks + widen WAN window to 7d 2026-07-09 13:54:15 -04:00
wanHealthscore.js Add Prisma SD-WAN voice-quality enrichment for /phonestatus + /voicediag 2026-07-09 09:45:29 -04:00
wanJitter.js Add Prisma SD-WAN voice-quality enrichment for /phonestatus + /voicediag 2026-07-09 09:45:29 -04:00
wanLatency.js Add Prisma SD-WAN voice-quality enrichment for /phonestatus + /voicediag 2026-07-09 09:45:29 -04:00
wanLinkState.js Add Prisma SD-WAN voice-quality enrichment for /phonestatus + /voicediag 2026-07-09 09:45:29 -04:00
wanLoss.js Add Prisma SD-WAN voice-quality enrichment for /phonestatus + /voicediag 2026-07-09 09:45:29 -04:00
wanMos.js Add Prisma SD-WAN voice-quality enrichment for /phonestatus + /voicediag 2026-07-09 09:45:29 -04:00
wanSite.js Add Prisma SD-WAN voice-quality enrichment for /phonestatus + /voicediag 2026-07-09 09:45:29 -04:00