IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> FreeSWITCH外呼系统通话记录(CDR)接口 -> 正文阅读

[大数据]FreeSWITCH外呼系统通话记录(CDR)接口

通话记录(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 挂断原因,见下表,含义参考:https://freeswitch.org/confluence/display/FREESWITCH/Hangup+Cause+Code+Table

常见的几个

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
)

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 23:15:00  更:2022-04-06 23:16:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:24:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码