GSM A DTAP: add UMTS EVS to supported codecs list IE
[metze/wireshark/wip.git] / epan / dissectors / packet-sdp.h
1 /* packet-sdp.h
2  * Routines for SDP packet disassembly (RFC 2327)
3  *
4  * Jason Lango <jal@netapp.com>
5  * Liberally copied from packet-http.c, by Guy Harris <guy@alum.mit.edu>
6  * 2005 Alejandro Vaquero <alejandro.vaquero@verso.com>, add support for tap
7  *
8  * Wireshark - Network traffic analyzer
9  * By Gerald Combs <gerald@wireshark.org>
10  * Copyright 1998 Gerald Combs
11  *
12  * SPDX-License-Identifier: GPL-2.0-or-later
13  */
14
15 #ifndef __PACKET_SDP_H__
16 #define __PACKET_SDP_H__
17
18 typedef struct _sdp_packet_info {
19         gchar summary_str[50];      /* SDP summary string for VoIP calls graph analysis */
20 } sdp_packet_info;
21
22 enum sdp_exchange_type
23 {
24         SDP_EXCHANGE_OFFER = 0,
25         SDP_EXCHANGE_ANSWER_ACCEPT,
26         SDP_EXCHANGE_ANSWER_REJECT
27 };
28
29 enum sdp_trace_id_hf_type
30 {
31     SDP_TRACE_ID_HF_TYPE_STR = 0, /* */
32     SDP_TRACE_ID_HF_TYPE_GUINT32 /* */
33 };
34
35 /*
36  *  Information needed to set up a trace id in RTP(t ex SIP CallId )
37  */
38 #define SDP_INFO_OFFSET 10 /* Max number of SDP data occurensies in a single frame */
39
40 typedef struct _sdp_conv_info {
41     wmem_array_t *sdp_setup_info_list;
42 } sdp_conv_info_t;
43
44 typedef struct _sdp_setup_info {
45     gchar *setup_proto;
46     int  hf_id;                         /* Header field to use */
47     enum sdp_trace_id_hf_type hf_type;  /* Indicates which of the following variables to use( add guint32 etc as needed)*/
48     gchar *trace_id;                    /* The trace id if the type is str*/
49     guint32 trace_id_num;               /* Numerical trace id */
50 } sdp_setup_info_t;
51
52 extern void setup_sdp_transport(tvbuff_t *tvb, packet_info *pinfo, enum sdp_exchange_type type, int request_frame, const gboolean delay, sdp_setup_info_t *setup_info);
53 /* Handles duplicate OFFER packets so they don't end up processed by dissect_sdp().  This can probably
54  * be removed when all higher layer dissectors properly handle SDP themselves with setup_sdp_transport()
55  */
56 extern void setup_sdp_transport_resend(int current_frame, int request_frame);
57
58 #endif /* __PACKET_SDP_H__ */