事件

说明:

  • 事件用于描述“发生了什么”(可能来自服务端推送,也可能由 SDK 本地触发)。
  • 事件常量通过 AgentSDK.EventType(或等价枚举)暴露。
  • 每个事件载荷通常都包含一个 eventType 字符串,用于标识事件类型。
  • 06-Types.md 中的类型定义是最终准确依据。本文档主要提供字段级载荷表和集成实践说明。

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. 事件目录(常用)

场景事件名(eventTypeEventType 常量
座席状态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 的取值定义见 08-State-Machine-stateAction.md。如果需要更严格的类型约束,请以 06-Types.md 为准。

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状态动作(见 08-State-Machine-stateAction.md
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 } }

队列相关类型见 06-Types.md

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

spyResult

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

spyLink

字段类型说明
eventTypestring固定为 spyLink
tenantIdstring租户 ID
agentNostring座席 ID
spiedCnostring被监听座席 ID
initiatorstring监听发起方
initiatorTypenumber0 PSTN;1 座席;2 分机
resultstringsuccesserror
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
resultstringsuccesserror

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
resultstringsuccesserror

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
resultstringsuccesserror

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
resultstringsuccesserror

3.16 setOfflineResult(强制签出结果)

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

3.17 orderCallBack(预约回拨)

该事件是存在的(eventType=orderCallBackEventType.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(实时转写)

命名说明:旧文档中可能会提到 transcriptEventrasr。SDK 对外公开的 eventTypetranscript

字段类型说明
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(或由租户侧启用)。在软电话通话期间,每秒派发一次。

该载荷较大,建议按 06-Types.md 中的 WebrtcStatsEvent 处理。关键字段包括:

  • iceStatedtlsState
  • packetsSent/packetsReceivedpacketsState
  • jitterrttpacketLossRate
  • sentNetworkQualityreceivedNetworkQuality

4. 典型时序

关键事件时序(如预览外呼、咨询流程)请参见 10-Key-Flows-Sequence-Diagrams.md