Kompletny przewodnik po rozliczeniach na podstawie rejestru szczegółów połączeń (CDR)
Wprowadzenie
Ten przewodnik wyjaśnia strukturę rekordu rozliczeniowego (Billing) zawartego w Rejestrze Danych o Połączeniach (CDR), znajdującego się w tabeli cdrbilling, co umożliwia tworzenie paneli analitycznych (dashboardów) w Grafanie i innych narzędziach BI.
Warunki i zasady dotyczące rozliczeń
Rozliczenie dotyczy wyłącznie wychodzących uczestników zewnętrznych. Jest to koszt połączenia z uczestnikiem zewnętrznym w danym rekordzie CDR w odniesieniu do centrali PBX. Dane rozliczeniowe są przechowywane w tabeli cdrbilling, która jest połączona z nadrzędną tabelą cdroutput za pomocą pola cdr_id. Tylko odebrane połączenia CDR mogą podlegać rozliczeniu. Parametry „Call Cost” (Koszty połączeń) (zobacz: Konfiguracja interfejsu rozliczeń) muszą być poprawnie skonfigurowane, aby dane rozliczeniowe były zapisywane w tabeli cdrbilling.
W związku z tym, rozliczeniu mogą podlegać uczestnicy z następującymi parametrami CDR:
- source_entity_type / destination_entity_type = external_line
- source_participant_is_incoming / destination_participant_is_incoming = false
- cdr_answered_at = NOT NULL
Funkcja Rozliczeń CDR (Call Detail Record Billing) jest niezależna od Rejestrów Danych o Połączeniach (CDR) i nie dostarcza pola z kosztem rozliczenia. Zamiast tego, koszt rozliczenia można obliczyć dla każdego uczestnika na podstawie kodu rozliczeniowego, stawki rozliczeniowej i czasu trwania rozliczenia (zobacz więcej w Praktycznych przykładach SQL).
Pola
Poniższe pola definiują i dostarczają informacji dla każdego uczestnika CDR objętego rozliczeniem.
- cdr_id:
- Opis: Unikalny identyfikator dla konkretnego rekordu CDR. To pole jest powiązane z polem cdr_id w nadrzędnej tabeli cdroutput.
- Szczegóły formatu:
- object_creation_timestamp_string: 16-znakowa, dopełniona zerami, szesnastkowa reprezentacja znacznika czasu UTC od początku epoki.
- object_id_string: Dopełniona zerami, szesnastkowa reprezentacja automatycznie inkrementowanego licznika. Licznik jest specyficzny dla typu obiektu (CDR, call_history_id lub participant).
- Przykład: 00000000-01db-aef6-c109-60ec0000004c
- source(destination)_bill_code:
- Opis: Kod rozliczeniowy uczestnika. Wartość z kolumny „Prefix” w ustawieniach „Call Costs” (Koszty połączeń) (zobacz: Konfiguracja interfejsu rozliczeń).
- Przykład: 001; 00113; 177…
- source(destination)_bill_rate_name:
- Opis: Nazwa stawki rozliczeniowej uczestnika. Wartość z kolumny „Country Name” (Nazwa kraju) w ustawieniach „Call Costs” (Koszty połączeń). Zobacz: Konfiguracja interfejsu rozliczeń.
- Przykład: United States/Canada; Germany; Australia…
- source(destination)_bill_rate:
- Opis: Stawka rozliczeniowa uczestnika. Wartość z kolumny „Rate” (Stawka) w ustawieniach „Call Costs” (Koszty połączeń). Zobacz: Konfiguracja interfejsu rozliczeń.
- Przykład: 1; 1.0; 1.5; 3.0…
- source(destination)_bill_duration:
- Opis: Czas trwania rozliczenia dla uczestnika. Na podstawie czasu trwania rozmowy (pola cdr_answered_at, cdr_ended_at w rekordzie CDR).
- Przykład: 00:00:30.000000 (30 sekund); 00:01:00.000000 (1 minuta)…
- Zobacz: Interwał w PostgreSQL
- migrated:
- Opis: Zarezerwowane. Nieużywane.
Praktyczne przykłady SQL
Koszt uczestnika w rekordzie CDR
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;
Zastosowanie w panelu analitycznym: To zapytanie oblicza koszt rozliczenia dla obu uczestników w każdym rekordzie CDR.
Zobacz również
- Jak używać CDR - Call Data Records (Rejestrów danych o połączeniach)
- Kompletny przewodnik po rejestrze szczegółów połączeń (CDR)
Ostatnia aktualizacja
Ten dokument został ostatnio zaktualizowany 15 maja 2025
https://www.3cx.pl/docs/przewodnik-cdr-billing/
