当我设置Caller ID Name并通过RingCentral Java API创建RingOut时,接收号码只显示我的Main Number ,而不是我的Caller ID Name 。 我如何接到电话以显示CNAM?
When I set the Caller ID Name and make a RingOut through the RingCentral Java API, the receiving number displays only my Main Number, not my Caller ID Name. How do I get the call to show the CNAM?
最满意答案
充分披露,我是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无线,T-Mobile和Sprint设置CNAM值,但Verizon Wireless是'选择加入',并不会自动支持。 还有其他运营商不参与CNAM网络,而且其他VoIP提供商不更新CNAM值。 传统的CNAM网络也不提供免费电话号码的价值,只覆盖+1拨号计划。
关于OpenCNAM
尽管OpenCNAM通过其标准服务级别提供网络CNAM,但它还提供了两个服务级别来解决上述网络CNAM的局限性。 Plus服务级别针对覆盖范围,匹配率和准确性进行了优化,而价值服务级别提供了出色的覆盖率和匹配率,但针对成本进行了优化。 你可以在这里找到更多关于服务水平的信息 。
EveryoneAPI适用于当前运营商和线路类型
我们的其他产品EveryoneAPI提供围绕线型(固定电话或移动电话)和当前运营商的最准确数据,其中包括移植号码。 这些数据点的覆盖范围是全球性的,匹配率接近100%。 虽然numverify看起来非常有用,但它提供了我所知道的+1拨号计划的LERG数据。 这不能准确反映携带电话号码的运营商信息。
CNAM Overview and Limitations
CNAM / Caller ID Name support is dependent on the the type of numbers used by the calling and receiving (callee) parties.
Caller must be using a local landline number, otherwise the phone number will be displayed. Receiver must be using a non-mobile number, otherwise the phone number will be displayed.I validated this by calling two numbers, a mobile number that showed only the phone number and a landline number that showed the CNAM.
You can read more on CNAM in this Knowlegebase Article:
Outbound Caller ID Name Overview and Frequently Asked QuestionsThis mentions the following excerpts:
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.
Checking Receiving Line Type
Given that mobile numbers don't support CNAM, it's useful to see if the number you are calling is a mobile number of not. You can verify the type of number you are calling by using the numverify API (https://numverify.com/). You can also use this CLI app and Go SDK grokify/numverify. Look for the line_type property in the validate API response which can be mobile or landline.
For example (phone number changed):
{ "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" }Checking the CNAM Database
Receiving systems have their own CNAM databases, but you can check to see if your name has propagated by calling a CNAM database API, such as the one provided by OpenCNAM (https://www.opencnam.com/). Here is an example call for OpenCNAM. Adding the format query parameter is very important as the API will retry an empty body without it.
curl -XGET 'https://api.opencnam.com/v3/phone/+16505550100?format=json&account_sid=<myAccountSID>&auth_token=<myAuthToken>
You will receive a response like:
{ "name": "My Caller ID Name", "number": "+16505550100", "price": 0.0039, "uri": "/v3/phone/+16505550100" }更多推荐
发布评论