VoIP.info Troubleshooting

Asterisk PJSIP NOTIFY is not sent, is rejected or is ignored

Trace feature availability, notify content, target mode, loaded endpoint state, request routing, SIP response and endpoint action before changing a global PJSIP endpoint.

Reviewed 2026-10-13Current Asterisk branch-23 PJSIPNotify dialplan, AMI, res_pjsip_notify and res_pjsip configuration documentation, the October 9, 2024 Asterisk feature introduction, and RFC 6665 reviewed October 13, 2026; the dialplan application is documented since Asterisk 18.25.0, 20.10.0 and 21.5.0, while installed maintenance release, loaded module, endpoint and contact state, default outbound endpoint, configured notify type, vendor event contract, authorization, request routing, response and endpoint action remain deployment specific; no PBX, module, endpoint, contact, phone, URI, dialog, NOTIFY, response, packet, reboot, resync or call was inspected or testedAdvancedDocumentation based · not lab tested

Freeze one attempt and classify the first missing stage

Record timestamp and timezone, installed Asterisk branch and maintenance release, loaded module, invocation surface, named option or sanitized inline values, target mode and value, endpoint and contact state, channel and dialog identifiers where applicable, default outbound endpoint, emitted request, response and expected endpoint action.

Classify the first failure: unavailable feature, missing notify type, invalid header or body, target selection, no usable endpoint or dialog, arbitrary-URI configuration, transport or routing, SIP rejection, accepted-but-ignored request, or an action that began but did not complete.

Prove the selected surface exists on the installed release

The AMI action and module configuration are documented since Asterisk 12. The PJSIPNotify dialplan application arrived later and is documented since 18.25.0, 20.10.0 and 21.5.0. Confirm the actual maintenance release and that the providing module is loaded.

Current online branch-23 documentation does not prove that an older packaged release includes the dialplan application or its in-dialog extensions. Keep CLI, AMI and dialplan availability separate.

Validate the named option or inline content

For a named option, inspect the loaded pjsip_notify.conf section and compare every header, repeated Content line and content type with the intended contract. For AMI or dialplan inline values, preserve the parsed name-value pairs rather than the shell, manager-client or dialplan source string alone.

A missing option name, reserved routing header, malformed content type, lost separator or body-order difference can stop or change the request. Do not add Call-ID, Contact, CSeq, To, From, Record-Route, Route or Via to force module-owned routing.

Prove the target and request route

For an endpoint target, inspect the loaded endpoint and current contacts, then record where Asterisk actually sent the request. For an in-dialog target, prove the named or current channel is PJSIP and the intended dialog still exists. For a URI target, confirm the loaded default_outbound_endpoint and resulting request URI, Contact and transport.

Do not convert an endpoint failure into arbitrary-URI sending without understanding the changed identity and routing boundary. An extension label, AoR, contact URI, channel and physical phone are not interchangeable identifiers.

Separate SIP rejection from accepted-but-ignored behavior

Correlate one bounded PJSIP trace with the immediate response. Authentication, routing, unsupported event, dialog and general SIP errors belong to the responding hop. If the request receives 2xx, move to the endpoint contract: firmware support, event token, content type, body, authorization and local policy.

RFC 6665’s 489 means the server does not understand the named event package, while 481 can indicate that a matching subscription or dialog does not exist. A vendor-defined unsolicited command may have different documented expectations; preserve the method, target, Event, dialog context and responder instead of diagnosing from a number alone.

Verify the action independently and correct one boundary

Use approved device, provisioning or application evidence to determine whether the requested action began and completed. A missing packet is an Asterisk, target or network problem; a negative response is a SIP or peer-policy result; a 2xx with no action is usually an endpoint-contract or local-policy question.

Correct only the demonstrated boundary and repeat the same request plus a non-disruptive control. Remove temporary notify profiles and avoid bulk targets until one device path is understood. No PBX, module, endpoint, contact, phone, URI, dialog, NOTIFY, response, packet, reboot, resync or call was inspected or tested for this diagnostic.

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.