

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

# 在 Amazon Connect 中设置美国紧急呼叫
<a name="setup-us-emergency-calling"></a>

默认情况下，对以下北美地区的所有用户启用 911：美国东部（弗吉尼亚北部）、美国西部（俄勒冈）和 AWS GovCloud （美国西部）。如果用户拨打 911，则呼叫将转接到紧急服务部门。

Amazon Connect 仅支持从座席 CCP 直接拨打 911。它不支持呼叫转接到 911，也不支持在呼叫时拨打 911。

**什么是增强型 911 (E911)？** 对于实际位于美国的座席来说，E911 允许在拨打 911 呼叫时向 911 调度中心发送位置信息。

设置 E911 需要两个步骤：
+ [获取座席经过验证的实际地址并将其存储在您的 Amazon Connect 实例中](get-and-store-agent-address-e911.md) 
+ [当座席拨打 911 时，从 Amazon Connect 获取座席的地址](retrieve-agent-address-e911.md) 

## 从您的测试环境拨打 911 电话
<a name="connect-test-e911"></a>

**重要**  
在非紧急情况下拨打 911 每次会被处以 100 美元的罚款。为了帮助您避免处罚，我们设置了 933，因此您可以测试此功能。从 Amazon Connect 联系人控制面板 (CCP) 拨打 933 电话会播放一条音频消息，用于确认以下内容：  
发起呼叫的号码。
随呼叫一起发送的实际地址。

