联系管理员

开通文章发布权限

扫码 添加微信
微信图片
电话: QQ:3810899917

freeswitch的v_xml_cdr 详细呼叫记录表通话详情解析-FusionPBX

freeswitch的v_xml_cdr 详细呼叫记录表通话详情解析-FusionPBX

以下是 v_xml_cdr 表的字段含义注释(基于 FusionPBX 开源 PBX 系统的 CDR 逻辑):

表注释

表名: v_xml_cdr
作用: 存储 FusionPBX 的详细呼叫记录(CDR),包含呼叫元数据、状态、媒体信息和扩展功能集成。

 


字段注释

 

字段名类型说明
xml_cdr_uuiduuid主键,CDR 记录的唯一标识符
domain_uuiduuid关联的域名/租户 UUID(多租户隔离)
provider_uuiduuid关联的网关提供商 UUID(用于出局呼叫)
extension_uuiduuid关联的分机 UUID(主叫或被叫分机)
sip_call_idtextSIP 呼叫的唯一标识(Call-ID 头字段)
domain_nametext域名(如 example.com
accountcodetext计费账号(用于 CDR 计费关联)
directiontext呼叫方向inbound/outbound/local
default_languagetext默认语音提示语言(如 en
contexttextFreeSWITCH 拨号计划上下文
caller_id_nametext主叫显示名称
caller_id_numbertext主叫号码
caller_destinationtext主叫原始目标号码
source_numbertext实际主叫号码(可能被改写前)
destination_numbertext被叫号码
start_epochnumeric呼叫开始时间(Unix 时间戳,秒)
start_stamptimestamptz呼叫开始时间(带时区)
answer_stamptimestamptz呼叫应答时间(带时区)
answer_epochnumeric呼叫应答时间(Unix 时间戳,秒)
end_epochnumeric呼叫结束时间(Unix 时间戳,秒)
end_stamptimestamptz呼叫结束时间(带时区)
durationnumeric总时长(秒,从开始到结束)
mdurationnumeric媒体流时长(秒)
billsecnumeric计费时长(秒)(从应答到结束)
billmsecnumeric计费时长(毫秒)
hold_accum_secondsnumeric累计保持时间(秒)
bridge_uuidtext关联的桥接 UUID(用于连接 A/B 腿)
read_codectext接收的编解码(如 PCMU
read_ratetext接收的采样率(如 8000
write_codectext发送的编解码
write_ratetext发送的采样率
remote_media_iptext远端媒体 IP 地址
network_addrtext网络地址(呼叫来源 IP)
record_pathtext录音文件存储路径
record_nametext录音文件名
record_lengthnumeric录音时长(秒)
record_transcriptiontext录音转文本内容
legchar(1)呼叫腿标识A=主叫腿,B=被叫腿)
originating_leg_uuiduuid原始呼叫腿 UUID
pdd_msnumericPost-Dial Delay(毫秒)(拨号到回铃的延迟)
rtp_audio_in_mosnumeric接收音频的 MOS 值(1-5,语音质量评分)
last_apptext最后执行的拨号计划应用(如 bridge
last_argtext最后应用的参数
voicemail_messagebool是否转到语音信箱
missed_callbool是否未接来电
call_center_queue_uuiduuid关联的呼叫中心队列 UUID
cc_sidetext在呼叫中心中的角色(agent/member
cc_member_uuiduuid呼叫中心成员 UUID(来电者)
cc_queue_joined_epochnumeric加入队列的时间戳
cc_queuetext呼叫中心队列名称
cc_member_session_uuiduuid成员会话 UUID
cc_agent_uuiduuid座席 UUID
cc_agenttext座席标识(通常为分机号)
cc_agent_typetext座席类型(如 callback
cc_agent_bridgedtext座席是否被桥接
cc_queue_answered_epochnumeric队列被应答的时间戳
cc_queue_terminated_epochnumeric队列终止的时间戳
cc_queue_canceled_epochnumeric队列取消的时间戳
cc_cancel_reasontext队列取消原因
cc_causetext呼叫中心呼叫结束原因
waitsecnumeric在队列中等待的秒数
conference_nametext会议名称
conference_uuiduuid会议 UUID
conference_member_idtext会议成员 ID
digits_dialedtext拨打的按键(DTMF)
pin_numbertext会议 PIN 码
statustext呼叫状态(如 active/completed
hangup_causetext挂机原因(如 NORMAL_CLEARING
hangup_cause_q850numericQ.850 标准挂机原因码(如 16=正常拆线)
sip_hangup_dispositiontextSIP 挂机处置(如 send_bye
call_flowjsonb呼叫流程的 JSON 数据
xmltext原始 CDR 的 XML 格式
jsonjsonbCDR 的 JSON 格式(便于解析)
insert_datetimestamptz记录创建时间
insert_useruuid创建者 UUID
update_datetimestamptz记录最后更新时间
update_useruuid最后更新者 UUID

 


关键字段说明

  1. 呼叫标识

    • sip_call_id + bridge_uuid 唯一标识一次呼叫

    • leg 区分主被叫腿(同一通话有 A/B 两条记录)

  2. 时间维度

    • start_stamp:呼叫发起时间

    • answer_stamp:被叫应答时间

    • end_stamp:呼叫结束时间

    • billsec:实际通话时长(计费基础)

  3. 质量分析

    • pdd_ms:拨号后延迟(>300ms 可能影响体验)

    • rtp_audio_in_mos:语音质量评分(>4.0 为良好)

    • hangup_cause:故障诊断关键(如 NO_ANSWER/USER_BUSY

  4. 高级功能集成

    • 录音record_path + record_name 定位录音文件

    • 呼叫中心cc_* 字段跟踪队列性能(放弃率/等待时间)

    • 会议conference_* 字段关联会议系统

  5. 原始数据

    • xml:原始 CDR XML(完整细节)

    • json:结构化 CDR 数据(便于分析)

    • call_flow:可视化呼叫路径(JSON 格式)

FusionPBX CDR 特点
  1. 每通通话生成两条记录(A 腿和 B 腿),通过 bridge_uuid 关联

  2. missed_call=true 时配合 hangup_cause 分析未接原因

  3. 呼叫中心相关字段需启用 mod_callcenter 模块

  4. MOS 值依赖 mod_rtp_quality 模块计算

查询通话记录sql:

 select  
 c.domain_uuid,  
 c.sip_call_id,  
 e.extension,  
 e.effective_caller_id_name as extension_name,  
 c.start_stamp,  
 c.end_stamp,  
 to_char(timezone('UTC', start_stamp), 'DD Mon YYYY') as start_date_formatted,  
 to_char(timezone('UTC', start_stamp), 'HH12:MI am') as start_time_formatted,  
 c.start_epoch,  
 c.hangup_cause,  
 c.billsec as duration,  
 c.billmsec,  
 c.missed_call,  
 c.record_path,  
 c.record_name,  
 c.xml_cdr_uuid,  
 c.bridge_uuid,  
 c.direction,  
 c.billsec,  
 c.caller_id_name,  
 c.caller_id_number,  
 c.caller_destination,  
 c.source_number,  
 c.destination_number,  
 c.leg,  
 c.read_codec,  
 c.write_codec,  
 c.cc_side,  
 c.answer_stamp,  
 c.status,  
 c.sip_hangup_disposition,  
 c.pdd_ms,  
 c.rtp_audio_in_mos,  
 (c.answer_epoch - c.start_epoch) as tta from v_xml_cdr as c  
 left join v_extensions as e on e.extension_uuid = c.extension_uuid  
 inner join v_domains as d on d.domain_uuid = c.domain_uuid  
 where c.domain_uuid = 'f4039128-965b-4d71-9673-778b6345b07f'
 and hangup_cause != 'LOSE_RACE'  
 and leg = 'a'
 order by start_stamp desc limit 0 offset 0
 查询通话记录的 sql

通话时长计算字段:(c.answer_epoch - c.start_epoch) AS tta

 

评论

快捷导航

把好文章收藏到微信

打开微信,扫码查看

关闭

还没有账号?立即注册