Freeze one legacy action and one file symptom
Record node, full Asterisk version, package source, loaded res_monitor state, manager identity and permissions, action inventory, ActionID, exact Channel, Uniqueid, Linkedid, bridge, request, response, File, Format, Mix, monitor directory and synchronized timestamps. Preserve ChangeMonitor, PauseMonitor, UnpauseMonitor and StopMonitor attempts in order.
Classify the first symptom as unknown action, denied action, wrong or vanished channel, already monitored, file-open failure, wrong name, missing interval, resume failure, stop mismatch, raw legs not mixed, mixed target missing, file still open, decode failure or wrong audio. Do not collapse these boundaries into “recording failed.”
Stop when the version explains the missing action
Asterisk 21 removed res_monitor after its earlier deprecation, so Monitor-family actions should not be expected there or on later current branches. If the exact running version is 21 or later and the action inventory lacks Monitor, this is a migration requirement rather than a module-repair task.
Do not download an old module, widen AMI permissions or force-load an ABI-mismatched binary. Move the workflow to documented MixMonitor controls and validate the replacement against the installed branch and application owner.
On Asterisk 20 or earlier, prove module, authority and target
If the node is actually on a supporting legacy branch, confirm res_monitor is loaded, the exact action is present and the manager identity has only the required write authority. Resolve the channel again immediately before the request and require the expected Uniqueid.
An unknown action belongs to availability; a permission error belongs to authorization; a missing or replaced channel belongs to identity. Correct that first divergence before changing directories, codecs or mix commands. Never substitute broad AMI Command access for a missing dedicated action.
Reconstruct rename, pause, resume and stop order
Match every lifecycle request and response by ActionID and timestamp. Confirm ChangeMonitor named the intended active channel and safe new base, PauseMonitor preceded the expected gap, UnpauseMonitor targeted the same live session, and StopMonitor ended that session before file inspection.
A channel transfer, Local optimization, hangup or replacement can end the original monitor while the business call continues. A response alone does not prove that a new filename exists, that paused media is absent, that resume wrote frames or that the stopped file is closed and durable.
Inspect raw legs, mixer and final artifact separately
Preserve actual directory listings, owners, permissions, free space, open handles, raw leg names, target name, sizes, checksums, format probe, duration and decode result. If Mix was enabled, establish whether the built-in mixer or MONITOR_EXEC was selected, when it ran, its arguments, exit result and raw-file cleanup.
A missing mixed target can follow a mixer or path failure even when raw legs exist. A nonzero target can still contain the wrong leg, interval or participants. File presence, successful decoding and authorized listening are separate evidence and none alone proves retention or compliance.
Repair the earliest proved boundary and retest migration
On a supported legacy node, correct only the demonstrated permission, module, channel, filename, directory, storage, ordering or mixer fault and repeat one disposable authorized call. On Asterisk 21 or later, implement and test the documented MixMonitor lifecycle instead of recreating removed res_monitor behavior.
Include one transfer and one policy-negative case. Do not test on sensitive production calls or claim compatibility from documentation alone. No PBX, module, manager account, action, channel, file, packet, recording, processor, endpoint or live call was inspected or tested.
Sources & applicability
Primary references for the technical details above. Operational examples and planning checklists are VoIP.info editorial guidance.
- Asterisk 20 Monitor AMI action ↗
- Asterisk 20 ChangeMonitor AMI action ↗
- Asterisk 20 PauseMonitor AMI action ↗
- Asterisk 20 UnpauseMonitor AMI action ↗
- Asterisk 20 StopMonitor AMI action ↗
- Asterisk 20 Monitor dialplan application ↗
- Asterisk 21 removals ↗
- Asterisk 23 MixMonitor AMI action ↗
- Asterisk 23 StopMixMonitor AMI action ↗
- Asterisk 23 CoreShowChannel event ↗
Examples require adaptation to your topology. No live PBX or hardware testing is claimed.