#include <string.h> and/or #include <stdio.h> not needed.
[obnox/wireshark/wip.git] / epan / dissectors / packet-isup.h
1 /* packet-isup.h
2  *
3  * $Id$
4  *
5  * Copyright 2003, Michael Lum <mlum [AT] telostech.com>,
6  * In association with Telos Technology Inc.
7  *
8  * Wireshark - Network traffic analyzer
9  * By Gerald Combs <gerald@wireshark.org>
10  * Copyright 1998 Gerald Combs
11  *
12  * This program is free software; you can redistribute it and/or
13  * modify it under the terms of the GNU General Public License
14  * as published by the Free Software Foundation; either version 2
15  * of the License, or (at your option) any later version.
16  *
17  * This program is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20  * GNU General Public License for more details.
21  *
22  * You should have received a copy of the GNU General Public License
23  * along with this program; if not, write to the Free Software
24  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25  */
26
27 #ifndef PACKET_ISUP_H
28 #define PACKET_ISUP_H
29
30 #define ISUP_MAX_NUM_MESSAGE_TYPES      256
31
32 typedef struct _isup_tap_rec_t {
33     guint8              message_type;
34     /* added for VoIP calls analysis, see gtk/voip_calls.c*/
35     gchar           *called_number;
36     gchar           *calling_number;
37     guint8                      cause_value;
38 } isup_tap_rec_t;
39
40
41 /*
42  * the following allows TAP code access to the messages
43  * without having to duplicate it. With MSVC and a 
44  * libwireshark.dll, we need a special declaration.
45  */
46 WS_VAR_IMPORT const value_string isup_message_type_value[];
47 WS_VAR_IMPORT const value_string isup_message_type_value_acro[];
48 WS_VAR_IMPORT const value_string q850_cause_code_vals[];
49 /*
50  * Export some definitions and value_string tables for other dissectors
51  */
52
53 /* Definition of Parameter Types */
54 #define PARAM_TYPE_END_OF_OPT_PARAMS      0
55 #define PARAM_TYPE_CALL_REF               1
56 #define PARAM_TYPE_TRANSM_MEDIUM_REQU     2
57 #define PARAM_TYPE_ACC_TRANSP             3
58 #define PARAM_TYPE_CALLED_PARTY_NR        4
59 #define PARAM_TYPE_SUBSQT_NR              5
60 #define PARAM_TYPE_NATURE_OF_CONN_IND     6
61 #define PARAM_TYPE_FORW_CALL_IND          7
62 #define PARAM_TYPE_OPT_FORW_CALL_IND      8
63 #define PARAM_TYPE_CALLING_PRTY_CATEG     9
64 #define PARAM_TYPE_CALLING_PARTY_NR      10
65 #define PARAM_TYPE_REDIRECTING_NR        11
66 #define PARAM_TYPE_REDIRECTION_NR        12
67 #define PARAM_TYPE_CONNECTION_REQ        13
68 #define PARAM_TYPE_INFO_REQ_IND          14
69 #define PARAM_TYPE_INFO_IND              15
70 #define PARAM_TYPE_CONTINUITY_IND        16
71 #define PARAM_TYPE_BACKW_CALL_IND        17
72 #define PARAM_TYPE_CAUSE_INDICATORS      18
73 #define PARAM_TYPE_REDIRECTION_INFO      19
74 #define PARAM_TYPE_CIRC_GRP_SV_MSG_TYPE  21
75 #define PARAM_TYPE_RANGE_AND_STATUS      22
76 #define PARAM_TYPE_FACILITY_IND          24
77 #define PARAM_TYPE_CLSD_USR_GRP_ILOCK_CD 26
78 #define PARAM_TYPE_USER_SERVICE_INFO     29
79 #define PARAM_TYPE_SIGNALLING_POINT_CODE 30
80 #define PARAM_TYPE_USER_TO_USER_INFO     32
81 #define PARAM_TYPE_CONNECTED_NR          33
82 #define PARAM_TYPE_SUSP_RESUME_IND       34
83 #define PARAM_TYPE_TRANSIT_NETW_SELECT   35
84 #define PARAM_TYPE_EVENT_INFO            36
85 #define PARAM_TYPE_CIRC_ASSIGN_MAP       37
86 #define PARAM_TYPE_CIRC_STATE_IND        38
87 #define PARAM_TYPE_AUTO_CONG_LEVEL       39
88 #define PARAM_TYPE_ORIG_CALLED_NR        40
89 #define PARAM_TYPE_OPT_BACKW_CALL_IND    41
90 #define PARAM_TYPE_USER_TO_USER_IND      42
91 #define PARAM_TYPE_ORIG_ISC_POINT_CODE   43
92 #define PARAM_TYPE_GENERIC_NOTIF_IND     44
93 #define PARAM_TYPE_CALL_HIST_INFO        45
94 #define PARAM_TYPE_ACC_DELIV_INFO        46
95 #define PARAM_TYPE_NETW_SPECIFIC_FACLTY  47
96 #define PARAM_TYPE_USER_SERVICE_INFO_PR  48
97 #define PARAM_TYPE_PROPAG_DELAY_COUNTER  49
98 #define PARAM_TYPE_REMOTE_OPERATIONS     50
99 #define PARAM_TYPE_SERVICE_ACTIVATION    51
100 #define PARAM_TYPE_USER_TELESERV_INFO    52
101 #define PARAM_TYPE_TRANSM_MEDIUM_USED    53
102 #define PARAM_TYPE_CALL_DIV_INFO         54
103 #define PARAM_TYPE_ECHO_CTRL_INFO        55
104 #define PARAM_TYPE_MSG_COMPAT_INFO       56
105 #define PARAM_TYPE_PARAM_COMPAT_INFO     57
106 #define PARAM_TYPE_MLPP_PRECEDENCE       58
107 #define PARAM_TYPE_MCID_REQ_IND          59
108 #define PARAM_TYPE_MCID_RSP_IND          60
109 #define PARAM_TYPE_HOP_COUNTER           61
110 #define PARAM_TYPE_TRANSM_MEDIUM_RQUR_PR 62
111 #define PARAM_TYPE_LOCATION_NR           63
112 #define PARAM_TYPE_REDIR_NR_RSTRCT       64
113 #define PARAM_TYPE_CALL_TRANS_REF        67
114 #define PARAM_TYPE_LOOP_PREV_IND         68
115 #define PARAM_TYPE_CALL_TRANS_NR         69
116 #define PARAM_TYPE_CCSS                  75
117 #define PARAM_TYPE_FORW_GVNS             76
118 #define PARAM_TYPE_BACKW_GVNS            77
119 #define PARAM_TYPE_REDIRECT_CAPAB        78
120 #define PARAM_TYPE_NETW_MGMT_CTRL        91
121 #define PARAM_TYPE_CORRELATION_ID       101
122 #define PARAM_TYPE_SCF_ID               102
123 #define PARAM_TYPE_CALL_DIV_TREAT_IND   110
124 #define PARAM_TYPE_CALLED_IN_NR         111
125 #define PARAM_TYPE_CALL_OFF_TREAT_IND   112
126 #define PARAM_TYPE_CHARGED_PARTY_IDENT  113
127 #define PARAM_TYPE_CONF_TREAT_IND       114
128 #define PARAM_TYPE_DISPLAY_INFO         115
129 #define PARAM_TYPE_UID_ACTION_IND       116
130 #define PARAM_TYPE_UID_CAPAB_IND        117
131 #define PARAM_TYPE_REDIRECT_COUNTER     119
132 #define PARAM_TYPE_APPLICATON_TRANS             120
133 #define PARAM_TYPE_COLLECT_CALL_REQ     121
134 #define PARAM_TYPE_CALLING_GEODETIC_LOCATION    129             /* ANSI is the same */
135 #define PARAM_TYPE_GENERIC_NR           192
136 #define PARAM_TYPE_GENERIC_DIGITS       193
137 #define PARAM_TYPE_JURISDICTION                 196
138 #define PARAM_TYPE_GENERIC_NAME                 199
139 #define PARAM_TYPE_ORIG_LINE_INFO               234
140 #define PARAM_TYPE_CHARGE_NR                    235
141
142 #define ANSI_ISUP_PARAM_TYPE_OPER_SERV_INF      0xC2
143 #define ANSI_ISUP_PARAM_TYPE_EGRESS                     0xC3
144 #define ANSI_ISUP_PARAM_TYPE_JURISDICTION       0xC4
145 #define ANSI_ISUP_PARAM_TYPE_CARRIER_ID         0xC5
146 #define ANSI_ISUP_PARAM_TYPE_BUSINESS_GRP       0xC6
147 #define ANSI_ISUP_PARAM_TYPE_GENERIC_NAME       0xC7
148 #define ANSI_ISUP_PARAM_TYPE_NOTIF_IND          0xE1
149
150 #define ANSI_ISUP_PARAM_TYPE_CG_CHAR_IND                        229
151 #define ANSI_ISUP_PARAM_TYPE_CVR_RESP_IND                       230
152 #define ANSI_ISUP_PARAM_TYPE_OUT_TRK_GRP_NM                     231     
153 #define ANSI_ISUP_PARAM_TYPE_CI_NAME_IND                        232
154 #define ANSI_ISUP_PARAM_CLLI_CODE                                       233
155
156 #define ANSI_ISUP_PARAM_ORIG_LINE_INF                           0xEA
157 #define ANSI_ISUP_PARAM_CHRG_NO                                         0xEB
158 #define ANSI_ISUP_PARAM_SERV_CODE_IND                           0xEC
159 #define ANSI_ISUP_PARAM_SPEC_PROC_REQ                           0xED
160 #define ANSI_ISUP_PARAM_CARRIER_SEL_INF                         0xEE
161 #define ANSI_ISUP_PARAM_NET_TRANS                                       0xEF
162
163 extern const value_string isup_parameter_type_value[]; 
164 extern const value_string isup_transmission_medium_requirement_value[];
165 extern const value_string isup_calling_partys_category_value[];
166 extern const value_string bearer_network_connection_characteristics_vals[];
167 extern const value_string x213_afi_value[];
168 /*
169  * Export dissection of some parameters
170  */
171 void dissect_nsap(tvbuff_t *parameter_tvb,gint offset,gint len, proto_tree *parameter_tree);
172 void dissect_isup_called_party_number_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree, proto_item *parameter_item);
173 void dissect_isup_calling_party_number_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree, proto_item *parameter_item);
174 void dissect_isup_cause_indicators_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree, proto_item *parameter_item);
175 void dissect_isup_redirection_information_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree, proto_item *parameter_item);
176 void dissect_isup_original_called_number_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree, proto_item *parameter_item);
177 void dissect_isup_redirecting_number_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree, proto_item *parameter_item);
178
179 void dissect_isup_location_number_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree, proto_item *parameter_item);
180
181 void dissect_isup_generic_number_parameter(tvbuff_t *parameter_tvb, proto_tree *parameter_tree, proto_item *parameter_item);
182
183 extern int dissect_codec_mode(proto_tree *tree, tvbuff_t *tvb, int offset, int len);
184
185 #endif  /* PACKET_ISUP_H */