事件

快速阅读

事件描述「已经发生了什么」,来源可以是服务端推送,也可以是 SDK 本地触发。常量在 AgentSDK.EventType。载荷里的 eventType 是事件名原文。

  • 字段表保持原文。类型定义以 类型 为准。
  • transcript / TRANSCRIPT 是座席辅助实时转写,推给座席工作台。智能体通话中的实时转写用 RASR,挂机后按录音的转写用 ASR。不要把本事件改名为 RASR。
  • state / stateAction 的取值见 状态机:状态/状态转移。

阅读地图

  • 怎么订阅:读「1」。
  • 按场景查事件名:读「2」。
  • 按事件查字段:读「3」。
  • 操作与事件的到达顺序见 关键流程(时序图)。发起动作的方法见 API(操作)。

1. 订阅事件(on/off/once)

const { EventType } = AgentSDK;

const onStatus = (e) => console.log('agentStatus', e);
AgentSDK.on(EventType.AGENT_STATUS, onStatus);

AgentSDK.once(EventType.SESSION_INIT, () => console.log('session init'));

// 页面卸载时清理
AgentSDK.off(EventType.AGENT_STATUS, onStatus);

2. 事件目录(常用)

场景事件名(eventType)EventType 常量
座席状态agentStatusAGENT_STATUS
预览外呼:开始呼叫客户previewObCallStartPREVIEW_OBCALL_START
预览外呼:客户振铃previewObCallRingingPREVIEW_OBCALL_RINGING
预览外呼:桥接成功previewObCallBridgePREVIEW_OBCALL_BRIDGE
预览外呼:结果previewObCallResultPREVIEW_OBCALL_RESULT
咨询开始atxferStartATXFER_START
咨询接通atxferLinkATXFER_LINK
咨询结束(恢复/挂断/取消)atxferEndedATXFER_ENDED
咨询失败atxferErrorATXFER_ERROR
咨询三方结果threewayAtxferResultTHREEWAY_ATXFER_RESULT
咨询三方结束atxferThreewayUnlinkATXFER_THREEWAY_UNLINK
咨询转接完成completeAtxferResultCOMPLETE_ATXFER_RESULT
振铃ringingRINGING
会话初始化/终止sessionInit / sessionTerminateSESSION_INIT / SESSION_TERMINATE
SIP 会话初始化/终止sipSessionInit / sipSessionTerminateSIP_SESSION_INIT / SIP_SESSION_TERMINATE
重连尝试reconnectAttemptRECONNECT_ATTEMPT
队列状态(班长)queueStatusQUEUE_STATUS
静默监听(结果/接通/结束)spyResult / spyLink / spyUnlinkSPY_RESULT / SPY_LINK / SPY_UNLINK
三方通话(结果/接通/结束)threewayResult / threewayLink / threewayUnlinkTHREEWAY_RESULT / THREEWAY_LINK / THREEWAY_UNLINK
耳语辅导(结果/接通/结束)whisperResult / whisperLink / whisperUnlinkWHISPER_RESULT / WHISPER_LINK / WHISPER_UNLINK
强插(结果/接通/结束)bargeResult / bargeLink / bargeUnlinkBARGE_RESULT / BARGE_LINK / BARGE_UNLINK
强拆结果disconnectResultDISCONNECT_RESULT
强制签出结果setOfflineResultSET_OFFLINE
分机状态extenStateEXTENSTATE
IVR 交互返回interactReturnINTERACT_RETURN
软电话断开sipDisconnectedSIP_DISCONNECTED
座席辅助实时转写transcriptTRANSCRIPT
预约回拨orderCallBackORDER_CALLBACK
Ping(时延 / 网络)pingPING
WebRTC 统计(通话中每秒一次)webrtcStatsWEBRTC_STATS

3. 事件载荷(字段级)

提示:state/stateAction 的取值定义见 状态机:状态/状态转移。如果需要更严格的类型约束,请以 类型 为准。

3.1 agentStatus(座席状态)

当座席状态发生变化时触发。

字段类型说明
eventTypestring固定为 agentStatus
tenantIdstring租户 ID
agentNostring座席 ID
statusobject座席状态对象(state/stateAction/initialStatus/deviceStatus/...)

示例结构:

{
  eventType: 'agentStatus',
  tenantId: 't1',
  agentNo: '0001',
  status: {
    state: 'idle',
    stateAction: 'idle',
    initialStatus: 1,
    deviceStatus: 0
    // 当 deviceStatus=2/3/4 时,可能包含 callType/uniqueId/mainUniqueId 等字段
  }
}

