Caller ID and CNAM OUT#
Caller ID and CNAM OUT control the calling number and caller name presented on outbound calls. Configure which Caller IDs an outbound trunk may use, choose how non-matching numbers are handled, and use the appropriate CNAM OUT delivery method.
How outbound Caller ID works#
Caller ID, also called CLI (calling line identification), is the calling
number that the originating SIP endpoint asks to present for an outbound
call. The outbound trunk does not generate a Caller ID or automatically
select one from Allowed CLI(s). Your PBX, SBC, softphone, or other SIP
endpoint must supply the number in every SIP INVITE.
The calling number is placed in the user part of the SIP From header. For
example:
From: <sip:12025550100@caller.example>;tag=example
In this example, 12025550100 is the requested Caller ID.
caller.example is the SIP URI domain and is not part of the calling
number. Send the number in E.164 format.
Before calls are sent, the trunk’s CLI Settings define which DIDWW numbers are treated as permitted Caller IDs. These settings validate the number supplied by the originating endpoint; they do not insert or replace it.
%%{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
ORIGIN["Originating SIP endpoint<br/>Send INVITE with Caller ID"]
AUTH["Match and authenticate trunk"]
READ["Read Caller ID<br/>from From header"]
CHECK{"Caller ID matches<br/>permitted CLI?"}
POLICY{"On CLI mismatch"}
ROUTE["Select outbound route"]
SEND["Send call downstream"]
REJECT["Reject call"]
ORIGIN --> AUTH --> READ --> CHECK
CHECK -->|Match| ROUTE
CHECK -->|No match| POLICY
POLICY -->|Send Original CLI| ROUTE
POLICY -->|Reject Call| REJECT
ROUTE --> SEND
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
classDef rejected fill:#fee2e2,stroke:#f87171,color:#1f2d3d,stroke-width:1.5px
class ORIGIN endpoint
class AUTH,READ,ROUTE,SEND process
class CHECK,POLICY decision
class REJECT rejected
linkStyle default stroke:#0066cc,stroke-width:1.5px
For each call, Caller ID is processed as follows:
Send the Caller ID. The originating SIP endpoint places the requested calling number in the SIP
Fromheader and sends theINVITE.Match and authenticate the trunk. The SIP request is matched to an outbound trunk, and the originating system is authenticated. This confirms which system sent the request but does not validate the Caller ID. See Authentication and security.
Read the requested Caller ID. The calling number is taken from the SIP
Fromheader of the authenticated request.Apply the CLI Settings. The number is compared with the Caller IDs permitted by the matched trunk. If it matches, Caller ID validation succeeds. If it does not match, On CLI mismatch either forwards the original number or rejects the call. The trunk does not substitute another Caller ID.
Select the route and send the call downstream. If the call is not rejected, the destination, Caller ID, and available coverage determine the outbound route. A local route may be used when the destination and an eligible DIDWW Caller ID belong to the same country and in-country coverage is available. Otherwise, an available origin-based or international route may be used.
CNAM OUT and STIR/SHAKEN provide different information. CNAM OUT provides the caller name, while STIR/SHAKEN carries a signed identity assertion. Neither one supplies or replaces the Caller ID number.
Note
Passing Caller ID validation does not guarantee that the number will be displayed to the called party. The destination operator or an intermediate network may modify, suppress, or decline to display it according to its policies and applicable regulations.
Allowed outbound CLIs#
The Allow any DID(s) for Voice OUT toggle determines which DIDWW numbers are treated as permitted CLIs:
Toggle state |
Behavior |
|---|---|
Enabled |
All supported DIDWW numbers in your account are treated as permitted CLIs. Individual selection is not required. |
Disabled |
Only numbers added to Allowed CLI(s) are treated as permitted. Select them from Available CLI(s), which lists DIDWW numbers that support local routes. DIDs without local-route support are not listed. |
These settings define which numbers match the permitted CLI set. A non-matching number may still be forwarded when On CLI mismatch is set to Send Original CLI.
For field values, defaults, and dependencies, see CLI Settings in the Outbound trunk reference.
CLI mismatch behavior#
A CLI mismatch occurs when the calling number in the SIP From header does
not match the numbers permitted by the trunk’s CLI Settings. This includes a
third-party number or a DIDWW number that was not added to Allowed CLI(s)
when Allow any DID(s) for Voice OUT is disabled.
The trunk’s On CLI mismatch setting determines the outcome:
Setting |
Outcome |
|---|---|
Send Original CLI |
Forwards the original |
Reject Call |
Rejects the call when the calling number does not match the permitted CLI set. |
CLI matching uses the calling number in the user part of the SIP From
URI. It does not use the quoted display name, which is processed separately
as CNAM OUT.
Important
Send Original CLI allows a non-matching number to be sent downstream. Use it only when presenting a third-party Caller ID intentionally and when you are authorized to use that number. To restrict every call to the permitted DIDWW Caller IDs, select Reject Call.
CNAM OUT#
CNAM OUT provides caller name information for outbound calls. Caller ID identifies the calling number, while CNAM OUT provides a name that may be displayed alongside it. CNAM OUT does not create, validate, or replace the Caller ID number.
DIDWW supports two CNAM OUT delivery methods: CNAM OUT registration for
supported US DIDWW numbers, and a per-call SIP From display name for
Canadian and other non-US caller IDs. The applicable method depends on the
Caller ID and whether the name is registered in advance or supplied in each
call.
How CNAM OUT works#
Select the supported method for the Caller ID, then follow its setup and delivery process:
%%{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
START["Caller name for an outbound call"]
METHOD{"Which CNAM OUT<br/>method applies?"}
REGISTER["Supported US DIDWW number<br/>Register name and Identity in My Numbers"]
ACTIVE["Registration is reviewed<br/>CNAM OUT status becomes Active"]
DB_CALL["Send call using the DID<br/>as Caller ID"]
LOOKUP["Destination operator<br/>query the registered CNAM"]
HEADER["Non-US or third-party Caller ID<br/>Add CNAM to SIP From for each INVITE"]
RELAY["Relay caller name when<br/>available and supported"]
DISPLAY["Destination display<br/>the caller name"]
START --> METHOD
METHOD -->|CNAM registration| REGISTER
REGISTER --> ACTIVE
ACTIVE --> DB_CALL
DB_CALL --> LOOKUP
LOOKUP --> DISPLAY
METHOD -->|SIP From header| HEADER
HEADER --> RELAY
RELAY --> DISPLAY
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
classDef result fill:#ccfbf1,stroke:#2dd4bf,color:#1f2d3d,stroke-width:1.5px
class START endpoint
class METHOD,LOOKUP decision
class REGISTER,ACTIVE,DB_CALL,HEADER,RELAY process
class DISPLAY result
linkStyle default stroke:#0066cc,stroke-width:1.5px
Registered CNAM OUT#
CNAM OUT registration is available for DIDWW US numbers that support the CNAM OUT feature. It is configured on the DID number in Phone Numbers > My Numbers, rather than on the outbound trunk.
Use Manage CNAM OUT to submit a caller name of up to 15 characters and select the required Identity. The request is reviewed, usually within 48–72 hours. The registered value becomes available for downstream lookup when the DID’s CNAM OUT status is Active.
When an outbound call presents the DID as its Caller ID, the destination operator may use that DID number to query registered CNAM. If the operator performs the lookup and retrieves the registered value, it can display the caller name to the called party.
SIP From header CNAM OUT#
For Canadian and other non-US caller IDs, place the caller name in the
display-name portion of the SIP From header of every INVITE. This
method is also useful when a per-call value is required or when a non-US
third-party Caller ID cannot use the database-registration method.
DIDWW does not have access to a Canadian CNAM database equivalent to the
CNAM database used for US numbers, so this method does not use the US
database-registration workflow. Send the INVITE to a DIDWW outbound
signaling endpoint. DIDWW relays the caller
name to downstream carriers when available and supported.
Place the CNAM value as a quoted display name before the SIP URI:
From: "Example Name" <sip:12025550100@caller.example>;tag=example
In this example:
Example Nameis the caller name relayed for this call.12025550100is the Caller ID in E.164 format.caller.exampleis the SIP URI domain and is not part of the caller name or Caller ID.
Note
The caller name must not exceed 15 characters. Avoid special characters that intermediate SIP systems may alter or remove.
Important
Neither CNAM OUT method guarantees that the caller name will be displayed. With database registration, the destination operator must perform a lookup. With the SIP-header method, intermediate and destination networks must preserve and support the display-name value.