CallerID Processing with 3CX Phone System – Including Distinctive Ringing Features

Routing of Calls to INTERNAL Destinations WITH Distinctive Ringing

  • 3CX Phone System will convert the CallerID to the local format according to its local settings. To view/edit 3CX Phone System’s local settings, go to “Settings -> Advanced” and examine the contents of the “e164 Number Processing” section.
  • The CallerID is first checked to see if it is International. The CallerID is checked from left to right.
  • If the CallerID is NOT International, any leading “+” or International Dial Code will be stripped away if present. The CallerID is considered NOT International if both the following conditions are MET:
    • the CallerID starts with one of the following:
      • “+” followed immediately by the Country Code (numeric) stipulated in the e164 settings
      • the International Dial Code followed immediately by the Country Code (numeric) stipulated in the e164 settings
      • the Country Code (numeric) stipulated in the e164 settings
    • The checkbox “Remove if same Country” in the e164 settings must be enabled
  • If the CallerID is International, no further manipulation is performed on the CallerID, and the call is delivered to the INTERNAL destination unchanged. The Distinctive Ringing feature will be invoked in this case as the PBX will deliver the call with an additional header “Alert-info: international”.
  • If the CallerID is NOT International, it will be next checked to see if it is National or Local. The new CallerID (with the International portion already stripped away) is checked from left to right.
  • The leading Area Code stipulated in the e164 settings will be stripped from the CallerID if the following conditions are ALL MET (meaning that the CallerID is NOT National):
    • The CallerID must start with the Area Code stipulated in the e164 settings
    • The checkbox “Remove if same Area Code” in the e164 settings must be enabled
  • If the CallerID is National, no further manipulation is performed on the CallerID, and the call is delivered to the INTERNAL destination unchanged (with only the International portion stripped away). The Distinctive Ringing feature will be invoked in this case as the PBX will deliver the call with an additional header “Alert-info: national”.
  • If the CallerID is Local, the new CallerID (with both the International portion AND the National portion stripped away) will be used to deliver the call to the INTERNAL destination. The Distinctive Ringing feature will be invoked in this case as the PBX will deliver the call with an additional header “Alert-info: local”.

Routing of Calls to EXTERNAL Destinations

  • 3CX Phone System will first process the call through the Outbound Rules using the DESTINATION number as a basis, and the first matching Outbound Rule will be selected.
  • Next, the ROUTE specified inside the Outbound Rule will indicate which Trunk connection will deliver the call
  • 3CX Phone System must identify which SIP Header will contain the CallerID. To understand which SIP Header will deliver the CallerID:
    • Go to “VoIP Providers -> <Your VoIP Provider>” or “PSTN Gateways -> <Your Gateway>”
    • Go to the “Outbound Parameters” tab for your VoIP Provider or Gateway
    • Identify the SIP Header Field which is assigned the variable “OriginatorCallerID”.
  • 3CX Phone System builds the OriginatorCallerID variable as follows:
    • OriginatorCallerID is first set to empty
    • Now the Outbound CallerID assigned to the Trunk is copied over the OriginatorCallerID. To view or edit the Trunk Outbound CallerID:
      • Go to “VoIP Providers -> <Your VoIP Provider> -> <Your VoIP Provider Trunk>” or “PSTN Gateways -> <Your Gateway> -> <Your Gateway Port>”
      • Scroll down to the “Other Options” section, and identify the “Outbound Caller ID” field
    • Next, the Outbound CallerID assigned to the Extension is copied over the OriginatorCallerID, if applicable.
      •  If the call is being routed to an EXTERNAL number because of a forwarding rule on an Extension, or because the call is not being made DIRECTLY from the extension, then that Extension’s Outbound Caller ID will be overwritten with anything already contained in the OriginatorCallerID variable.
      • If the call is being routed to an EXTERNAL number directly, WITHOUT passing through an Extension’s forwarding rule, then this step will be ignored.
    • Finally, the Originator’s Caller ID is copied over the OriginatorCallerID variable, if applicable.
      • If the call originated from an Inbound Call, then the Originator’s Caller ID (which will in most cases have been Reformatted to International Format during the “Routing of Calls to INTERNAL Destinations” phase) will overwrite the OriginatorCallerID variable
      • If the call originated from an Extension, then this step will be ignored.
  • The Outbound CallerID Reformatting rule for that trunk is now applied to the OriginatorCallerID variable.

Important Note: For more information on CallerID Reformating please have a look here

Liked this article?


Get notified of new articles
or share
You might also be interested in: