# Q.931

ITU-T Recommendation Q.931 is the ITU standard ISDN connection control signalling protocol, forming part of Digital Subscriber Signalling System No. 1. Unlike connectionless systems like UDP, ISDN is connection oriented and uses explicit signalling to manage call state: Q.931. Q.931 typically does not carry user data. Q.931 does not have a direct equivalent in the Internet Protocol stack, but can be compared to SIP. Q.931 does not provide flow control or perform retransmission, since the underlying layers are assumed to be reliable and the circuit-oriented nature of ISDN allocates bandwidth in fixed increments of 64 kbit/s. Amongst other things, Q.931 manages connection setup and breakdown. Like TCP, Q.931 documents both the protocol itself and a protocol state machine.
Q.931 was designed for ISDN call establishment, maintenance, and release of network connections between two DTEs on the ISDN D channel. Q.931 has more recently been used as part of the VoIP H.323 protocol stack (see H.225.0) and in modified form in some mobile phone transmission systems and in ATM.
A Q.931 frame contains the following elements:
* Protocol discriminator (PD) – Specifies which signaling protocol is used for the connection (e.g. PD=8 for DSS1)
* Call reference value (CR) – Addresses different connections which can exist simultaneously. The value is valid only during the actual time period of the connection
* Message type (MT) – Specifies the type of a layer 3 message out of the Q.931-defined Message type set for call control (e.g. SETUP). There are messages defined for the call setup, the call release and the control of call features.
* Information elements (IE) – Specify further information which is associated to the actual message. An IE contains the IE name (e.g. bearer capability), their length and a variable field of contents.

## Message examples

Messages typically control or report the status of connections. For example:
* SETUP (indicating the establishment of a connection)
* CALL PROCEEDING (indicating that the call is being processed by the destination terminal)
* ALERTING (tells the calling party that the destination terminal is ringing)
* CONNECT (sent back to the calling party indicating that the intended destination has answered the call)
* DISCONNECT (sent to indicate a request to terminate the connection, by the end that seeks to terminate)
* RELEASE (sent in response to the disconnect request indicating that the call is to be terminated).
* RELEASE COMPLETE (sent by the receiver of the release to complete the handshake).
* RESTART (Reset D Channel to idle)

## Disconnect causes

