VoIP.info Guide

Asterisk AMI queue reload, rule inspection and statistics-reset controls

Scope QueueReload subsections, inspect named queue rules and treat QueueReset as an explicit statistics operation with separate runtime, history and call-outcome verification.

Reviewed 2026-10-17Current branch-23-generated and branch-22 QueueReload, QueueRule, QueueReset and QueueStatus action references, the Asterisk queue-log guide, Asterisk 20 upgrade notes, the current official queuerules.conf sample and the AMI v2 specification reviewed October 17, 2026; configuration owner, stored source, generated files, selected reload scope, action response, raw rule result, completed later queue snapshot, statistics, historical logs, active callers and call outcomes remain separate evidence boundaries; the generated action pages do not document defaults for omitted QueueReload subsection fields or a QueueRule row and completion schema, so neither is invented; no PBX, module, queue, configuration, manager account, session, rule, statistic, report, caller, member, endpoint, packet, audio or live call was inspected or testedAdvancedDocumentation based · not lab tested

Resolve the configuration owner and pre-change state

Start with the responding node, installed Asterisk release, loaded app_queue module, exact case-sensitive queue name, manager account and current configuration owner. Preserve the stored source, any generated queues.conf or queuerules.conf, a completed pre-change QueueStatus snapshot, the named rule result, relevant queue statistics and bounded queue-log evidence.

On a FreePBX-managed system, GUI storage, generated Asterisk files and runtime state are distinct authorities. An AMI reload neither saves a GUI edit nor proves that a later regeneration will retain the runtime result. Do not edit generated files until ownership and regeneration behavior are known.

Scope QueueReload to a queue and explicit subsections

QueueReload can reload one queue, multiple queues through an all-queue request, or selected subsections. When Queue is omitted, the action affects all queues. Members selects queue members, Rules selects queuerules.conf, and Parameters selects the other queue options; each accepts yes or no.

The generated action pages do not state defaults for omitted subsection fields. Supply an explicit value for every subsection, record the exact ActionID and never call a request a full reload unless its intended member, rule and parameter scopes were all stated. An accepted response is not proof that the intended source file existed, parsed, belonged to that queue or survived a later configuration apply.

Reload and inspect queue rules without widening claims

With Rules: yes, QueueReload reloads queuerules.conf. QueueRule lists the rule whose name is supplied in Rule; it is rule inspection, not a queue-member or waiting-caller snapshot. The official sample describes relative or absolute penalty changes and notes that callers follow the rules present when they entered the queue, so a mid-wait rule update is not reflected for that caller.

Preserve the raw QueueRule response frames and ActionID. The generated action page says the action lists a named rule but does not document a row event or terminal completion schema. Verify framing on the installed branch rather than inventing event names, parsing socket silence as completion or claiming that a successful list proves active callers adopted the new rule.

Treat QueueReset as an explicit destructive boundary

QueueReset requires an exact Queue and resets statistics for that queue. Capture authorized before values and confirm the queue identity before sending it. Do not use reset as a diagnostic step while evidence is still being collected, and do not infer that a general module reload performs the same operation.

Asterisk 20 changed full app_queue module reload behavior so queue and agent statistics are not reset; its upgrade guide retains an explicit queue-reset CLI operation. QueueReset does not claim to delete queue_log, CDR, CEL, external reports or recordings, and it does not prove that a dashboard cache refreshed. Preserve those historical and presentation layers separately.

Verify response, runtime state and history independently

After a targeted reload, obtain a later completed QueueStatus snapshot for the exact queue and compare only the members or runtime fields that the action intended to reload. Re-run QueueRule for each named rule whose source changed. Retain parser errors and module logs; a successful manager response is transaction evidence, not a complete configuration diff.

After QueueReset, re-read the queue statistics that matter and timestamp the observation. Keep active callers, member availability, offers, answers and media outside the reset claim. Queue logs and CDR or CEL retain different event histories, while external reporting may ingest or cache them on its own schedule.

Validate one disposable queue and negative scopes

In an approved nonproduction window, use one disposable queue. Capture before state, change one controlled parameter or member source, send a one-queue reload with all three subsection flags explicit, and compare the response with the later snapshot and named-rule output. Separately test nonexistent queue, rule, denied account and parse-error cases. Exercise omitted-queue scope only where every queue may safely reload.

If a statistics reset is required, archive the authorized before evidence, reset only the disposable queue, and verify statistics, historical logs and reporting views separately. No PBX, module, queue, configuration, manager account, session, rule, statistic, report, caller, member, endpoint, packet, audio or live call was inspected or tested; documentation does not establish availability, compatibility, persistence, parsing success, caller treatment or call outcome.

Sources & applicability

Primary references for the technical details above. Operational examples and planning checklists are VoIP.info editorial guidance.

Examples require adaptation to your topology. No live PBX or hardware testing is claimed.