坐席监管接口(状态监控 / 监听 / 强插 / 强拆)

适用于:班组长/主管在 OA/CRM 中实时监控坐席通话状态,并对坐席通话执行监听(只听不说)、强插(直接接管通话)、强拆(强制挂断)。 前置条件:执行操作的主管分机需在呼叫中心后台开通"坐席监控"权限(分机管理中设置),否则返回 403。

1. 总体流程

┌─ 轮询坐席状态(EXTNUM_MONITOR,建议 2 秒)──▶ 找到"谁在通话"(state=BUSY_*、remoteNum 非空)
│
└─ 对选中坐席执行 ──▶ CALL_MONITOR 监听(主管分机收听)
                      FORCE_PICKUP 强插(主管分机接管通话)
                      FORCE_HUNGUP 强拆(挂断坐席与客户的通话)

监听/强插/强拆都是触发型接口:调用后由 CTI 呼叫主管的分机(leaderExtnum),主管话机振铃,接听后生效。三个接口的参数完全相同,仅 opt 不同。

2. 坐席状态监控(EXTNUM_MONITOR)

查询各分机的实时状态(注册、忙闲、通话对端、置忙状态等),是监管类功能的数据源。

GET http://{cti_host}:12121/bridge/jsoncfg?opt=EXTNUM_MONITOR&json={URL编码后的JSON}
参数必填说明
opt是固定 EXTNUM_MONITOR
json是查询条件 JSON,整体 URL 编码后传递,字段见下表

json 条件字段:

字段类型必填说明
assisLogIdString是登录标识。无账号体系时可自拟一个全局唯一值,后续轮询保持不变
extnumsString否分机号或分组号数组,不传查全部分机
firstInteger否页码(从 0 开始),注意不是行偏移;第 N 页传 N-1
maxResultsInteger否每页条数(first 有效时必填,>0)
conditionString否按分机姓名/号码模糊过滤
avoidCallPerformInteger否1 不统计绩效(高性能,监管页用这个);0 统计坐席绩效(慢,勿高频轮询)
starttimeString否绩效统计起始时间 yyyy-MM-dd HH:mm:ss(avoidCallPerform=0 时有意义)
exceptextnumString否排除的分机号

示例(json 原文):

{"assisLogId":"oa-monitor-001","first":0,"maxResults":15,"condition":"","avoidCallPerform":1}

URL 编码后:

GET http://{cti_host}:12121/bridge/jsoncfg?opt=EXTNUM_MONITOR&json=%7B%22assisLogId%22%3A%22oa-monitor-001%22%2C%22first%22%3A0%2C%22maxResults%22%3A15%2C%22avoidCallPerform%22%3A1%7D

响应示例

[
  {
    "assisname": "小张",
    "extnumname": "分机6",
    "department": "分机6",
    "worknum": "013",
    "extnum": "806",
    "phoneType": "NewRock_NRP1000_2.3.1654.528",
    "telRegState": 1,
    "state": "BUSY_INCOMING",
    "remoteNum": "15875566080",
    "pickupTime": "17:49:00",
    "pickupDuration": "8",
    "presence": "online",
    "presencereason": "",
    "missingCallCount": 0,
    "outgoingCallCount": 0,
    "incomingCallCount": 0,
    "incomingMissedCount": 0,
    "complaintCount": 0,
    "total": 0
  }
]

字段说明

字段说明
extnum分机号
extnumname / department分机显示名 / 部门
assisname / worknum绑定坐席姓名 / 工号
phoneType终端设备类型
telRegState注册状态:0 未注册 / 1 已注册
state话机忙闲:IDEL 空闲(拼写即如此)/ BUSY_OUTGOING 外呼通话中 / BUSY_INCOMING 接听通话中 / OFFLINE 离线
remoteNum通话中的对端号码(空闲时无此字段)
pickupTime / pickupDuration接听时间(HH:mm:ss)/ 已通话秒数
presence坐席自设状态:online/busy/reducing/unkown
presencereason最近一次置状态的原因
missingCallCount 等漏接/呼出/呼入/未接/投诉计数(avoidCallPerform=0 时统计)
total过滤后总条数(分页时;取第一条即可)

