VoIP.info Guide

FreePBX Set CallerID: change one call-flow identity deliberately

Use the Set CallerID destination to change channel name and number before one documented handoff, while keeping downstream FreePBX precedence, SIP identity and carrier acceptance separate.

Reviewed 2026-10-14Current FreePBX Set CallerID release/17.0 metadata and generated dialplan plus Sangoma module and current Asterisk CALLERID and party-ID documentation reviewed October 14, 2026; the module metadata identifies version 17.0.1.2 on the standard repository and the source sets channel caller name and number before a configured destination, but installed module version, generated and loaded dialplan, upstream selection, later FreePBX caller-ID precedence, provider authorization, SIP signaling and destination presentation remain deployment specific, and no PBX, module, caller-ID value, destination, provider, packet, endpoint or live call was inspected or testedIntermediateDocumentation based · not lab tested

Define the narrow boundary before creating a rule

The current module metadata describes Set CallerID as an Applications module that changes caller ID within a call flow. Its release/17.0 dialplan source creates a destination that writes CALLERID(name) and CALLERID(num), then continues to one configured destination. Treat that as a channel-state transition, not proof of the identity a provider will authorize or a remote device will display.

Record the upstream destination, intended name, intended number and next destination. State whether the change is for an internal display, queue or IVR label, a forwarded leg, or an outbound call. Those outcomes have different later owners and should not be combined in one vague caller-ID requirement.

Verify module branch, version and generated ownership

The reviewed release/17.0 metadata identifies Set CallerID version 17.0.1.2 in the standard repository and declares FreePBX 17.0 support. Confirm the installed module name, branch, version, signature and enabled state rather than assuming the repository is the running PBX.

Use Module Admin and the normal Apply Config path. Preserve the submitted rule and the generated app-setcid destination that belongs to that rule; never edit generated dialplan as the durable configuration. A saved form, generated context and loaded context are three separate checkpoints.

Set name, number and next destination as one contract

Give the rule a purpose-specific description and enter only the caller name and number the organization is authorized to use for that flow. Then choose the exact downstream destination. The module source sets both fields before the Goto, so document blanks and variable expressions deliberately rather than assuming an omitted value preserves prior state.

Do not chain Set CallerID rules as an undocumented precedence system. The module source intentionally withholds Set CallerID destinations while editing the module itself to avoid direct chaining and loops. If multiple transformations are required, document which component owns each change and where the final value is observed.

Separate the channel value from later policy

Asterisk documents CALLERID() as channel caller-ID data. After the Set CallerID handoff, another dialplan application, FreePBX outbound identity logic, privacy handling, a route or trunk policy, PJSIP endpoint options or a provider can change what leaves the system or appears remotely.

For an internal destination, compare channel state before and after the rule and at the receiving endpoint. For an outbound leg, also record the selected route and trunk, the first provider-facing INVITE and the provider result. Do not enable unrelated SIP identity headers simply because the Set CallerID value is absent at the far end.

Keep authorization, privacy and emergency use outside the shortcut

A syntactically valid value is not authorization to present it. Keep provider-approved numbers, privacy requirements, forwarding or diversion identity, emergency callback number and dispatchable location under their dedicated policies. Set CallerID does not authenticate an inbound caller and should not be used to make untrusted identity look verified.

For emergency calling, use the documented FreePBX and provider workflow and an arranged validation method. Do not route an unplanned emergency test through a general Set CallerID destination or infer location readiness from a displayed number.

Test the handoff and the final consumer separately

In an authorized maintenance window, test one call that should traverse the rule and one control call that should not. Preserve the rule identifier, generated and loaded revision, timestamp, channel and call identifiers, caller ID immediately before and after app-setcid, downstream destination and final observed result.

If the channel value changes correctly but a later leg differs, move the investigation to that later owner. If the rule never runs or its channel value is wrong, use the paired diagnostic before changing route, trunk or provider policy. This guide is documentation-derived; no PBX, module or call was tested.

Sources & applicability

Primary references for the technical details above. Operational examples and planning checklists are VoIP.info editorial guidance.

Examples require adaptation to your topology. No live PBX or hardware testing is claimed.