0% found this document useful (0 votes)
475 views

Hangup Cause Code Table: About

The document describes hangup cause codes, providing mappings between Q.850 codes used in telephony and SIP error codes. It includes a table listing ITU-T Q.850 codes, possible SIP equivalents, numeric codes, and descriptions. The document notes these codes are defined in FreeSwitch source code and standards documents for ISDN, ISUP, and SIP interoperability.

Uploaded by

whatver johnson
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
475 views

Hangup Cause Code Table: About

The document describes hangup cause codes, providing mappings between Q.850 codes used in telephony and SIP error codes. It includes a table listing ITU-T Q.850 codes, possible SIP equivalents, numeric codes, and descriptions. The document notes these codes are defined in FreeSwitch source code and standards documents for ISDN, ISUP, and SIP interoperability.

Uploaded by

whatver johnson
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Hangup Cause Code Table

About
The default code is NORMAL_CLEARING (if you do not specify one)

The codes are documented in src/switch_channel.c and SIP Protocol Messages

IE stands for Information Element

Q.850 to SIP Code Table


The following table describes the mappings implemented by FreeSwitch (see mod_sofia.c:hangup_cause_to_sip). Unspecified causes codes (no
value in the "SIP Equiv." column in the table) are translated to SIP "480 Temporarily Unavailable" by FreeSwitch.

The table also contains non-standard codes above 127 (ISUP and ISDN only specify codes up to 127). These codes are used internally to
FreeSwitch to indicate other states. (These codes do not map directly to SIP error codes either.) The complete list of SWITCH_CAUSE_ codes
(switch_call_cause_t) is defined in include/switch_types.h.

See ITU-T Q.850 standard for a formal definition of standard telephony disconnect cause codes for ISDN, and the mapping between Q.931
(DSSS1) and ISUP codes.

See ITU Q.1912.5 for a formal definition of interoperability between ISUP and SIP, especially section 6.11 which specifies the "Reason" header
and gives the mapping of the disconnect cause codes between ISUP and SIP.

Another set of mappings are the Q.SIG / SIP mappings from RFC 4497 section 8.4.1. (Q.SIG is one of many extensions to Q.931 used for
PBX-to-PBX signalling on private links.)

In practice it appears that FreeSwitch implements neither Q.1912.5 nor RFC4497.

ITU-T SIP Enumeration Cause Description


Q.850 Equiv.
Code

0 UNSPECIFIED Unspecified. This is usually given by the router when none of the other codes apply. This
No other cause usually occurs in the same type of situations as cause 1, cause 88,
cause codes and cause 100.
applicable.

1 404 UNALLOCATED_NUMBER Unallocated This cause indicates that the called party cannot be reached because,
(unassigned) although the called party number is in a valid format, it is not currently
number allocated (assigned).
[Q.850 value
1]

2 404 NO_ROUTE_TRANSIT_NET No route to This cause indicates that the equipment sending this cause has received a
specified request to route the call through a particular transit network, which it does not
transit recognize. The equipment sending this cause does not recognize the transit
network network either because the transit network does not exist or because that
(national use) particular transit network, while it does exist, does not serve the equipment
[Q.850] which is sending this cause.

3 404 NO_ROUTE_DESTINATION No route to This cause indicates that the called party cannot be reached because the
destination network through which the call has been routed does not serve the
[Q.850] destination desired. This cause is supported on a network dependent basis.

6 CHANNEL_UNACCEPTABLE channel This cause indicates that the channel most recently identified is not
unacceptable acceptable to the sending entity for use in this call.
[Q.850]

7 CALL_AWARDED_DELIVERED call awarded, This cause indicates that the user has been awarded the incoming call, and
being that the incoming call is being connected to a channel already established to
delivered in that user for similar calls (e.g. packet-mode x.25 virtual calls).
an
established
channel
[Q.850]
16 NORMAL_CLEARING normal call This cause indicates that the call is being cleared because one of the users
clearing involved in the call has requested that the call be cleared. Under normal
[Q.850] situations, the source of this cause is not the network.

