VoIP.info Guide

Asterisk AMI PJSIP IdentifyDetail and endpoint-match evidence

Read endpoint-associated identify detail without mistaking loaded criteria for a complete identify inventory, the winning identifier or proof that an inbound request matched.

Reviewed 2026-10-21Current branch-23 PJSIPShowEndpoint, IdentifyDetail, EndpointDetail, EndpointDetailComplete, AMI action-index, res_pjsip and endpoint-identifier references plus current configuration-relationship, troubleshooting and AMI guidance were reviewed October 21, 2026. The reviewed branch-23 AMI action index does not document a standalone identify-object list action. The current generated identifier reference explicitly supports hostnames, while the older troubleshooting article still says identify match values cannot be hostnames; this documentation conflict is preserved rather than flattened. Installed release, distributor patches, loaded modules, manager actions and permissions, configuration owner, Sorcery mapping, DNS expansion, identifier order, endpoint policy and inbound request behavior remain deployment specific. No PBX, module, manager account, session, endpoint, identify object, hostname, DNS answer, SIP request, packet, route, media stream or live call was inspected or testedAdvancedDocumentation based · not lab tested

Start from one completed endpoint-detail transaction

PJSIPShowEndpoint takes one exact endpoint name and can emit IdentifyDetail rows among its associated object events before EndpointDetailComplete. Retain the initial response, every associated row and the terminal event under one ActionID.

The reviewed branch-23 AMI action index does not document a standalone identify-object list action. Endpoint-associated rows therefore cannot be treated as a complete node-wide identify inventory; use the supported CLI or configuration owner when the question concerns every loaded identify object.

Preserve identify-object and endpoint identity

IdentifyDetail exposes ObjectName, the configured Endpoint, EndpointName, SrvLookups, Match, MatchHeader and MatchRequestUri. Keep these fields together and preserve repeated objects rather than collapsing criteria into one string.

The row describes an identify object associated with the queried endpoint. It does not establish that the object was considered first, that its criteria were the winning match, or that a particular SIP request reached that endpoint.

Read criteria as alternatives within the object

The current identifier-module reference says at least one matching mechanism is required and that, when several criteria are present, an inbound request maps to the endpoint if any criterion matches. Source address, configured header and Request-URI are therefore alternatives inside that identify object, not a required cumulative chain.

Header and Request-URI values can be regular expressions, which the reference warns are expensive. Record exact expression ownership and negative cases; a broad expression or network can claim traffic before the intended endpoint is evaluated.

Separate hostname configuration from loaded addresses

The branch-23 generated reference allows IP addresses or hostnames in match. With srv_lookups enabled and no source port, Asterisk performs the documented SIP SRV lookups and adds resolved A and AAAA addresses. If SRV fails, lookups are disabled, or a port is supplied, it resolves the hostname directly.

That is load-time matching state, not a guarantee about every future provider address. Preserve the configured hostname, DNS evidence, loaded expansion, source port and actual packet source independently.

Keep documentation age and identifier order visible

The current generated reference explicitly supports hostnames, while the older PJSIP troubleshooting article still says identify values cannot use hostnames. Treat that as a documentation-age conflict and verify the installed branch instead of repeating either statement as universal.

Global endpoint_identifier_order controls which installed identifier runs first; the current default is ip,username,anonymous, and pjsip show identifiers reports what is actually available. Endpoint identify_by permits methods for that endpoint. An associated detail row does not prove order, eligibility or the eventual winner.

Correlate loaded detail with one inbound request

After redacting customer identifiers, compare the associated row with the authoritative configuration, CLI identify inventory, loaded endpoint, resolved addresses, source tuple, Request-URI, relevant header, global order and the first endpoint-selection evidence for one authorized request. Then follow authentication, context, dialplan, signaling and media as separate stages.

EndpointDetailComplete proves the AMI transaction completed; it does not prove an identify rule matched or a call succeeded. No PBX, manager session, endpoint, identify object, DNS answer, 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.