呼叫详单 (CDR) 计费完整指南
介绍
本指南解释了通话详单 (CDR) 计费记录(下文中简称为计费)在 `cdrbilling` 表中的结构,以便能够从 Grafana 和其他 BI 工具创建仪表盘。
Billing Terms and Conditions
计费仅适用于拨出的外部参与者。这是特定 CDR 中与 PBX 相关的外部参与者的费用。计费信息存储在 `cdrbilling` 表中,该表通过 `cdr_id` 字段与父表 `cdroutput` 相关联。只有已接通的 CDR 才可能有计费信息。必须正确配置“通话成本”参数(参见“设置计费接口”),计费数据才能存储到 `cdrbilling` 表中
因此,具有以下 CDR 参数的参与者才可能有计费信息:
- source_entity_type / destination_entity_type = external_line
- source_participant_is_incoming / destination_participant_is_incoming = false
- cdr_answered_at = NOT NULL
通话详单 (CDR) 计费独立于 CDR - 通话数据记录,本身不提供计费成本字段。相反,可以根据计费代码、计费率和计费时长(参见后面的“实际 SQL 示例”)为每个参与者计算计费成本。
字段
这些字段定义并提供每个 CDR 参与者的计费信息。
- cdr_id:
- 描述:特定 CDR 记录的唯一标识符。此字段与cdr_id父表中的字段cdr输出。
- 格式详细信息:
- object_creation_timestamp_string:自纪元以来的 UTC 时间戳的 16 个字符、以零填充的十六进制表示形式。
- object_id_string:以零填充的十六进制表示的自动递增计数器。该计数器特定于对象类型(CDR、call_history_id 或参与者)。
- 例子: 00000000-01db-aef6-c109-60ec000004c
- source(destination)_bill_code:
- 描述: 参与者计费代码。“通话费用”设置中“前缀”列的值(参见配置计费接口)。
- 例子: 001;00113;177…
- source(destination)_bill_rate_name:
- 描述: 参与者计费费率名称。“通话费用”设置中“国家/地区名称”列的值。请参阅:配置计费接口
- 例子: 美国/加拿大;德国;澳大利亚……
- source(destination)_bill_rate:
- 描述:参与者计费费率。“通话费用”设置中“费率”列的值。请参阅:配置计费接口
- 例子:1;1.0;1.5;3.0…
- source(destination)_bill_duration:
- 描述:参与者计费时长。基于通话时长(话单记录 cdr_answered_at、cdr_ended_at字段)。
- 例子:00:00:30.000000(30 秒);00:01:00.000000(1 分钟)…
- 参阅:PostreSQL 间隔
- migrated:
- 描述:保留。未使用
实际 SQL 示
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;
仪表盘应用: 此查询计算每条 CDR 中两个参与者的计费成本。
另请参阅
- 如何使用CDR——呼叫数据记录
- 完整的 通话详单 (CDR) 指南
上次更新
本文件最后更新于 2025 年 5 月 15 日