Skip to content

NethVoice: CDR records with dst='s' from satellite internal channels pollute call history and reports #8019

Description

@tommaso-ascani

Problem

When the satellite call transcription feature is enabled, Asterisk logs internal technical channels created by satellite into the CDR table (asteriskcdrdb.cdr). These entries are not real calls but appear in:

  • The switchboard call history in NethVoice CTI
  • The call reports in the FreePBX admin panel

Root cause

Satellite uses the Asterisk ARI to create two types of internal channels for each transcribed call:

  1. Snoop channels (Snoop/...) – taps into the real call to capture audio
  2. ExternalMedia channels (UnicastRTP/127.0.0.1:22000-...) – receives audio via local RTP and forwards it to Deepgram

Since these channels are created programmatically via ARI (not through the dialplan), Asterisk has no real destination number and defaults to dst = 's' (the Asterisk start/default extension). The src field is also empty.

Identifying fields of these spurious CDR records:

  • dst = 's'
  • src = ''
  • lastapp = 'Stasis'
  • lastdata = 'satellite'
  • channel starts with Snoop/ or UnicastRTP/

Verified

Confirmed by disabling satellite (removing Deepgram API key + stopping service): no more dst='s' entries appear in CDR.

Expected behavior

Satellite internal channels should not appear in CDR, call history, or call reports.

Proposed fix

Filter out these records at query time in:

  • nethcti-server – CDR queries for switchboard/history
  • FreePBX admin report – exclude rows matching the above pattern

A cleaner long-term fix would be to set CDR_PROP(disable)=1 on satellite-created channels via ARI to prevent them from being written to CDR at all.

Metadata

Metadata

Assignees

No one assigned

    Labels

    nethvoiceBug or features releted to the NethVoice project

    Type

    No type

    Projects

    Status
    Done

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions