1 /* packet-q931.h
2  * Declarations of exported routines and tables for Q.931 and Q.2931 frame
3  * disassembly
4  * Guy Harris <guy@alum.mit.edu>
5  *
6  * Wireshark - Network traffic analyzer
7  * By Gerald Combs <gerald@wireshark.org>
8  * Copyright 1998
9  *
10  * SPDX-License-Identifier: GPL-2.0-or-later
11  */
12 
13 #ifndef __PACKET_Q931_H__
14 #define __PACKET_Q931_H__
15 
16 #include "ws_symbol_export.h"
17 
18 WS_DLL_PUBLIC void dissect_q931_bearer_capability_ie(tvbuff_t *, int, int,
19     proto_tree *);
20 
21 extern void dissect_q931_cause_ie(tvbuff_t *, int, int,
22     proto_tree *, int, guint8 *,const value_string *);
23 
24 extern void dissect_q931_progress_indicator_ie(tvbuff_t *, int, int,
25     proto_tree *);
26 
27 WS_DLL_PUBLIC void dissect_q931_high_layer_compat_ie(tvbuff_t *, int, int,
28     proto_tree *);
29 
30 extern void dissect_q931_user_user_ie(tvbuff_t *tvb, packet_info *pinfo, int offset, int len,
31     proto_tree *tree);
32 
33 extern value_string_ext q931_cause_location_vals_ext;
34 
35 typedef struct _q931_packet_info {
36        gchar *calling_number;
37        gchar *called_number;
38        guint8 cause_value;
39        gint32 crv;
40        guint8 message_type;
41 } q931_packet_info;
42 
43 /*
44  * the following allows TAP code access to the messages
45  * without having to duplicate it. With MSVC and a
46  * libwireshark.dll, we need a special declaration.
47  */
48 WS_DLL_PUBLIC value_string_ext q931_cause_code_vals_ext;
49 WS_DLL_PUBLIC const value_string q931_message_type_vals[];
50 
51 extern value_string_ext q931_protocol_discriminator_vals_ext;
52 extern value_string_ext q931_progress_description_vals_ext;
53 extern value_string_ext q931_call_state_vals_ext;
54 
55 /*
56  * Q.931 message types.
57  */
58 #define Q931_ESCAPE               0x00
59 #define Q931_ALERTING             0x01
60 #define Q931_CALL_PROCEEDING      0x02
61 #define Q931_PROGRESS             0x03
62 #define Q931_SETUP                0x05
63 #define Q931_GROUIP_SERVICE       0x06
64 #define Q931_CONNECT              0x07
65 #define Q931_RESYNC_REQ           0x08
66 #define Q931_RESYNC_RESP          0x09
67 #define Q931_VERSION              0x0A
68 #define Q931_GROUIP_SERVICE_ACK   0x0B
69 #define Q931_SETUP_ACK            0x0D
70 #define Q931_CONNECT_ACK          0x0F
71 #define Q931_USER_INFORMATION     0x20
72 #define Q931_SUSPEND_REJECT       0x21
73 #define Q931_RESUME_REJECT        0x22
74 #define Q931_HOLD                 0x24
75 #define Q931_SUSPEND              0x25
76 #define Q931_RESUME               0x26
77 #define Q931_HOLD_ACK             0x28
78 #define Q931_SUSPEND_ACK          0x2D
79 #define Q931_RESUME_ACK           0x2E
80 #define Q931_HOLD_REJECT          0x30
81 #define Q931_RETRIEVE             0x31
82 #define Q931_RETRIEVE_ACK         0x33
83 #define Q931_RETRIEVE_REJECT      0x37
84 #define Q931_DETACH               0x40
85 #define Q931_DISCONNECT           0x45
86 #define Q931_RESTART              0x46
87 #define Q931_DETACH_ACKNOWLEDGE   0x48
88 #define Q931_RELEASE              0x4D
89 #define Q931_RESTART_ACK          0x4E
90 #define Q931_RELEASE_COMPLETE     0x5A
91 #define Q931_SEGMENT              0x60
92 #define Q931_FACILITY             0x62
93 #define Q931_REGISTER             0x64
94 #define Q931_FACILITY_ACKNOWLEDGE 0x6A
95 #define Q931_NOTIFY               0x6E
96 #define Q931_FACILITY_REJECT      0x72
97 #define Q931_STATUS_ENQUIRY       0x75
98 #define Q931_CONGESTION_CONTROL   0x79
99 #define Q931_INFORMATION          0x7B
100 #define Q931_STATUS               0x7D
101 
102 /*
103  * Maintenance message types.
104  * AT&T TR41459, Nortel NIS A211-1, Telcordia SR-4994, ...
105  */
106 #define DMS_SERVICE_ACKNOWLEDGE     0x07
107 #define DMS_SERVICE     0x0F
108 
109 #endif
110