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.
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 ↗
Examples require adaptation to your topology. No live PBX or hardware testing is claimed.