3.2 previewObCallStart(预览外呼:开始呼叫客户)

字段类型说明
eventTypestring固定为 previewObCallStart
tenantIdstring租户 ID
agentNostring座席 ID
customerNumberstring客户号码
customerNumberTypenumber0 固话;1 手机
obClidAreaCodestring客户区号
mainUniqueIdstring主通话唯一 ID
requestUniqueIdstring请求唯一 ID
obClidstring外呼主叫显号

3.3 previewObCallRinging(预览外呼:客户振铃)

字段类型说明
eventTypestring固定为 previewObCallRinging
tenantIdstring租户 ID
agentNostring座席 ID
customerNumberstring客户号码
customerNumberTypenumber0 固话;1 手机
obClidAreaCodestring客户区号
statestring座席状态(offline/invalid/idle/busy/calling/ringing/talking/wrapup)
stateActionstring状态动作(见 状态机:状态/状态转移)
mainUniqueIdstring主通话唯一 ID

3.4 previewObCallBridge(预览外呼:桥接成功)

字段类型说明
eventTypestring固定为 previewObCallBridge
tenantIdstring租户 ID
agentNostring座席 ID
customerNumberstring客户号码
customerNumberTypenumber0 固话;1 手机
obClidAreaCodestring客户区号
channelstring通道名
destChannelstring目标通道名
mainUniqueIdstring主通话唯一 ID

3.5 previewObCallResult(预览外呼:结果)

字段类型说明
eventTypestring固定为 previewObCallResult
tenantIdstring租户 ID
agentNostring座席 ID
customerNumberstring客户号码
resultstringsuccess 表示接通;error 表示失败(如取消)
uniqueIdstring通话唯一 ID
obClidstring外呼主叫显号

3.6 ringing

字段类型说明
eventTypestring固定为 ringing
tenantIdstring租户 ID
agentNostring座席 ID
callTypenumber1 呼入;2 WebCall;4 预览外呼;5 预测外呼;6 外呼;9 内部呼叫;11 SIP 接入
channelstring通道名
mainUniqueIdstring主通话唯一 ID
uniqueIdstring单条通话腿唯一 ID
customerNumberstring客户号码
customerAreaCodestring区号
customerProvincestring省份
customerCitystring城市
subCallTypenumber子类型(101/102/103/...),用于区分转接/咨询/监听等场景
hotlinestring热线
numberTrunkstring中继
queueNostring队列号
chanVariablesobject自定义变量

3.7 咨询事件:atxferStart / atxferLink / atxferEnded / atxferError

atxferStart(咨询开始)

字段类型说明
eventTypestring固定为 atxferStart
tenantIdstring租户 ID
agentNostring座席 ID
channelstring通道名
destChannelstring目标通道名
statestring座席状态
stateActionstring状态动作
mainUniqueIdstring主通话唯一 ID

atxferLink(咨询接通)

字段类型说明
eventTypestring固定为 atxferLink
tenantIdstring租户 ID
agentNostring座席 ID
channelstring通道名
targetstring咨询目标
targetTypenumber0 PSTN;1 座席;2 分机
statestring座席状态
stateActionstring状态动作

atxferEnded(咨询结束:恢复/挂断/取消)

字段类型说明
eventTypestring固定为 atxferEnded
tenantIdstring租户 ID
agentNostring座席 ID
targetstring咨询目标
targetTypenumber0 PSTN;1 座席;2 分机
hangupSidenumber挂断方(咨询方或座席/客户)
statestring座席状态
stateActionstring状态动作

atxferError(咨询失败)

字段类型说明
eventTypestring固定为 atxferError
tenantIdstring租户 ID
agentNostring座席 ID
statestring座席状态
stateActionstring状态动作

3.8 threewayAtxferResult / atxferThreewayUnlink / completeAtxferResult

threewayAtxferResult(咨询三方结果)

字段类型说明
eventTypestring固定为 threewayAtxferResult
tenantIdstring租户 ID
agentNostring座席 ID
targetstring咨询目标
targetTypenumber0 PSTN;1 座席;2 分机
statestring座席状态
stateActionstring状态动作

atxferThreewayUnlink(咨询三方结束)

