如何按国家/地区动态设置 Amazon Connect 出站呼叫方 ID?

上次更新日期:2022 年 1 月 10 日

我希望按被叫方所在的国家/地区动态变更 Amazon Connect 出站呼叫方 ID。如何进行设置?

简短描述

要使您的 Amazon Connect 出站呼叫方 ID 按被叫方所在的国家/地区动态更改,请执行以下操作:

  • 创建 JSON 格式的呼叫方 ID 列表。
  • 将呼叫方 ID 列表上载到 Amazon Simple Storage Service (Amazon S3) 存储桶。
  • 创建一个 AWS Lambda 函数,标识出站联系人所在国家/地区代码,并从呼叫方 ID 列表中选择相应的电话号码。
  • 将此 Lambda 函数添加到您的 Amazon Connect 实例。
  • 创建出站私密消息流以调用 Lambda 函数。
  • 在座席路由配置文件中配置原定设置出站队列,以使用出站私密消息流。

注意:您可以为您的使用案例自定义此解决方案。例如,您可以在 Amazon DynamoDB 表中存储呼叫方 ID 列表,而不是在 S3 存储桶中存储。然后,相应地重新配置 Lambda 函数及其执行角色。

解决方案

创建 JSON 格式的呼叫方 ID 列表

创建一个 JSON 文件,其中包含要用于出站呼叫方 ID 的基于国家/地区的电话号码列表。

在创建呼叫方 ID 列表时,请记住以下几点:

  • 您的出站呼叫方 ID 电话号码不必来自您发起呼叫的国家/地区。
  • 在本示例设置中,列表上的国家/地区代码必须遵循 ISO 3166-1 alpha-2 标准,电话号码必须遵循 E.164 标准。有关更多信息,请参阅 ISO 网站上的 ISO 3166 — 国家/地区代码以及 ITU 网站上的 E.164:国际公共电信编号计划
  • 如果在呼叫路由期间无法调用 Lambda 函数,则 Amazon Connect 会使用队列的原定设置出站电话号码作为呼叫方 ID。原定设置出站电话号码是在 Amazon Connect 实例的队列设置中配置的号码。有关更多信息,请参阅设置出站呼叫方 ID

JSON 呼叫方 ID 列表示例

在第一个示例呼叫方 ID 列表中,Amazon Connect 使用以下出站呼叫方 ID:

  • 使用美国(“US”)电话号码给客户打电话时为 +12345678901
  • 使用英国(“GB”)电话号码给客户打电话时为 +441234567890
  • 使用呼叫方 ID 列表中未列出的国家/地区的电话号码(“原定设置”)给客户打电话时为 +19876543210
{
    "US": "+12345678901",
    "GB": "+441234567890",
    "Default": "+19876543210"
}

在第二个示例呼叫方 ID 列表中,Amazon Connect 使用以下出站呼叫方 ID:

  • 使用英国 (“GB”)、法国 (“FR”)、德国 (“DE”) 或爱尔兰 (“IE”) 电话号码给客户打电话时为 +441234567890
  • 使用呼叫方 ID 列表中未列出的国家/地区的电话号码(“原定设置”)给客户打电话时为 +19876543210
{
    "GB": "+441234567890",
    "FR": "+441234567890",
    "DE": "+441234567890",
    "IE": "+441234567890",
    "Default": "+19876543210"
}

将呼叫方 ID 列表上载到 Amazon S3 存储桶

按照 Amazon S3 用户指南中的上载对象中的说明进行操作。

创建一个 AWS Lambda 函数,标识出站联系人所在国家/地区代码,并从呼叫方 ID 列表中选择相应的电话号码。

创建 Lambda 执行角色

按照在 IAM 控制台中创建执行角色中的说明进行操作。

配置执行角色时,请记住以下几点:

注意:您可以创建自己的 IAM 策略,来限制执行角色对特定 S3 存储桶的访问。有关示例策略,请参阅 Amazon S3:允许对 S3 存储桶中的对象进行读写访问

创建 Lambda 函数

使用在上一步中创建的执行角色创建 Lambda 函数

在函数代码中,包含检查来自 Amazon Connect 的传入 JSON 请求的逻辑。有关更多信息,请参阅如何参考联系人属性。此外,请参考 Amazon Connect 管理员指南中针对 Lambda 函数的示例 JSON 请求

