数据管理和统计接口

呼叫记录查询接口

使用场景

使用http请求查询呼叫中心后台的通话记录,查询结果用json格式的字符串返回。

接口描述

日志查询接口,完整URL1:

http://127.0.0.1:12121/bridge/callctrl?first=0&maxResults=1000&beginDate=2020-02-01T08:30:00&endDate=2020-03-01&telnum=801&dirction=0&opt=CALL_LOG_QUERY
字段名字段含义描述
firstint查询结果的索引值(默认从0开始)
maxResultsint为查询结果返回的数量
翻页参数实例:
第一页: first=0 maxResults=10
第二页: first=1 maxResults=10
第三页: first=2 maxResults=10
beginDateString可选,呼叫起始时间格式:yyyy-MM-dd
或者 yyyy-MM-ddTHH:mm:ss
注意:日期和时间用T隔开
endDateString可选,呼叫结束时间格式:yyyy-MM-dd
或者 yyyy-MM-ddTHH:mm:ss
注意:日期和时间用T隔开
telnumString可选,相关号码,不带该参数查询所有通话记录,多个号码可用逗号间隔
dirctionint0: 全部 ,1: 接听记录 ,2:拨打记录
shortestTalkTimeint可选:最小通话时长
estimateString评价查询,多个评价用逗号隔开. 默认:1:非常满意,2:满意,3:不满意. 若评价逻辑有重新定义,请安定义的来.
orderint0: 逆序(默认), 1:正序排列
stateStringSTATE_RECEIVED: 接通的
STATE_FAILED: 未接通的
不设置则查询全部
optString常量不要修改CALL_LOG_QUERY
x.x.x.x:12121呼叫中心服务器IP通讯地址12121默认端口,如果手动修改过端口号请使用修改后的端口

日志查询数量接口,完整URL2:

http://127.0.0.1:12121/bridge/callctrl?beginDate=2020-02-01T08:30:00&endDate=2020-03-01&telnum=801&dirction=0&opt=CALL_LOG_COUNT

参数:同上 返回值:呼叫记录的数量

根据callid获取某条呼叫日子信息,完整URL3:

http://127.0.0.1:12121/bridge/callctrl?callid=df0897e8-b468-4b57-a5d8-9b48c92aa9c5%40192.168.1.86&opt=CALL_LOG_GET_WITH_CALLID
字段名字段含义描述
callidstring来电弹屏等推送的编号

Http请求json响应字段解释:

实例说明Calllog呼叫日志信息Calllog呼叫日志信息Calllog呼叫日志信息
idInteger呼叫日志编号
callerString主叫号码。
calleeString被叫号码
beginTimeInteger开始时间。
durationInteger通话时长,秒
stateStringSTATE_FAILED:失败,
STATE_RECEIVED:成功,
STATE_RECEIVING:通话中
callTypeStringCENTREX_CALL: 内部通话,
LOCAL_CALL:本地通话,
NATIONAL_CALL:国内长途,
OVERSEAS_CALL:国际长途,
UNKNOW_CALL:未知
estimateInteger客户评价,1:非常满意,2:满意,3不满意
RecordString文字呼叫记录(弹屏助手中录入)
recordVoiceString服务器存储录音文件路径
CnameString相关客户名称(弹屏助手中录入)
servicetypeString对应配置管理后台“通话备注设置”售前,售后,批量外呼(弹屏助手中录入)
manustateString对应配置管理后台“通话备注设置”的子状态(弹屏助手中录入)
clickcallidString点击呼叫控制ID,用于对点击呼叫接口进行支持,点击呼叫接口会立刻返回clickcallid值,用于后续日志查询
FxonumString主叫FXO端口账号,用于记录来电是由哪一条线呼入的。
productidInteger当前通话是对商机中的哪一个销售项目的外呼,用于统计针对某个销售项目外呼了多少电话。(弹屏助手中录入)
_judgeInteger内部使用,请忽略
ivrAnwerTimeLong语音菜单响应时间
ivrAnwerDurationInteger语音菜单放音时长
queueTimeLong进入排队的起始时间
queueDurationInteger排队等待时长
ringTimeLong转人工后,分工分机振铃开始时间
ringDurationInteger坐席分机振铃时长
businessStringBATCH_CALL: 批量自动外呼
INCOMING: 客户来电,没进入IVR菜单的情况
OUTGOING: 外呼客户电话
TRANSFER: 人工转接的来电
VOICE_MAIL: 语音留言
CONFERENCE: 会议
OUT_TRANSFER: 转外线
CENTREX_CALL: 内线呼叫
FORCE_PICKUP: 强插
TRANSFER_TO_IVR: 人工转IVR
OUT_OUT: 双呼回拨
IVR_INCOMING: 语音菜单呼入,没有转接,IVR阶段就直接挂机了,没有任何操作

