Freeze one node, object and contradiction
Record node, build, process start context, module state, configuration source, resource-list name, intended event package and items, manager identity, ActionID, response, detail rows, completion event and the first contradictory timestamp.
Classify the symptom as unknown or denied action, missing completion, missing object, stale fields, wrong event package, wrong membership, existing-dialog staleness, missing NOTIFY or endpoint display failure. Do not merge these layers.
Prove module and manager support first
Confirm res_pjsip_pubsub is loaded in the exact responding process and inventory the actions available to the authenticated AMI identity. Verify write authorization for the action and read authorization plus filters for both ResourceListDetail and ResourceListDetailComplete.
Repair module or AMI visibility before interpreting an absent row. An unsupported observation surface is not evidence that the configuration object or subscription failed.
Repeat a bounded completed inventory
Use a fresh ActionID, retain the action response and every matching detail row, and wait for the matching completion event. Compare the returned object names and raw fields with the authoritative pjsip.conf resource-list sections on that node.
If completion is absent, fix the collector, connection, read class or filter. If completion is present but the object is absent or stale, resolve configuration generation, include order, reload and node-selection ownership.
Validate list semantics and size separately
Check type = resource_list, event package, each list_item, nesting, full_state, batch interval and display-name setting. For nested lists, reason from the top-most interval. Check for a same-name individual resource when the subscriber advertises eventlist.
Estimate and observe the resulting NOTIFY size rather than assuming an item-count threshold. Split overly large lists into smaller sub-lists when the documented message-size limitation is implicated.
Re-establish the subscription after a list change
Do not expect an established dialog to absorb changed membership or a resource that appeared after setup. End the authorized test subscription and establish a new one, then inspect the separate PJSIP subscription inventory and bounded SIP SUBSCRIBE and NOTIFY evidence.
A correct AMI configuration row still does not prove an active dialog, accepted NOTIFY or updated lamp. Continue through endpoint event-package support and device rendering.
Repair the first owner and verify end to end
Correct only the demonstrated owner: module loading, AMI authorization or filters, collector completion, configuration generation or reload, object semantics, list size, subscription renewal, SIP delivery or endpoint behavior. Repeat one bounded inventory and one authorized fresh subscription.
Retain the before and after object row, completion marker, new dialog evidence and endpoint result without secrets. No PBX, module, configuration, manager session, endpoint, subscription, SIP message, packet, notification or device was inspected or tested.
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.