Freeze one attempt before repeating it
Record the inbound timestamp and unique call identity, ingress trunk or extension, received caller-ID number, selected Callback object, configured callback number or blank state, delay, timeout, outbound caller ID, expected route, expected post-answer destination and actual result. Preserve bounded logs before retrying so a second attempt does not hide the first helper or spool state.
Classify the first divergence: the inbound call never selected Callback, the chosen number is wrong, the object is not loaded, no originated leg appears, outbound routing rejects it, the carrier or remote endpoint does not answer, or the answered leg enters the wrong destination.
Prove the inbound trigger and selected number
Confirm the original call actually reached the intended Callback object from the expected inbound route, IVR or destination. Compare the received caller-ID number with the saved callback-number field. Current source uses the configured number when present and otherwise uses the received caller ID.
Normalize and authorize the resulting number before following it downstream. If identity is withheld, malformed, spoofed or outside the approved range, preserve that evidence and fail closed; do not add a permissive catch-all route or hard-code a target simply to make the test ring.
Reconcile saved, generated and loaded module state
Confirm the installed Callback module and signature, saved object identifier, number, delay, timeout, caller ID and destination. Apply supported configuration changes, then inspect the generated and loaded Callback entry that belongs to the same identifier. The release/17.0 source emits those values into dialplan and launches the callback helper before hanging up the inbound channel.
A visible GUI row is not proof that current dialplan contains it, and a clean inbound hangup is not proof that the background helper succeeded. Preserve the exact first error and avoid editing generated files.
Find the originated leg and outbound route decision
Correlate the helper or spool evidence with a new Asterisk channel at the expected delay. Record the exact dialed number, route-pattern match, prepend or prefix transforms, trunk sequence, channel-creation result and first provider response. Asterisk call-file success requires a readable, complete job and an eligible outbound channel; it does not bypass FreePBX authorization or carrier policy.
If no leg exists, remain with module, helper, permissions, paths and spool processing. If a leg exists but routing fails, correct the number or narrow policy owner rather than changing Callback destination logic.
Distinguish provider progress, remote answer and human acceptance
Preserve provisional and final SIP responses, remote endpoint identity, answer timestamp and hangup cause. A voicemail system, forwarding service or wrong device can answer the originated call. That answer may cause the configured destination to run even though the intended caller never accepted the callback.
Use an approved control number and, where the workflow matters, add an explicit confirmation gate in the destination design rather than treating answer supervision as human identity. Do not infer two-way media from signaling alone.
Trace the answered leg into the selected destination
After answer, prove the channel enters the configured destination and follow its exact IVR, queue, extension or restricted application path. Compare that object with the saved Callback destination and loaded dialplan. A correct callback to the right number can still reach a stale, deleted or over-privileged destination.
Correct only the first demonstrated owner: trigger, selected number, generated state, helper, route, trunk, answer target or destination. Retest one authorized number plus withheld, disallowed, no-answer and voicemail cases, then verify spending controls, monitoring and rollback. This workflow is documentation-derived and was not reproduced on a customer or laboratory PBX.
Sources & applicability
Primary references for the technical details above. Operational examples and planning checklists are VoIP.info editorial guidance.
- Sangoma: PBX GUI Callback Module User Guide ↗
- FreePBX Callback release/17.0 source ↗
- FreePBX Callback release/17.0 metadata ↗
- FreePBX Callback dialplan generation ↗
- Asterisk call-file interface ↗
Examples require adaptation to your topology. No live PBX or hardware testing is claimed.