// 下面属于IVR转接的
IVR_TRANSFER: IVR来电转接人工
IVR_OUT_TRANSFER:IVR来电转接外部号码,例如转:110,120
QUEUE_TIMEOUT: 排队超时
QUEUE_HUNGUP: 排队客户挂机

AI_ROBOT: 机器人通话
// 机器人转人工会产生一条新的呼叫记录
AI_ROBOT_TRANSFER_IN: 机器人转入

INCOMING_CALL_FLOOD_CTRL: 流控拒绝的来电
accessnumString若是通过IVR语音菜单打入,则记录客户的接入号码,一般用于E1线路区分线路的号码的打入情况。
ivrvoicemailString客户打入IVR后进行留言,按键结束后生成的录音路径
standbyInteger就绪时间:置闲状态到来电振铃的时间,单位:秒
writetimeInteger案面时间:置忙状态下挂机到话务员置闲置闲的时间
holdtimeInteger通话中保持的次数
offworkBooleanTrue: 下班时间接打 False:上班时间接打
上下班时间设置请参考:
29.HTTP员工信息设置接口
standbyLong就绪时长,话务员接这通电话等待的时间,就绪时长会自动避开下班时间,保证合理性
writetimeLong案面时长(填写相关表单的耗时),话务员通话中置忙,当挂机时依旧时置忙状态,则启动案面时间计时,直到话务员置闲或下班结束案面时长计时。
holdtimeInteger保持次数,可用于分析话务员的求助次数,从侧面反馈话务员的业务熟练程度
forwardString当次通话转接给某个号码的记录
earlymediaString外呼失败,录制的运营商测得提示音

查询返回实例:

[
  {"id":37,"caller":"60610123","callee":"816","beginTime":1459160867375,"duration":41,
  "state":"STATE_RECEIVED","callType":"LOCAL_CALL","estimate":"","channel":"192.168.3.80",
  "callid":"173a248c-8f85-4edb-b0c2-c11e1894a0d5%40192.168.1.82","calleeuid":32,
  "record":"","recordVoice":"","cname":"","servicetype":"","manustate":"","clickcallid":"",
  "fxonum":"","productid":0,"_callTime":"Mar 28, 2016 6:27:47 PM","_judge":0},
  
  {"id":36,"caller":"60610123","callee":"3888","beginTime":1459160441301,"duration":0,
    "state":"STATE_FAILED","callType":"LOCAL_CALL","estimate":"","channel":"192.168.3.82:5062",
    "callid":"44530c9c-4184-43f1-a456-d51c272eff3b%40192.168.3.80","record":"",
    "recordVoice":"","cname":"","servicetype":"","manustate":"","clickcallid":"","fxonum":"",
    "productid":0,"_callTime":"Mar 28, 2016 6:20:41 PM","_judge":0}
]

呼叫记录,数据库字段说明,参考上述接口
数据库表名:telcrm.calllog

字段名称描述备注
id编号(主键)
caller主叫号码
callee被叫号码
channel呼叫通道
beginTime开始时间
duration持续时间
state通话状态,参考上述接口定义
callType呼叫类型,参考上述接口定义
estimate服务评价
callid呼叫CallID
calleruid过期删除
calleeuid过期删除
record助手相关:通话备注
recordVoice录音文件路径
cname助手相关:客户名称
servicetype助手相关:服务类型
manustate助手相关:服务类型子类
clickcallid点击呼叫的CallID
fxonum使用的相关落地线路编号
question助手相关:客户问题
productid过期删除
dtmfkey主机打入IVR的按键信息
ivrpointIVR转接的语音菜单节点
callerworknum主叫工号
calleeworknum被叫工号
business通话相关业务
prerecord坐席外呼客户彩铃等录制
robotrecordAI机器人和客户沟通的录音文件
ivrAnwerTime主叫进入语音菜单时间
ivrAnwerDuration语音菜单放音时长
queueTime主叫排队起始时间
queueDuration主叫排队时长
ringTime被叫振铃起始时间
ringDuration振铃时长
stttxt过期删除
hungupside挂机方
ivrvoicemail语音菜单录制的客户留言录音地址
accessnum客户打入系统使用的接入号
clicktoken点击呼叫接口传入的字符串

