

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

# 使用承运人查询服务
<a name="carrier-lookup"></a>

AWS 最终用户消息短信包括运营商查询服务，您可以使用该服务来获取有关电话号码的信息，包括电话号码是否有效。运营商查询服务会返回以下电话号码信息：
+ E164 格式的电话号码（从原始输入中清理）。
+ 电话号码类型（例如无效、座机、手机、其他）。
+ 电话号码所在的国家或地区的名称。
+ 电话号码的国家或地区数字拨号代码。
+ 电话号码的双字符国家或地区代码，采用 ISO 3166-1 alpha-2 格式。
+ 对于手机号码，使用移动国家代码 (MCC)。
+ 对于手机号码，为移动网络代码 (MNC)。
+ 电话号码当前注册的运营商或服务提供商。在某些国家和地区，此值可能是最初注册电话号码的运营商或服务提供商。

使用承运人查询服务需要支付额外费用。有关更多信息，请参阅[AWS 最终用户消息 SMS 定价](https://aws.amazon.com/end-user-messaging/pricing/#Phone_number_validate)。

## 承运人查询用例
<a name="carrier-lookup-use-cases"></a>

您可以使用承运人查询服务来启用多个用例，包括以下用例：
+ **查找 Web 表单上提供的电话号码**-如果您使用基于 Web 的表单收集客户的联系信息，则可以在提交表单之前查询客户提供的电话号码。使用您网站的后端使用 AWS 最终用户消息 SMS API 来查找和验证号码。API 响应会说明该号码是否有效，例如，电话号码的格式是否正确。如果您确定客户提供的电话号码无效，则您的网络表单可以提示客户提供有效的电话号码。
+ **清理现有的联系人数据库**-如果您有客户电话号码数据库，则可以查询每个电话号码，并使用运营商查询结果更新数据库。例如，如果发现端点的电话号码无法接收短信，可以将该端点的 `ChannelType` 属性从 `SMS` 更改为 `VOICE`。
+ **在发送消息前选择正确的渠道** – 如果您打算发送短信，但确定目标号码是无效的，则您可以通过另外的渠道向收件人发送消息。例如，如果端点无法接收短信，则您可以改为发送语音消息。

## 支持的电话号码格式
<a name="carrier-lookup-input-formats"></a>

电话号码必须采用 E164 格式，以加号 (\+) 开头，后跟国家/地区拨号代码和电话号码（例如 \+12065551234）。运营商查询服务接受各种格式化字符，并在处理过程中自动将其删除。您可以在电话号码输入中包含以下格式化字符：
+ 括号：`+1 (555) 123-4567`
+ 方括号：`+1 [555] 123-4567`
+ 空格：`+1 555 123 4567`
+ 连字符：`+1-555-123-4567`
+ 时期：`+1.555.123.4567`
+ 逗号：`+1,555,123,4567`
+ 混合格式：`+1 (555)-123.4567`

处理过程中会自动删除所有格式化字符，并且该服务会在响应`E164PhoneNumber`字段中以标准 E164 格式（例如`+15551234567`）返回电话号码。

## 在中使用承运人查询服务 AWS CLI
<a name="carrier-lookup-request"></a>

以下示例说明如何在中使用承运人查询服务 AWS CLI。该服务接受带有各种格式字符（圆括号、方括号、空格、连字符、句点、逗号）的电话号码，并自动将其转换为 E164 格式进行处理。有关更多信息，请参阅[CarrierLookup](https://docs.aws.amazon.com/pinpoint/latest/apireference_smsvoicev2/API_CarrierLookup.html)《 AWS 最终用户消息 SMS API 参考》或《 AWS CLI 命令参考》中的[运营商查询](https://docs.aws.amazon.com/cli/latest/reference/pinpoint-sms-voice-v2/carrier-lookup.html)。

**使用承运人查询服务 (CLI)**
+ 在命令行输入以下命令。您可以使用各种电话号码格式——该服务接受特殊字符，例如括号、方括号、空格、连字符、句点和逗号：

  ```
  $ aws pinpoint-sms-voice-v2 carrier-lookup --phone-number {{"+1 (555) 555-5333"}}
  ```

  或者使用 E164 格式：

  ```
  $ aws pinpoint-sms-voice-v2 carrier-lookup --phone-number {{+15555555333}}
  ```

### 承运人查询响应
<a name="carrier-lookup-example-responses"></a>

运营商查询服务提供的信息因您提供的电话号码的可用数据而略有不同。本节包含承运人查询服务返回的响应示例。

**注意**  
运营商查询服务提供的数据基于世界各地的电信提供商和其他实体提供的信息。某些国家/地区的提供商更新这些信息的频率可能低于其他国家/地区的提供商。例如，如果您发出验证手机号码的请求，而您提供的号码已从一家移动运营商转移到另一家移动运营商，则运营商查询服务的响应可能包含原始运营商的名称，而不是当前运营商的名称。

**有效手机号码**  
以下响应是`CarrierLookup`返回有效手机号码的信息示例：

```
{
    "E164PhoneNumber": "+15555555333",
    "DialingCountryCode": "1",
    "IsoCountryCode": "US",
    "Country": "United States",
    "MCC": "310",
    "MNC": "260",
    "Carrier": "ExampleCorp Mobile",
    "PhoneNumberType": "MOBILE"
}
```

**有效固定电话号码**  
以下响应是有效固定电话号码的信息`CarrierLookup`返回示例：

```
{
    "E164PhoneNumber": "+15555555333",
    "DialingCountryCode": "1",
    "IsoCountryCode": "CA",
    "Country": "Canada",
    "Carrier": "ExampleCorp Landline",
    "PhoneNumberType": "LANDLINE"
}
```

**无效电话号码**  
如果您的请求包含无效的电话号码，运营商查询服务将返回类似于以下示例的信息：

```
{
    "E164PhoneNumber": "+15555555333444666",
    "PhoneNumberType": "INVALID"
}}
```

注意，此响应中的 `PhoneNumberType` 属性指示该电话号码为 `INVALID`，并且它不包含有关与此电话号码相关联的运营商或位置。应避免向 `PhoneNumberType` 为 `INVALID` 的电话号码发送短信或语音，因为这些号码不太可能属于实际收件人。

**其他电话号码**  
未归类为移动电话、固定电话或无效电话号码的`OTHER`返回`PhoneNumberType`值为。