查询通话记录接口说明
1.接口简介
主要是根据时间段来查询该账号下的通话记录。
建议使用事件推送的形式获取通话记录,事件推送的形式在通话结束后会立刻将本通通话推送给您,实时性更高。事件推送文档
2.接口请求
-
HTTP请求方式:POST
-
鉴权方式:接口鉴权
-
请求链接:{HOST}/v20180426/cdr/getCCCdr/{ACCOUNTID}?sig={sig}
-
请求时请将{HOST}换成对接数据查询中获取到的请求域名,{ACCOUNTID}替换为账户编号,{SIG}是根据鉴权规则生成的,请看鉴权文档,查看具体的生成规则
-
频次限制:20次/分钟
3.接口参数如下:
字段 | 类型 | 是否必须 | 备注 |
beginTime | String | 是 | 获取通话记录时间段的开始时间,时间格式为 yyyy-MM-dd HH:mm:ss |
endTime | String | 是 | 获取通话记录时间段的结束时间,时间格式为 yyyy-MM-dd HH:mm:ss |
callNo | String | 否 | 主叫号码 |
calledNo | String | 否 | 被叫号码 |
connectType | String | 否 | 呼叫类型(值可以是normal(普通来电)、 dialout(外呼去电)、transfer(来电转接)、dialTransfer(外呼转接) |
status | String | 否 | 处理状态(值可以是dealing(已接听)、 notDeal(振铃未接听)、queueLeak(排队放弃)、voicemail (已留言)、leak(IVR放弃) 、blackList(黑名单)) |
cdrVar | String | 否 | 如果接口传了 cdrVar,那么这里可以传变量的名字,"key=value"来获取值。(若传了该值,则时间条件可以不传) |
resultParams | String | 否 | 查询参数,多个参数用","号隔开。如果仅仅希望获取某些有用参数可以用这个字段,如传参数FILE_SERVER,RECORD_FILE_NAME就查询所有通话记录的录音地址 |
page | String | 否 | 当前页 |
pageSize | String | 否 | 每页条数 |
getAll | Boolean | 否 | true/false,该参数代表是否获取更详细版本的通话记录参数 |
注意: 1.每次最多获取10000条数据,若有时间查询条件的情况下,每次请求获取的时间段最长为7天的通话记录。 2.录音下载地址为: FILE_SERVER/RECORD_FILE_NAME。如需将录音拉取到本地,建议凌晨进行拉取,白天拉取可能会影响坐席通话质量,拉取频率限制是1次/1s。
请求体示例
{
"beginTime": "2017-01-04 00:00:00",
"endTime": "2017-01-05 10:15:00"
}
4.系统返回
字段 | 含义 |
success | 是否成功 |
message | 响应信息 |
data | 返回数据,JSON格式 |
返回参数如下:(红色为必定返回)
注意:以下返回信息是请求参数getAll为false或不传。
参数名 | 描述 |
---|---|
_id | 本条通话记录的唯一ID |
CALL_SHEET_ID | 本条通话记录的唯一ID(与_id值一致) |
CALL_NO | 主叫号码 |
CALLED_NO | 被叫号码 |
CALL_ID | 通话id |
END_TIME | 结束时间 |
CONNECT_TYPE | 呼叫类型,值为 normal(普通来电)、dialout(外呼去 电)、transfer(来电转接)、dialTransfer(外呼转接) |
STATUS | 处理状态,值为dealing(已接听)、notDeal(振铃未接 听)、queueLeak(排队放弃)、voicemail(已留言)、 leak(IVR放弃) 、blackList(黑名单)、limit(并发限制)、failed (失败) |
EXTEN | 处理座席工号 |
DISPOSAL_AGENT | 处理座席ID(历史原因创建的字段,如无用处可无视) |
BEGIN_TIME | 通话开始时间(只有已接听状态的才有值) |
OFFERING_TIME | 呼叫发起时间 |
RECORD_FILE_NAME | 录音文件名 |
CUSTOMER_NAME | 定位用户名称 |
REF_CALL_SHEET_ID | 转接类型通话,此字段记录之前一通通话记录的ID |
PBX | 通话产生所在PBX的ID |
QUEUE_NAME | 技能组名称 |
QUEUE_TIME | 来电进入技能组的时间 |
FILE_SERVER | 录音服务器地址 |
PROVINCE | 省 |
DISTRICT | 市 |
DISTRICT_CODE | 城市区号 |
KEY_TAG | 是否标记 |
CALL_TIME_LENGTH | 通话时长(未接通为0) |
INVESTIGATE | 满意度调查 |
LABELS | 通话标签 |
ACTION_ID | 调用外呼接口所传的ActionID |
COMMENTS | 备注 |
HANGUP_USER | 挂机方(字段值解释 :agent 坐席挂机, customer 用户挂机,system 系统挂机) |
【getAll为true会多返回以下参数】 | |
WEBCALL_ACTION_ID | 调用webcall接口所传的ActionID |
DIRECTION | I呼入,O呼出 |
ERROR_MEMO | 技能组编号 |
LOCATION | 最后一个IVR的信息 |
LOGIN_TYPE | 坐席外呼类型 |
LOCATION_NAME | 技能组名称 |
LOCATION_ID | 进入技能组时间 |
PROVINCE_CODE | 省份code |
REPEAT_CALL | 是否为24h或48h来电 |
HOLD_TIME_LENGTH | 保持时长 |
CONSULT_TIME_LENGTH | 咨询时长 |
THREEWAY_CALL_TIME_LENGTH | 三方通话时长 |
MANYQUEUE_NUMBER | 经过的技能组集合 |
QUICK_QUERY_NUM | 快接搜索号码 |
IS_AUTO_CALL | 是否为批呼任务 |
RING_TIME_LENGTH | 被叫振铃时长 |
QUEUE_TIME_LENGTH | 进入技能组时间 |
IVR_TIME_LENGTH | 从进入系统到进技能组中间消耗的时间 |
ACCOUNT_ID | 账户编号 |
CUSTOMER_ID | 用户id |
MID_NO | 本次外呼所使用的小号 |
ASSOCIATED_BUSINESSES | 通话关联的工单编号 |
PRESSED_KEY_IN_PASSED_IVRS | 通话按键信息 |
IVRKEY | 对应通话事件推送的按键信息 |
CALL_TASK_ID | 外呼任务id,如果该通话是通过外呼任务呼叫的则存在该字段 |
EXTRA-UD-999 | 自定义字段信息,字段内容不要包含“:”和“;”,可传json字符串。如需使用该字段,请联系运维人员设置extra 参数。如:Set(EXTRA-UD-999=${SIP_HEADER(EXTRA-UD-999)}) |
AGENT_BEGINT_TIME_STAMP | 外呼座席手机接听时间,[接听方式]为"手机模式”,且[呼叫类型]为"外呼去电”的情况下,座席接起系统来电的时间。时间戳字符串,不带小数点,例如:1702283150 |
CONSULT_RECORD_FILES | 咨询通话的录音 |
message:
值 | 含义 |
account not found! | 账户编号有误 |
account must need! | account字段必传 |
beginTime and endTime must need! | 开始和结束时间必传 |
beginTime or endTime format error! | 开始时间或结束时间格式错误 |
beginTime and endTime must within a week! | 获取通话记录最长时 间跨度为7天 |
返回成功示例
1.getAll为false或者不传该参数
{
"success": true,
"data": [
{
"_id": "e0f40f68-7c7c-4689-ad56-86402104437a",
"CALL_SHEET_ID": "e0f40f68-7c7c-4689-ad56-86402104437a",
"CALL_NO": "01020002461",
"STATUS": "dealing",
"DISPOSAL_AGENT": "0405b8d0-e6ae-11e5-822d-71a9ab0b0e6a",
"BEGIN_TIME": "2016-12-01 09:53:41",
"END_TIME": "2016-12-01 09:53:55",
"CALLED_NO": "18615404183",
"OFFERING_TIME": "2016-12-01 09:53:41",
"CONNECT_TYPE": "transfer",
"RECORD_FILE_NAME": "monitor/1.1.1.101/20161201/20161201-095207_N00000000423_10000480_20002461_01066000027_10000480_pbx-1480557125.4593o.mp3",
"CUSTOMER_NAME": "未知用户",
"REF_CALL_SHEET_ID": "df239899-a97c-4d46-9a40-d03fd946146a",
"PBX": "1.1.1.101",
"QUEUE_NAME": "测试组",
"FILE_SERVER": "http://120.55.72.213:8090",
"PROVINCE": "北京市",
"DISTRICT": "北京市",
"DISTRICT_CODE": "010",
"CALL_TIME_LENGTH": 14
},
{
"_id": "df239899-a97c-4d46-9a40-d03fd946146a",
"CALL_SHEET_ID": "df239899-a97c-4d46-9a40-d03fd946146a",
"CALL_NO": "01020002461",
"STATUS": "dealing",
"DISPOSAL_AGENT": "0405b8d0-e6ae-11e5-822d-71a9ab0b0e6a",
"BEGIN_TIME": "2016-12-01 09:52:24",
"END_TIME": "2016-12-01 09:53:41",
"CALLED_NO": "01066000027",
"OFFERING_TIME": "2016-12-01 09:52:05",
"CONNECT_TYPE": "normal",
"RECORD_FILE_NAME": "monitor/1.1.1.101/20161201/20161201-095207_N00000000423_10000480_20002461_01066000027_10000480_pbx-1480557125.4593.mp3",
"CUSTOMER_NAME": "未知用户",
"REF_CALL_SHEET_ID": null,
"PBX": "1.1.1.101",
"QUEUE_NAME": "测试组",
"FILE_SERVER": "http://120.55.72.213:8090",
"PROVINCE": "北京市",
"DISTRICT": "北京市",
"DISTRICT_CODE": "010",
"CALL_TIME_LENGTH": 77
}
]
}
2.getAll为true
{
"success": true,
"data": [
{
"_id": "e0f40f68-7c7c-4689-ad56-86402104437a",
"CALL_SHEET_ID": "e0f40f68-7c7c-4689-ad56-86402104437a",
"CALL_NO": "01020002461",
"STATUS": "dealing",
"DISPOSAL_AGENT": "0405b8d0-e6ae-11e5-822d-71a9ab0b0e6a",
"BEGIN_TIME": "2016-12-01 09:53:41",
"END_TIME": "2016-12-01 09:53:55",
"CALLED_NO": "18615404183",
"OFFERING_TIME": "2016-12-01 09:53:41",
"CONNECT_TYPE": "transfer",
"RECORD_FILE_NAME": "monitor/1.1.1.101/20161201/20161201-095207_N00000000423_10000480_20002461_01066000027_10000480_pbx-1480557125.4593o.mp3",
"CUSTOMER_NAME": "未知用户",
"REF_CALL_SHEET_ID": "df239899-a97c-4d46-9a40-d03fd946146a",
"PBX": "1.1.1.101",
"QUEUE_NAME": "测试组",
"FILE_SERVER": "http://120.55.72.213:8090",
"PROVINCE": "北京市",
"DISTRICT": "北京市",
"DISTRICT_CODE": "010",
"CALL_TIME_LENGTH": 14,
"PRESSED_KEY_IN_PASSED_IVRS": [
{
"NODE_NUMBER": "10553",
"KEYS_PRESSED": "2",
"PRESS_TIMESTAMP": "1686209627.991494"
}
],
"IVRKEY": "10553@2"
},
{
"_id": "df239899-a97c-4d46-9a40-d03fd946146a",
"CALL_SHEET_ID": "df239899-a97c-4d46-9a40-d03fd946146a",
"CALL_NO": "01020002461",
"STATUS": "dealing",
"DISPOSAL_AGENT": "0405b8d0-e6ae-11e5-822d-71a9ab0b0e6a",
"BEGIN_TIME": "2016-12-01 09:52:24",
"END_TIME": "2016-12-01 09:53:41",
"CALLED_NO": "01066000027",
"OFFERING_TIME": "2016-12-01 09:52:05",
"CONNECT_TYPE": "normal",
"RECORD_FILE_NAME": "monitor/1.1.1.101/20161201/20161201-095207_N00000000423_10000480_20002461_01066000027_10000480_pbx-1480557125.4593.mp3",
"CUSTOMER_NAME": "未知用户",
"REF_CALL_SHEET_ID": null,
"PBX": "1.1.1.101",
"QUEUE_NAME": "测试组",
"FILE_SERVER": "http://120.55.72.213:8090",
"PROVINCE": "北京市",
"DISTRICT": "北京市",
"DISTRICT_CODE": "010",
"CALL_TIME_LENGTH": 77
}
]
}
注意:软电话条想要查询通话记录获取自定义字段:设置方法可参考对接文档软电话条进行设置。
this.m7SendAction("Originate", {
Channel: "SIP/" + self.sipNo,
Context: self.accountId,
Exten: phoneNum,
Priority: '1',
UserID: self.userId,
Timeout: 60000,
Async: "true",
HasCdrVar:true,
ActionID:"aaa:ssss",//按照该格式定义aaa:ssss
CallType: call_type
查询通话记录接口时,接口传参加上getAll:true,返回获得aaa的字段,值为ssss。