呼叫记录推送接口

使用场景

配置一个呼叫中心后台配置 POST URL 推送地址后,系统会将呼叫记录数据推送到URL指定的服务上。

配置方式

推送数据格式

{
    "client_ip": "192.168.3.86", 
    "datas": [
        {
            "id": 1476510, 
            "caller": "806", 
            "callee": "1000", 
            "beginTime": 1691059681306, 
            "duration": 0, 
            "state": "STATE_RECEIVED", 
            "callType": "LOCAL_CALL", 
            "estimate": "", 
            "callid": "105652437424950-326581766720130@192.168.3.9", 
            "question": "", 
            "record": "", 
            "recordVoice": "", 
            "earlymedia": "", 
            "dtmfkey": "", 
            "cname": "", 
            "servicetype": "", 
            "manustate": "", 
            "clickcallid": "", 
            "clicktoken": "", 
            "fxonum": "", 
            "accessnum": "1000", 
            "ivrpoint": "", 
            "callerworknum": "", 
            "calleeworknum": "", 
            "business": "", 
            "prerecord": "", 
            "robotrecord": "", 
            "ivrvoicemail": "", 
            "ivrAnwerTime": 1691059680144, 
            "ivrAnwerDuration": 1, 
            "queueTime": 0, 
            "queueDuration": 0, 
            "ringTime": 0, 
            "ringDuration": 0, 
            "pickupTime": 1691059681308, 
            "offwork": false, 
            "standby": 0, 
            "writetime": 0, 
            "holdtime": 0, 
            "forward": "", 
            "stttxt": "", 
            "hungupside": "", 
            "callervideo": "", 
            "calleevideo": "", 
            "peercallid": ""
        }
    ]
}

JSON数据的具体意义请参考上一个接口的描述

推送数据响应

数据接收服务器需要及时返回字符串: 200:保存数据成功,可继续推送 400: 保存数据失败,需要重复推送

坐席接听和拨打KPI统计接口

使用场景

提供坐席接听电话的工作绩效统计接口。可使用分机进行统计,也可以通过《HTTP员工信息设置接口》的工号和上下班信息来进行统计。

接口描述

统计启动接口

参数名参数定义描述
numsstring分机号,分组号
工号,参考《HTTP员工信息设置接口》
注:多个号码用逗号隔开
typestringextnum: 使用分机统计,不填写默认使用分机
worknum: 使用工号进行统计
sessionstring由于统计是个耗时的工作,需要3步获取统计结果,这3步需要一个唯一字符串来关联。
beginstring统计的呼叫记录开始时间,请使用如下格式提交
2021-01-01T00:00:00
注:日期和时间之间使用T字符间隔
endstring统计的呼叫记录结束时间,请使用如下格式提交
2021-03-01T00:00:00
注:日期和时间之间使用T字符间隔
optstring接听统计:
KPI_IN_HOUR: 按小时时间段统计(时间段不能超过31天)
KPI_IN_DAY: 按天时间段统计
KPI_IN_MONTH: 按月时间段统计
KPI_IN_YEAR: 按年时间段统计
拨打统计:
KPI_OUT_HOUR: 按小时时间段统计(时间段不能超过31天)
KPI_OUT_DAY: 按天时间段统计
KPI_OUT_MONTH: 按月时间段统计
KPI_OUT_YEAR: 按年时间段统计
x.x.x.xCTI服务器IP地址或域名
  • 返回值:
  • 200 : 开始进行统计,可调用进度接口查询统计进度
  • 400 : 参数错误

统计进度查询接口

参数名参数定义描述
sessionstring保证和《统计启动接口》中得session一致
optPROGRESS固定设置请不要修改
  • 返回值:1-100 当返回100时,说明统计完成,可获取统计数据了。

统计数据获取接口

参数名参数定义描述
sessionstring保证和《统计启动接口》中得session一致
optGETDATA固定设置请不要修改
  • 返回值:json格式的数据对象列表
