1 /*
2 * Copyright (c) 1997, 2000 Hellmuth Michaelis. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23 * SUCH DAMAGE.
24 *
25 *---------------------------------------------------------------------------
26 *
27 * i4b_cause.h - causes and cause handling for i4b
28 * -----------------------------------------------
29 *
30 * $Id: i4b_cause.h,v 1.1.1.1 2001/01/05 12:49:56 martin Exp $
31 *
32 * $FreeBSD$
33 *
34 * last edit-date: [Sun Feb 6 19:46:41 2000]
35 *
36 *---------------------------------------------------------------------------*/
37
38 #ifndef _I4B_CAUSE_H_
39 #define _I4B_CAUSE_H_
40
41 /*---------------------------------------------------------------------------*
42 * ISDN4BSD internal causes specification
43 *---------------------------------------------------------------------------*/
44
45 #define CAUSE_VAL 0x000000ff /* cause value */
46 #define CAUSE_TYPE 0x0000ff00 /* cause type */
47 #define CAUSET_Q850 0 /* value coded according to Q.850 */
48 #define CAUSET_I4B 1 /* i4b protocol independent causes*/
49
50 #define GET_CAUSE_VAL(cause) ((cause) & 0xff)
51 #define SET_CAUSE_VAL(dest, val) ((dest) = ((dest & 0xffffff00) | \
52 (val & 0x000000ff)))
53
54 #define GET_CAUSE_TYPE(cause) (((cause) >> 8) & 0xff)
55 #define SET_CAUSE_TYPE(dest, type) ((dest) = ((dest & 0xffff00ff) | \
56 ((type << 8) & 0x0000ff00)))
57
58 #define SET_CAUSE_TV(dest, type, val) ((dest) = ((val & 0x000000ff) | \
59 ((type << 8) & 0x0000ff00)))
60
61 /* CAUSET_I4B - protocol independent cause values */
62
63 #define CAUSE_I4B_NORMAL 0 /* normal call clearing */
64 #define CAUSE_I4B_BUSY 1 /* user busy */
65 #define CAUSE_I4B_NOCHAN 2 /* circuit/channel not available*/
66 #define CAUSE_I4B_INCOMP 3 /* incompatible source/dest */
67 #define CAUSE_I4B_REJECT 4 /* call rejected */
68 #define CAUSE_I4B_OOO 5 /* destination out of order */
69 #define CAUSE_I4B_TMPFAIL 6 /* temporary failure */
70 #define CAUSE_I4B_L1ERROR 7 /* L1 error / persistent deact */
71 #define CAUSE_I4B_LLDIAL 8 /* no dialout on leased line */
72 #define CAUSE_I4B_MAX 9
73 /* NOTE: update isdnd/pcause.c when adding causes !!!!! */
74 /* NOTE: update layer3/i4b_q931.c when adding causes !!!!! */
75
76 /* CAUSET_Q850 - causes defined in Q.850 */
77
78 #define CAUSE_Q850_SHUTDN 0x00 /* normal D-channel shutdown */
79 #define CAUSE_Q850_NUNALLC 0x01 /* Unallocated (unassigned) number */
80 #define CAUSE_Q850_NRTTN 0x02 /* No route to specified transit network */
81 #define CAUSE_Q850_NRTDST 0x03 /* No route to destination */
82 #define CAUSE_Q850_SSINFTN 0x04 /* Send special information tone */
83 #define CAUSE_Q850_MDIALTP 0x05 /* Misdialled trunk prefix */
84 #define CAUSE_Q850_CHUNACC 0x06 /* Channel unacceptable */
85 #define CAUSE_Q850_CALLAWD 0x07 /* Call awarded and being delivered in an established channel */
86 #define CAUSE_Q850_PREEMPT 0x08 /* Preemption */
87 #define CAUSE_Q850_PREECRR 0x09 /* Preemption - circuit reserved for reuse */
88 #define CAUSE_Q850_NCCLR 0x10 /* Normal call clearing */
89 #define CAUSE_Q850_USRBSY 0x11 /* User busy */
90 #define CAUSE_Q850_NOUSRRSP 0x12 /* No user responding */
91 #define CAUSE_Q850_NOANSWR 0x13 /* No answer from user (user alerted) */
92 #define CAUSE_Q850_SUBSABS 0x14 /* Subscriber absent */
93 #define CAUSE_Q850_CALLREJ 0x15 /* Call rejected */
94 #define CAUSE_Q850_NUCHNG 0x16 /* Number changed */
95 #define CAUSE_Q850_NONSELUC 0x1A /* Non-selected user clearing */
96 #define CAUSE_Q850_DSTOOORDR 0x1B /* Destination out of order */
97 #define CAUSE_Q850_INVNUFMT 0x1C /* Invalid number format */
98 #define CAUSE_Q850_FACREJ 0x1D /* Facility rejected */
99 #define CAUSE_Q850_STENQRSP 0x1E /* Response to STATUS ENQUIRY */
100 #define CAUSE_Q850_NORMUNSP 0x1F /* Normal, unspecified */
101 #define CAUSE_Q850_NOCAVAIL 0x22 /* No circuit / channel available */
102 #define CAUSE_Q850_NETOOORDR 0x26 /* Network out of order */
103 #define CAUSE_Q850_PFMCDOOSERV 0x27 /* Permanent frame mode connection out of service */
104 #define CAUSE_Q850_PFMCOPER 0x28 /* Permanent frame mode connection operational */
105 #define CAUSE_Q850_TMPFAIL 0x29 /* Temporary failure */
106 #define CAUSE_Q850_SWEQCONG 0x2A /* Switching equipment congestion */
107 #define CAUSE_Q850_ACCINFDIS 0x2B /* Access information discarded */
108 #define CAUSE_Q850_REQCNOTAV 0x2C /* Requested circuit/channel not available */
109 #define CAUSE_Q850_PRECALBLK 0x2E /* Precedence call blocked */
110 #define CAUSE_Q850_RESUNAVAIL 0x2F /* Resources unavailable, unspecified */
111 #define CAUSE_Q850_QOSUNAVAIL 0x31 /* Quality of service unavailable */
112 #define CAUSE_Q850_REQSERVNS 0x32 /* Requested facility not subscribed */
113 #define CAUSE_Q850_OCBARRCUG 0x35 /* Outgoing calls barred within CUG */
114 #define CAUSE_Q850_ICBARRCUG 0x36 /* Incoming calls barred within CUG */
115 #define CAUSE_Q850_BCAPNAUTH 0x39 /* Bearer capability not authorized */
116 #define CAUSE_Q850_BCAPNAVAIL 0x3A /* Bearer capability not presently available */
117 #define CAUSE_Q850_INCSTOACISC 0x3E /* Inconsistenciy in designated outgoing access information and subscriber class */
118 #define CAUSE_Q850_SOONOTAVAIL 0x3F /* Service or option not available, unspecified */
119 #define CAUSE_Q850_BCAPNOTIMPL 0x41 /* Bearer capability not implemented */
120 #define CAUSE_Q850_CHTYPNIMPL 0x42 /* Channel type not implemented */
121 #define CAUSE_Q850_REQFACNIMPL 0x45 /* Requested facility not implemented */
122 #define CAUSE_Q850_ORDINBCAVL 0x46 /* Only restricted digital information bearer capability is available */
123 #define CAUSE_Q850_SOONOTIMPL 0x4F /* Service or option not implemented, unspecified */
124 #define CAUSE_Q850_INVCLRFVAL 0x51 /* Invalid call reference value */
125 #define CAUSE_Q850_IDCHDNOEX 0x52 /* Identified channel does not exist */
126 #define CAUSE_Q850_SUSCAEXIN 0x53 /* A suspended call exists, but this call identity does not */
127 #define CAUSE_Q850_CLIDINUSE 0x54 /* Call identity in use */
128 #define CAUSE_Q850_NOCLSUSP 0x55 /* No call suspended */
129 #define CAUSE_Q850_CLIDCLRD 0x56 /* Call having the requested call identity has been cleared */
130 #define CAUSE_Q850_UNOTMEMCUG 0x57 /* User not member of CUG */
131 #define CAUSE_Q850_INCDEST 0x58 /* Incompatible destination */
132 #define CAUSE_Q850_NONEXCUG 0x5A /* Non-existent CUG */
133 #define CAUSE_Q850_INVNTWSEL 0x5B /* Invalid transit network selection */
134 #define CAUSE_Q850_INVMSG 0x5F /* Invalid message, unspecified */
135 #define CAUSE_Q850_MIEMISS 0x60 /* Mandatory information element is missing */
136 #define CAUSE_Q850_MSGTNI 0x61 /* Message type non-existent or not implemented */
137 #define CAUSE_Q850_MSGNCMPT 0x62 /* Message not compatible with call state or message type non-existent or not implemented */
138 #define CAUSE_Q850_IENENI 0x63 /* Information element/parameter non-existent or not implemented */
139 #define CAUSE_Q850_INVIEC 0x64 /* Invalid information element contents */
140 #define CAUSE_Q850_MSGNCWCS 0x65 /* Message not compatible with call state */
141 #define CAUSE_Q850_RECOTIMEXP 0x66 /* Recovery on timer expiry */
142 #define CAUSE_Q850_PARMNENIPO 0x67 /* Parameter non-existent or not implemented, passed on */
143 #define CAUSE_Q850_MSGUNRDPRM 0x6E /* Message with unrecognized parameter, discarded */
144 #define CAUSE_Q850_PROTERR 0x6F /* Protocol error, unspecified */
145 #define CAUSE_Q850_INTWRKU 0x7F /* Interworking, unspecified */
146
147 #define CAUSE_Q850_MAX 128
148
149 #endif /* _I4B_CAUSE_H_ */
Cache object: 6c44cb4cf8e08a23cfb2e21089ca05d9
|