- 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.