H.225.0 update to version 6 (05/2006)
[obnox/wireshark/wip.git] / epan / dissectors / packet-h245.h
1 /* Do not modify this file.                                                   */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler   */
3 /* .\packet-h245.h                                                            */
4 /* ../../tools/asn2wrs.py -e -p h245 -c h245.cnf -s packet-h245-template MULTIMEDIA-SYSTEM-CONTROL.asn */
5
6 /* Input file: packet-h245-template.h */
7
8 #line 1 "packet-h245-template.h"
9 /* packet-h245.h
10  * Routines for h245 packet dissection
11  * Copyright 2005, Anders Broman <anders.broman@ericsson.com>
12  *
13  * $Id$
14  *
15  * Wireshark - Network traffic analyzer
16  * By Gerald Combs <gerald@wireshark.org>
17  * Copyright 1998 Gerald Combs
18  *
19  * This program is free software; you can redistribute it and/or
20  * modify it under the terms of the GNU General Public License
21  * as published by the Free Software Foundation; either version 2
22  * of the License, or (at your option) any later version.
23  *
24  * This program is distributed in the hope that it will be useful,
25  * but WITHOUT ANY WARRANTY; without even the implied warranty of
26  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
27  * GNU General Public License for more details.
28  *
29  * You should have received a copy of the GNU General Public License
30  * along with this program; if not, write to the Free Software
31  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
32  */
33
34 #ifndef PACKET_H245_H
35 #define PACKET_H245_H
36 typedef enum _h245_msg_type {
37         H245_TermCapSet,
38         H245_TermCapSetAck,
39         H245_TermCapSetRjc,
40         H245_TermCapSetRls,
41         H245_OpenLogChn,
42         H245_OpenLogChnCnf,
43         H245_OpenLogChnAck,
44         H245_OpenLogChnRjc,     
45         H245_CloseLogChn,
46         H245_CloseLogChnAck,
47         H245_MastSlvDet,
48         H245_MastSlvDetAck,
49         H245_MastSlvDetRjc,
50         H245_MastSlvDetRls,
51         H245_OTHER
52 } h245_msg_type;
53
54 typedef struct _h245_packet_info {
55         h245_msg_type msg_type;         /* type of message */
56         gchar frame_label[50];          /* the Frame label used by graph_analysis, what is a abreviation of cinfo */
57         gchar comment[50];                      /* the Frame Comment used by graph_analysis, what is a message desc */
58 } h245_packet_info;
59
60 /*
61  * h223 LC info
62  */
63
64 typedef enum {
65         al_nonStandard,
66         al1Framed,
67         al1NotFramed,
68         al2WithoutSequenceNumbers,
69         al2WithSequenceNumbers,
70         al3,
71         /*...*/
72         /* al?M: unimplemented annex C adaptation layers */
73         al1M,
74         al2M,
75         al3M
76 } h223_al_type;
77
78 typedef struct {
79         guint8 control_field_octets;
80         guint32 send_buffer_size;
81 } h223_al3_params;
82
83 typedef struct {
84         h223_al_type al_type;
85         gpointer al_params;
86         gboolean segmentable;
87         dissector_handle_t subdissector;
88 } h223_lc_params;
89
90 typedef enum {
91         nonStandardDataType,
92         nullData,
93         videoData,
94         audioData,
95         data,
96         encryptionData,
97         /*...,*/
98         h235Control,
99         h235Media,
100         multiplexedStream,
101         redundancyEncoding,
102         multiplePayloadStream,
103         fec
104 } h245_lc_data_type_enum;
105
106 typedef struct {
107         h245_lc_data_type_enum data_type;
108         gpointer               params;
109 } h245_lc_data_type;
110
111 /*
112  * h223 MUX info
113  */
114
115 typedef struct _h223_mux_element h223_mux_element;
116 struct _h223_mux_element {
117     h223_mux_element* sublist; /* if NULL, use vc instead */
118     guint16 vc;
119     guint16 repeat_count; /* 0 == untilClosingFlag */
120     h223_mux_element* next;
121 };
122
123 #include <epan/packet_info.h>
124 #include "packet-per.h"
125
126 typedef void (*h223_set_mc_handle_t) ( packet_info* pinfo, guint8 mc, h223_mux_element* me );
127 extern void h245_set_h223_set_mc_handle( h223_set_mc_handle_t handle );
128
129 typedef void (*h223_add_lc_handle_t) ( packet_info* pinfo, guint16 lc, h223_lc_params* params );
130 extern void h245_set_h223_add_lc_handle( h223_add_lc_handle_t handle );
131
132
133 /*--- Included file: packet-h245-exp.h ---*/
134 #line 1 "packet-h245-exp.h"
135 extern const value_string DataProtocolCapability_vals[];
136 int dissect_h245_QOSCapability(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index);
137 int dissect_h245_DataProtocolCapability(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index);
138 int dissect_h245_T38FaxProfile(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index);
139 int dissect_h245_OpenLogicalChannel(tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index);
140
141 /*--- End of included file: packet-h245-exp.h ---*/
142 #line 125 "packet-h245-template.h"
143 void dissect_h245_OpenLogicalChannelCodec(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, char *codec_str);
144
145
146 #endif  /* PACKET_H245_H */
147
148