Skip to content

Feature: Auto-transcription hook with per-channel caller/callee labels #134

@davidcforbes

Description

@davidcforbes

Description

Automatically trigger transcription when a call recording completes, with speaker identification based on stereo channel mapping.

Implementation

A TranscriptHook that implements CallRecordHook:

  • Triggers configured ASR command when recording finishes
  • Writes structured transcript JSON with timestamps and text
  • Adds role ("caller"/"callee") and label (extension/phone number) per segment
  • Derives speaker identity from stereo WAV channel mapping (ch0 = Leg A = caller, ch1 = Leg B = callee)
  • Updates call record database with transcript path

Config

[proxy.transcript]
command = "/usr/local/bin/sensevoice-cli"
models_path = "/models"
timeout_secs = 120

Files

  • src/addons/transcript/hook.rs — new TranscriptHook module
  • src/addons/transcript/models.rsChannelParticipant, role/label fields
  • src/addons/transcript/handlers.rs — channel-to-participant mapping
  • src/config.rsTranscriptToolConfig struct

Reference: davidcforbes/rustpbx@50d68ca

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions