Q.850 cause 18 (No user responding): what it means
Short answer: Q.850 cause 18 (No user responding) means the destination did not respond to the call request, either by ringing or by answering, within the allowed time. It is not busy or a rejection: the device simply did not react. In SIP it is usually a registered extension that stopped responding, because of NAT or a firewall. Check the registration and the traffic.
| Cause | 18 |
|---|---|
| Official name (ITU-T Q.850) | No user responding |
| Class | Normal event (1 to 31) |
| SIP response per RFC 3398 | SIP 408 Request Timeout |
How Monitor treats cause 18
When the carrier gives the Q.850 cause in the Reason header of the SIP response, Monitor keeps it beside the SIP code on every test call, and it appears in the incident's evidence, ready for the ticket with the carrier. On the English screens, cause 18 reads: no device responded
.
Cause 18 also decides how a SIP 480 is read, since on its own a 480 does not say whether the destination rang or nothing answered:
| What should answer the number | SIP 480 with cause 18 |
|---|---|
| A greeting or recorded message (the IVR) | Down |
| A test tone or echo service | Down |
| Other: it may ring or be answered | Down |
Like any failure, a test call read as Down is repeated 3 times, every 2 minutes, and only 4 failures in a row open an incident.
What does cause 18 mean in practice?
Q.850 cause 18, No user responding, is used when the destination does not respond to the call setup request with an alerting (ringing) or answer indication within the allowed time. The difference from cause 19 is that with 19, the phone rang and nobody answered; with 18, not even the ringing was confirmed. Under RFC 3398 (section 7.2.4.1), cause 18 becomes SIP 408 Request Timeout. In the other direction, the RFC maps SIP 480 Temporarily Unavailable to 18, which is why a 480 from the carrier can show up on your PBX as cause 18. In SS7 it comes in the ISUP REL; in SIP, in a Reason: Q.850;cause=18 (RFC 6432). In Asterisk, ${HANGUPCAUSE} is set to 18 and, where the CDR records the field, it appears as hangupcause 18.
When it appears
- A SIP extension registered behind NAT whose mapping has expired: the INVITE does not arrive and nobody responds.
- A mobile softphone in the background that does not wake up in time.
- An IP phone unplugged before its registration expired.
- A router with SIP ALG that alters or drops the INVITE.
- A mobile phone with no signal, on networks that return 18 instead of 20.
- A customer’s PBX, behind an 0800 number, that receives the INVITE and does not even return 100 Trying.
How to diagnose it
- In
sngrep, see whether the destination responded at all: with no 100 Trying and no 180 Ringing, the INVITE probably did not arrive. - In Asterisk,
pjsip show contactsshows whether the contact is reachable on qualify;pjsip show registrationsshows your trunk’s registration with the carrier. - Turn on
qualify_frequencyon the AOR (PJSIP) orqualify=yes(chan_sip) to detect dead contacts before the call. - Disable SIP ALG on the router and adjust the phone’s NAT keepalive.
- If the 408 comes from the carrier, check whether the INVITE left your firewall with
tcpdump -i any port 5060.
What to send the carrier
- Date, time and time zone of each attempt.
- The A and B numbers.
- The Call-ID and the final response received (
SIP/2.0 408 Request Timeoutor 480), with the Reason. - Whether there was a 100 Trying or 180 Ringing before the failure.
- The pcap showing that the INVITE left your network.
Frequently asked questions
What is the difference between cause 18 and cause 19?
With cause 18 (No user responding), the destination did not even confirm ringing in time. With cause 19 (No answer from user, user alerted), the phone rang and nobody answered. The first points to equipment that is unreachable or silent; the second, to nobody being available. Under RFC 3398, 18 becomes SIP 408 and 19 becomes SIP 480.
Why did a SIP 480 become cause 18 on my PBX?
Because RFC 3398 maps SIP 480 Temporarily Unavailable to Q.850 cause 18 when the call passes from SIP to the telephone network. If the carrier sent the Reason header, it carries the original cause, and it is better to trust it than the table's translation, which can hide a cause 20 or 31.