通话沟通总结与通话计数接口

适用于: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 字段)

参数类型必填说明
phoneNumberString是待查号码,非空;与通话记录的主叫或被叫做精确匹配
limitint是最大返回条数,必须 > 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 对象(字段由语音识别/小结链路生成,以实际内容为准),服务端追加两个字段:

追加字段类型说明
timeString通话开始时间 yyyy-MM-dd HH:mm:ss;beginTime 无效时为空串
typeStringrobot(calllog.business == AI_ROBOT)/ manual(其它)

匹配与去重规则

  • 仅当记录的小结文本是合法 JSON 对象(形如 {...})时才纳入;非 JSON / JSON 数组的记录跳过。
  • 同一条记录经 callid / clickcallid 双键索引只输出一次。

2. call_count(主叫通话计数)

请求参数(json 字段)

参数类型必填说明
phoneNumberString是主叫号码,非空,精确匹配
secondsint是最近 N 秒,必须 > 0;统计窗口为闭区间 [now - seconds*1000, now](毫秒)
businessString否业务标识过滤,如 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. 集成注意事项

  1. 号码精确匹配且不做归一化:传入号码形态需与通话记录落库值一致;勿携带 + 前缀——通道会对参数做 URL decode,+ 被解成空格导致精确匹配恒空且无错误提示。
  2. 两个接口匹配方向不同 匹配主叫或被叫,call_count 只匹配主叫。
  3. 单次查询为内存操作(毫秒级),可低频轮询;无需(也不应)为此建数据库索引。