17 486 USER_BUSY user busy This cause is used to indicate that the called party is unable to accept
[Q.850] another call because the user busy condition has been encountered. This
cause value may be generated by the called user or by the network. In the
case of user determined user busy it is noted that the user equipment is
compatible with the call.

18 408 NO_USER_RESPONSE no user This cause is used when a called party does not respond to a call
responding establishment message with either an alerting or connect indication within the
[Q.850] prescribed period of time allocated.

19 480 NO_ANSWER no answer This cause is used when the called party has been alerted but does not
from user respond with a connect indication within a prescribed period of time. Note -
(user alerted) This cause is not necessarily generated by Q.931 procedures but may be
[Q.850] generated by internal network timers.

20 480 SUBSCRIBER_ABSENT subscriber This cause value is used when a mobile station has logged off, radio contact
absent is not obtained with a mobile station or if a personal telecommunication user
[Q.850] is temporarily not addressable at any user-network interface. Sofia SIP will
normally raise USER_NOT_REGISTERED in such situations.

21 603 CALL_REJECTED call rejected This cause indicates that the equipment sending this cause does not wish to
[Q.850] accept this call, although it could have accepted the call because the
equipment sending this cause is neither busy nor incompatible. The network
may also generate this cause, indicating that the call was cleared due to a
supplementary service constraint. The diagnostic field may contain additional
information about the supplementary service and reason for rejection.

22 410 NUMBER_CHANGED number This cause is returned to a calling party when the called party number
changed indicated by the calling party is no longer assigned, The new called party
[Q.850] number may optionally be included in the diagnostic field. If a network does
not support this cause, cause no: 1, unallocated (unassigned) number shall
be used.

23 410 REDIRECTION_TO_NEW_DESTINATION This cause is used by a general ISUP protocol mechanism that can be
invoked by an exchange that decides that the call should be set-up to a
different called number. Such an exchange can invoke a redirection
mechanism, by use of this cause value, to request a preceding exchange
involved in the call to route the call to the new number.

25 483 EXCHANGE_ROUTING_ERROR This cause indicates that the destination indicated by the user cannot be
reached, because an intermediate exchange has released the call due to
reaching a limit in executing the hop counter procedure. This cause is
generated by an intermediate node, which when decrementing the hop
counter value, gives the result 0.

27 502 DESTINATION_OUT_OF_ORDER destination This cause indicates that the destination indicated by the user cannot be
out of order reached because the interface to the destination is not functioning correctly.
[Q.850] The term "not functioning correctly" indicates that a signal message was
unable to be delivered to the remote party; e.g. a physical layer or data link
layer failure at the remote party, or user equipment off-line.

28 484 INVALID_NUMBER_FORMAT invalid This cause indicates that the called party cannot be reached because the
number called party number is not in a valid format or is not complete.
format
(address
incomplete)
[Q.850]

29 501 FACILITY_REJECTED facilities This cause is returned when a supplementary service requested by the user
rejected cannot be provide by the network.
[Q.850]

30 RESPONSE_TO_STATUS_ENQUIRY response to This cause is included in the STATUS message when the reason for
STATUS generating the STATUS message was the prior receipt of a STATUS
INQUIRY INQUIRY.
[Q.850]

31 480 NORMAL_UNSPECIFIED normal, This cause is used to report a normal event only when no other cause in the
unspecified normal class applies.
[Q.850]

34 503 NORMAL_CIRCUIT_CONGESTION no This cause indicates that there is no appropriate circuit/channel presently
circuit/channel available to handle the call.
available
[Q.850]
38 503 NETWORK_OUT_OF_ORDER network out of This cause indicates that the network is not functioning correctly and that the
order [Q.850] condition is likely to last a relatively long period of time e.g. immediately
re-attempting the call is not likely to be successful.

