- Shipped
- April 27, 2026 at 3:44 AM UTC
- Author
- Kamo
- Commit
- 498bc3b
- New **************** endpoint stages multipart uploads forwarded by APIService into MinIO bucket **************** and creates an UnprocessedRecording staging row. Idempotent on retries using (phoneServerId, asteriskUniqueId). - New **************** endpoint (called by DaemonService) drains rows: downloads staged WAVs, mixes call legs into a single Opus/WebM master via FFmpeg amix, transcodes per-channel WAVs as tracks alongside the master, and uploads through RecordingImagingService with VM_RECORDING (8) / CALL_RECORDING (9) ImageAssocType. - New FfmpegService wrapper (transcodeToOpusWebm / mixToOpusWebm) with timeout and tempfile cleanup. - NATS publisher emits voip.recording.received on every staged upload so DaemonService can short-cut its periodic poll. - Dockerfile installs ffmpeg in the runtime stage (alpine ffmpeg ships libopus by default). - ConfigMap exposes **************** (shared cross-service internal-call secret) so the new endpoints can authenticate APIService and DaemonService callers.