Q.850 causes

Q.850 cause 47 (Resource unavailable, unspecified): what it means

Short answer: Q.850 cause 47 (Resource unavailable, unspecified) means some resource needed for the call was unavailable, and no other cause in the resource class applies. It is a generic shortage: media channels, transcoding, licenses or a gateway's capacity. Find out which device generated the cause and check its limits.

Cause 47 in the reference
Cause47
Official name (ITU-T Q.850)Resource unavailable, unspecified
ClassResource unavailable (34 to 47)
SIP response per RFC 3398SIP 503 Service Unavailable

How Monitor treats cause 47

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.

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 47 mean in practice?

Q.850 cause 47, Resource unavailable, unspecified, is used to report a resource unavailable event when no other cause in that class applies. It is the generic cause in the group that includes 34 (no circuit), 38 (network out of order), 41 (temporary failure) and 42 (congestion). Under RFC 3398 (section 7.2.4.1), cause 47 becomes SIP 503 Service Unavailable, so only the Reason: Q.850;cause=47 header (RFC 6432) or the TDM trace tells it apart from the others. It arrives in the ISUP REL on SS7 links and in the ISDN DISCONNECT. In Asterisk, ${HANGUPCAUSE} is set to 47, and the CDR shows hangupcause 47 when the field is recorded. Because it is unspecific, the most useful step is finding out which device generated it.

When it appears

  • A gateway or SBC without the DSP resources to transcode, for example from G.729 to G.711.
  • A media server or IVR with no free ports to play the announcement.
  • Concurrent call licenses used up on a gateway or SBC.
  • A lack of memory or free RTP ports on an overloaded device.
  • A GSM or E1 gateway that uses 47 for any unavailable port.

How to diagnose it

  1. In sngrep, see who answered with the 503 carrying cause=47, from the User-Agent or the Server.
  2. If it was your equipment, check transcoding: in Asterisk, core show translation shows the paths between codecs and core show channels the active calls.
  3. Compare the codecs offered in the SDP with those accepted on the other side; using the same codec at both ends avoids transcoding.
  4. Check the license limits and the RTP port range (rtpstart and rtpend in rtp.conf).
  5. Correlate the failures with peaks in concurrent calls.

What to send the carrier

  • Date, time and time zone of the failures.
  • The A and B numbers.
  • The Call-ID, the SIP/2.0 503 Service Unavailable line and the Reason with cause=47.
  • The codecs offered in your INVITE (the m= and a=rtpmap lines of the SDP).
  • How many concurrent calls there were on your side at the time.

Frequently asked questions

What is the difference between cause 34 and cause 47?

Cause 34 says specifically that a circuit or channel was missing. Cause 47 says some resource was missing, without saying which. Both become SIP 503 under RFC 3398. When the device knows the problem is a channel, it should use 34; 47 appears when the limit is something else, such as transcoding or a license.

Can cause 47 be a codec problem?

Indirectly, yes. If there is no codec in common and the gateway has to transcode, it spends DSP or CPU on that. When that resource runs out, the call can fail with cause 47. When there is no acceptable codec at all, the expected cause is a different one, such as 65, which becomes SIP 488 Not Acceptable Here.

Know before your customers do

Monitor calls every voice circuit all day and delivers each failure with the SIP code and the Q.850 cause as evidence.