Initial import from FreeBSD RELENG_4:
[dragonfly.git] / usr.sbin / i4b / isdntrace / pcause_1tr6.c
1 /*
2  * Copyright (c) 1997, 1999 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  *      printing cause values
28  *      ---------------------
29  *
30  *      $Id: pcause_1tr6.c,v 1.6 1999/12/13 21:25:26 hm Exp $
31  *
32  * $FreeBSD: src/usr.sbin/i4b/isdntrace/pcause_1tr6.c,v 1.6.2.1 2001/08/01 17:45:08 obrien Exp $
33  *
34  *      last edit-date: [Mon Dec 13 21:56:03 1999]
35  *
36  *---------------------------------------------------------------------------*/
37
38 #include "trace.h"
39 #include "pcause_1tr6.h"
40
41 char *
42 print_cause_1tr6(unsigned char code)
43 {
44         static char error_message[120];
45         char *e;
46
47         switch(code)
48         {
49                 case CAUSE_1TR6_SHUTDN:
50                         e = "normal D-channel shutdown";
51                         break;
52
53                 case CAUSE_1TR6_ICRV:
54                         e = "invalid call reference value";
55                         break;
56
57                 case CAUSE_1TR6_BSNI:
58                         e = "bearer service not implemented";
59                         break;
60
61                 case CAUSE_1TR6_CIDNE:
62                         e = "call identity does not exist";
63                         break;
64
65                 case CAUSE_1TR6_CIIU:
66                         e = "call identity in use";
67                         break;
68
69                 case CAUSE_1TR6_NCA:
70                         e = "no channel available";
71                         break;
72
73                 case CAUSE_1TR6_RFNI:
74                         e = "requested facility not implemented";
75                         break;
76
77                 case CAUSE_1TR6_RFNS:
78                         e = "requested facility not subscribed";
79                         break;
80
81                 case CAUSE_1TR6_OCB:
82                         e = "outgoing calls barred";
83                         break;
84
85                 case CAUSE_1TR6_UAB:
86                         e = "user access busy";
87                         break;
88
89                 case CAUSE_1TR6_NECUG:
90                         e = "non existent CUG";
91                         break;
92
93                 case CAUSE_1TR6_NECUG1:
94                         e = "non existent CUG";
95                         break;
96
97                 case CAUSE_1TR6_SPV:
98                         e = "kommunikationsbeziehung als SPV nicht erlaubt";
99                         break;
100
101                 case CAUSE_1TR6_DNO:
102                         e = "destination not obtainable";
103                         break;
104
105                 case CAUSE_1TR6_NC:
106                         e = "number changed";
107                         break;
108
109                 case CAUSE_1TR6_OOO:
110                         e = "out of order";
111                         break;
112
113                 case CAUSE_1TR6_NUR:
114                         e = "no user responding";
115                         break;
116
117                 case CAUSE_1TR6_UB:
118                         e = "user busy";
119                         break;
120
121                 case CAUSE_1TR6_ICB:
122                         e = "incoming calls barred";
123                         break;
124
125                 case CAUSE_1TR6_CR:
126                         e = "call rejected";
127                         break;
128
129                 case CAUSE_1TR6_NCO:
130                         e = "network congestion";
131                         break;
132
133                 case CAUSE_1TR6_RUI:
134                         e = "remote user initiated";
135                         break;
136
137                 case CAUSE_1TR6_LPE:
138                         e = "local procedure error";
139                         break;
140
141                 case CAUSE_1TR6_RPE:
142                         e = "remote procedure error";
143                         break;
144
145                 case CAUSE_1TR6_RUS:
146                         e = "remote user suspended";
147                         break;
148
149                 case CAUSE_1TR6_RUR:
150                         e = "remote user resumed";
151                         break;
152
153                 case CAUSE_1TR6_UIDL:
154                         e = "user info discharded locally";
155                         break;
156
157                 default:
158                         e = "UNKNOWN error occured";
159                         break;
160         }
161
162         sprintf(error_message, "0x%02x: %s", code & 0x7f, e);   
163         return(error_message);
164 }
165
166 /* EOF */