blob: b862a6065346ba201b3cd429caef39bdba228130 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
/* Do not modify this file. Changes will be overwritten */
/* Generated Automatically */
/* packet-skinny.h */
/* packet-skinny.h
* Dissector for the Skinny Client Control Protocol
* (The "D-Channel"-Protocol for Cisco Systems' IP-Phones)
*
* Author: Diederik de Groot <ddegroot@user.sf.net>, Copyright 2014
* Rewritten to support newer skinny protocolversions (V0-V22)
* Based on previous versions/contributions:
* - Joerg Mayer <jmayer@loplof.de>, Copyright 2001
* - Paul E. Erkkila (pee@erkkila.org) - fleshed out the decode
* skeleton to report values for most message/message fields.
* Much help from Guy Harris on figuring out the wireshark api.
* - packet-aim.c by Ralf Hoelzer <ralf@well.com>, Copyright 2000
* - Wireshark - Network traffic analyzer,
* By Gerald Combs <gerald@wireshark.org>, Copyright 1998
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
/* [[[cog
#
# Using Cog.py Inplace Code Generator
#
# Dependencies:
# - python2.x
# - cog.py: (pip install cogapp / http://nedbatchelder.com/code/cog/)
# - python.xml
# - python.xml.sax
#
cog.out('/*\n')
cog.out(' * Generated automatically Using (from wireshark base directory):\n')
cog.out(' * cog.py -D xmlfile=tools/SkinnyProtocolOptimized.xml -d -c -o epan/dissectors/packet-skinny.h epan/dissectors/packet-skinny.h.in\n')
cog.out(' */\n')
/*]]]*/
/*[[[end]]]*/
#include <epan/wmem_scopes.h>
/* request response tracking */
typedef struct _skinny_req_resp_t {
uint32_t request_frame;
uint32_t response_frame;
nstime_t request_time;
} skinny_req_resp_t;
/* begin conversation info*/
typedef enum _skinny_message_type_t {
SKINNY_MSGTYPE_EVENT = 0,
SKINNY_MSGTYPE_REQUEST = 1,
SKINNY_MSGTYPE_RESPONSE = 2,
} skinny_message_type_t;
typedef struct _skinny_conv_info_t {
skinny_message_type_t mtype;
wmem_map_t * pending_req_resp;
wmem_map_t * requests;
wmem_map_t * responses;
int32_t lineId;
//uint32_t callId;
//uint32_t passThruId;
//uint32_t transactionId;
//uint32_t callState;
} skinny_conv_info_t;
/* end conversation info */
/* Containers for tapping relevant data */
/* WIP: will be (partially) replaced in favor of conversation, dependents: ui/voip_calls.c */
typedef struct _skinny_info_t
{
uint32_t messId;
uint32_t maxProtocolVersion;
int32_t lineId;
uint32_t callId;
uint32_t passThroughPartyId;
const char * messageName;
uint32_t callState;
bool hasCallInfo;
char * callingParty;
char * calledParty;
int32_t mediaReceptionStatus;
int32_t mediaTransmissionStatus;
int32_t multimediaReceptionStatus;
int32_t multimediaTransmissionStatus;
int32_t multicastReceptionStatus;
//skinny_conv_info_t * skinny_conv;
char * additionalInfo;
} skinny_info_t;
/*
* Editor modelines - https://www.wireshark.org/tools/modelines.html
*
* Local variables:
* c-basic-offset: 2
* tab-width: 8
* indent-tabs-mode: nil
* End:
*
* vi: set shiftwidth=2 tabstop=8 expandtab:
* :indentSize=2:tabSize=8:noTabs=true:
*/
|