Chat And Typing

Agent greeting(MessageSeq 1) · Customer reply(MessageSeq 2) · one-way SetTypingMsg

Chat And Typing Agent greeting(MessageSeq 1) · Customer reply(MessageSeq 2) · one-way SetTypingMsg SendChatMessageReq(metadata ConversationId) SendChatMessageReq SendChatMessageRes(MessageSeq=1) SendChatMessageRes(MessageSeq=1) ChatMessageNotify to customer binding ChatMessageNotify(MessageSeq=1) SendChatMessageReq SendChatMessageReq SendChatMessageRes(MessageSeq=2) SendChatMessageRes(MessageSeq=2) ChatMessageNotify to agent binding ChatMessageNotify(MessageSeq=2) SetTypingMsg(true) SetTypingMsg TypingChangedNotify to agent binding TypingChangedNotify Customer Client · Sequence participant Customer Client Session · Sequence participant Session ConversationSpot · Sequence participant ConversationSpot Agent Client · Sequence participant Agent Client

What a chat response means

  • • A chat message is request/reply because the server-assigned MessageSeq and acceptance errors must be confirmed. A chat response means acceptance, validation, and MessageSeq confirmation, but it doesn't mean the counterpart read it.
  • • The Agent greeting becomes MessageSeq 1, and the Customer reply becomes MessageSeq 2, following the same flow in the opposite direction.

Typing and rejection after Closed

  • • SetTypingMsg is a one-way send with no response. After source-local admission, it doesn't guarantee the target handler or the counterpart received it — the effect is confirmed once TypingChangedNotify arrives at the counterpart.
  • • A SendChatMessageReq in the Closed state is an Application callback rejection and returns a typed `Rejected` error response, and a SetTypingMsg in the Closed state is silently ignored. This domain rejection is distinct from the Framework `ErrorKind` values used for transport, route, and protocol failures.