Freeze one disputed list transaction
Record the intended and observed Asterisk node, installed release, loaded module, exact action, ActionID, conference argument when used, manager session, initial response, every list event, completion event, timestamps, event filters, parser version and disputed UI result. Redact credentials and participant data.
Classify the first gap as wrong node, unavailable action, denied action, wrong conference, valid idle state, filtered rows, missing completion, interleaved transactions, parser loss, stale cache or a downstream conference problem.
Confirm module, action and permission before state
Check the running action inventory and app_confbridge module on the same node. Preserve an unknown-action or permission-denied response as such; neither proves there are no rooms or participants. Verify the manager account has only the approved read and event access required by the deployment.
Do not widen manager permissions globally or issue control actions to make a reporting collector succeed. Repair the demonstrated module or access boundary and repeat one bounded request.
Prove completion before calling the result empty
For ConfbridgeListRooms, require the matching ConfbridgeListRoomsComplete. For ConfbridgeList, require ConfbridgeListComplete. Correlate by ActionID, count only list events in that transaction and retain the initial response.
If completion is absent, investigate socket closure, timeout, reconnect, event filtering, intermediary truncation and parser state. A quiet interval is not a documented completion marker, and an incomplete series must not overwrite the last known good snapshot as an authoritative zero.
Resolve room identity and valid idle states
If the room inventory completes with no rows, confirm whether any channel is currently inside ConfBridge() on that node. Profiles and menus in confbridge.conf, a FreePBX Conferences destination and a dialable extension do not by themselves create an active conference.
If ConfbridgeList returns no participants, compare the exact Conference argument with the live room row and CLI output on the same node and time window. Do not normalize punctuation, tenant prefixes or numeric-looking identifiers without deployment evidence.
Separate snapshot disagreement from media failure
Compare room Parties with participant rows only within a bounded, completed pair of snapshots; joins and leaves between requests can legitimately change counts. Remember that room Parties includes both active and waiting users. Preserve each participant role, waiting and mute state rather than reducing membership to one count.
A correct list can coexist with caller admission, DTMF, marked-user lifecycle, one-way audio, mixing or recording failures. Continue with the FreePBX conference diagnostic for those symptoms instead of changing inventory parsing.
Retest one room and preserve the earliest fault
Start a clean authenticated session, issue ConfbridgeListRooms with a fresh ActionID, wait for its completion, then request one known room and wait for ConfbridgeListComplete. In an authorized window, compare separately timestamped CLI output and one known idle-state control.
Repair only the proven node, module, permission, identity, filter, framing, timeout, interleaving, parser or cache fault. No PBX, module, manager configuration, credential, session, conference, profile, menu, participant, channel, event stream, recording, packet, audio or live call was inspected or tested.
Establish a completed snapshot before changing state
The ConfBridge control diagnostic uses completed room and participant lists before and after one narrowly scoped action.
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.