有关拨打 911 的更多信息，请参阅有关国家 911 计划的[常见问题](https://www.911.gov/calling-911/frequently-asked-questions/)。

# 获取座席经过验证的实际地址并将其存储在您的 Amazon Connect 实例中
<a name="get-and-store-agent-address-e911"></a>

为您的 Amazon Connect 实例设置 E911 的第一步是获取并存储座席经过验证的实际地址。下图显示了存储地址的流程。

![\[Amazon Connect E911 地址存储流程。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/e911-workflow.png)


1. 由于座席可能在不同的位置（例如办公楼、住宅或咖啡店）办公，因此在拨打紧急出站呼叫时必须传送最新验证的地址。

   1. 首次在 Amazon Connect 上设置座席时，请根据座席的通常位置存储经过验证的地址。

   1. 提示座席在轮班开始时更新地址，以帮助确保紧急出站呼叫有最新地址。

   1. 根据有效街道地址数据库检查地址（主街道地址指南）。

1. 使用 Amazon Chime API [ValidateE911Address](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_voice-chime_ValidateE911Address.html)。此 API 可验证并返回经过验证的实际地址。

1. 使用[CreateProfile](https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_CreateProfile.html)或[UpdateProfile](https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_UpdateProfile.html) APIs 将经过验证的地址存储在 Amazon Connect 客户资料中。
**注意**  
建议在首次需要添加经过验证的地址时使用 `CreateProfile`。然后，使用 `UpdateProfile`。

# 当座席拨打 911 时，从 Amazon Connect 获取座席的地址
<a name="retrieve-agent-address-e911"></a>

要从 Amazon Connect 中检索座席经过验证的地址，请创建一个调用 Lambda 函数的出站私密消息流。对 Lambda 函数进行编码，以从座席的客户资料中检索地址，如下图所示：

![\[Amazon Connect E911 地址检索流程。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/e911-workflow-2.png)


1. 创建一个 AWS Lambda 函数，使用 [SearchProfiles](https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_SearchProfiles.html)API 从客户档案中检索给定代理的实际地址。

1. [创建出站私密消息流，在紧急拨出呼叫时中继此实际地址](#connect-detect-911-dial)。

1. [添加在拨打 E911 电话时发送通知的任务](#connect-e911-notifications)。

## 创建中继实际地址的出站私密消息流
<a name="connect-detect-911-dial"></a>

对于 Amazon Connect 内的出站语音通话，[出站私密消息流](create-contact-flow.md#contact-flow-types)通常会指定要向客户播放的私密消息。但是，在这种情况下，您需要配置[出站私密消息流](create-contact-flow.md#contact-flow-types)以执行以下操作：

1. 检查来自座席的出站呼叫字符串。

1. 如果字符串等于 **911**（在测试环境中**为 933**），则使用 Lambda 函数调用 API，从客户资料中检索代理存储 location/physical 的地址。[SearchProfiles](https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_SearchProfiles.html)

1. 将实际地址附加到联系属性，然后继续拨打 911（或 933）出站电话。

下图显示了一个[出站私密消息流](create-contact-flow.md#contact-flow-types)示例。它配置为检查来自座席的出站呼叫字符串，并使用 Lambda 函数检索该座席的存储实际地址。它按顺序包括以下数据块：[AWS Lambda 函数](invoke-lambda-function-block.md)、[设置联系属性](set-contact-attributes.md)和[呼叫电话号码](call-phone-number.md)。

![\[用于检测 911 或 933 呼叫的出站私密消息流。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/e911-example-outbound-whisper.png)

+ 步骤 1：调用 Lambda 函数来检索座席的位置（输入参数 = 座席用户名）。下图显示了如何配置[AWS Lambda 函数](invoke-lambda-function-block.md)数据块，以便将座席**用户名**传递给 Lambda 函数。  
![\[“调用 AWS Lambda 函数”数据块的“属性”页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/e911-invoke-lambda-block.png)
+ 步骤 2：将收到的位置附加到联系属性（有关所需格式，请参阅[为 E911 的实际地址设置格式，以便传递给 Amazon Connect](connect-format-physical-address-e911.md)）。
+ 步骤 3：将呼叫源更新为座席的电话号码，然后继续拨打出站电话。
**注意**  
发起号码是与 911 出站呼叫一起传递的呼叫方 ID。如果发起电话号码支持入站呼叫，则在初始电话呼叫中断的情况下，紧急响应人员将能够回拨座席的号码。  
911 呼叫是美国特有的。因此，发起电话号码必须为有效的美国电话号码。  
例如，当座席进行出站呼叫时，如果将无效的美国电话号码传递到运营商网络，则运营商可以拒绝该呼叫。为避免发生这种情况，如果座席使用来自 Amazon Connect 的无效号码，Amazon Connect 将默认使用在座席的路由配置文件中分配给相应队列的呼叫方 ID。
该功能不会对此号码设置任何其他规则。例如，发起号码可以是安全前台的电话号码。

## 添加在拨打 E911 电话时发送通知的任务
<a name="connect-e911-notifications"></a>

当座席呼叫 911 时，务必实时通知组织中的相应人员（例如公司安保人员或人力资源管理员），联络中心有人拨打了 E911 电话。为此，请在[出站私密消息流](create-contact-flow.md#contact-flow-types)中创建一个 Amazon Connect 任务。然后向该任务添加自定义通知逻辑。

下图显示了[出站私密消息流](create-contact-flow.md#contact-flow-types)中的[创建任务](create-task-block.md)数据块的示例。它位于**设置联系属性**数据块之后和**呼叫电话号码**数据块之前。

![\[C 在出站私密消息流中创建任务数据块。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/e911-create-task-flow.png)


下图显示了[创建任务](create-task-block.md)数据库的**属性**页面。它被配置为通知公司安保人员，联络中心的座席已拨打 E911 电话。

![\[“创建任务”数据块的“属性”页面。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/e911-create-task-config.png)


# 为 E911 的实际地址设置格式，以便传递给 Amazon Connect
<a name="connect-format-physical-address-e911"></a>

本主题介绍如何为实际地址设置格式，以便可将其传递给 Amazon Connect。

E911 出站呼叫需要将实际地址作为 JSON 字符串传递给 Amazon Connect，其中包含表示地址中各个字段的键和值。例如，请考虑以下美国地址：
+ 2121 7th Ave, Seattle, WA, 98121, USA

该地址必须作为一个 JSON 字符串附加到键 `CivicAddress` 上，如下面的示例所示。每个地址字段均附加到特定的编码键上。

 `CivicAddress: {"country":"USA","RD":"7th","A3":"Seattle","PC":"98121","HNO":"2121","STS":"Ave","A1":"WA"}`

下图显示了输入地址示例如何映射到 [PSAP](https://en.wikipedia.org/wiki/Public_safety_answering_point) 地址键：

![\[实际地址到 PSAP 地址键的映射。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/e911-example-mapping-scheme.png)


下表显示了键的完整列表。


| 属性名称 | 说明 | 示例 | 必需 | 字符限制 | 建议的字符限制 | 
| --- | --- | --- | --- | --- | --- | 
|  country  | 国家/地区由两个字母的 ISO 3166 代码标识。  | 美国  | 必需  | 2  |   | 
|  A1  | 国家行政区划（州、地区、省、县）  | NY  | 必需  | 2  |   | 
|  A3  | 市、镇、shi（日本）  | New York  | 必需  | 32  |   | 
|  PRD  | 主要街道方向  | 北、西  | 仅在适用于地址时才为必填项  | 2  |   | 
|  POD  | 尾随街道后缀  | 西南  | 仅在适用于地址时才为必填项  | 2  |   | 
|  STS  | 街道后缀  | 大道、广场  | 仅在适用于地址时才为必填项  | 5  |   | 
|  HNO  | 门牌号码（仅限数字部分）  | 2121  | 必需  | 10  |   | 
|  HNS  | 门牌号码后缀  | A、1/2  | 仅在适用于地址时才为必填项  | 4  |   | 
|  LOC  | 其他位置信息  | 543 号房  | 可选  | 60  | 20 或更少  | 
|  NAM  | 名称（住所、公司或办公室住户）  | 公司示例  | 可选  | 32  |   | 
|  PC  | 邮政编码  | 10027  | 必需  | 5  |   | 
|  RD  | 主要道路或街道  | 百老汇  | 必需  | 40  |   | 

**注意**  
您有责任根据标准存储库 [例如主街道地址指南 (MSAG)] 来验证地址。

## 编程注意事项
<a name="connect-e911-programming-notes"></a>

目前，无法将 JSON 结构作为 `Attribute` 传递给 Amazon Connect。因此，Lambda 函数检索到的位置在传递给 Amazon Connect 之前，需要转换为 JSON 字符串。例如，使用 Python 编程语言，如果检索到的位置存储在 JSON 结构 `json_agent_location` 中，则可以将其传递给 Amazon Connect（从 Lambda 函数），如下所示：

`return { ,'CivicAddress': json.dumps(json_agent_location) ,'agent_did_number': '+15555551212' }`

对于如下示例所示的地址：
+ 2121 7th Ave, Seattle, WA, 98121, USA

键值对：

`CivicAddress: {"country": "USA", "RD": "7th", "A3": "Seattle", "PC": "98121", "HNO": "2121", "STS": "Ave", "A1": "WA"}`

实际传递给 Amazon Connect 的相应 JSON 字符串：

`CivicAddress: {\"country\": \"USA\", \"RD\": \"7th\", \"A3"\: \"Seattle\", \"PC\": \"98121\", \"HNO\": \"2121\", \"STS\": \"Ave\", \"A1\": \"WA\"}`

**注意**  
使用 `json.dumps` 会将一个转义字符 **\$1** 添加到每个引号 (**"**) 中。