状态机:状态/状态转移

许多事件(例如 agentStatuspreviewObCallRingingatxferStart)都会包含以下字段:

  • state:座席的粗粒度状态
  • stateAction:触发该状态变化的细粒度动作或原因

你可以用它们来:

  • 驱动 UI 状态(按钮启用/禁用、标签文案、计时器等)
  • 防止无效操作(例如,不在通话中时禁止执行 Hold)
  • 构建可回放、可观测的通话流程日志

1. 哪些事件包含 state/stateAction

  • agentStatus
  • previewObCallRinging
  • previewObCallBridge
  • atxferStart
  • atxferLink
  • atxferEnded
  • atxferError
  • threewayAtxferResult
  • atxferThreewayUnlink
  • completeAtxferResult

2. state 定义

state说明
offline离线(未登录)
invalid无效/不可用(例如终端绑定异常)
idle空闲
busy忙碌
calling拨号中
ringing振铃中
talking通话中
wrapup话后整理中

3. stateAction 取值

3.1 state=idle

stateAction说明
idle设置为空闲
ringingNoAnswerIb呼入未接听
ringingAgentNoAnswerOb外呼时座席未接听
ringingCustomerNoAnswerOb外呼时客户未接听
ringingConsultNoAnswer咨询未接听
ringingTransferNoAnswer转接未接听
ringingMonitorNoAnswer监听未接听
hangup挂断

3.2 state=busy

stateAction说明
pause设置为忙碌
ringingNoAnswerIb呼入未接听
ringingAgentNoAnswerOb外呼时座席未接听
ringingCustomerNoAnswerOb外呼时客户未接听
ringingConsultNoAnswer咨询未接听
ringingTransferNoAnswer转接未接听
ringingMonitorNoAnswer监听未接听
hangup挂断

3.3 state=calling

stateAction说明
calling拨号中

3.4 state=ringing

stateAction说明
ringingIb呼入振铃
ringingAgentOb外呼时座席振铃
ringingConsult咨询振铃
ringingTransfer转接振铃
ringingInteractIVR 交互振铃
ringingMonitor监听振铃

3.5 state=talking

stateAction说明常见来源事件
busyIb呼入通话中agentStatus
ringingCustomerOb外呼时客户振铃中previewObCallRinging
busyAgentOb座席已接听,正在呼叫客户agentStatus
busyOb外呼已桥接previewObCallBridge
busyConsult咨询通话中agentStatus
busyTransfer转接通话中agentStatus
busyMonitor监听进行中agentStatus
hold保持agentStatus
unhold取消保持/取回agentStatus
atxferStart已发起咨询atxferStart
atxferLink咨询已接通atxferLink
atxferError咨询失败atxferError
threewayAtxferResult咨询三方通话threewayAtxferResult
atxferThreewayUnlink咨询三方通话结束atxferThreewayUnlink
completeAtxferResult咨询转接已完成completeAtxferResult
atxferEnded咨询已结束/恢复/取消atxferEnded

3.6 state=wrapup

stateAction说明
wrapup话后整理中