Skip to content

CTI transfer transcriptions: duplicated/ghost/00:00:00 rows on blind and consultative transfers #8040

@tommaso-ascani

Description

@tommaso-ascani

QA point 5 of #7143 — call transcriptions on transfers.

Symptoms

  • Blind transfer 203→202→201: 202 sees a duplicate transcription; 203 sees a ghost call 91201 → 201.
  • Consultative transfer: consultative leg shows duration 00:00:00; transcription duplicated and only the 00:00:00 row carries the correct text; ghost 91201 → 201.

Root cause

Persisted transcripts (read by History) are written by ns8-nethvoice freepbx/.../satellite/bin/satellite_transcript, invoked per recording (-u <uniqueid> -l <linkedid>). In its segment loop (~L131) every bridge segment is posted under the same invocation uniqueid:

$segmentUniqueid = $uniqueid;   // all segments → one uniqueid

A transfer recording holds several bridge segments (consultation + post-transfer) to different peers, so all text lands on one CDR row (often the 00:00:00/Local leg) while the other legs stay empty/duplicated.

Fix

  1. ns8-nethvoice satellite_transcript: map each segment to the uniqueid of its own leg (from CEL/CDR), instead of the invocation uniqueid. (Primary)
  2. nethcti-middleware: align the content-filter lookup key to per-leg uniqueid (fetchParticipatedConversationsFromDB is already per-leg).
  3. nethcti-server dbconn_history.js: 00:00:00 billsec on transfer/consultation legs and the ghost 91201 row.

Canonical transcript identity = one per leg (uniqueid); live transcription stays call-level (linkedid).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions