如何在 RingOut 中使用 CNAM(来电显示名称)?
How do I use CNAM (Caller ID Name) with RingOut?
当我设置 Caller ID Name
并通过 RingCentral Java API 进行 RingOut 时,接收号码仅显示我的 Main Number
,而不显示我的 Caller ID Name
.我如何接到显示 CNAM 的电话?
CNAM 概述和限制
CNAM/来电显示名称支持取决于主叫方和接收方(被叫方)使用的号码类型。
- 来电者必须使用本地固定电话号码,否则将显示 phone 号码。
- 接收方必须使用非手机号码,否则将显示phone号码。
我通过拨打两个号码验证了这一点,一个手机号码只显示 phone 号码,一个固定电话号码显示 CNAM。
您可以在这篇知识库文章中阅读有关 CNAM 的更多信息:
这提到了以下摘录:
- The Outbound Caller ID Number must be a local landline number.
- Toll free numbers are not supported. When the Outbound Caller ID is set to a Toll Free number, only the number will display.
- Mobile numbers do not support CNAM. If the receiving party is a Mobile number, only the number will display.
- When the Outbound Caller ID is set to Blocked, the call recipient will see UNKNOWN or ANONYMOUS as the Caller ID/Caller Name.
检查接收线路类型
鉴于手机号码不支持 CNAM,查看您拨打的号码是不是手机号码很有用。您可以使用 numverify API (https://numverify.com/). You can also use this CLI app and Go SDK grokify/numverify
来验证您呼叫的号码类型。在验证 API 响应中查找 line_type
属性 可以是 mobile
或 landline
.
例如(phone号码改变):
{
"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 (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"
}
完全公开,我是 Telo 的首席运营官,OpenCNAM and EveryoneAPI 的制造商。
我想澄清一下这个问题的初始答案中包含的一些内容。我不得不回答这些问题,因为我在 Stack Overflow 上的代表权力限制了我 post 将其作为对问题的评论的能力。 :/
首先是对网络 CNAM 的快速概述。接下来,简要说明其工作原理和注意事项。在那之后,有一些关于 Telo 产品的细节,有些人可能会发现这些细节。
CNAM 网络概览
在 +1 拨号计划 (NANP) 中,有 20 多个数据库代表电话运营商存储 CNAM 值或来电者姓名。实际上,其中大约有 12 个实际上是由 CNAM 提供商查询的。终端运营商(接收呼叫的运营商)在收到带有 CID(电话号码)的呼叫后几毫秒内查询其 CNAM 提供商。当呼叫被设置为振铃时,CNAM 提供商将 return 与该电话号码关联的名称值,以便它可以与电话呼叫一起传送。
这是如何工作的
如果正在传送网络 CNAM——也就是说,由运营商的存储提供商存储的运营商提供的值——那么 CNAM 提供商将根据电话号码将查询路由到适当的存储提供商。如果已移植号码,则 NPAC will contain the information needed to resolve the number to the appropriate storage source to be queried. If there is no record in the NPAC, then the CNARG 将包含将电话号码与运营商匹配所需的信息,从而匹配正确的存储提供商。
注意事项
传统CNAM网络中有用名称值的匹配率约为50%。这是因为并非所有运营商都参与。例如,虽然为 AT&T Wireless、T-Mobile 和 Sprint 设置 CNAM 值很容易,但 Verizon Wireless 是 'opt-in' 并且不会自动支持。还有其他不参与 CNAM 网络的运营商,还有其他不更新 CNAM 值的 VoIP 提供商。传统的CNAM网络也不提供免费电话号码的价值,只覆盖+1拨号计划。
关于OpenCNAM
虽然 OpenCNAM 通过其标准服务级别提供网络 CNAM,但它还提供两个服务级别来解决上述网络 CNAM 的局限性。 Plus 服务级别针对覆盖范围、匹配率和准确性进行了优化,而 Value 服务级别提供出色的覆盖范围和匹配率,但针对成本进行了优化。您可以了解更多 about the service levels here.
当前运营商和线路类型的 EveryoneAPI
我们的其他产品 EveryoneAPI 提供有关线路类型(固定电话或移动电话)和当前运营商的最准确数据,其中包括移植号码。这些数据点的覆盖范围是全球的,匹配率接近 100%。虽然 numverify 看起来非常有用,但据我所知,它正在为 +1 拨号计划提供所谓的 LERG 数据。这将无法准确反映携带电话号码的运营商信息。
当我设置 Caller ID Name
并通过 RingCentral Java API 进行 RingOut 时,接收号码仅显示我的 Main Number
,而不显示我的 Caller ID Name
.我如何接到显示 CNAM 的电话?
CNAM 概述和限制
CNAM/来电显示名称支持取决于主叫方和接收方(被叫方)使用的号码类型。
- 来电者必须使用本地固定电话号码,否则将显示 phone 号码。
- 接收方必须使用非手机号码,否则将显示phone号码。
我通过拨打两个号码验证了这一点,一个手机号码只显示 phone 号码,一个固定电话号码显示 CNAM。
您可以在这篇知识库文章中阅读有关 CNAM 的更多信息:
这提到了以下摘录:
- The Outbound Caller ID Number must be a local landline number.
- Toll free numbers are not supported. When the Outbound Caller ID is set to a Toll Free number, only the number will display.
- Mobile numbers do not support CNAM. If the receiving party is a Mobile number, only the number will display.
- When the Outbound Caller ID is set to Blocked, the call recipient will see UNKNOWN or ANONYMOUS as the Caller ID/Caller Name.
检查接收线路类型
鉴于手机号码不支持 CNAM,查看您拨打的号码是不是手机号码很有用。您可以使用 numverify API (https://numverify.com/). You can also use this CLI app and Go SDK grokify/numverify
来验证您呼叫的号码类型。在验证 API 响应中查找 line_type
属性 可以是 mobile
或 landline
.
例如(phone号码改变):
{
"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 (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"
}
完全公开,我是 Telo 的首席运营官,OpenCNAM and EveryoneAPI 的制造商。
我想澄清一下这个问题的初始答案中包含的一些内容。我不得不回答这些问题,因为我在 Stack Overflow 上的代表权力限制了我 post 将其作为对问题的评论的能力。 :/
首先是对网络 CNAM 的快速概述。接下来,简要说明其工作原理和注意事项。在那之后,有一些关于 Telo 产品的细节,有些人可能会发现这些细节。
CNAM 网络概览
在 +1 拨号计划 (NANP) 中,有 20 多个数据库代表电话运营商存储 CNAM 值或来电者姓名。实际上,其中大约有 12 个实际上是由 CNAM 提供商查询的。终端运营商(接收呼叫的运营商)在收到带有 CID(电话号码)的呼叫后几毫秒内查询其 CNAM 提供商。当呼叫被设置为振铃时,CNAM 提供商将 return 与该电话号码关联的名称值,以便它可以与电话呼叫一起传送。
这是如何工作的
如果正在传送网络 CNAM——也就是说,由运营商的存储提供商存储的运营商提供的值——那么 CNAM 提供商将根据电话号码将查询路由到适当的存储提供商。如果已移植号码,则 NPAC will contain the information needed to resolve the number to the appropriate storage source to be queried. If there is no record in the NPAC, then the CNARG 将包含将电话号码与运营商匹配所需的信息,从而匹配正确的存储提供商。
注意事项
传统CNAM网络中有用名称值的匹配率约为50%。这是因为并非所有运营商都参与。例如,虽然为 AT&T Wireless、T-Mobile 和 Sprint 设置 CNAM 值很容易,但 Verizon Wireless 是 'opt-in' 并且不会自动支持。还有其他不参与 CNAM 网络的运营商,还有其他不更新 CNAM 值的 VoIP 提供商。传统的CNAM网络也不提供免费电话号码的价值,只覆盖+1拨号计划。
关于OpenCNAM
虽然 OpenCNAM 通过其标准服务级别提供网络 CNAM,但它还提供两个服务级别来解决上述网络 CNAM 的局限性。 Plus 服务级别针对覆盖范围、匹配率和准确性进行了优化,而 Value 服务级别提供出色的覆盖范围和匹配率,但针对成本进行了优化。您可以了解更多 about the service levels here.
当前运营商和线路类型的 EveryoneAPI
我们的其他产品 EveryoneAPI 提供有关线路类型(固定电话或移动电话)和当前运营商的最准确数据,其中包括移植号码。这些数据点的覆盖范围是全球的,匹配率接近 100%。虽然 numverify 看起来非常有用,但据我所知,它正在为 +1 拨号计划提供所谓的 LERG 数据。这将无法准确反映携带电话号码的运营商信息。