Reputation: 16354
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?
Upvotes: 0
Views: 677
Reputation: 16354
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.
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:
This 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"
}
Upvotes: 0
Reputation:
Full disclosure, I am the COO of Telo, the makers of OpenCNAM and EveryoneAPI.
I wanted to clarify a few things contained in the initial answer to this question. I have had to answer the questions as my rep power on Stack Overflow limits my ability to post this as a comment to the question. :/
First is a quick overview of network CNAM. Next, a brief explanation of how it works and the caveats. After that, there are some specifics around Telo products, which some folks may find of value.
Overview of Network CNAM
In the +1 dialing plan (NANP) there are over 20 databases that store CNAM values, or caller name, on behalf of the telephone carriers. In practice, about 12 of them are actually queried by CNAM providers. The terminating carrier (the carrier receiving the call) queries their CNAM provider milliseconds after receiving the call with the CID (telephone number). While the call is being set up to ring, the CNAM provider will return the name value associated with that telephone number so that it can be delivered with the telephone call.
How This Works
If network CNAM is being delivered -- meaning, the carrier-supplied values that are being stored by the carrier's storage provider -- then the CNAM provider will route the query to the appropriate storage provider based on the telephone number. If a number has been ported, then the 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 will contain the information needed to match the telephone number to the carrier, and thus the correct storage provider.
Caveats
The match-rate for useful name values in the traditional CNAM network is about 50%. This is due to the fact that not all carriers participate. For example, while it is easy to set up CNAM values for AT&T Wireless, T-Mobile, and Sprint, Verizon Wireless is 'opt-in' and is not automatically supported. There are other carriers that do not participate in the CNAM network, and still, other VoIP providers that do not update CNAM values. The traditional CNAM network also does not provide values for toll-free numbers, and only has coverage inside of the +1 dialing plan.
About OpenCNAM
While OpenCNAM provides network CNAM through its Standard service level, it also provides two service levels that address the limitations of network CNAM mentioned above. The Plus service level is optimized for coverage, match-rate, and accuracy, while the Value service level provides excellent coverage and match-rates, but is optimized for cost. You can find out more about the service levels here.
EveryoneAPI For Current Carrier and Linetype
Our other product, EveryoneAPI, provides the most accurate data around linetype (landline or mobile) and current carrier, which will include ported numbers. The coverage for these data-points is global and the match-rate is nearly 100%. While the numverify looks very useful, it is providing what is known as LERG data for the +1 dialing plan, from what I can tell. This will not accurately reflect carrier information for ported telephone numbers.
Upvotes: 1