VoIP.info Guide

Asterisk AMI PJSIP TransportDetail and secret-safe evidence

Read endpoint-associated transport detail without mistaking it for an all-transport inventory, listener proof, selected socket, TLS negotiation or SIP delivery.

Reviewed 2026-10-21Current branch-23 PJSIPShowEndpoint, TransportDetail, EndpointDetail, EndpointDetailComplete, AMI action-index and res_pjsip references plus transport-selection, object-relationship, troubleshooting and AMI guidance were reviewed October 21, 2026. The reviewed action index does not document a standalone PJSIP transport-list action; endpoint-associated TransportDetail is not a complete all-transport inventory. Installed release, linked PJSIP and TLS libraries, loaded modules, manager actions and permissions, configuration owner, transport population, listener state, connection reuse, DNS, certificate validation, selected message path and call behavior remain deployment specific. No PBX, module, manager account, session, endpoint, transport, password, private key, certificate, socket, connection, DNS result, packet, media stream or live call was inspected or testedAdvancedDocumentation based · not lab tested

Start from the single-endpoint transaction boundary

PJSIPShowEndpoint takes one exact endpoint name and raises EndpointDetail plus associated object events including TransportDetail, then finishes with EndpointDetailComplete. Retain the initial response, every associated row and the named terminal event under one ActionID.

TransportDetail is endpoint-associated evidence. The reviewed branch-23 AMI action index does not document a standalone PJSIPShowTransports action, so one endpoint response is not an all-transport inventory. Use the supported CLI or configuration owner when the question concerns every loaded transport.

Preserve object identity and endpoint association

Keep ObjectName, EndpointName, protocol and bind tuple together. An endpoint can omit an explicit transport and still send through a compatible object selected later from URI, DNS, address family and connection state. An associated row therefore describes loaded relationship and configuration, not necessarily the transport used by every request.

Do not merge same-named endpoint, transport, outbound-registration and provider objects. Record the responding node and installed branch because identical object names on another node or generated configuration source can represent different loaded state.

Treat TransportDetail as security-sensitive output

The current event schema includes Password, certificate and private-key file paths, CA locations, bind and external addresses, local networks, TLS verification flags, ciphers and keepalive controls. Redact the password and sensitive topology or file paths before general logs, tickets, traces or analytics receive them.

A private-key filename is not the key content, a certificate filename is not the served chain, and a cipher list is not proof of negotiated TLS. Restrict AMI access and retention even when the queried endpoint is otherwise public.

Keep loaded configuration, listener and selected connection separate

TransportDetail reports the loaded object. It does not prove that the operating system has the intended UDP listener, that a TCP or TLS connection exists, that a connection was reused, or that one request selected the object. Verify the local socket, actual message tuples and bounded SIP exchange separately.

For connection-oriented requests, Asterisk can reuse an existing connection to the resolved target. Without an explicit object it can choose the first configured compatible transport; UDP can follow a matching selection mechanism. Preserve URI, DNS result, address family, endpoint or registration owner, outbound proxy and live connection state.

Interpret versioned fields and reload controls narrowly

external_signaling_hostname is documented only in later maintenance releases, is mutually exclusive with external_signaling_address, and is not validated by Asterisk. TCP keepalive controls also have versioned introduction points. Missing fields can therefore reflect the installed branch rather than an empty configured value.

allow_reload defaults off because transport reload can disrupt active calls. A detail row showing a saved or loaded value does not prove that a structural bind, protocol, certificate or removed transport changed safely; preserve the authoritative owner and the installed release’s activation boundary.

Correlate detail with signaling and service evidence

After redaction, compare the row with the authoritative configuration, CLI transport view, local listener, selected connection, final Via and Contact, TLS peer and negotiated parameters, SIP response, SDP and both media directions. Each observation closes a different gap.

An EndpointDetailComplete event proves the AMI transaction completed, not that transport setup or a call succeeded. No PBX, manager session, endpoint, transport, secret, certificate, socket, 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.