Freeze one incident and one expected leg
Record timestamp and timezone, node, installed Asterisk branch, channel driver, expected endpoint or dialplan owner, exact channel name, Uniqueid, Linkedid, state, application, bridge identifier, first and last observation, lookup expression, observer and intended operation.
Classify the symptom: missing from the first inventory, present then gone, renamed, Local pair optimized out, wrong leg selected, correct leg no longer bridged, acknowledgement without observed effect, or correct channel evidence with a separate media or application failure.
Compare unfiltered and filtered inventories
Capture CHANNELS() without a filter in an authorized narrow window, then run the exact documented POSIX.2 expression. Check anchors and escaping. A filter that matches no channel does not show that no channels exist, and a broad match can select a sibling or later call.
Preserve each full space-delimited token instead of reconstructing a name. Immediately test the chosen full name or Uniqueid with CHANNEL_EXISTS() and note that observation time.
Correlate identity instead of trusting a familiar name
Compare the full channel name, Uniqueid, Linkedid, current application and bridge across CLI or AMI output. A Linkedid can connect related call legs but does not select one leg. An endpoint prefix can recur across calls, and a channel name observed earlier can be stale by the time an operation begins.
If AMI is used, keep the request ActionID, every CoreShowChannel event and the completion event together. Do not merge partial results from overlapping requests.
Explain disappearance with lifecycle evidence
Check Newchannel, rename, Local-optimization, bridge and hangup evidence in order. For Local channels, determine whether the default optimization intentionally removed the intermediate pair after answer and whether the surviving endpoint channel carries the call.
Do not disable optimization merely to make an old name remain visible. Use /n only when the dialplan truly requires Local-associated variables, options or behavior to persist, then test its resource and call-flow effects separately.
Bound any corrective operation to the exact live leg
Revalidate the full name or Uniqueid, call correlation, state and application immediately before any authorized control. Stop if the identity changed or the incident window ended. Never substitute all, an endpoint prefix or a broad regular expression for an exact target in production.
After a requested hangup or redirect, observe lifecycle events and the new dialplan or bridge state. A command response alone is not proof that the driver processed the request or that the intended call outcome occurred.
Correct the earliest demonstrated owner and repeat controls
Correct only the earliest proven boundary: expression, stale cached identity, wrong leg selection, incomplete AMI list, Local optimization assumption, node mismatch, timing window or action target. Repeat with one controlled call and record before, during and after snapshots.
Verify signaling, bridge membership, media and business outcome separately, then remove temporary logging. No PBX, module, dialplan, channel, bridge, manager session, packet, media stream or live call was inspected or tested.
Resolve the live channel before a destructive action
The AMI PJSIPHangup diagnostic prevents stale names and related-leg confusion.
Include active lifetime controls in a disappearing-channel trace
The AbsoluteTimeout diagnostic records all timeout owners and the exact final Hangup boundary.
Include direct Hangup in the channel-lifetime ledger
The AMI Hangup diagnostic correlates target resolution, requests and final disposal without flattening Linkedid into one channel.
Treat missing SendText as a possible channel-lifetime defect
The AMI SendText diagnostic revalidates the target Uniqueid before changing content or signaling.
Rebuild channel identity when charge signaling hits the wrong call
The AMI AOCMessage diagnostic verifies name and Uniqueid at the mutation boundary.
Sources & applicability
Primary references for the technical details above. Operational examples and planning checklists are VoIP.info editorial guidance.
- Asterisk CHANNEL_EXISTS dialplan function ↗
- Asterisk CHANNELS dialplan function ↗
- Asterisk CHANNEL dialplan function ↗
- Asterisk CLI channel creation and manipulation ↗
- Asterisk Local channel optimization ↗
- Asterisk AMI CoreShowChannels action ↗
- Asterisk AMI CoreShowChannel event ↗
- Asterisk func_channel implementation ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- Asterisk 23 AbsoluteTimeout action ↗
- Asterisk 22 AbsoluteTimeout action ↗
- Certified Asterisk 22.8 AbsoluteTimeout action ↗
- Asterisk 23 TIMEOUT dialplan function ↗
- Asterisk special dialplan extensions ↗
- Asterisk 22 Hangup AMI action ↗
- Certified Asterisk 22.8 Hangup AMI action ↗
- Asterisk 22 HANGUPCAUSE dialplan function ↗
- Asterisk 23 SendText AMI action ↗
- Asterisk 22 SendText AMI action ↗
- Certified Asterisk 22.8 SendText AMI action ↗
- Asterisk 23 SendText dialplan application ↗
- Asterisk 23 ReceiveText dialplan application ↗
- Asterisk 23 MessageSend AMI action ↗
- Asterisk 23 MessageSend dialplan application ↗
- Asterisk Manager TCP/IP API ↗
- Asterisk 23 AOCMessage AMI action ↗
- Asterisk 22 AOCMessage AMI action ↗
- Certified Asterisk 22.8 AOCMessage AMI action ↗
- Asterisk 23 AOC-S AMI event ↗
- Asterisk 23 AOC-D AMI event ↗
- Asterisk 23 AOC-E AMI event ↗
- Asterisk 22 AOC-S AMI event ↗
- Asterisk 22 AOC-D AMI event ↗
- Asterisk 22 AOC-E AMI event ↗
Examples require adaptation to your topology. No live PBX or hardware testing is claimed.