如何阻止 Amazon Connect 联系中心中的座席拨打特定电话号码的出站通话?
我不想要 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 函数添加到您的实例
按照将 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(保存)。
相关信息
相关内容
- AWS 官方已更新 1 年前
- AWS 官方已更新 3 年前
- AWS 官方已更新 3 年前
- AWS 官方已更新 1 年前