选做监听/强插/强拆的目标条件:state 为 BUSY_OUTGOING 或 BUSY_INCOMING(即"正在通话"),此时 remoteNum 为该坐席的客户号码。

3. 监听(CALL_MONITOR)

坐席与客户通话中,主管分机接入只听不说,坐席与客户无感知:

GET http://{cti_host}:12121/bridge/callctrl?leaderExtnum=803&wokerExtnum=801&opt=CALL_MONITOR
参数必填说明
leaderExtnum是主管的分机号码(接听收听用,须有"坐席监控"权限且当前空闲)
wokerExtnum是被监听的分机号码(拼写即如此,不是 workerExtnum)
opt是固定 CALL_MONITOR

行为:调用成功后主管分机振铃,接听即开始收听坐席与客户的通话;挂机即退出监听,原通话不受影响。

4. 强插(FORCE_PICKUP)

主管直接接管坐席的通话(替代坐席与客户沟通);对坐席接听的来电和坐席的外呼都有效:

GET http://{cti_host}:12121/bridge/callctrl?leaderExtnum=803&wokerExtnum=801&opt=FORCE_PICKUP

参数同监听。行为:主管分机振铃,接听后坐席被请出通话,主管与客户直接沟通。

5. 强拆(FORCE_HUNGUP)

挂断坐席与客户之间的通话:

GET http://{cti_host}:12121/bridge/callctrl?leaderExtnum=803&wokerExtnum=801&opt=FORCE_HUNGUP

参数同监听。行为:坐席与客户的通话立即被挂断(主管分机不响铃,leaderExtnum 仅用于权限校验)。

6. 三接口共同说明

HTTP 状态码恒为 200,业务码写在响应体(纯文本):

业务码含义与处理
200操作成功(监听/强插:主管话机即将振铃,请注意接听)
400参数错误(缺 leaderExtnum/wokerExtnum)
403主管分机无"坐席监控"权限 → 到呼叫中心后台"分机管理"中为该分机添加权限
404目标坐席当前没有可操作的通话(刷新状态后再试)
480主管分机离线/未注册
486主管分机忙(正在通话,无法监听/强插)
503系统资源不足

约束与建议:

  • 不能对自己操作(leaderExtnum == wokerExtnum 时界面应禁止)。
  • 监听/强插需要主管保持空闲并守在话机旁,建议操作前检查主管分机状态(EXTNUM_MONITOR 里查 leaderExtnum 的 state)。
  • 监管页轮询 EXTNUM_MONITOR 建议 2 秒一次,avoidCallPerform=1;assisLogId 全程不变。

7. curl 示例

# 查询所有坐席当前状态(第 1 页,每页 15 条,高性能模式)
curl "http://192.168.1.80:12121/bridge/jsoncfg?opt=EXTNUM_MONITOR&json=%7B%22assisLogId%22%3A%22oa-monitor-001%22%2C%22first%22%3A0%2C%22maxResults%22%3A15%2C%22avoidCallPerform%22%3A1%7D"

# 监听 801 的通话(主管分机 803)
curl "http://192.168.1.80:12121/bridge/callctrl?leaderExtnum=803&wokerExtnum=801&opt=CALL_MONITOR"

# 强插接管 801 的通话
curl "http://192.168.1.80:12121/bridge/callctrl?leaderExtnum=803&wokerExtnum=801&opt=FORCE_PICKUP"

# 强拆 801 的通话
curl "http://192.168.1.80:12121/bridge/callctrl?leaderExtnum=803&wokerExtnum=801&opt=FORCE_HUNGUP"

8. 常见问题排查

现象原因与处理
403主管分机无"坐席监控"权限,后台分机管理中添加
404目标坐席没在通话:先轮询 EXTNUM_MONITOR 确认 state=BUSY_* 再操作
480主管分机离线:话机断电/未注册,查 telRegState
486主管分机正在通话:先结束自己的通话
监听接通但听不到声音检查主管话机音量/静音键;确认被监听通话仍在进行
json 参数报错/返回 json 必须 URL 编码;assisLogId 为空时直接返回 []