Define the observation boundary first
Record the responding node, exact Asterisk build, loaded res_pjsip_pubsub module, configuration owner, manager identity and capture time. PJSIPShowResourceLists displays configured resource-list objects; it does not enumerate active subscription dialogs or prove that a phone accepted a NOTIFY.
Keep resource-list object name, list items, event package, endpoint, subscription dialog and device key or lamp as separate identifiers. Join them only where retained configuration and signaling evidence establish the relationship.
Close the AMI list with its completion marker
Send Action: PJSIPShowResourceLists with a unique ActionID, retain every matching ResourceListDetail, and wait for ResourceListDetailComplete. The action documentation says one detail event is issued for each configured resource-list object before the completion event.
A zero-row result is trustworthy only when the response and matching completion marker are present. Missing rows without completion can reflect collection timing, authorization, filters or a disconnected client rather than an empty configuration.
Interpret each configuration row narrowly
A ResourceListDetail row identifies ObjectType, ObjectName, SIP Event, FullState, comma-separated ListItem values, NotificationBatchInterval and ResourceDisplayName. Preserve the raw row and compare it with the reviewed pjsip.conf source.
These fields describe the configured object. They do not report which endpoint subscribed, whether each list item resolved, whether a dialog is active or whether a notification fit on the wire.
Understand list semantics before changing them
A resource list uses type = resource_list, an event package and one or more list_item entries. Lists can be nested. The documented policy applies the top-most list batching interval, and a name collision can resolve to the list when the subscriber advertises eventlist support.
Large full-state notifications can exceed the implementation message-size boundary, so the configuration guide recommends smaller sub-lists when necessary. Treat list structure, event package and device support as part of the contract.
Do not treat reload as a live-dialog update
The resource-list guide states that an established subscription keeps the list snapshot from setup time: later list changes and resources that appear later are not incorporated into that dialog. Terminate and re-establish the authorized subscription when validation requires the changed list.
After configuration inventory agrees, use the separate PJSIP subscription inventory and bounded SIP evidence to verify a new dialog, its event package, NOTIFY exchange and endpoint behavior.
Collect least-privilege evidence
Use a dedicated AMI identity with only the required action and event classes, source restrictions and explicit filters that allow the detail and completion events. Redact manager secrets, endpoint identities and tenant-specific object names while preserving ActionID, row count, raw field names, completion and timestamps.
No PBX, FreePBX system, module, configuration, manager account, credential, endpoint, subscription, SIP message, packet, notification or device was inspected or tested. Validate on one authorized disposable list and endpoint before operational reliance.
Sources & applicability
Primary references for the technical details above. Operational examples and planning checklists are VoIP.info editorial guidance.
- Asterisk PJSIPShowResourceLists AMI action ↗
- Asterisk ResourceListDetail AMI event ↗
- Asterisk resource list subscriptions guide ↗
- Asterisk res_pjsip_pubsub configuration ↗
- Asterisk PJSIP troubleshooting guide ↗
- Asterisk AMI v2 specification ↗
- Asterisk Manager TCP/IP API ↗
- Asterisk AMI event filtering ↗
- Asterisk network security guidance ↗
Examples require adaptation to your topology. No live PBX or hardware testing is claimed.