41 503 NORMAL_TEMPORARY_FAILURE temporary This cause indicates that the network is not functioning correctly and that the
failure [Q.850] condition is not likely to last a long period of time; e.g. the user may wish to
try another call attempt almost immediately.

42 503 SWITCH_CONGESTION switching This cause indicates that the switching equipment generating this cause is
equipment experiencing a period of high traffic.
congestion
[Q.850]

43 ACCESS_INFO_DISCARDED access This cause indicates that the network could not deliver access information to
information the remote user as requested, i.e. user-to-user information, low layer
discarded compatibility, high layer compatibility or sub-address as indicated in the
[Q.850] diagnostic. It is noted that the particular type of access information discarded
is optionally included in the diagnostic.

44 503 REQUESTED_CHAN_UNAVAIL requested This cause is returned when the other side of the interface cannot provide the
circuit/channel circuit or channel indicated by the requesting entity.
not available
[Q.850]

45 PRE_EMPTED

47 resource This cause is used to report a resource unavailable event only when no other
unavailable, cause in the resource unavailable class applies.
unspecified
[Q.850]

50 FACILITY_NOT_SUBSCRIBED requested This cause indicates that the user has requested a supplementary service,
facility not which is available, but the user is not authorized to use.
subscribed
[Q.850

52 403 OUTGOING_CALL_BARRED outgoing calls This cause indicates that although the calling party is a member of the CUG
barred for the outgoing CUG call, outgoing calls are not allowed for this member of
the CUG.

54 403 INCOMING_CALL_BARRED incoming calls This cause indicates that although the called party is a member of the CUG
barred for the incoming CUG call, incoming calls are not allowed to this member of
the CUG.

57 403 BEARERCAPABILITY_NOTAUTH bearer This cause indicates that the user has requested a bearer capability that is
capability not implemented by the equipment which generated this cause but the user is not
authorized authorized to use.
[Q.850]

58 503 BEARERCAPABILITY_NOTAVAIL bearer This cause indicates that the user has requested a bearer capability which is
capability not implemented by the equipment which generated this cause but which is not
presently available at this time.
available
[Q.850]

63 SERVICE_UNAVAILABLE service or This cause is used to report a service or option not available event only when
option not no other cause in the service or option not available class applies.
available,
unspecified
[Q.850]

65 488 BEARERCAPABILITY_NOTIMPL bearer This cause indicates that the equipment sending this cause does not support
capability not the bearer capability requested.
implemented
[Q.850]

66 CHAN_NOT_IMPLEMENTED channel type This cause indicates that the equipment sending this cause does not support
not the channel type requested
implemented
[Q.850]

69 501 FACILITY_NOT_IMPLEMENTED requested This cause indicates that the equipment sending this cause does not support
facility not the requested supplementary services.
implemented
[Q.850]

79 501 SERVICE_NOT_IMPLEMENTED service or This cause is used to report a service or option not implemented event only
option not when no other cause in the service or option not implemented class applies.
implemented,
unspecified
[Q.850]
81 INVALID_CALL_REFERENCE invalid call This cause indicates that the equipment sending this cause has received a
reference message with a call reference which is not currently in use on the
value [Q.850] user-network interface.

88 488 INCOMPATIBLE_DESTINATION incompatible This cause indicates that the equipment sending this cause has received a
destination request to establish a call which has low layer compatibility, high layer
[Q.850] compatibility or other compatibility attributes (e.g. data rate) which cannot be
accommodated.

95 INVALID_MSG_UNSPECIFIED invalid This cause is used to report an invalid message event only when no other
message, cause in the invalid message class applies.
unspecified
[Q.850]

96 MANDATORY_IE_MISSING mandatory This cause indicates that the equipment sending this cause has received a
information message which is missing an information element which must be present in
element is the message before that message can be processed.
missing
[Q.850]

97 MESSAGE_TYPE_NONEXIST message type This cause indicates that the equipment sending this cause has received a
non-existent message with a message type it does not recognize either because this is a
or not message not defined of defined but not implemented by the equipment
implemented sending this cause.
[Q.850]

98 WRONG_MESSAGE message not This cause indicates that the equipment sending this cause has received a
compatible message such that the procedures do not indicate that this is a permissible
with call state message to receive while in the call state, or a STATUS message was
or message received indicating an incompatible call state.
type
non-existent
or not
implemented.
[Q.850]

99 IE_NONEXIST Information This cause indicates that the equipment sending this cause has received a
element / message which includes information element(s)/parameter(s) not recognized
parameter because the information element(s)/parameter name(s) are not defined or are
non-existent defined but not implemented by the equipment sending the cause. This cause
or not indicates that the information element(s)/parameter(s) were discarded.
implemented However, the information element is not required to be present in the
[Q.850] message in order for the equipment sending the cause to process the
message.

100 INVALID_IE_CONTENTS Invalid This cause indicates that the equipment sending this cause has received and
information information element which it has implemented; however, one or more fields in
element the I.E. are coded in such a way which has not been implemented by the
contents equipment sending this cause.
[Q.850]

101 WRONG_CALL_STATE message not This cause indicates that a message has been received which is incompatible
compatible with the call state.
with call state
[Q.850]

102 504 RECOVERY_ON_TIMER_EXPIRE recovery on This cause indicates that a procedure has been initiated by the expiration of a
timer expiry timer in association with error handling procedures. This is often associated
[Q.850] with NAT problems. Ensure that "NAT Mapping Enable" is turned on in your
ATA. If it is not NAT related it can sometimes be provider related, make sure
to ensure another outbound provider does not solve the problem.
FreeSWITCH also returns this when the remote party sends a 408 for call
expired.

103 MANDATORY_IE_LENGTH_ERROR parameter This cause indicates that the equipment sending this cause has received a
non-existent message which includes parameters not recognized because the parameters
or not are not defined or are defined but not implemented by the equipment sending
implemented - this cause. The cause indicates that the parameter(s) were ignored. In
passed on addition, if the equipment sending this cause is an intermediate point, then
(national use) this cause indicates that the parameter(s) were passed unchanged.
[Q.850]

111 PROTOCOL_ERROR protocol error, This cause is used to report a protocol error event only when no other cause
unspecified in the protocol error class applies.
[Q.850]

127 INTERWORKING Interworking, This cause indicates that an interworking call (usually a call to SW56 service)
unspecified has ended.
[Q.850]

487 487 ORIGINATOR_CANCEL


500 CRASH

501 SYSTEM_SHUTDOWN

502 LOSE_RACE

503 MANAGER_REQUEST This cause is used when you send an api command to make it hangup. For
example uuid_kill <uuid>

600 BLIND_TRANSFER

601 ATTENDED_TRANSFER

602 ALLOTTED_TIMEOUT This cause means that the server canceled the call because the destination
channel took too long to answer.

603 USER_CHALLENGE

604 MEDIA_TIMEOUT

605 PICKED_OFF This cause means the call was picked up by intercepting it from another
extension (i.e. dialing **ext_number from another extension).

606 USER_NOT_REGISTERED This means you tried to originate a call to a SIP user who forgot to register.

607 PROGRESS_TIMEOUT See: progress_timeout

609 GATEWAY_DOWN Gateway is down (not answering on OPTIONS or SUBSCRIBE)

SIP to Q.850 Code Table


These mappings are taken from RFC 4497 section 8.4.4.

SIP Code ITU-T Q.850 Code Enumeration Cause

400 41 NORMAL_TEMPORARY_FAILURE Temporary failure [Q.850]

401 21 CALL_REJECTED Call rejected [Q.850]

402 21 CALL_REJECTED Call rejected [Q.850]

403 21 CALL_REJECTED Call rejected [Q.850]

404 1 NO_ROUTE_TRANSIT_NET Unallocated number [Q.850]

See also
mod_dptools: redirect
mod_dptools: respond

You might also like