FreeSWITCH外呼系统通话记录(CDR)接口

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: 通话记录(CDR) 支持把FreeSWITCH的通话记录写入mysql,sqlserver,oracle等数据库,也可以写入redis的list,或者PUBLISH到redis的channel,方便业务程序实时获取通话记录。

通话记录(CDR) 支持把FreeSWITCH的通话记录写入mysql,sqlserver,oracle等数据库,也可以写入redis的list,或者PUBLISH到redis的channel,方便业务程序实时获取通话记录。

配置说明,在cti.json中添加cdr配置weixin@3307623172,cdr.json文件路径在cdr.conf.xml中配置,默认时fs的conf目录。 “cdr”: { “details”: true, “fields”: [ “rtp_last_audio_codec_string”,“number:billsec”, “number:duration”,“record_filename”,“jsipid:sip_h_X-jssipid” ], “redis”: { “channel”: “cdr”, “list”: “cdr” }, “database”: { “dbtype”: “mysql”, “connectionstring”: “”, “username”: “”, “password”: “”, “table”: “cdr” }, “log”:false }

details 是否记录所有的CDR信息。JSON格式。 fields 要记录那些通道变量,number:开始的表示使用数字格式。可以自定义需要记录的通道变量,数据库中也要添加同名字段,如果变量名和数据库字段名字不一样,可以”字段名:变量名”这样。 redis 配置CDR记录到redis的信息,如果不需要记录到redis,就不要配置这个。 database.dbtype 数据库类型 比如mysql ,sqlserver connectionstring 连接串。mysql例子:127…0.0.1,3306@dbname sqlserevr例子:tcp:127.0.0.1,1433@dbname username 用户名 password table 表名 自定义字段 例子记录外呼队列的自定义变量到CDR

外呼队列添加自定义变量 queue_template_demo


queue_myval_demo

mysql添加一个 queue_name的字段 cdr.json的 “fields”: [ “rtp_last_audio_codec_string”,”number:billsec”, “number:duration”,”record_filename” ,”queue_name”] 添加queue_name这个自定义变量名。 线路也可以同样的方式添加自定义变量到CDR。 sip.js传递参数到CDR sip.js UA的invite方法的附加参数 extraHeaders参数,接收一个Array(String),我们需要传递到后台的参数需要放到此参数中. 格式是固定的,必须以X-为前缀,示例:X-MY-ID: id sip.js部分代码

session = ua.invite(number, { sessionDescriptionHandlerOptions: { constraints: { audio: true, video: false } }, extraHeaders: [ ‘X-MY-ID: ID’, ‘X-MY-VAR: var’ ] }); 数据库CDR表添加一个varchar的myid字段


cti.json里面cdr的配置”fields”: [ “rtp_last_audio_codec_string”,”number:billsec”, “number:duration”,”record_filename” ,”myid:sip_h_X-MY-ID”] 默认字段 uuid 通话的UUID channel 通道 account sip分机账户或者网关名字或者fromuser direction 方向 inbound outbound destination_number 拨打的号码 caller_id_number 主叫 callee_id_number 被叫(单腿呼叫为空) sip_term_status 终止sip代码(主动挂断为空) sip_hangup_disposition 挂断说明 recv_bye:对方发起挂断 send_bye:本地发起挂断 recv_refuse:对方拒接 send_refuse:本地取消呼叫 network_addr 对方网络地址 created_time 发起呼叫时间 answered_time 接通时间 hungup_time 挂断时间 hangup_cause 挂断原因,见下表,含义参考:


freeswitch.org/confluence/…

常见的几个

RECOVERY_ON_TIMER_EXPIRE 呼叫超时 NO_USER_RESPONSE 响应超时 USER_BUSY 线路忙 UNALLOCATED_NUMBER 未分配的号码,比如(VOS)路由配置错误 CALL_REJECTED 呼叫拒绝,路由配置错误或者设备配置错误 USER_NOT_REGISTERED 没有注册


全部说明:


NONE UNALLOCATED_NUMBER NO_ROUTE_TRANSIT_NET NO_ROUTE_DESTINATION CHANNEL_UNACCEPTABLE CALL_AWARDED_DELIVERED NORMAL_CLEARING USER_BUSY NO_USER_RESPONSE NO_ANSWER SUBSCRIBER_ABSENT CALL_REJECTED NUMBER_CHANGED REDIRECTION_TO_NEW_DESTINATION EXCHANGE_ROUTING_ERROR DESTINATION_OUT_OF_ORDER INVALID_NUMBER_FORMAT FACILITY_REJECTED RESPONSE_TO_STATUS_ENQUIRY NORMAL_UNSPECIFIED NORMAL_CIRCUIT_CONGESTION NETWORK_OUT_OF_ORDER NORMAL_TEMPORARY_FAILURE SWITCH_CONGESTION ACCESS_INFO_DISCARDED REQUESTED_CHAN_UNAVAIL PRE_EMPTED FACILITY_NOT_SUBSCRIBED OUTGOING_CALL_BARRED INCOMING_CALL_BARRED BEARERCAPABILITY_NOTAUTH BEARERCAPABILITY_NOTAVAIL SERVICE_UNAVAILABLE BEARERCAPABILITY_NOTIMPL CHAN_NOT_IMPLEMENTED FACILITY_NOT_IMPLEMENTED SERVICE_NOT_IMPLEMENTED INVALID_CALL_REFERENCE INCOMPATIBLE_DESTINATION INVALID_MSG_UNSPECIFIED MANDATORY_IE_MISSING MESSAGE_TYPE_NONEXIST WRONG_MESSAGE IE_NONEXIST INVALID_IE_CONTENTS WRONG_CALL_STATE RECOVERY_ON_TIMER_EXPIRE MANDATORY_IE_LENGTH_ERROR PROTOCOL_ERROR INTERWORKING SUCCESS ORIGINATOR_CANCEL CRASH SYSTEM_SHUTDOWN LOSE_RACE MANAGER_REQUEST BLIND_TRANSFER ATTENDED_TRANSFER ALLOTTED_TIMEOUT USER_CHALLENGE MEDIA_TIMEOUT PICKED_OFF" USER_NOT_REGISTERED PROGRESS_TIMEOUT INVALID_GATEWAY GATEWAY_DOWN INVALID_URL INVALID_PROFILE NO_PICKUP SRTP_READ_ERROR BOWOUT BUSY_EVERYWHERE DECLINE DOES_NOT_EXIST_ANYWHERE NOT_ACCEPTABLE UNWANTED 建表SQL例子 CREATE TABLE cdr ( uuid VARCHAR(50) , channel VARCHAR(100) , account VARCHAR(50) , direction VARCHAR(50) , destination_number VARCHAR(50), caller_id_number VARCHAR(50) , callee_id_number VARCHAR(50) , direction VARCHAR(50) , sip_term_status VARCHAR(50) , hangup_cause VARCHAR(100) , sip_hangup_disposition VARCHAR(50) , network_addr VARCHAR(50) , created_time DATETIME , answered_time DATETIME , hungup_time DATETIME , billsec INT , duration INT , rtp_last_audio_codec_string VARCHAR(50) , record_filename VARCHAR(256) , details TEXT )

