KamoCRM

Recording ingest + FFmpeg processing pipeline

FeatureConversionService
Shipped
27 ஏப்ரல், 2026 அன்று 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.

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing