Leitfaden zur Abrechnung von Call Detail Records (CDR)

Einführung

In diesem Handbuch wird erläutert, wie der Call Detail Record (CDR) Billing-Datensatz (im Folgenden einfach „Billing“) innerhalb der Cdrbilling-Tabelle strukturiert ist, wodurch die Dashboard-Erstellung aus Grafana und anderen BI-Tools ermöglicht wird.

Abrechnungsbedingungen

Die Abrechnung erfolgt nur für ausgehende externe Anrufe. Dies sind die Kosten des externen Teilnehmers im jeweiligen CDR in Bezug auf die PBX. Die Abrechnung erfolgt in der Tabelle „cdrbilling“, die über das Feld „cdr_id“ mit der übergeordneten Tabelle „cdroutput“ verknüpft ist. Nur beantwortete CDRs können abgerechnet werden. Die Parameter „Anrufkosten“ (siehe Einrichten der Abrechnungsschnittstelle) müssen korrekt konfiguriert sein, damit Abrechnungsdaten in der Tabelle „cdrbilling“ gespeichert werden.


Somit können Teilnehmer mit diesen CDR-Parametern eine Abrechnung erhalten:

  • source_entity_type / destination_entity_type = external_line
  • source_participant_is_incoming / destination_participant_is_incoming = false
  • cdr_answered_at = NOT NULL


Die Abrechnung von Call Detail Records (CDR) ist unabhängig von CDR (Call Data Records) und stellt kein Abrechnungskostenfeld bereit. Stattdessen können die Abrechnungskosten für jeden Teilnehmer anhand des Abrechnungscodes, des Abrechnungssatzes und der Abrechnungsdauer berechnet werden (siehe auch die praktischen SQL-Beispiele).

Felder

Diese Felder definieren und stellen Informationen für jeden Teilnehmer des CDR mit Abrechnung bereit.

  • cdr_id:
  • Beschreibung: Eine eindeutige Kennung für den jeweiligen CDR-Datensatz. Dieses Feld bezieht sich auf das Feld „cdr_id“ in der übergeordneten Tabelle „cdroutput“.
  • Formatdetails:
  • object_creation_timestamp_string: Eine 16-stellige, mit Nullen aufgefüllte, hexadezimale Darstellung des UTC-Zeitstempels seit der Epoche.
  • object_id_string: Eine mit Nullen aufgefüllte hexadezimale Darstellung eines automatisch inkrementierten Zählers. Der Zähler ist spezifisch für den Objekttyp (CDR, call_history_id oder Teilnehmer).
  • Beispiel: 00000000-01db-aef6-c109-60ec0000004c
  • source(destination)_bill_code:
  • source(destination)_bill_rate_name:
  • Beschreibung: Name des Teilnehmertarifs. Wert der Spalte „Ländername“ aus den Einstellungen für „Gesprächskosten“. Siehe: Konfiguration der Abrechnungsschnittstelle
  • Beispiel: Vereinigte Staaten/Kanada; Deutschland; Australien…
  • source(destination)_bill_rate:
  • source(destination)_bill_duration:
  • Beschreibung: Abrechnungsdauer des Teilnehmers. Basierend auf der Gesprächsdauer (CDR-Felder cdr_answered_at, cdr_ended_at).
  • Beispiel: 00:00:30.000000 (30 seconds); 00:01:00.000000 (1 minute)…
  • Siehe: PostreSQL interval
  • migrated:
  • Description: Reserviert. Nicht verwendet

Praktische SQL-Beispiele

CDR-Teilnehmerkosten

SELECT

        -- all cdr fields

        c.*,

        -- all billing fields

        b.*,

        -- source participant cost

        b.source_bill_rate * EXTRACT(EPOCH FROM b.source_bill_duration::interval)/60 AS source_participant_bill_cost,

        -- destination participant cost

        b.destination_bill_rate * EXTRACT(EPOCH FROM b.destination_bill_duration::interval)/60 AS destination_participant_bill_cost

FROM public.cdroutput AS c

LEFT JOIN public.cdrbilling AS b ON

        b.cdr_id = c.cdr_id

ORDER BY c.cdr_id;

Dashboard-Anwendung: Diese Abfrage berechnet die Abrechnungskosten für beide Teilnehmer in jedem CDR.

Weiterführende Informationen

Letztes Update

Dieses Dokument wurde zuletzt am 26. Juni 2025 aktualisiert.

https://www.3cx.de/docs/leitfaden-zur-anrufabrechnung/