API-key surface for live call events from a customer PBX

FeatureAPIService
Shipped
September 3, 2026 at 10:54 PM UTC
Author
Kamo
Commit
585d747

Companion to VoipRecordingUploadController, on a deliberately separate VOIP_CALL_EVENTS scope: uploading a recording after the fact and making somebody's phone ring right now are different powers, and an administrator issuing a key for one should not silently be granting the other. The instance is taken from the X-Phone-Server-Id header, never from the body -- the API key proves which org is calling, and letting a body field name the instance would let one customer's PBX ring another customer's phones. Also reserves /api/voip/calls/** in APIApp, the same carve-out /api/voip/ recordings/** already needed. Without it the wildcard forward shadows this controller and a ringing extension reaches VOIPService with no key or scope checked at all.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing