如何阻止 Amazon Connect 联系中心中的座席拨打特定电话号码的出站通话?
上次更新日期:2021 年 12 月 16 日
我不想要 Amazon Connect 联系中心的座席呼叫某些国家/地区或高收费电话号码。如何阻止进行这些呼叫?
简短描述
在出站私密流接洽流程中,调用 AWS Lambda 函数,检查被拨打的电话号码是否被允许。如果该电话号码不被允许,则使用 Amazon Connect StopContact API 停止联系。
注意:本文中的解决方案有以下限制:
解决方法
创建 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 函数添加到您的实例
按照将 Lambda 函数添加到您的 Amazon Connect 实例中的说明进行操作。
创建出站私密消息接洽流程
重要提示:要创建和编辑接洽流程,您必须以安全配置文件中具有充分权限的用户身份登录您的 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(保存)。