

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 为聊天参与者设置聊天超时
<a name="setup-chat-timeouts"></a>

当座席和客户之间的聊天对话在一段时间内处于非活动状态（未发送任何消息）时，您可能希望将聊天参与者视为空闲状态，甚至可能希望自动断开座席与聊天的连接。

为此，您可以使用操作配置空闲超时和自动关闭超时。[UpdateParticipantRoleConfig](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateParticipantRoleConfig.html)

**提示**  
本主题介绍如何为客户与座席的对话设置聊天超时。如果您正在寻找有关在客户与 Lex 互动时配置聊天超时的信息，请参阅[Amazon Connect 流数据块：获取客户输入](get-customer-input.md)数据块的[Lex 互动期间可配置聊天输入的超时时间](get-customer-input.md#get-customer-input-configurable-timeouts-chat)部分。

**您可以设置四种不同类型的计时器。**
+ 您可以制定在采取操作前必须经过的时间。
+ 可以使用任意组合的计时器。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/setup-chat-timeouts.html)

**以分钟为单位指定所有计时器。**
+ 最短：2 分钟
+ 最长：480 分钟（8 小时）

**计时器应用于参与者角色，在聊天过程中一直有效。**
+ 您可以为参与者角色（例如座席和客户）配置计时器，而不是为单个参与者配置计时器。
+  设置计时器后，它们将在聊天过程中一直有效。如果聊天已转移，则计时器将应用于新的 agent/customer 互动。

## 聊天计时器的工作原理
<a name="how-chat-timer-work"></a>

计时器的行为如下所示：
+ 当座席和客户都连接到聊天时，或者当客户和自定义参与者（例如自定义机器人）时，计时器开始计时。
+ 计时器首先在 agent/custom 参与者加入聊天时开始，并在 agent/custom 参与者离开聊天时停止。
+ 如果一个角色同时配置了空闲计时器和自动断开计时器，则空闲计时器会在自动断开计时器之前运行。例如，如果同时配置了两个计时器，只有在参与者被视为空闲之后，自动断开连接计时器才会启动。
+ 如果仅为角色配置了一种类型的计时器，则该计时器会立即启动。
+ 无论参与者在什么时候发送消息，该参与者的计时器都将被重置。如果他们之前被认为处于空闲状态，现在就不再被认为处于空闲状态了。
+ 当向消息添加附件时，聊天计时器会被重置。
+  agent/custom 参与者加入时设置的配置将在参与 agent/custom 者继续聊天时生效。如果您在 agent/custom 参与者和客户已经相互连接的情况下更新计时器配置，则会存储新配置，但除非有新的 agent/custom 参与者连接到聊天，否则不会应用新配置。
+ 发生自动断开事件时，除客户以外的所有参与者（例如座席、任何监控主管或自定义参与者）都将断开连接。如果座席已断开连接，并且已配置 [设置断开连接流](set-disconnect-flow.md) 数据块，则会将此聊天路由到它。

### 闲置计时器到期
<a name="idle-timer-expiry"></a>

以下是客户自定义参与者互动过程中闲置计时器到期时的情况：

1. 空闲事件会分散到所有 websockets/streaming 端点。

1. 如果配置了自动断开计时器，则计时器将启动。

1. 如果聊天联系处于**等待**状态时，闲置计时器到期，则联系不会通过**时间到期**分支进行路由。如果出现这种情况，则不会采取任何操作。

### 自动断开自定义参与者的连接
<a name="auto-disconnecting"></a>

当自动断开计时器到期连接时，自定义参与者会断开与聊天的连接。

当自动断开计时器到期连接时，Amazon Connect 会执行以下步骤之一：

1. 聊天目前位于为自定义参与者配置的 [Wait](wait.md) 数据块中。
   + 自定义参与者会断开与聊天的连接，聊天会通过**断开连接的机器人**参与者分支恢复流。

1. 聊天当前位于为客户配置的 [Wait](wait.md) 数据块中，或者聊天不在**等待**数据块中。
   + 自定义参与者断开与聊天的连接，并且不会采取任何其他操作。

## 向参与者显示的消息
<a name="chat-timeouts-events"></a>

发生以下任一事件时，系统会向所有参与者显示消息：
+ 参与者处于空闲状态。
+ 空闲的参与者发送消息后，就不再处于空闲状态。
+ 连接自动断开。由于座席已断开连接，因此无法看到消息。

这些事件不会保留在记录中，也不会计费。

在联系人控制面板（CCP）中，会向座席显示其中每个事件的默认消息（使用所有支持的语言）。

下图显示了座席在 CCP 中看到的默认空闲消息示例。例如，*座席已处于空闲状态*。

![\[CCP，默认的空闲消息。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/chat-timeout-message.png)


## 推荐用法
<a name="chat-timeouts-usage"></a>

要使用聊天超时功能，建议您执行以下操作：

1. 在联系流的 [UpdateParticipantRoleConfig](https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateParticipantRoleConfig.html)Lambda 中嵌入号召性用语。

1. 根据您的用例，可以在开始聊天后（流程开始时）立即放置 Lambda，也可以在将联系人路由到队列之前放置 Lambda。

## 为断开连接事件自定义客户的聊天用户界面
<a name="chat-timeouts-ui"></a>

要针对断开连接事件自定义客户的聊天用户界面，请参阅 [ChatJS](https://github.com/amazon-connect/amazon-connect-chatjs) 中的以下方法：
+ `onParticipantIdle(callback)`
+ `onParticipantReturned(callback)`
+ `onAutoDisconnection(callback)`

使用这些方法注册在新事件到达时触发的回调处理程序。