Freeze one selecting branch and one symptom
Record one authorized occurrence with timestamp and timezone, source DID or internal caller, matched inbound route or application, IVR digit or condition branch, selected Misc Destination, intended dial string and observed outcome. Classify the first symptom: wrong saved object, wrong digits, no loaded target, invalid extension, blocked feature, wrong outbound route, trunk failure, no answer or media failure.
Do not begin by renaming duplicate objects or changing every outbound pattern. Preserve the installed FreePBX and Misc Destinations versions, saved configuration, generated files and relevant call evidence.
Prove which saved object the consumer references
Inspect the selecting IVR, inbound route, time condition, announcement, callback or other module and capture its destination type and stable identifier. Then resolve that identifier to the current Misc Destination description and exact dial string. A matching label is insufficient when objects were copied, renamed or recreated.
If the consumer references another destination type, stay with that owner. Misc Applications create dialable internal codes, while Custom Destinations publish custom dialplan targets; neither should be rewritten to make a Misc Destination trace appear correct.
Compare saved, generated and loaded state
After a supported Apply Config, locate the installed module's generated ext-miscdests entry for the selected record and compare its target digits with the saved value. Then inspect the loaded Asterisk dialplan for the same record. Keep a stale generated file, rejected reload and stale loaded context as separate failures.
Do not edit generated FreePBX files as a durable repair. Correct the owning record or apply-config failure, regenerate, reload and recheck the exact target.
Follow the configured digits into the first real owner
The release/17.0 source hands the stored digits into internal dialing logic. Trace the first loaded match for those exact digits and caller context: extension, feature code, queue, voicemail, DISA, outbound route or invalid extension. Preserve prefixes and transformations at every boundary.
A valid ext-miscdests entry can still reach the wrong owner because the stored digits are wrong or because another pattern wins later. Conversely, an expected external number that matches no permitted outbound route is not repaired by recreating the wrapper.
Separate outbound policy and carrier outcome
For an external target, prove the matched outbound route, transformed digits, caller-ID owner, selected trunk, provider response, answer and media in order. A route match does not prove carrier acceptance, and carrier acceptance does not prove the intended person answered or heard audio.
For a feature or privileged target, prove the source caller is authorized. An inbound IVR branch does not inherit trust simply because the generated handoff enters from-internal; add explicit authentication or redesign the call flow when the target requires it.
Correct the first divergence and retest every consumer
Change only the first demonstrated fault: consumer ID, saved dial string, apply-config result, loaded target, route pattern, restriction, caller identity or downstream owner. Retest the original branch, each additional recorded consumer, one neighboring selection and an unauthorized boundary.
Confirm the intended destination without widening unrelated dialing permissions or emergency reach. Roll back the record and consumer selections if any unaffected path changes. This workflow is documentation-derived and was not reproduced on an installed or laboratory FreePBX system.
Sources & applicability
Primary references for the technical details above. Operational examples and planning checklists are VoIP.info editorial guidance.
- Sangoma FreePBX Misc Destinations overview ↗
- Sangoma FreePBX Misc Destinations user guide ↗
- FreePBX Misc Destinations release/17.0 repository ↗
- FreePBX Misc Destinations release/17.0 metadata ↗
- FreePBX Misc Destinations release/17.0 dialplan source ↗
- Sangoma FreePBX outbound routes ↗
- Asterisk contexts, extensions and priorities ↗
Examples require adaptation to your topology. No live PBX or hardware testing is claimed.