08 State Machine: `state` / `stateAction`


08 State Machine: state / stateAction

Many events (e.g., agentStatus, previewObCallRinging, atxferStart) include:

  • state: coarse-grained agent state
  • stateAction: fine-grained action/cause that led to the state transition

You can use them to:

  • Drive UI state (button enable/disable, labels, timers)
  • Prevent invalid operations (e.g., disallow Hold when not on a call)
  • Build replayable / observable call-flow logs

1. Which events include state/stateAction

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

2. state definitions

stateDescription
offlineOffline (not logged in)
invalidInvalid/unavailable (e.g., endpoint binding issue)
idleIdle
busyBusy
callingDialing
ringingRinging
talkingTalking
wrapupWrap-up

3. stateAction values

3.1 state=idle

stateActionDescription
idleSet idle
ringingNoAnswerIbNo answer on inbound
ringingAgentNoAnswerObAgent no answer on outbound
ringingCustomerNoAnswerObCustomer no answer on outbound
ringingConsultNoAnswerNo answer on consult
ringingTransferNoAnswerNo answer on transfer
ringingMonitorNoAnswerNo answer on monitoring
hangupHang up

3.2 state=busy

stateActionDescription
pauseSet busy
ringingNoAnswerIbNo answer on inbound
ringingAgentNoAnswerObAgent no answer on outbound
ringingCustomerNoAnswerObCustomer no answer on outbound
ringingConsultNoAnswerNo answer on consult
ringingTransferNoAnswerNo answer on transfer
ringingMonitorNoAnswerNo answer on monitoring
hangupHang up

3.3 state=calling

stateActionDescription
callingDialing

3.4 state=ringing

stateActionDescription
ringingIbInbound ringing
ringingAgentObAgent ringing for outbound
ringingConsultConsult ringing
ringingTransferTransfer ringing
ringingInteractIVR interaction ringing
ringingMonitorMonitoring ringing

3.5 state=talking

stateActionDescriptionCommon source event
busyIbInbound talkingagentStatus
ringingCustomerObCustomer ringing on outboundpreviewObCallRinging
busyAgentObAgent answered, dialing customeragentStatus
busyObOutbound bridgedpreviewObCallBridge
busyConsultIn consult callagentStatus
busyTransferIn transfer callagentStatus
busyMonitorMonitoring in progressagentStatus
holdHoldagentStatus
unholdRetrieve from holdagentStatus
atxferStartConsult startedatxferStart
atxferLinkConsult connectedatxferLink
atxferErrorConsult failedatxferError
threewayAtxferResultConsult three-waythreewayAtxferResult
atxferThreewayUnlinkConsult three-way endedatxferThreewayUnlink
completeAtxferResultConsult transfer completedcompleteAtxferResult
atxferEndedConsult ended/resumed/cancelledatxferEnded

3.6 state=wrapup

stateActionDescription
wrapupIn wrap-up