字段类型说明
eventTypestring固定为 atxferThreewayUnlink
tenantIdstring租户 ID
agentNostring座席 ID
targetstring咨询目标
targetTypenumber0 PSTN;1 座席;2 分机
statestring座席状态
stateActionstring状态动作

completeAtxferResult(咨询转接完成)

字段类型说明
eventTypestring固定为 completeAtxferResult
tenantIdstring租户 ID
agentNostring座席 ID
targetstring咨询目标
targetTypenumber0 PSTN;1 座席;2 分机
statestring座席状态
stateActionstring状态动作

3.9 reconnectAttempt

SDK 即将执行重连尝试时触发。最大尝试次数为 20,超过后通常需要座席重新登录。

字段类型说明
eventTypestring固定为 reconnectAttempt
attemptnumber当前尝试次数(从 1 开始)
codenumber0 已重连;-1 断开中
firstAttemptTsnumber开始进入重连循环时的时间戳(毫秒)
maxAttemptsnumber最大尝试次数(固定为 20)
sinceFirstAttemptMsnumber距离首次尝试已过去的毫秒数

3.10 queueStatus(班长)

字段类型说明
eventTypestring固定为 queueStatus
queueStatusobjectMap 结构:{ "<queueNo>": { queueParams, agentStatuses, queueEntries } }

队列相关类型见 类型。

3.11 spyResult / spyLink / spyUnlink(静默监听)

spyResult

字段类型说明
eventTypestring固定为 spyResult
tenantIdstring租户 ID
agentNostring座席 ID
spiedCnostring被监听座席 ID
initiatorstring监听发起方
initiatorTypenumber0 PSTN;1 座席;2 分机
uniqueIdstring通话唯一 ID
resultstringsuccess 或 error

spyLink

字段类型说明
eventTypestring固定为 spyLink
tenantIdstring租户 ID
agentNostring座席 ID
spiedCnostring被监听座席 ID
initiatorstring监听发起方
initiatorTypenumber0 PSTN;1 座席;2 分机
resultstringsuccess 或 error
channelstring通道名

spyUnlink

字段类型说明
eventTypestring固定为 spyUnlink
tenantIdstring租户 ID
agentNostring座席 ID
spiedCnostring被监听座席 ID
initiatorstring监听发起方
initiatorTypenumber0 PSTN;1 座席;2 分机

3.12 threewayResult / threewayLink / threewayUnlink(班长三方)

threewayResult

字段类型说明
eventTypestring固定为 threewayResult
tenantIdstring租户 ID
agentNostring座席 ID
threewayedCnostring目标座席 ID
initiatorstring发起方
initiatorTypenumber0 PSTN;1 座席;2 分机
uniqueIdstring通话唯一 ID
resultstringsuccess 或 error

threewayLink

字段类型说明
eventTypestring固定为 threewayLink
tenantIdstring租户 ID
agentNostring座席 ID
threewayedCnostring目标座席 ID
initiatorstring发起方
initiatorTypenumber0 PSTN;1 座席;2 分机
channelstring通道名

threewayUnlink

字段类型说明
eventTypestring固定为 threewayUnlink
tenantIdstring租户 ID
agentNostring座席 ID
threewayedAgentNostring目标座席 ID
initiatorstring发起方
initiatorTypenumber0 PSTN;1 座席;2 分机

3.13 whisperResult / whisperLink / whisperUnlink(耳语辅导)

whisperResult

字段类型说明
eventTypestring固定为 whisperResult
tenantIdstring租户 ID
agentNostring座席 ID
whisperedCnostring目标座席 ID
initiatorstring发起方
initiatorTypenumber0 PSTN;1 座席;2 分机
uniqueIdstring通话唯一 ID
resultstringsuccess 或 error

whisperLink

字段类型说明
eventTypestring固定为 whisperLink
tenantIdstring租户 ID
agentNostring座席 ID
whisperedCnostring目标座席 ID
initiatorstring发起方
initiatorTypenumber0 PSTN;1 座席;2 分机
channelstring通道名

whisperUnlink

字段类型说明
eventTypestring固定为 whisperUnlink
tenantIdstring租户 ID
agentNostring座席 ID
whisperedAgentNostring目标座席 ID
initiatorstring发起方
initiatorTypenumber0 PSTN;1 座席;2 分机

3.14 bargeResult / bargeLink / bargeUnlink(强插)

bargeResult

