如何阻止 Amazon Connect 联系中心中的座席拨打特定电话号码的出站通话?

上次更新日期:2021 年 12 月 16 日

我不想要 Amazon Connect 联系中心的座席呼叫某些国家/地区或高收费电话号码。如何阻止进行这些呼叫?

简短描述

出站私密流接洽流程中,调用 AWS Lambda 函数,检查被拨打的电话号码是否被允许。如果该电话号码不被允许,则使用 Amazon Connect StopContact API 停止联系。

注意:本文中的解决方案有以下限制:

  • 它无法阻止排队的回调。如果座席发起回调,则通过出站私密流传递的联系人 ID 将不是实际的联系人 ID。
  • 如果 Lambda 函数调用失败,它将无法阻止呼叫。如果该函数失败,联系人将跟随接洽流程的错误分支,且呼叫不会停止。
  • 以上为基本示例。对于生产环境,为您的使用案例和座席的拨号权限定制设置。

解决方法

创建 Lambda 函数

1.    使用您选择的运行时创建 Lambda 函数。包含函数逻辑,检查来自 Amazon Connect 的传入 JSON 请求中有无以下内容:

  • 代理用户名(在“属性”下)
  • 当前联系人 ID(“ContactId”
  • 拨打的电话号码(在“CustomerEndpoint”下)
  • 初始联系人 ID(“InitialContactId”
  • 联系中心的 Amazon Resource Name (ARN)“InstanceARN”

有关更多信息,请参阅可用的联系属性及其 JSONPath 引用的列表。有关对 Lambda 函数的示例 JSON 请求示例,请参阅从接洽流程调用 Lambda 函数

提示:根据您的使用案例将指定逻辑添加到您的函数代码中。例如,您可以根据座席拨号权限的内部数据库检查联系人属性。有关更多信息,请参阅 Lambda 函数和属性

2.    确保您的函数还包含至 Amazon Connect StopContact API 的调用。在 API 调用中,指定您想要停止的联系人的“ContactId”和“InstanceId”

重要提示:您必须附上 AWS Identity and Access Management (IAM) 策略到函数执行角色,该角色具有足够的权限来调用的 StopContact API。以下示例 JSON 策略文档包含调用 API 的基本权限:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "StopContactPermission",
            "Effect": "Allow",
            "Action": "connect:StopContact",
            "Resource": "*"
        }
    ]
}

Python (Boto3) 函数代码示例

注意:此示例代码包含确定要阻止的号码的条件。如果该号码是请求的回调号码,则函数将处理 API 错误和传递。

# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: MIT-0

import boto3
from botocore.exceptions import ClientError
connect = boto3.client('connect')

def lambda_handler(event, context):
    response = {
            'phoneNumberBlockerMessage': 'Passing through AmazonConnectPhoneNumberBlocker. No contact is blocked.'
    }

    try:
            if event['Details']['ContactData']['CustomerEndpoint']['Address'] == '<telephone-number-condition>':
                # Stop contact here

                connect.stop_contact(
                    ContactId = event['Details']['ContactData']['InitialContactId'],
                    InstanceId = event['Details']['ContactData']['InstanceARN'].split('/')[1]
                )
                response = {
                    'phoneNumberBlockerMessage': 'Call is blocked.'
                }
    except ClientError as e:
            if e.response['Error']['Code'] == 'ContactNotFoundException':
                response = {
                    'phoneNumberBlockerMessage': 'This is either a callback contact or contact ID does not exist, contact pass through.'
                }
            else:
                # Handle other error
                pass
    return response

将 Lambda 函数添加到您的实例

创建出站私密消息接洽流程

重要提示:要创建和编辑接洽流程,您必须以安全配置文件中具有充分权限的用户身份登录您的 Amazon Connect 实例。

1.    使用您的访问 URL(https://alias.awsapps.com/connect/login -或- https://alias.awsapps.com/connect/login)登录您的 Amazon Connect 实例。
重要提示:alias 替换为实例的别名

2.    在左侧导航窗格中,将鼠标悬停在 Routing (路由) 上,然后选择 Contact flows (接洽流程)

3.    在 Contact flows (接洽流程) 页面上,选择 Create contact flow (创建接洽流程) 旁的箭头图标,然后选择 Create outbound whisper flow (创建出站私密消息流)

4.    在接洽流程设计器中,对于 Enter a name(输入名称),为接洽流程输入名称。例如:出站私密(停止)

5.    选择 Save(保存)。

有关更多信息,请参阅创建新的接洽流程

添加“设置联系属性”数据块

配置此数据块以获取座席的用户名,您可以将该用户名发送至 Lambda 进行解析

1.    在接洽流程设计器中,展开 Set(设置)。

2.    将设置联系人属性数据块拖放到画布中。

3.    选择数据块标题(设置联系属性)。此时将打开该数据块的设置菜单。

4.    在 Attribute to save(待保存属性)下,选择 Use attribute(使用属性)。然后执行以下操作:
对于目标键,输入键名称。例如,agent_username
对于类型,选择代理
对于属性,选择用户名

5.    选择 Save(保存)。

添加“调用 AWS Lambda 函数”数据块

1.    在接洽流程设计器中,展开集成

2.    将调用 AWS Lambda 函数数据块拖放到画布上。

3.    选择块标题(Invoke AWS Lambda function(调用 AWS Lambda 函数))。这时将打开该数据块的设置菜单。

4.    在 Function ARN(函数 ARN)下,选择 Select a function(选择函数)。然后,选择添加到您的实例的 Lambda 函数。

5.    (可选)在超时(最多 8 秒)部分,输入超时之前 Amazon Connect 等待 Lambda 响应的秒数。

6.    选择 Save(保存)。

有关更多信息,请参阅从接洽流程调用 Lambda 函数

完成出站私密消息流

1.    根据需要为您的使用案例添加更多联系数据块,并将更多数据块连接到您的出站私密消息流。
注:有关示例使用案例,请参阅示例接洽流程

2.    将接洽流程中的所有连接器连接到数据块。请确保将设置联系人属性块的成功节点连接到调用 AWS Lambda 函数数据块。您必须至少使用以下数据块:
接入点 > 设置联系人属性 > 调用 AWS Lambda 函数 > 结束流/恢复

3.    选择 Save(保存)以保存接洽流程草案。

4.    然后选择 Publish(发布)以激活此接洽流程。

配置队列的出站私密流

在为座席分配的路由配置文件中,标识原定设置出站队列。有关详细信息,请参阅创建路由配置文件

要编辑队列,请执行以下操作:

1.    在您的 Amazon Connect 实例的左侧导航窗格中,将鼠标悬停在 Routing (路由) 上,然后选择 Queues (队列)

2.    在队列页面上,选择标识为原定设置出站队列的队列的名称。

3.    在 Edit queue (编辑队列) 页面上,从 Outbound whisper flow (optional) (出站私密消息流(可选)) 菜单中选择已创建的出站私密消息流。

4.    选择 Save(保存)。