FreeSWITCH配置文件解析(6) mod_format_cdr 话单中字段解析
FreeSWITCH mod_format_cdr
支持将 CDR 数据以 JSON 或 XML 格式发送到 HTTP 服务端点。话单中字段的详细解释
一、核心时间字段解析
created_time
: 通话创建时间 表示通话通道初始化的绝对时间戳(如1752736354066514
),即FreeSWITCH收到或发起呼叫的时刻
profile_created_time
: SIP Profile生效时间 记录SIP Profile(如internal
或external
)加载完成的时刻,通常与created_time
接近,反映底层协议栈准备就绪的时间
progress_media_time
: 媒体通道建立时间 指示媒体流(RTP)开始传输的时间戳(如1752736354086524
),比created_time
稍晚,代表媒体协商完成
hangup_time
: 通话结束时间 通话终止的绝对时间戳(如1752736359326513
),无论正常挂机或异常中断均会记录
二、若以下字段值为0
(如示例中所示),表示未触发对应事件:
字段 | 含义 | 触发条件 |
---|---|---|
| SIP协议层 | 仅在有早期媒体时记录 |
| 被叫应答时刻(接通时间) | 被叫摘机后更新 |
| 双路通话桥接完成时间 | 主被叫媒体互通时记录 |
| 最后一次开启保持的时间 | 通话被保持时更新 |
| 累计保持时长(所有保持片段的总和) | 需通话中存在保持操作 |
| 通话从保持状态恢复的时间 | 从保持中恢复时记录 |
| 通话被转移(Attended Transfer)的时间 | 发生转接时更新 |
三、其他字段解析
uuid:唯一标识一次通话会话的 UUID(Universally Unique Identifier)。每个呼叫都会生成一个唯一的 ID,用于跟踪整个会话生命周期。
call-direction:表示通话的方向,可以是“inbound”(呼入)或“outbound”(呼出)。
caller-id-name 和 caller-id-number:分别表示主叫方的名称和号码。这两个字段通常用于识别来电者身份。
callee-id-name 和 callee-id-number:表示被叫方的名称和号码,适用于接听电话时的信息展示。
destination-number:呼叫的目标号码,即用户拨号时输入的号码。
context:通话所处的上下文环境,通常是 FreeSWITCH 中的 dialplan 配置项之一,决定了呼叫如何被路由和处理。
start-time、answer-time 和 end-time:分别表示通话开始时间、接通时间和结束时间,通常以 Unix 时间戳形式呈现。
duration:通话总持续时间,单位为秒。
billsec:实际计费时长,通常从通话接通后开始计算,单位为秒。
hangup-caused-by:表示通话挂断的原因,例如“NORMAL_CLEARING”表示正常挂断,“USER_BUSY”表示用户忙等。
sip-hangup-disposition:SIP 协议中描述挂断原因的具体值,可用于更精确地分析通话终止情况。
account-code:账户代码,用于区分不同的客户或业务线,便于后续的账单统计和分析。
domain-name:所属域名称,通常用于多租户场景下区分不同客户的数据隔离。
rtp-ip 和 rtp-port:表示 RTP 媒体流使用的 IP 地址和端口号,用于网络路径追踪。
rtp-nat-ip 和 rtp-nat-port:NAT 转换后的 RTP 地址和端口信息,适用于穿越 NAT 的场景。
sip-user-agent:SIP 用户代理字符串,标识发起或接收 SIP 请求的客户端软件版本。