Choose inventory or detail before sending the action
PJSIPShowEndpoints inventories every loaded PJSIP endpoint. PJSIPShowEndpoint takes one exact endpoint name and expands that endpoint plus associated objects. Record the responding node, installed branch, configuration owner, manager identity, endpoint spelling and the question the transaction must answer.
Do not use endpoint, AoR, contact, registration and device as interchangeable labels. An endpoint is policy, an AoR groups contact locations, and a contact is a URI candidate. An outbound registration is a separate object. Similar names do not establish a relationship.
Read EndpointList as a compact aggregate row
For each endpoint, PJSIPShowEndpoints raises EndpointList with the object name, transport, AoR, inbound and outbound auth references, aggregate DeviceState, ActiveChannels and associated Contacts, then ends with EndpointListComplete. Retain the row as one timestamped summary.
DeviceState is an aggregate endpoint state, not a direct report of one phone registration. ActiveChannels is a count at the observation boundary, not a call ledger. The contacts field is not a substitute for contact-detail, expiry or qualification evidence.
Use single-endpoint detail to preserve object relationships
PJSIPShowEndpoint raises EndpointDetail plus associated AorDetail, AuthDetail, TransportDetail and IdentifyDetail events, with some associated object types appearing more than once. EndpointDetailComplete closes the transaction. Preserve every row and its object name rather than flattening repeated relationships into one value.
A detail response reports loaded configuration and current status fields. It does not prove the expected source matched an identify rule, a credential passed a challenge, a transport carried the request or an AoR contact answered.
Correlate each list with ActionID and completion
Supply a unique ActionID and retain the start response, related rows and the correct named completion event. A concurrent PJSIPShowEndpoints list and PJSIPShowEndpoint detail request have different row and completion contracts. Do not merge them by socket order.
AMI event-list sequences can be cancelled. A quiet socket, client timeout, disconnected session, expected row count or the arrival of a later unrelated event does not establish a complete snapshot.
Separate loaded state, aggregate state and service outcome
A loaded endpoint can have no contacts. A static contact can exist without REGISTER. A dynamic contact can expire after the list. device_state_busy_at can make endpoint device state report busy based on the in-use channel count. Qualification, registration, endpoint identification and active-channel lifecycle remain separate evidence.
For service acceptance, follow one authorized request through endpoint identification, authentication, AoR and contact selection, dialplan, signaling response, SDP and media. A list row cannot prove these downstream boundaries.
Protect the inventory and retain a bounded record
Endpoint names, auth references, contact URIs, identify relationships, transport names and active-channel counts can expose topology or account metadata. Restrict AMI privileges and network access, redact secrets, preserve timestamps and retain only the fields needed for the incident or audit.
No PBX, module, manager account, session, endpoint, AoR, auth, transport, identify, contact, channel, registration, qualification exchange, packet, media stream or live call was inspected or tested.
Relate endpoint detail to the all-AoR inventory
The AMI AoR inventory guide explains why endpoint-associated AorDetail and the complete AoR list answer different questions.
Resolve endpoint contact summaries to exact contact rows
The AMI contact-evidence guide keeps aggregate endpoint state separate from contact status, RTT and lifecycle evidence.
Resolve endpoint auth references through the all-auth inventory
The AMI auth-evidence guide compares endpoint-associated AuthDetail rows with the complete auth-object list.
Resolve associated TransportDetail safely
The AMI transport guide protects secret-bearing fields and distinguishes association from actual transport selection.
Resolve associated IdentifyDetail against the actual winner
The AMI identify guide distinguishes associated objects from identifier order and one request match.
Do not confuse endpoint inventory with maintenance state
The PJSIP maintenance-mode guide uses exact endpoint identity and completed status framing.
Use endpoint inventories as PJSIP evidence, not a peer clone
The AMI chan_sip migration guide maps the old peer question to endpoint and related PJSIP objects.
Sources & applicability
Primary references for the technical details above. Operational examples and planning checklists are VoIP.info editorial guidance.
- 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 PJSIP configuration sections and relationships ↗
- Asterisk 23 res_pjsip configuration reference ↗
- Asterisk AMI v2 specification ↗
- 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 PJSIPShowContacts action ↗
- Asterisk 23 ContactList event ↗
- Asterisk 23 ContactListComplete event ↗
- Asterisk 23 ContactStatus event ↗
- Asterisk 23 ContactStatusDetail event ↗
- Asterisk 23 inbound-registration contact-status action ↗
- 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 Manager TCP/IP API ↗
- 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 updating and upgrading guidance ↗
- 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 21 changes ↗
- Asterisk module deprecations ↗
- Asterisk chan_sip to res_pjsip migration ↗
- Asterisk ListCommands AMI action ↗
- Asterisk network security guidance ↗
Examples require adaptation to your topology. No live PBX or hardware testing is claimed.