[{"aname":"研发","cdatetime":"2021-02-19 10:00:00","durationType":"hour","ownerType":0,"num":"801","total":1,"ringDuration":9,"pickupCount":0,"quickPickCount":0,"talkingTime":0,"standbyTime":150,"writeTime":0,"avgTalkingTime":0,"avgStandbyTime":150,"avgWriteTime":0,"holdCount":0,"forwardCount":0,"judgeOpenCount":0,"judgeOpenRate":"","judgeCount":0,"goodCount":0,"badCount":0,"missCount":1,"restTime":0,"redialCount":0},{"aname":"研发","cdatetime":"2021-02-19 14:00:00","durationType":"hour","ownerType":0,"num":"801","total":1,"ringDuration":12,"pickupCount":0,"quickPickCount":0,"talkingTime":0,"standbyTime":6792,"writeTime":0,"avgTalkingTime":0,"avgStandbyTime":6792,"avgWriteTime":0,"holdCount":0,"forwardCount":0,"judgeOpenCount":0,"judgeOpenRate":"","judgeCount":0,"goodCount":0,"badCount":0,"missCount":1,"restTime":0,"redialCount":0},{"aname":"研发","cdatetime":"2021-02-19 16:00:00","durationType":"hour","ownerType":0,"num":"801","total":1,"ringDuration":6,"pickupCount":1,"quickPickCount":1,"talkingTime":15,"standbyTime":0,"writeTime":0,"avgTalkingTime":15,"avgStandbyTime":0,"avgWriteTime":0,"holdCount":0,"forwardCount":0,"judgeOpenCount":1,"judgeOpenRate":"100","judgeCount":1,"goodCount":1,"goodRate":"100","badCount":0,"missCount":0,"restTime":0,"redialCount":0},{"aname":"研发","cdatetime":"2021-02-20 17:00:00","durationType":"hour","ownerType":0,"num":"801","total":1,"ringDuration":8,"pickupCount":1,"quickPickCount":1,"talkingTime":3,"standbyTime":27,"writeTime":0,"avgTalkingTime":3,"avgStandbyTime":27,"avgWriteTime":0,"holdCount":0,"forwardCount":0,"judgeOpenCount":0,"judgeOpenRate":"","judgeCount":0,"goodCount":0,"badCount":0,"missCount":0,"restTime":0,"redialCount":0},{"aname":"TOTAL","cdatetime":"-","durationType":"-","ownerType":0,"num":"801","total":4,"ringDuration":8,"pickupCount":2,"quickPickCount":2,"talkingTime":18,"standbyTime":6969,"writeTime":0,"avgTalkingTime":9,"avgStandbyTime":1742,"avgWriteTime":0,"holdCount":0,"forwardCount":0,"judgeOpenCount":1,"judgeOpenRate":"50","judgeCount":1,"goodCount":1,"goodRate":"50","badCount":0,"missCount":2,"restTime":0,"redialCount":0},{"aname":"SUM TOTAL","cdatetime":"-","durationType":"-","ownerType":0,"num":"-","total":4,"ringDuration":8,"pickupCount":2,"quickPickCount":2,"talkingTime":18,"standbyTime":6969,"writeTime":0,"avgTalkingTime":9,"avgStandbyTime":1742,"avgWriteTime":0,"holdCount":0,"forwardCount":0,"judgeOpenCount":1,"judgeOpenRate":"50","judgeCount":1,"goodCount":1,"goodRate":"50","badCount":0,"missCount":2,"restTime":0,"redialCount":0}]

注意

  • aname:TOTAL 表示已分机或工号为分组的汇总
  • aname: SUM TOTAL 表示全部汇总的数据

效果图

字段说明

字段名定义描述
anamestring坐席姓名
cdatetimestring统计时间段开始时间
durationTypestring时间段类型
hour: 按小时统计
day: 按天统计
month: 按月统计
year: 按年统计
ownerTypeInteger0:按分机统计
1: 按工号统计
totalInteger总打入或拨打量
ringDurationInteger平均振铃时长(秒)
pickupCountInteger接起量
quickPickCountInteger快速接起量,默认15秒接听,可配置
talkingTimeInteger总通话时长(秒)
standbyTimeInteger总就绪时长(秒)
writeTimeInteger总案面时长(秒)
avgTalkingTimeInteger平均通话时长(秒)
avgStandbyTimeInteger平均就绪时长(秒)
avgWriteTimeInteger平均案面时长(秒)
holdCountInteger保持次数(接听特性)
holdRateString保持率(接听特性)
forwardCountInteger转接次数(接听特性)
forwardRateSting转接率(接听特性)
judgeOpenCountInteger转满意度量
judgeOpenRateSting转满意度率
judgeCountInteger客户平价量
goodCountInteger好评量
goodRateSting好评率
badCountInteger差评量
badRateSting差评率
missCountInteger漏接量(接听特性)
restTimeInteger小休时长(按小时统计无效)
redialCountInteger按天统计时,客户来电重播量(接听特性)
redialRateSting二次来电率(接听特性)