相关文章
|
5天前
|
人工智能 定位技术 SEO
我学 GEO 第 15 天:终于知道AI GEO该如何做?
我是暴走的莉莉酱,边旅行边研究AI GEO的数字游民。专注普通人如何提升“AI可见度”——让AI在回答用户问题时准确识别、理解并推荐你。不讲玄学,只做可测、可调、可持续的GEO实践。
420 125
|
8天前
|
机器学习/深度学习 人工智能 调度
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
HappyHorse 1.1 是新一代视频生成大模型,全面升级动态表现力、角色一致性、指令遵循、视觉质感与音画协同能力。支持I2V/T2V/R2V三类生成,适配短剧、电商广告、品牌营销等场景,提供高质、流畅、可控的AI视频生产力。
709 5
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
|
5天前
|
缓存 人工智能 运维
阿里云618百炼大模型Qwen3.7-Max功能、免费试用、订阅计费、配置接入详解
Qwen3.7-MAX是阿里云百炼平台推出的通义千问3.7系列旗舰大语言模型,专为智能体时代复杂任务打造,依托阿里云全域算力与自研技术,在逻辑推理、长文本处理、代码工程、长周期自主执行等领域达到行业顶尖水平。2026年618期间,该模型推出多重免费试用权益、按量计费5折、订阅套餐优惠等专属福利,覆盖个人开发者、团队与企业全场景需求,以下从核心功能、免费试用、订阅计费、配置接入四方面展开详细解析。
413 123
|
3天前
|
人工智能 自然语言处理 API
阿里云Token Plan团队版解析:功能、三档套餐与省钱订阅指南
阿里云百炼平台推出的Token Plan团队版,是面向企业与团队的AI大模型订阅服务,以Credits为统一计量单位,整合文本与图像生成模型,提供团队管理、数据安全、多工具兼容等核心能力,解决团队零散订阅AI服务的管理混乱、成本失控、数据安全等痛点。本文将从核心定位、套餐详情、计费规则、团队管理、工具兼容、便宜订阅技巧等方面,全面解析Token Plan团队版,帮助企业与团队高效、低成本地使用AI服务。
308 108
|
5天前
|
存储 人工智能 数据可视化
别再手动复制 Skill 了:多 Agent 时代的 Skill 管理方案
多 Agent 场景下 Skill 的统一管理与同步。
255 123
|
19天前
|
缓存 测试技术 API
Qwen 3.7 Plus 与 Max 实测:性价比与多模态能力差异解析(2026)
2026 年 6 月 1 日,阿里悄无声息地发布了 Qwen 3.7 Plus,距 Qwen 3.7 Max 上线刚好 11 天。同样的 1M 上下文,同样的 35 小时自治上限。但价格才是头条:Plus 是 0.40/M输入,Max是 2.50/M——便宜约 6 倍——并且还能看图、看视频。Vision Arena 上 Plus 已经排到 #16。所以这周真正值得讨论的问题不是”要不要为视觉能力买单”,而是”Max 凭什么用 6 倍价格换来 2 个百分点的 benchmark 领先”。
|
12天前
|
缓存 人工智能 运维
GLM 5.2自托管全流程实战:硬件选型、vLLM/SGLang部署与成本盈亏测算
2026年智谱发布GLM 5.2超大混合专家模型,区别于以往仅开放API的闭源大模型,该模型权重以MIT开源协议对外发布,企业与开发者可完整下载、本地审计、私有化部署,实现数据不出环境、自定义微调、自主调度推理资源。GLM 5.2拥有753B总参数,原生支持百万级上下文窗口,在代码生成、长文档推理、数学逻辑等多项基准测试中对标国际顶尖商用模型,是首款可完整自托管的前沿代码向大模型。
931 0
|
13天前
|
Linux 程序员 数据格式
【2026最新】Notepad++下载、安装和使用一篇搞定(附中文版安装包)
Notepad++ 是一款免费开源、轻量高效的 Windows 文本编辑器,支持 C/Python/HTML 等 80+ 语言语法高亮、代码折叠、正则替换、编码转换及插件扩展,专为程序员与文本处理用户打造,完美替代系统记事本。(239字)