注意:例如,您可以使用 aws-support-tools GitHub 存储库上 DynamicOutboundCallerID 中的 Python 函数。该函数代码可与 Python 3.6(或更高版本)运行时一起使用。如果您使用示例函数代码,则必须在函数中配置以下环境变量

  • BUCKET_NAME:存储 JSON 对象的 S3 存储桶的名称。
  • COUNTRY_ROUTING_LIST_KEY:存储在 S3 存储桶中的 JSON 文件的密钥。

例如,如果 JSON 对象存储在 s3://hello/world/list.json 中,那么环境变量将如下所示:

  • BUCKET_NAME:“您好”
  • COUNTRY_ROUTING_LIST_KEY:“world/list.json”

为您正在使用的 Lambda 运行时创建 Lambda 部署程序包

按照 Lambda 部署程序包中的说明进行操作。

注意:DynamicOutboundCallerID 中的示例 Python 函数使用 phonenumbers Python 库。有关更多信息,请参阅 Python Package Index (PyPI) 网站上的 phonenumbers

要在函数中添加第三方库,必须创建一个部署程序包。您可以在包含 lambda_function.py 的文件夹中运行以下命令来创建部署程序包:

$ pip install phonenumbers --target ./
$ zip -r9 function.zip ./

这些命令仅适用于 Linux、Unix 和 macOS 操作系统。

有关部署 Python Lambda 函数的更多信息,请参阅使用 .zip 文件归档部署 Python Lambda 函数

将此 Lambda 函数添加到您的 Amazon Connect 实例

创建出站私密消息流以调用 Lambda 函数

创建出站私密消息流

如果您尚未执行此操作,请创建一个出站私密消息接洽流程

重要提示:要创建和编辑接洽流程,您必须以用户身份登录您的 Amazon Connect 实例,而且该用户身份要在其安全配置文件中有足够权限

1.    在 https://instance_name.my.connect.aws/ 上登录您的 Amazon Connect 实例。
注意: instance_name 替换成您的实例别名

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

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

4.    在接洽流程设计器中,对于输入名称,为接洽流程输入名称。

5.    选择 Save(保存)。

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

添加调用 AWS Lambda 函数数据块

1.    在接洽流程设计器中,选择 集成

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

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

4.    在函数 ARN 下,选择选择函数,然后选择已添加到实例的 Lambda 函数。

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

6.    选择保存

注意:当 Amazon Connect 调用 Lambda 函数时,该函数会返回一个 JSON 响应,如下所示:

{
    "customer_number": "<Customer's phone number that you're calling>",
    "customer_country": "<Country of the customer's phone number>",
    "outbound_number": "<Outbound phone number that Lambda loads from Amazon S3 and sends to Amazon Connect>",
    "outbound_country": "<Country of the outbound phone number that Lambda sends to Amazon Connect>",
    "default_queue_outbound_number": "<Default outbound phone number set up for the queue>",
    "default_queue_outbound_country": "<Country of the default outbound phone number>"
}

有关更多信息,请参阅从接洽流程调用 Lambda 函数联系数据块:调用 AWS Lambda 函数

添加呼叫电话号码数据块

配置此数据块,以使用 Lambda 的 outbound_number 作为呼叫方 ID 电话号码。

1.    在接洽流程设计器中,选择 交互

2.    将呼叫电话号码数据块拖放到画布上。

3.    选择数据块标题(呼叫电话号码)。这时将打开该数据块的设置菜单。

4.    执行以下操作:
选择要显示的来电显示号码(可选)复选框。
选择使用属性
类型部分,请选择外部
属性部分,请输入 outbound_number

5.    选择保存

有关详细信息,请参阅联系数据块:呼叫电话号码

完成接洽流程

1.    根据需要,为使用案例添加并连接更多联系数据块。有关示例使用案例,请参阅示例接洽流程

2.    将接洽流程中的所有连接器连接到数据块。请确保将调用 AWS Lambda 函数数据块的 Success 节点连接到呼叫电话号码数据块。此外,请确保将呼叫电话号码数据块的 Success 节点连接到结束流/恢复数据块。您必须至少使用这些数据块。例如:入口点 > 调用 AWS Lambda 函数 > 呼叫电话号码 > 结束流/恢复

3.    要保存流程草案,选择 保存

4.    要激活流程,选择 发布

在座席路由配置文件中配置原定设置出站队列,以使用出站私密消息流

在座席的路由配置文件中,标识原定设置出站队列。

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

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

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

3.    在编辑队列页面上,对于出站私密消息流(可选),搜索并选择您创建的出站私密消息流的名称。

4.    选择保存

有关更多信息,请参阅创建路由配置文件RoutingProfile 对象