| Hex | Decimal | Cause |
| 0x1 | 1 | Unallocated or unassigned number |
| 0x2 | 2 | No route to specified transit network (Transit Network Identity) |
| 0x3 | 3 | No route to destination |
| 0x4 | 4 | Send special information tone |
| 0x5 | 5 | Misdialled trunk prefix |
| 0x6 | 6 | Channel unacceptable |
| 0x7 | 7 | Call awarded and being delivered in an established channel |
| 0x8 | 8 | Prefix 0 dialed but not allowed |
| 0x9 | 9 | Prefix 1 dialed but not allowed |
| 0xA | 10 | Prefix 1 not dialed but required |
| 0xB | 11 | More digits received than allowed, call is proceeding |
| 0x10 | 16 | Normal call clearing |
| 0x11 | 17 | User busy |
| 0x12 | 18 | No user responding |
| 0x13 | 19 | T.301 expired: – User Alerted, No answer from user |
| 0x15 | 21 | Call rejected |
| 0x16 | 22 | Number changed to number in diagnostic field. |
| 0x17 | 23 | Reverse charging rejected |
| 0x18 | 24 | Call suspended |
| 0x19 | 25 | Call resumed |
| 0x1A | 26 | Non-selected user clearing |
| 0x1B | 27 | Destination out of order |
| 0x1C | 28 | Invalid number format or incomplete address |
| 0x1D | 29 | EKTS facility rejected by network |
| 0x1E | 30 | Response to STATUS ENQUIRY |
| 0x1F | 31 | Normal, unspecified |
| 0x21 | 33 | Circuit out of order |
| 0x22 | 34 | No circuit/channel available |
| 0x23 | 35 | Destination unattainable |
| 0x24 | 36 | Out of order |
| 0x25 | 37 | Degraded service |
| 0x26 | 38 | Network out of order |
| 0x27 | 39 | Transit delay range cannot be achieved |
| 0x28 | 40 | Throughput range cannot be achieved |
| 0x29 | 41 | Temporary failure |
| 0x2A | 42 | Switching equipment congestion |
| 0x2B | 43 | Access information discarded |
| 0x2C | 44 | Requested circuit channel not available |
| 0x2D | 45 | Preempted |
| 0x2E | 46 | Precedence call blocked |
| 0x2F | 47 | Resource unavailable, unspecified |
| 0x31 | 49 | Quality of service unavailable |
| 0x32 | 50 | Requested facility not subscribed |
| 0x33 | 51 | Reverse charging not allowed |
| 0x34 | 52 | Outgoing calls barred |
| 0x35 | 53 | Outgoing calls barred within CUG |
| 0x36 | 54 | Incoming calls barred |
| 0x37 | 55 | Incoming calls barred within CUG |
| 0x38 | 56 | Call waiting not subscribed |
| 0x39 | 57 | Bearer capability not authorized |
| 0x3A | 58 | Bearer capability not presently available |
| 0x3F | 63 | Service or option not available, unspecified |
| 0x41 | 65 | Bearer service not implemented |
| 0x42 | 66 | Channel type not implemented |
| 0x43 | 67 | Transit network selection not implemented |
| 0x44 | 68 | Message not implemented |
| 0x45 | 69 | Requested facility not implemented |
| 0x46 | 70 | Only restricted digital information bearer capability is available |
| 0x4F | 79 | Service or option not implemented, unspecified |
| 0x51 | 81 | Invalid call reference value |
| 0x52 | 82 | Identified channel does not exist |
| 0x53 | 83 | A suspended call exists, but this call identity does not |
| 0x54 | 84 | Call identity in use |
| 0x55 | 85 | No call suspended |
| 0x56 | 86 | Call having the requested call identity has been cleared |
| 0x57 | 87 | Called user not member of CUG |
| 0x58 | 88 | Incompatible destination |
| 0x59 | 89 | Non-existent abbreviated address entry |
| 0x5A | 90 | Destination address missing, and direct call not subscribed |
| 0x5B | 91 | Invalid transit network selection (national use) |
| 0x5C | 92 | Invalid facility parameter 93 Mandatory information element is missing |
| 0x5D | 93 | Message type non-existent or not implemented |
| 0x5F | 95 | Invalid message, unspecified |
| 0x60 | 96 | Mandatory information element is missing |
| 0x61 | 97 | Message type non-existent or not implemented |
| 0x62 | 98 | Message not compatible with call state or message type non-existent or not implemented |
| 0x63 | 99 | Information element nonexistent or not implemented |
| 0x64 | 100 | Invalid information element contents |
| 0x65 | 101 | Message not compatible with call state |
| 0x66 | 102 | Recovery on timer expiry |
| 0x67 | 103 | Parameter non-existent or not implemented – passed on |
| 0x6F | 111 | Protocol error, unspecified |
| 0x7F | 127 | Internetworking, unspecified |
| 0x80+ | 128 or higher | Proprietary diagnostic code (not necessarily bad). Typically used to pass proprietary control or maintenance messages between multiplexers. |

## Q.2931

Q.2931 is a modified and extended variant of Q.931 for use on "B-ISDN" or ATM networks. Q.2931 fulfils a purpose within BISDN similar to that of Q.931 in ISDN. Whilst ISDN allocates bandwidth in fixed 64k increments, B-ISDN/ATM incorporates an elaborate traffic management scheme, allowing precise specification of virtual circuit traffic parameters such as peak and mean bandwidth, jitter, cell loss ratio and so on. In order that ATM switches can manage bandwidth allocation in the network, encodings to express these parameters were added in Q.2931.
Unlike Q.931, although Q.2931 was implemented by many switch manufacturers, it was never widely deployed.