当我Caller ID Name
通过 RingCentral Java API 设置并制作 RingOut 时,接收号码只显示 my Main Number
,而不显示 my Caller ID Name
。如何接到显示 CNAM 的电话?
2 回答
完全披露,我是 Telo 的首席运营官,OpenCNAM和EveryoneAPI的制造商。
我想澄清这个问题的最初答案中包含的一些内容。我不得不回答这些问题,因为我在 Stack Overflow 上的代表权限制了我将其发布为对该问题的评论的能力。:/
首先是网络 CNAM 的快速概述。接下来,简要说明它的工作原理和注意事项。在那之后,有一些关于 Telo 产品的细节,一些人可能会发现这些细节很有价值。
网络 CNAM 概述
在 +1 拨号计划 ( NANP ) 中,有 20 多个数据库代表电话运营商存储 CNAM 值或呼叫者姓名。在实践中,其中大约 12 个实际上是由 CNAM 提供商查询的。终止运营商(接收呼叫的运营商)在收到带有 CID(电话号码)的呼叫后的几毫秒内查询其 CNAM 提供商。在将呼叫设置为振铃时,CNAM 提供程序将返回与该电话号码关联的名称值,以便它可以与电话呼叫一起传送。
这是如何工作的
如果网络 CNAM 正在交付——也就是说,运营商提供的值由运营商的存储提供商存储——那么 CNAM 提供商将根据电话号码将查询路由到适当的存储提供商。如果号码已被移植,则NPAC将包含将号码解析到要查询的适当存储源所需的信息。如果 NPAC 中没有记录,则CNARG将包含将电话号码与运营商匹配所需的信息,从而匹配正确的存储提供商。
注意事项
传统 CNAM 网络中有用名称值的匹配率约为 50%。这是因为并非所有运营商都参与。例如,虽然很容易为 AT&T Wireless、T-Mobile 和 Sprint 设置 CNAM 值,但 Verizon Wireless 是“选择加入”并且不会自动支持。还有其他运营商不参与 CNAM 网络,还有其他 VoIP 提供商不更新 CNAM 值。传统 CNAM 网络也不提供免费电话号码的值,并且仅在 +1 拨号计划内提供覆盖。
关于 OpenCNAM
虽然 OpenCNAM 通过其标准服务级别提供网络 CNAM,但它还提供了两个服务级别来解决上述网络 CNAM 的限制。Plus 服务级别针对覆盖范围、匹配率和准确性进行了优化,而 Value 服务级别提供了出色的覆盖范围和匹配率,但针对成本进行了优化。您可以在此处了解有关服务水平的更多信息。
当前运营商和线型的所有人API
我们的另一个产品,EveryoneAPI,提供最准确的关于线路类型(固定电话或移动电话)和当前运营商的数据,其中包括移植的号码。这些数据点的覆盖范围是全球性的,匹配率接近 100%。虽然 numverify 看起来非常有用,但据我所知,它为 +1 拨号计划提供了所谓的LERG数据。这将无法准确反映转接电话号码的运营商信息。
CNAM 概述和限制
CNAM / Caller ID Name 支持取决于呼叫方和接收方(被叫方)使用的号码类型。
- 来电者必须使用本地固定电话号码,否则将显示电话号码。
- 收件人必须使用非手机号码,否则将显示电话号码。
我通过拨打两个号码来验证这一点,一个只显示电话号码的手机号码和一个显示 CNAM 的固定电话号码。
您可以在此知识库文章中阅读有关 CNAM 的更多信息:
这提到了以下摘录:
- Outbound Caller ID Number 必须是本地固定电话号码。
- 不支持免费电话号码。当呼出呼叫者 ID 设置为免费电话号码时,只会显示该号码。
- 手机号码不支持 CNAM。如果接收方是手机号码,则只显示号码。
- 当呼出呼叫者 ID 设置为阻止时,呼叫接收者将看到 UNKNOWN 或 ANONYMOUS 作为呼叫者 ID/呼叫者姓名。
检查接收线路类型
鉴于手机号码不支持 CNAM,查看您拨打的号码是否为非手机号码很有用。您可以使用 numverify API ( https://numverify.com/ )验证您呼叫的号码类型。您还可以使用此 CLI 应用程序和 Go SDK grokify/numverify
。line_type
在 validate API 响应中查找可以是mobile
或的属性landline
。
例如(电话号码已更改):
{
"valid": true,
"number": "16505550100",
"local_format": "6505550100",
"international_format": "+16505550100",
"country_prefix": "+1",
"country_code": "US",
"country_name": "United States of America",
"location": "Redwood Cy",
"carrier": "AT\u0026T Mobility LLC",
"line_type": "mobile"
}
检查 CNAM 数据库
接收系统有自己的 CNAM 数据库,但您可以通过调用 CNAM 数据库 API(例如 OpenCNAM 提供的 API(https://www.opencnam.com/))来检查您的姓名是否已传播。这是 OpenCNAM 的示例调用。添加format
查询参数非常重要,因为 API 将在没有它的情况下重试空正文。
curl -XGET 'https://api.opencnam.com/v3/phone/+16505550100?format=json&account_sid=<myAccountSID>&auth_token=<myAuthToken>
您将收到如下回复:
{
"name": "My Caller ID Name",
"number": "+16505550100",
"price": 0.0039,
"uri": "/v3/phone/+16505550100"
}