# CNAM IN for SIP trunks

Caller Name Delivery (CNAM) provides a name associated with a telephone
number. CNAM IN is the inbound service. It looks up the name associated with
the caller ID of an incoming call and delivers the result to the receiving
SIP endpoint. This can help agents and applications identify callers before
answering or processing a call.

CNAM IN does not authenticate the caller ID or change the calling number. It
is also separate from CNAM OUT, which provides a caller name for an outbound
call. See [Caller ID and CNAM OUT](../../../outbound-trunks/caller-id-cnam-out.html) for outbound behavior.

## How CNAM IN works

CNAM lookup is an optional inbound SIP trunk service. **Enable CNAM Lookup**
is disabled by default and applies to calls with a United States caller ID.
When the setting is enabled, DIDWW queries a remote CNAM database and handles
the result as follows:

```
        %%{init: {
  "theme": "base",
  "themeVariables": {
    "fontSize": "14px",
    "primaryColor": "#e0f2fe",
    "primaryBorderColor": "#38bdf8",
    "primaryTextColor": "#1f2d3d",
    "secondaryColor": "#ccfbf1",
    "secondaryBorderColor": "#2dd4bf",
    "secondaryTextColor": "#1f2d3d",
    "tertiaryColor": "#fef3c7",
    "tertiaryBorderColor": "#facc15",
    "tertiaryTextColor": "#1f2d3d",
    "lineColor": "#0066cc",
    "textColor": "#1f2d3d",
    "nodeTextColor": "#1f2d3d",
    "edgeLabelBackground": "#ffffff"
  }
}}%%

flowchart LR
    CALL["Incoming call with<br/>United States caller ID"]
    SETTING{"Enable CNAM Lookup<br/>enabled?"}
    LOOKUP["Query remote<br/>CNAM database"]
    RESULT{"Name returned?"}
    NAME["Add caller name to<br/>SIP From display name"]
    UNAVAILABLE["Use Unavailable as<br/>SIP From display name"]
    NUMBER["Use caller ID as<br/>SIP From display name"]
    LOG["Populate Source Name<br/>in inbound call logs"]
    ENDPOINT["Deliver call to<br/>SIP endpoint"]

    CALL --> SETTING
    SETTING -->|Yes| LOOKUP --> RESULT
    SETTING -->|No| NUMBER --> ENDPOINT
    RESULT -->|Yes| NAME --> LOG --> ENDPOINT
    RESULT -->|No| UNAVAILABLE --> ENDPOINT

    classDef endpoint fill:#e0f2fe,stroke:#0066cc,color:#1f2d3d,stroke-width:1.5px
    classDef process fill:#ccfbf1,stroke:#2dd4bf,color:#1f2d3d,stroke-width:1.5px
    classDef decision fill:#fef3c7,stroke:#facc15,color:#1f2d3d,stroke-width:1.5px

    class CALL,ENDPOINT endpoint
    class LOOKUP,NAME,UNAVAILABLE,NUMBER,LOG process
    class SETTING,RESULT decision

    linkStyle default stroke:#0066cc,stroke-width:1.5px
```

When **Enable CNAM Lookup** is enabled, an additional charge applies to each
call from a U.S. source number. The rate is shown in the trunk settings when
you enable the setting. CNAM IN charges appear in the **CNAM IN (USD)** field
in [inbound call logs](../../../../logs-analytics/call-logs/inbound-logs.html#inbound-cdr-logs).

## SIP delivery

DIDWW places the CNAM result in the display-name portion of the SIP `From`
header. The caller ID remains in the user part of the SIP URI.

| Lookup state | SIP `From` header |
| --- | --- |
| Lookup disabled | `From: "12899230448" <sip:12899230448@46.19.213.14>;tag=example` |
| Lookup successful | `From: "KRIS TOTAL" <sip:15203981500@46.19.213.14>;tag=example` |
| Lookup unsuccessful | `From: "Unavailable" <sip:15203981500@46.19.213.14>;tag=example` |

In a successful result, `KRIS TOTAL` is the caller name and
`15203981500` is the caller ID. The same retrieved name appears in the
**Source Name** field in inbound call logs.

## Trunk Group behavior

When a [Trunk Group](../../trunk-groups/index.html) contains at least one
trunk with **Enable CNAM Lookup** enabled, DIDWW performs a lookup for every
incoming call routed to the group. Each call from a U.S. source number incurs
the CNAM lookup charge, even when the selected trunk does not have the setting
enabled. The caller name is delivered only through trunks that have **Enable
CNAM Lookup** enabled.

Important

Review every member before enabling CNAM lookup on a trunk in a Trunk
Group. Enabling the setting on one member changes lookup and billing
behavior for calls routed to the entire group.

## Availability and limitations

- CNAM IN lookup applies to incoming calls with a United States caller ID.
- CNAM lookup is also available on [phone.systems(TM) trunks](../../phone-systems-trunks/index.html). See [Additional Services](../../phone-systems-trunks/phone-systems-trunk-settings-reference.html#inbound-phone-systems-trunk-settings-additional-services) in the
  phone.systems(TM) trunk settings reference.
- The lookup result depends on the information available from the remote CNAM
  database. A name is not returned for every caller ID.
- CNAM IN does not verify that the calling party owns or is authorized to use
  the caller ID. For caller-ID authentication information, see
  [STIR/SHAKEN for inbound calls](stir-shaken-headers.html).
- The receiving SIP system must support and preserve the display name in the
  SIP `From` header to present the caller name to users or applications.
  How the name is presented depends on the receiving system.

## Configuration reference

Configure **Enable CNAM Lookup** under **Additional Services** when creating
or editing an inbound SIP trunk. For the field definition and default value,
see [Additional Services](../sip-trunk-settings-reference.html#inbound-sip-trunks-settings-additional-services)
in the SIP trunk settings reference. To enable CNAM lookup on an existing
trunk, see [Manage SIP trunks](../how-to-guides/manage-sip-trunks.html#inbound-sip-trunks-enable-cnam) or
[Manage phone.systems(TM) trunks](../../phone-systems-trunks/how-to-guides/manage-phone-systems-trunks.html#inbound-phone-systems-trunks-enable-cnam).

## Related resources

- [Inbound call logs](../../../../logs-analytics/call-logs/inbound-logs.html#inbound-cdr-logs) - Review the retrieved caller
  name and CNAM IN charge for a call.
- [Caller ID and CNAM OUT](../../../outbound-trunks/caller-id-cnam-out.html) - Understand caller-name
  delivery for outbound calls.
- [STIR/SHAKEN for inbound calls](stir-shaken-headers.html) - Understand how
  caller-ID authentication differs from caller-name lookup.

On this page
