通话沟通总结与通话计数接口
适用于:OA/CRM 中展示某号码"最近沟通记录"(AI/人工对话小结),以及按主叫号码统计最近一段时间内的通话次数(频次控制、机器人呼入量统计)。 通道:与呼叫记录查询(call-log-query)同走
/bridge/jsoncfg通用 JSON 通道,鉴权与通用约定见 API 文档总览 §3。
两个接口由同一服务端实现类(JsonCallSummaryService)提供,数据均来自内存缓存,不访问数据库:
| opt | 用途 | 匹配方向 |
|---|---|---|
call_summary | 查询某号码最近的通话沟通小结 | caller 或 callee(双向精确) |
call_count | 统计某主叫号码最近 N 秒内指定业务的通话数量 | 仅 caller(主叫精确) |
GET/POST http://{cti_host}:12121/bridge/jsoncfg?opt=<opt>&json=<参数JSON>
- GET:
json走 query 参数(需 URL 编码);POST:表单式(opt/json走表单)或裸 JSON 体(Content-Type: application/json,body 即参数 JSON,opt仍走 query)。 - HTTP 状态码恒为 200,成败看响应体(README §3.1);参数非法时响应体为裸文本
"400"。 - POST body 上限 1MB,超限 HTTP 413。
1. call_summary(最近沟通小结)
请求参数(json 字段)
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| phoneNumber | String | 是 | 待查号码,非空;与通话记录的主叫或被叫做精确匹配 |
| limit | int | 是 | 最大返回条数,必须 > 0 |
curl -G "http://{cti_host}:12121/bridge/jsoncfg" \
--data-urlencode "opt=call_summary" \
--data-urlencode '{"phoneNumber":"13512340001","limit":10}'
响应示例
JSON 数组,按通话开始时间升序;无匹配返回 []:
[
{"summary":"客户咨询宽带套餐,已推荐融合套餐","time":"2026-09-12 10:30:00","type":"robot"},
{"summary":"人工回访,客户表示考虑","time":"2026-09-12 15:05:12","type":"manual"}
]
数组元素 = 该通电话的沟通小结原始 JSON 对象(字段由语音识别/小结链路生成,以实际内容为准),服务端追加两个字段:
| 追加字段 | 类型 | 说明 |
|---|---|---|
| time | String | 通话开始时间 yyyy-MM-dd HH:mm:ss;beginTime 无效时为空串 |
| type | String | robot(calllog.business == AI_ROBOT)/ manual(其它) |
匹配与去重规则
- 仅当记录的小结文本是合法 JSON 对象(形如
{...})时才纳入;非 JSON / JSON 数组的记录跳过。 - 同一条记录经 callid / clickcallid 双键索引只输出一次。
2. call_count(主叫通话计数)
请求参数(json 字段)
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| phoneNumber | String | 是 | 主叫号码,非空,精确匹配 |
| seconds | int | 是 | 最近 N 秒,必须 > 0;统计窗口为闭区间 [now - seconds*1000, now](毫秒) |
| business | String | 否 | 业务标识过滤,如 AI_ROBOT;不传/空 = 不过滤;多个用英文逗号分隔(如 AI_ROBOT,HUMAN),各值去首尾空白后精确匹配,大小写敏感 |
POST 裸 JSON 体(推荐):
curl -s -X POST "http://{cti_host}:12121/bridge/jsoncfg?opt=call_count" \
-H "Content-Type: application/json" \
-d '{"phoneNumber":"13512340001","seconds":1800,"business":"AI_ROBOT"}'
响应示例
{"count":5}
| 场景 | 响应体 |
|---|---|
| 统计成功 | {"count":N}(含 0) |
| 服务启动后历史数据尚未加载完成 | {"count":0}(不报错,可稍后重试) |
| 参数非法(phoneNumber 空 / seconds<=0) | "400" |
统计口径
- 只统计该号码作为主叫的通话记录条数,不区分接通/未接通。
- 典型用法——最近 30 分钟机器人呼入量:
seconds=1800, business=AI_ROBOT。 - 仅覆盖内存缓存范围内的数据(容量/天数由配置
cache.callid.max.size/cache.callid.max.days控制,下限 5000 条 / 1 天),更早历史不计入。
3. 集成注意事项
- 号码精确匹配且不做归一化:传入号码形态需与通话记录落库值一致;勿携带
+前缀——通道会对参数做 URL decode,+被解成空格导致精确匹配恒空且无错误提示。 - 两个接口匹配方向不同
匹配主叫或被叫,call_count 只匹配主叫。 - 单次查询为内存操作(毫秒级),可低频轮询;无需(也不应)为此建数据库索引。
