Inventory the exact manager session
Record the running Asterisk branch and maintenance release, build and package source, server identity, manager username, transport, connection time and client version. Send a uniquely generated ActionID with Action: ListCommands, retain the complete response and keep credentials out of the record.
ListCommands returns an action name and synopsis for every manager command available to that authenticated user. It is a session-scoped authorization view, not a declaration that every action compiled into Asterisk is visible.
Treat ListCommands as a user-scoped view
Search the returned headers for the exact action name and preserve its published synopsis. A listed action establishes that the current user may see that registered action at that time. It does not establish that particular parameters, object names or downstream service behavior will succeed.
An absent action is ambiguous until another surface is checked. The user may lack the relevant write authorization, the session may use a different account or host, the owning module may not be loaded, or the installed branch, maintenance release, package or build may not register that action.
Compare the administrator-side registry
From an authorized local administrative console, manager show commands lists registered manager actions and manager show command <action> provides action detail. Record the same running process and time window as the manager session. Do not expose the console or its broader command surface to an untrusted client.
If the CLI lists an action that the user-scoped ListCommands response omits, investigate the manager account and its effective manager.conf write classes. If both omit it, investigate branch support, packaging, loaded modules and registration before changing authorization.
Keep availability separate from syntax and targets
AMI messages use Header: value lines and a blank-line terminator. An action message begins with Action; response and event messages begin with their own message types. Preserve the exact action spelling, every supplied header and the raw response instead of treating an SDK constant or documentation example as runtime evidence.
A visible command can still reject an unsupported field, malformed value, unavailable object or unsafe operation. Conversely, an Error response and its optional Message describe this request; they are not a stable cross-version fault taxonomy.
Reconcile version and module boundaries
AMI uses a major, breaking and non-breaking version scheme associated with the corresponding Asterisk major release. Actions may be added during a major line, so an old client library or static allow-list can lag the running instance. Compare the installed branch and maintenance release with the action's generated documentation and the live inventory.
When an owning module is relevant, keep package presence, loaded state, action registration and manager-user visibility as separate checkpoints. Loading or reloading a module is a privileged service change, not the first diagnostic step.
Correlate responses, events and business outcome
The v2 specification defines Response: Success or Response: Error, with an optional Message. Some actions also produce related events. Use the unique ActionID where the action and related events support it, and require the documented completion event or other transaction boundary before declaring an event list complete.
A Success response proves only the action-level contract it documents. Verify the target object and intended operational result separately, retain negative tests where appropriate and grant only the write classes required. No PBX, module, manager session, request, response, event, channel, packet, media stream or live call was inspected or tested for this guide.
Authenticate before interpreting command visibility
The AMI session-authentication guide establishes server, manager identity and connection lifetime before comparing user-scoped commands.
Confirm core-query visibility before parsing values
The core status and settings diagnostic separates action availability and authorization from response-schema or value disputes.
Confirm queue-query visibility before parsing rows
The queue-snapshot diagnostic separates action visibility and authorization from empty filters or incomplete response series.
Confirm mailbox action visibility before interpreting an empty result
The mailbox-query diagnostic separates unavailable or denied actions from wrong context, stale storage and parser behavior.
Confirm the installed voicemail action before parsing
The voicemail-user diagnostic separates unavailable, denied, unsupported and incomplete results.
Check maintenance release before an MWI control
The AMI MWI control diagnostic treats an unavailable version-sensitive action separately from denial or bad state.
Distinguish denied inventory from an empty conference list
The ConfBridge list diagnostic verifies module and permission before interpreting runtime state.
Inventory ConfBridge actions before widening control rights
The ConfBridge control diagnostic uses same-account action inventory before interpreting a failed or unavailable control.
Scope parking write and observation permissions separately
The AMI parking guide distinguishes Park authority from CALL-class event and inventory visibility.
Keep AMI visibility attached to branch and build evidence
A command can be absent because the running branch or build never registered it, or hidden from a user-scoped inventory by authorization. The version/build diagnostic keeps those owners separate.
Inventory Getvar and Setvar for the actual manager user
Use the AMI variable diagnostic to prove action visibility and authority before changing manager permissions.
Inventory AstDB actions for the deployed branch
Use the AMI AstDB diagnostic to prove DBGetTree availability and manager authority before diagnosing data.
Verify the dynamic inbound-registration action exists
The inbound-registration diagnostic checks installed action inventory and manager authority before interpreting an empty result.
Verify endpoint-list actions and event access together
The AMI endpoint-state diagnostic checks deployed actions, manager authority, filters and parser framing before interpreting absence.
Verify AoR-list action and event access together
The AMI AoR-list diagnostic checks deployed action availability, manager authority, filters and completion before interpreting absence.
Verify both contact actions and status-event visibility
The AMI contact-state diagnostic checks action authority, event classes, filters and completion before interpreting silence.
Verify PJSIPShowAuths without broadening manager access
The AMI auth-list diagnostic checks action availability, authority and list completion before interpreting results.
Verify outbound-registration actions before automation
The runtime-control diagnostic checks installed action availability, manager authority and completed list parsing.
Do not invent an all-transport AMI action
The TransportDetail diagnostic verifies documented action scope and terminal framing before automation.
Do not invent an all-identify AMI action
The AMI IdentifyDetail diagnostic verifies action scope, association and completion before automation.
Version-gate PJSIP maintenance actions
The maintenance-mode diagnostic checks release support, modules and manager privilege before endpoint changes.
Inventory voicemail actions before interpreting mailbox state
The AMI voicemail message diagnostic distinguishes an unavailable or denied action from an absent message.
Inventory signalling actions before interpreting a no-effect result
The AMI signalling diagnostic confirms version, module and permission before media or endpoint diagnosis.
Inventory AbsoluteTimeout before interpreting timing
The AbsoluteTimeout diagnostic checks action availability and manager authority before timer or media diagnosis.
Inventory MuteAudio before interpreting silence
The MuteAudio diagnostic checks action availability, module and manager authority before media diagnosis.
Inventory ControlPlayback before media diagnosis
The ControlPlayback diagnostic checks the running action, module and manager authority before interpreting audio.
Let the runtime inventory reject removed Monitor actions
The AMI Monitor diagnostic checks exact version and res_monitor availability before changing permissions or files.
Inventory Hangup without granting Command as a shortcut
The AMI Hangup diagnostic keeps the dedicated action and CLI-equivalent Command authority in separate risk boundaries.
Inventory SendText without broadening manager authority
The AMI SendText diagnostic preserves action availability, permission and channel-driver outcome separately.
Inventory MessageSend without granting broad manager control
The AMI MessageSend diagnostic separates action availability, authority and downstream routing.
Inventory AOCMessage without broad manager authority
The AMI AOCMessage guide limits target, tariff source, message phase and sensitive fields.
Inventory the app_agent_pool surface before control
The AMI agent guide checks Agents and AgentLogoff availability, authority and event classes before relying on them.
Inventory the res_fax manager surface
The AMI fax-session guide checks FAXSessions, FAXSession and FAXStats support before interpreting missing data.
Inventory PJSIPShowResourceLists support
The AMI resource-list guide checks action and event authorization before treating missing rows as configuration evidence.
Inventory both DAHDI snapshot actions
The AMI DAHDI guide checks version and authorization before interpreting missing spans or channels.
Inventory PRI status and debug actions separately
The AMI PRI guide checks support and privilege before using one read action and three debug-control actions.
Interpret missing chan_sip actions against the installed release
The AMI chan_sip migration guide distinguishes expected removal from module and permission failures.
Inventory chan_iax2 actions before interpreting absence
The IAX2 AMI diagnostic separates unknown, denied, unavailable, empty and incompletely framed results.
Inventory bridge-technology controls before interpreting absence
The bridge-technology diagnostic separates unknown, denied, incomplete and completed-empty observations.
Inventory LoggerRotate before interpreting a denial
The LoggerRotate diagnostic separates missing action, manager authorization, acceptance and storage outcomes.
Bound remote debugging commands by authority and impact
The crash and backtrace guide requires an explicit owner and service-impact window for running captures and lock inspection.
Sources & applicability
Primary references for the technical details above. Operational examples and planning checklists are VoIP.info editorial guidance.
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- ↗
- Asterisk: Versions and support status ↗
- Asterisk: Software Configuration Management Policies ↗
- Asterisk: What to Download ↗
- Asterisk: Supported Platforms ↗
- Asterisk: Updating or Upgrading Asterisk ↗
- Asterisk 23 Documentation ↗
- Asterisk: Troubleshooting Module Loading ↗
- Asterisk: Types of Asterisk Modules ↗
- Asterisk: CLI Syntax and Help Commands ↗
- Asterisk 23 AMI Getvar action ↗
- Asterisk 23 AMI Setvar action ↗
- Asterisk 23 AMI VarSet event ↗
- Asterisk channel-variable setting and substitution ↗
- Asterisk channel-variable inheritance ↗
- Asterisk global-variable basics ↗
- Asterisk 23 SHARED dialplan function ↗
- Asterisk external-protocol dialplan-function safeguards ↗
- Asterisk AMI event filtering ↗
- Asterisk 23 AMI DBGet action ↗
- Asterisk 23 AMI DBGetTree action ↗
- Asterisk 23 AMI DBPut action ↗
- Asterisk 23 AMI DBDel action ↗
- Asterisk 23 AMI DBDelTree action ↗
- Asterisk internal database overview ↗
- Asterisk SQLite3 AstDB back end ↗
- Asterisk 23 PJSIPShowRegistrationsInbound action ↗
- Asterisk 22 PJSIPShowRegistrationsInbound action ↗
- Asterisk 23 PJSIPShowRegistrationInboundContactStatuses action ↗
- Asterisk 22 PJSIPShowRegistrationInboundContactStatuses action ↗
- Asterisk 23 PJSIPShowContacts action ↗
- Asterisk 23 InboundRegistrationDetail event ↗
- Asterisk 23 ContactStatusDetail event ↗
- Asterisk PJSIP configuration sections and relationships ↗
- Asterisk 23 PJSIPShowEndpoints action ↗
- Asterisk 23 PJSIPShowEndpoint action ↗
- Asterisk 23 EndpointList event ↗
- Asterisk 23 EndpointListComplete event ↗
- Asterisk 23 EndpointDetail event ↗
- Asterisk 23 EndpointDetailComplete event ↗
- Asterisk 23 res_pjsip configuration reference ↗
- Asterisk 23 PJSIPShowAors action ↗
- Asterisk 23 AorList event ↗
- Asterisk 23 AorListComplete event ↗
- Asterisk 23 AorDetail event ↗
- Asterisk 23 PJSIP_AOR function ↗
- Asterisk 23 PJSIP_CONTACT function ↗
- Asterisk PJSIP troubleshooting guide ↗
- Asterisk 23 ContactList event ↗
- Asterisk 23 ContactListComplete event ↗
- Asterisk 23 ContactStatus event ↗
- Asterisk 23 PJSIPQualify action ↗
- Asterisk 23 PJSIPShowAuths action ↗
- Asterisk 23 AuthList event ↗
- Asterisk 23 AuthListComplete event ↗
- Asterisk 23 AuthDetail event ↗
- Asterisk PJSIP authentication guide ↗
- Asterisk 23 PJSIPShowRegistrationsOutbound action ↗
- Asterisk 23 OutboundRegistrationDetail event ↗
- Asterisk 23 PJSIPRegister action ↗
- Asterisk 23 PJSIPUnregister action ↗
- Asterisk 23 Registry event ↗
- Asterisk 23 outbound-registration configuration reference ↗
- Asterisk outbound-registration configuration guide ↗
- Asterisk 23 TransportDetail event ↗
- Asterisk 23 AMI action index ↗
- Asterisk PJSIP transport-selection process ↗
- Asterisk 23 IdentifyDetail event ↗
- Asterisk 23 IP, header and request-URI identifier reference ↗
- Asterisk 23 PJSIPSetMaintenance action ↗
- Asterisk 23 PJSIPShowMaintenance action ↗
- Asterisk 23 PJSIPMaintenanceStatus event ↗
- Asterisk 23 PJSIPMaintenanceStatusComplete event ↗
- Asterisk 20 PJSIPSetMaintenance action ↗
- Asterisk 22 PJSIPSetMaintenance action ↗
- Certified Asterisk 22.8 PJSIPSetMaintenance action ↗
- Asterisk Dial application ↗
- Asterisk 23 VoicemailBoxSummary action ↗
- Asterisk 23 VoicemailForward action ↗
- Asterisk 23 VoicemailMove action ↗
- Asterisk 23 VoicemailRemove action ↗
- Asterisk 23 PlayDTMF action ↗
- Asterisk 23 PlayMF action ↗
- Asterisk 23 SendFlash action ↗
- Asterisk 22 PlayDTMF action ↗
- Asterisk 22 PlayMF action ↗
- Asterisk 22 SendFlash action ↗
- Asterisk 23 DTMFBegin event ↗
- Asterisk 23 AbsoluteTimeout action ↗
- Asterisk 22 AbsoluteTimeout action ↗
- Certified Asterisk 22.8 AbsoluteTimeout action ↗
- Asterisk 23 TIMEOUT dialplan function ↗
- Asterisk special dialplan extensions ↗
- Asterisk 23 HangupRequest event ↗
- Asterisk 23 SoftHangupRequest event ↗
- Asterisk 23 Hangup event ↗
- Asterisk 23 MuteAudio action ↗
- Asterisk 22 MuteAudio action ↗
- Certified Asterisk 22.8 MuteAudio action ↗
- Asterisk 23 MUTEAUDIO dialplan function ↗
- Asterisk 23 MixMonitorMute action ↗
- Asterisk 23 CoreShowChannel event ↗
- Asterisk 23 ControlPlayback AMI action ↗
- Asterisk 22 ControlPlayback AMI action ↗
- Certified Asterisk 22.8 ControlPlayback AMI action ↗
- Asterisk 23 ControlPlayback dialplan application ↗
- Asterisk 22 ControlPlayback dialplan application ↗
- Asterisk 23 CONTROL STREAM FILE AGI command ↗
- Certified Asterisk 22.8 Playback application ↗
- 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 Hangup AMI action ↗
- Asterisk 22 Hangup AMI action ↗
- Certified Asterisk 22.8 Hangup AMI action ↗
- Asterisk hangup cause mappings ↗
- Asterisk 23 CHANNEL dialplan function ↗
- 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 22 MessageSend AMI action ↗
- Certified Asterisk 22.8 MessageSend AMI action ↗
- Asterisk 23 MESSAGE dialplan function ↗
- Asterisk 23 MESSAGE_DATA dialplan function ↗
- Asterisk 23 ARI endpoints resource ↗
- 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 ↗
- Asterisk Agents AMI action ↗
- Asterisk AgentLogoff AMI action ↗
- Asterisk Agents AMI event ↗
- Asterisk AgentsComplete AMI event ↗
- Asterisk AgentLogin AMI event ↗
- Asterisk AgentLogoff AMI event ↗
- Asterisk AgentCalled AMI event ↗
- Asterisk AgentConnect AMI event ↗
- Asterisk AgentComplete AMI event ↗
- Asterisk AgentDump AMI event ↗
- Asterisk AgentRingNoAnswer AMI event ↗
- Asterisk AgentLogin dialplan application ↗
- Asterisk AGENT dialplan function ↗
- Asterisk app_agent_pool configuration ↗
- Asterisk FAXSession AMI action ↗
- Asterisk FAXSessions AMI action ↗
- Asterisk FAXStats AMI action ↗
- Asterisk FAXSession AMI event ↗
- Asterisk FAXSessionsEntry AMI event ↗
- Asterisk FAXSessionsComplete AMI event ↗
- Asterisk FAXStats AMI event ↗
- Asterisk FAXStatus AMI event ↗
- Asterisk ReceiveFAX dialplan application ↗
- Asterisk SendFAX dialplan application ↗
- Asterisk FAXOPT dialplan function ↗
- Asterisk PJSIPShowResourceLists AMI action ↗
- Asterisk ResourceListDetail AMI event ↗
- Asterisk resource list subscriptions guide ↗
- Asterisk res_pjsip_pubsub configuration ↗
- Asterisk DAHDIShowStatus AMI action ↗
- Asterisk DAHDIShowChannels AMI action ↗
- Asterisk DAHDIChannel AMI event ↗
- Asterisk SpanAlarm AMI event ↗
- Asterisk SpanAlarmClear AMI event ↗
- Asterisk channel fundamentals ↗
- Asterisk PRIShowSpans AMI action ↗
- Asterisk PRIDebugSet AMI action ↗
- Asterisk PRIDebugFileSet AMI action ↗
- Asterisk PRIDebugFileUnset AMI action ↗
- Asterisk logging configuration ↗
- Asterisk 20 SIPpeers AMI action ↗
- Asterisk 20 SIPshowpeer AMI action ↗
- Asterisk 20 SIPpeerstatus AMI action ↗
- Asterisk 20 SIPshowregistry AMI action ↗
- Asterisk chan_sip configuration status ↗
- Asterisk module deprecations ↗
- Asterisk chan_sip to res_pjsip migration ↗
- Asterisk current IAXpeers AMI action ↗
- Asterisk current IAXpeerlist AMI action ↗
- Asterisk current IAXregistry AMI action ↗
- Asterisk current IAXnetstats AMI action ↗
- Asterisk 22 IAXpeers AMI action ↗
- Asterisk 22 IAXpeerlist AMI action ↗
- Asterisk 22 IAXregistry AMI action ↗
- Asterisk 22 IAXnetstats AMI action ↗
- Asterisk IAX2 security guidance ↗
- Asterisk iax.conf sample ↗
- Asterisk chan_iax2 implementation source ↗
- Asterisk current BridgeTechnologyList AMI action ↗
- Asterisk current BridgeTechnologySuspend AMI action ↗
- Asterisk current BridgeTechnologyUnsuspend AMI action ↗
- Asterisk 22 BridgeTechnologyList AMI action ↗
- Asterisk 22 BridgeTechnologySuspend AMI action ↗
- Asterisk 22 BridgeTechnologyUnsuspend AMI action ↗
- Asterisk bridge-core AMI implementation ↗
- Asterisk BridgeList AMI action ↗
- Asterisk BridgeInfo AMI action ↗
- Asterisk bridge concepts ↗
- Asterisk current LoggerRotate AMI action ↗
- Asterisk 22 LoggerRotate AMI action ↗
- Asterisk basic logging commands ↗
- Asterisk bounded debug collection ↗
- Asterisk current ARI logging API ↗
- Asterisk current logger implementation ↗
- Asterisk current logger.conf sample ↗
- Asterisk initialization and logrotate installation ↗
- Asterisk getting a backtrace ↗
- Asterisk issue guidelines ↗
- Asterisk CLI commands useful for debugging ↗
- Asterisk Menuselect options ↗
- Asterisk debugging overview ↗
Examples require adaptation to your topology. No live PBX or hardware testing is claimed.