VoIP.info Guide

Asterisk AMI PJSIP inbound registration inventories

Choose the correct AMI inventory for configured AoRs, dynamic inbound registrations or all contacts without turning one completed list into endpoint reachability or call evidence.

Reviewed 2026-10-19Current branch-23 and branch-22 PJSIPShowRegistrationsInbound and PJSIPShowRegistrationInboundContactStatuses references, current PJSIPShowContacts, InboundRegistrationDetail and ContactStatusDetail references, PJSIP object guidance and the AMI v2 specification were reviewed October 19, 2026. Installed branch, loaded registrar modules, manager action inventory and permissions, configuration owner, AoR and endpoint relationships, static and dynamic contacts, registration expiry, qualification policy, event framing, network path and call behavior remain deployment specific. No PBX, module, manager account, session, AoR, endpoint, static contact, dynamic registration, REGISTER transaction, qualification exchange, packet, media stream or live call was inspected or testedAdvancedDocumentation based · not lab tested

Name the object and question before listing

A PJSIP endpoint is a policy profile, an AoR groups contact locations, and a contact is one reachable URI candidate. An AoR can contain a statically configured contact, contacts created by inbound REGISTER requests, or both. Record the responding node, installed Asterisk branch, configuration owner, exact AoR and endpoint names, and whether the question concerns configuration, dynamic registration or every current contact.

Do not use the phrase “registered endpoint” as a substitute for those objects. A configured endpoint can have no contact; a static contact did not arrive through REGISTER; one AoR can have several dynamic contacts; and a contact record does not prove a successful call.

Read PJSIPShowRegistrationsInbound as the broad AoR dump it is

PJSIPShowRegistrationsInbound raises InboundRegistrationDetail rows for configured AoRs with contacts, including static and dynamic contacts, then terminates with InboundRegistrationDetailComplete. The official warning says the action is not a dynamic-registration-only list.

Use it when AoR configuration and associated contacts are the required evidence. Preserve ObjectName, MaxContacts, expiration and qualification settings, Contacts and the row-specific Contact. A static URI appearing here is expected and must not be reported as proof that a phone sent REGISTER.

Use the dynamic-only action for inbound registrations

PJSIPShowRegistrationInboundContactStatuses raises ContactStatusDetail for each dynamic contact created by inbound registration and ends with ContactStatusDetailComplete. It was introduced in the documented 13.14.0 and 14.3.0 maintenance lines, so verify the deployed action inventory rather than assuming an older branch exposes it.

The detail row includes AoR, URI, endpoint name, user agent, registration expiry, Via address, Call-ID, Path and qualification fields when available. These fields are registration and contact evidence, not credential disclosure, authorization proof or an instruction to publish identifying metadata.

Keep all-contact and endpoint-detail snapshots separate

PJSIPShowContacts lists all contacts as ContactList rows with a ContactListComplete boundary. It answers a broader contact-inventory question than the dynamic-only registrar action. PJSIPShowEndpoint instead emits the selected endpoint and associated AoR, auth, transport and identify objects before EndpointDetailComplete.

Choose the narrowest transaction that answers the question. Do not merge rows from concurrent requests by arrival time, and do not infer an endpoint-to-contact relationship from similar labels when the completed object detail can supply the actual association.

Correlate list completion, time and lifecycle changes

AMI list actions are bounded transactions. Supply a unique ActionID, retain the start response, every related row and the named completion event. The AMI specification says list sequences can also be cancelled; a socket timeout, quiet interval or arbitrary row count is not a substitute for completion.

Timestamp each snapshot. REGISTER refresh, de-registration, expiry, configuration reload, realtime change or another node can alter contact state immediately after the list. A completed inventory is evidence for its observation interval, not a historical ledger or a promise of future state.

Separate registration, qualification and call outcome

A dynamic contact with a future RegExpire proves a current registrar binding at the observed boundary. Reachable, Unreachable, NonQualified and Unknown in ContactStatusDetail belong to qualification state. Neither layer proves endpoint answer, dialplan selection, codec negotiation, RTP delivery or two-way audio.

Protect URI, Via, Call-ID, Path and user-agent data, constrain manager access and retention, and verify a service claim with its own authorized transaction and call evidence. No PBX, module, manager account, session, AoR, endpoint, static contact, dynamic registration, REGISTER transaction, qualification exchange, packet, media stream or live call was inspected or tested.

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.