字段类型说明
eventTypestring固定为 bargeResult
tenantIdstring租户 ID
agentNostring座席 ID
bargedAgentNostring目标座席 ID
initiatorstring发起方
initiatorTypenumber0 PSTN;1 座席;2 分机
uniqueIdstring通话唯一 ID
resultstringsuccess 或 error

bargeLink

字段类型说明
eventTypestring固定为 bargeLink
tenantIdstring租户 ID
agentNostring座席 ID
bargedAgentNostring目标座席 ID
initiatorstring发起方
initiatorTypenumber0 PSTN;1 座席;2 分机
channelstring通道名

bargeUnlink

字段类型说明
eventTypestring固定为 bargeUnlink
tenantIdstring租户 ID
agentNostring座席 ID
bargedCnostring目标座席 ID
initiatorstring发起方
initiatorTypenumber0 PSTN;1 座席;2 分机

3.15 disconnectResult(强拆结果)

字段类型说明
eventTypestring固定为 disconnectResult
tenantIdstring租户 ID
agentNostring座席 ID
disconnectorCnostring目标座席 ID
initiatorstring发起方
initiatorTypenumber0 PSTN;1 座席;2 分机
uniqueIdstring通话唯一 ID
resultstringsuccess 或 error

3.16 setOfflineResult(强制签出结果)

字段类型说明
eventTypestring固定为 setOfflineResult
tenantIdstring租户 ID
agentNostring座席 ID
initiatorstring发起强制签出的人(班长座席号或管理员名称)
codestring0 成功;-1 失败
messagestring提示信息(通常为 ok)

3.17 orderCallBack(预约回拨)

该事件是存在的(eventType=orderCallBack,EventType.ORDER_CALLBACK),但当前源文档没有给出字段级载荷契约。

建议做法:

  • 将其当作透传事件处理,并基于 eventType=orderCallBack 分支
  • 如果业务必须依赖具体字段,请在集成前与后端团队确认载荷契约

3.18 extenState(分机状态)

字段类型说明
eventTypestring固定为 extenState
statestringReachable / Unreachable
registerStatestringRegistered / Unregistered
registerTimestring注册时间(例如 2024-01-01 10:54:19)
expirationTimestring过期时间
extenIpstring话机 IP
URIstring注册 URI
extenNostring分机号
tenantIdstring租户 ID

3.19 interactReturn(IVR 交互返回)

字段类型说明
eventTypestring固定为 interactReturn
tenantIdstring租户 ID
agentNostring座席 ID
returnVariablesobject返回变量(通过 transferIvr 传入)

3.20 sipDisconnected(软电话断开)

当软电话连接中断时触发。大多数情况下,座席需要重新登录或重建软电话会话。

3.21 transcript(座席辅助实时转写)

事件名是 transcript。它把座席辅助实时转写推给座席工作台。智能体通话中的实时转写用 RASR,挂机后按录音的转写用 ASR。字段名保持原文。旧稿里的 transcriptEvent 或 rasr 不是本 SDK 对外的 eventType。

字段类型说明
eventTypestring固定为 transcript
textstring转写后的句子文本
rolenumber1 座席侧;2 客户侧
transcriptTimenumber文本生成时的绝对时间戳(毫秒)
beginTimenumber相对录音开始时间的起始点(毫秒)
endTimenumber相对录音开始时间的结束点(毫秒)
finishednumber1 已结束;0 进行中
sentenceIndexnumber句子序号,从 0 开始
sentenceTypestringintermediateResult / sentenceEnd
mainUniqueIdstring主通话唯一 ID
sentenceBeginTimestampnumber该句引擎开始处理的时间戳(毫秒,仅 sentenceEnd 返回)
sentenceEndTimestampnumber最终文本返回的时间戳(毫秒,仅 sentenceEnd 返回)

3.22 ping(时延 / 网络质量)

字段类型说明
eventTypestring固定为 ping
latencyTimenumberPing 时延,单位毫秒
networkStatenumber基于时延计算出的网络质量分档

3.23 webrtcStats(WebRTC 通话统计)

需要在 setup() 中开启 webrtcStats=true(或由租户侧启用)。在软电话通话期间,每秒派发一次。

该载荷较大,建议按 类型 中的 WebrtcStatsEvent 处理。关键字段包括:

  • iceState、dtlsState
  • packetsSent/packetsReceived、packetsState
  • jitter、rtt、packetLossRate
  • sentNetworkQuality、receivedNetworkQuality

4. 典型时序

关键事件时序(如预览外呼、咨询流程)请参见 关键流程(时序图)。


Did this page help you?