

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

# Amazon Connect 中的流程块：设置按键缓冲区行为
<a name="set-touchtone-buffer-behavior"></a>

## 说明
<a name="set-touchtone-buffer-behavior-description"></a>

使用此块为联系人启用或禁用按键缓冲。启用按键缓冲后，客户键盘输入（数字 0—9、\# 和 \*）将在客户按下时收集到最多 30 个字符的缓冲区中，即使提示仍在播放或在流程块过渡之间也是如此。这消除了常见的 IVR 问题，即当客户在提示之前键入时，会丢掉数字。

该方块有两种模式：
+ **启用缓冲** — 开始将 DTMF 输入收集到缓冲区。缓冲的数字由流中的下一个[获取客户输入](get-customer-input.md)或[存储客户输入](store-customer-input.md)区块消耗。
+ **停止并清除**-停止缓冲并清除缓冲区中的任何数字。（可选）在清除之前存储缓冲的输入，并支持加密。

## 此数据块的使用场景
<a name="set-touchtone-buffer-behavior-usecases"></a>
+ 允许客户浏览多级 IVR 菜单，无需等待每个提示完成（提前键入）。
+ 在收款提示播放之前 IDs，捕获客户开始输入的账号、订单或其他数字输入。

## 支持的渠道
<a name="set-touchtone-buffer-behavior-channels"></a>

下表列出了此数据块如何路由正在使用指定渠道的联系人。


| 频道 | 是否支持？ | 
| --- | --- | 
| 语音 | 是 | 
| Chat | 否 — 错误分支 | 
| Task | 否 — 错误分支 | 
| 电子邮件 | 否 — 错误分支 | 

## 流类型
<a name="set-touchtone-buffer-behavior-types"></a>

您可以在以下[流类型](create-contact-flow.md#contact-flow-types)中使用此数据块：
+ 入站流
+ 客户队列流
+ 出站私密消息流
+ 转接到座席流
+ 转接到队列流

## 如何配置此数据块
<a name="set-touchtone-buffer-behavior-properties"></a>

您可以使用 Amazon C **onnect 管理网站或使用 Amazon Connect 流程语言中的[GetParticipantInput](https://docs.aws.amazon.com/connect/latest/APIReference/participant-actions-getparticipantinput.html)操作来配置 “设置按键缓冲区行为**” 块。

### 启用缓冲
<a name="set-touchtone-buffer-behavior-enable"></a>

1. 在流程设计器中，添加 “**设置按键缓冲区行为**” 模块。

1. 在 “**按键缓冲区行为**” 下，选择 “**启用**”。

1. 缓冲区立即开始收集客户的 DTMF 输入。数字会一直保留在缓冲区中，直到它们被[获取客户输入](get-customer-input.md)或[存储客户输入](store-customer-input.md)块消耗，或者直到缓冲区被明确停止并清除。

### 停止并清除
<a name="set-touchtone-buffer-behavior-stop"></a>

1. 在 “**按键缓冲区行为**” 下，选择 “**停止并清除**”。

1. （可选）启用 “**存储输入**”，以便在清除之前将当前缓冲区内容保存到联系人属性中。

1. 如果存储输入，可以选择启用**加密输入**并提供加密密钥来加密存储的值。

## 已配置的数据块
<a name="set-touchtone-buffer-behavior-branches"></a>

下图显示了该数据块已配置好的样子。它有以下分支：**成功**和**错误**。

1. **成功**：缓冲区行为已成功设置。

1. **错误**：出现错误，例如，非语音联系人到达了屏蔽。

## 缓冲区如何与其他区块交互
<a name="set-touchtone-buffer-behavior-interactions"></a>
+ [播放提示](play.md)：包括 “**启用按键缓冲时跳过或中断此提示” 复选**框。选中后，如果缓冲区已经包含数字，则会完全跳过提示。如果客户在提示期间按下按键，则会中断提示并将数字添加到缓冲区中。
+ [获取客户输入](get-customer-input.md)：如果缓冲区包含数字，则区块会自动出队并使用该数字。无需更改配置。如果缓冲区为空，则系统会像往常一样提示客户输入。在 Amazon Lex 模式下，会在机器人交互开始之前自动清除缓冲区。不使用缓冲数字，也不会将缓冲区内容传递给 Amazon Lex 机器人。
+ [存储客户输入](store-customer-input.md)：区块出队最多不超过区块配置中指定的最大位数。如果缓冲区包含的数字等于或大于最大值，则会跳过提示并立即继续调用。如果缓冲区的位数少于请求的数字，则应用数字间超时以允许呼叫者实时输入剩余的数字。

## 自动清算
<a name="set-touchtone-buffer-behavior-auto-clearing"></a>

在以下情况下，缓冲区会自动清除：
+ 每次 a [获取客户输入](get-customer-input.md) 或 [存储客户输入](store-customer-input.md) block 处理缓冲数字时，都会按先入先出的顺序消耗这些数字。
+ 执行了 “**停止并清除**” 操作。
+ 转移到代理或队列时。
+ [获取客户输入](get-customer-input.md)与 Amazon Lex 机器人一起使用时。
+ 联系结束。

## 错误情形
<a name="set-touchtone-buffer-behavior-errors"></a>

在以下情况中，联系人会被路由到**错误**分支：
+ 该区块由非语音联系人（聊天、任务或电子邮件）到达。
+ 在启用存储输入的情况下使用 “停止” 和 “清除” 时，输入加密参数无效。

## Flow 语言
<a name="set-touchtone-buffer-behavior-flow-language"></a>

在 Amazon C **onnect 流程语言中，使用`EnableDTMFBuffer`参数将 “设置按键缓冲区行为**” 块表示为一项`GetParticipantInput`操作。

**启用缓冲：**

```
{
    "Parameters": {
        "EnableDTMFBuffer": "true"
    },
    "Identifier": "unique-identifier",
    "Type": "GetParticipantInput",
    "Transitions": {
        "NextAction": "next-action-id",
        "Errors": [
            {
                "NextAction": "error-action-id",
                "ErrorType": "NoMatchingError"
            }
        ]
    }
}
```

**使用存储的加密输入停止并清除：**

```
{
    "Parameters": {
        "EnableDTMFBuffer": "false",
        "StoreInput": "true",
        "InputEncryption": {
            "EncryptionKeyId": "your-key-id",
            "Key": "your-encryption-key"
        }
    },
    "Identifier": "unique-identifier",
    "Type": "GetParticipantInput",
    "Transitions": {
        "NextAction": "next-action-id",
        "Errors": [
            {
                "NextAction": "error-action-id",
                "ErrorType": "NoMatchingError"
            }
        ]
    }
}
```

## 更多资源
<a name="set-touchtone-buffer-behavior-moreinfo"></a>

有关按键缓冲用例、最佳实践和流程设计指南的详细信息，请参阅[按键缓冲](touchtone-buffering.md)。