Search code examples
phone-callringcentralcaller-idringout

How do I use CNAM (Caller ID Name) with RingOut?


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?


Solution

  • 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:

    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"
    }