统计数据导出Excel接口

参数名参数定义描述
sessionstring保证和《统计启动接口》中得session一致
optEXPORT固定设置请不要修改
  • 注意:导出需要再需要在统计完成后才能操作。

通话录音|视频下载接口

使用场景

使用http请求下载某通话的录音文件

接口描述

推荐根据录音文件路径下载录音,完整URL1:

http://127.0.0.1:12121/Oms/FileDownServlet?base64file=RDovVGVsQ1JNX1NSQy9UQ00wOF
字段名字段含义描述
base64fileString文件路径的base64编码
x.x.x.x:12121呼叫中心服务器IP通讯地址12121默认端口,如果手动修改过端口号请使用修改后的端口

根据呼叫记录编号下载录音,完整URL1:

http://x.x.x.x:12121/Oms/FileDownServlet?logId=8662
字段名字段含义描述
logIdint对应呼叫记录查询接口返回的id
typeStringcallervideo:主叫侧视频
calleevideo:被叫侧视频
若没有type参数则下载录音
x.x.x.x:12121呼叫中心服务器IP通讯地址12121默认端口,如果手动修改过端口号请使用修改后的端口

根据callid下载录音,完整URL1:

http://x.x.x.x:12121/Oms/FileDownServlet?callid=1456383508555141554-0%40192.168.1.60
字段名字段含义描述
callidString来电弹屏时推送的callid
typeStringcallervideo:主叫侧视频
calleevideo:被叫侧视频
若没有type参数则下载录音
x.x.x.x:12121呼叫中心服务器IP通讯地址12121默认端口,如果手动修改过端口号请使用修改后的端口
注意: 该接口在据量大的时候会有性能问题, 使用该接口需考虑定期对通话记录进行转储

根据callid下载关联的所有合并后的录音,完整URL1:

http://x.x.x.x:12121/Oms/FileDownServlet?allcallid=1456383508555141554-0%40192.168.1.60
字段名字段含义描述
allcallidString根据该参数查询出所有相关的通话并根据时间合并录音后提供下载
backpathStringtrue: 返回服务器语音文件路径
x.x.x.x:12121呼叫中心服务器IP通讯地址12121默认端口,如果手动修改过端口号请使用修改后的端口

backpath=true的返回 {"msg":"/opt/data/records/monitor/2024-05-28/b595b42e-5c00-4f0d-9318-6f60feb46970@192.168.0.86.wav","success":true}

分机播放录音接口

使用场景

话务员使用电话机接打电话,电脑没有耳麦,可使用该接口来呼叫分机,接听后播放录音。 播放录音过程中,可不挂机,再次调用接口,切换播放的录音。

接口描述

根据callid下载录音,完整URL1:

http://x.x.x.x:12121/bridge/callctrl?callid=0123456789&extnum=801&skipseconds=4&opt=PLAY_CALL_LOG_RECORD
字段名字段含义描述
callid呼叫记录中的callid
extnum播放录音的分机号码
skipseconds跳过多少秒播放
x.x.x.x:12121呼叫中心服务器IP通讯地址12121默认端口,如果手动修改过端口号请使用修改后的端口

员工信息设置接口

使用场景

设置工号后,来电可以播报出来,并且在呼叫记录中会记录当前工号。

实现流程

接口描述

外呼接口完整URL:

http://x.x.x.x:12121/bridge/callctrl?extnum=801&workerid=41735&department=研发&uname=夏天&officehours=9:00-12:30,14:00-18:30&opt=SET_WORKER_ID
字段名字段含义描述
extnum被叫分机号码
workerid工号
department员工姓名(UTF-8编码)分机管理->分机->员工姓名
注:因历史原因使用department,请不要给您带来困扰,这就是分机的员工姓名
uname助手名称(UTF-8编码)电话助手管理->助手->员工姓名
officehours上班时间格式:9:00-12:30,14:00-18:30,19:00-20:30
该参数用于生成小休时间统计,避开下班时间
optSET_WORKER_ID默认不要修改
x.x.x.x:12121服务器IP通讯地址12121默认端口,如果手动修改过端口号请使用修改后的端口

Http请求响应码解释:

  • 200: 成功
  • 400: 参数错误
  • 404: 分机不存在