Freeze one control attempt and its expected transition
Record node, release, module, manager identity and permissions, action, exact Registration value, correlation value, pre-action completed detail, immediate response, SIP exchange, Registry events, post-action completed detail and observation beyond the earlier refresh boundary. Redact credentials and protected auth fields.
Classify the first mismatch: action absent; permission denied; list incomplete; object absent or wrong; action rejected; no SIP request; registrar rejection; state changed then reverted; observer missed an event; or registration changed but the separate call path did not.
Prove action availability and manager authority
Confirm the installed branch exposes the action and res_pjsip_outbound_registration is loaded. Verify the manager identity can execute the action and receive the required command and system events through its protected connection.
A connected manager socket is not authorization. Current branch-23 documentation is not proof that an older distribution exposes the same action, fields or behavior.
Resolve the object from a completed list
Require OutboundRegistrationDetailComplete, then match ObjectName exactly. Compare client and server URIs, proxy, transport, auth reference, status, retry controls and NextReg. Do not stop parsing when one target row appears because associated auth rows and terminal counters remain part of the transaction.
Do not substitute *all for an unresolved name. A FreePBX trunk label, SIP username and registration object name can differ.
Test the documented unregister disagreement safely
The action page says unregister stops later attempts; the configuration guide says manual unregister can re-register from the prior expiration. Preserve both statements and test only one authorized object on the installed branch.
Observe the unregister request and response when present, a fresh list, any Registry event and state beyond the old refresh boundary. Do not interpret temporary silence as proof that retries are disabled.
Keep action, event, detail and packet evidence distinct
An AMI success shows request acceptance, not registrar success. Registry can emit Registered, Unregistered, Rejected or Failed; OutboundRegistrationDetail documents Registered, Unregistered or Rejected; CLI guidance also describes Stopped. Retain producer and timestamp.
If no packet follows acceptance, investigate object and runtime state. If a request receives no response, investigate destination and transport. If it is rejected, follow authentication, registrar policy and exact response.
Correct the first divergence and retest one object
Correct only the proven boundary: release, module, AMI permission, parser, object name, configuration ownership, proxy, transport, authentication, retry policy or registrar requirement. Repeat one action, complete the list, observe the next scheduled refresh and verify unrelated objects.
Do not build an automatic action loop that defeats retry policy or provider limits. Registration is not proof of inbound routing, outbound calling or media. No PBX, manager session, registration, packet, provider binding, media stream or live call was inspected or tested.
Do not infer state from an accepted control response
The AMI list diagnostic correlates control, Registry, SIP and completed-list evidence.
Sources & applicability
Primary references for the technical details above. Operational examples and planning checklists are VoIP.info editorial guidance.
- Asterisk 23 PJSIPShowRegistrationsOutbound action ↗
- Asterisk 23 OutboundRegistrationDetail event ↗
- Asterisk 23 AuthDetail event ↗
- Asterisk 23 PJSIPRegister action ↗
- Asterisk 23 PJSIPUnregister action ↗
- Asterisk 23 Registry event ↗
- Asterisk 23 outbound-registration configuration reference ↗
- Asterisk outbound-registration configuration guide ↗
- Asterisk PJSIP troubleshooting guide ↗
- Asterisk AMI v2 specification ↗
- Asterisk Manager TCP/IP API ↗
Examples require adaptation to your topology. No live PBX or hardware testing is claimed.