Wireshark 4.5.0
The Wireshark network protocol analyzer
Loading...
Searching...
No Matches
voip_calls.h
Go to the documentation of this file.
1
23#ifndef __VOIP_CALLS_H__
24#define __VOIP_CALLS_H__
25
26#include <glib.h>
27
28#include <stdio.h>
29
30#include "epan/address.h"
31#include "epan/packet.h"
32#include "epan/guid-utils.h"
33#include "epan/tap.h"
34#include "epan/tap-voip.h"
36
42#ifdef __cplusplus
43extern "C" {
44#endif /* __cplusplus */
45
46/****************************************************************************/
47extern const char *voip_call_state_name[8];
48
49typedef enum _voip_protocol {
50 VOIP_SIP,
51 VOIP_ISUP,
52 VOIP_H323,
53 VOIP_MGCP,
54 VOIP_AC_ISDN,
55 VOIP_AC_CAS,
56 MEDIA_T38,
57 TEL_H248,
58 TEL_SCCP,
59 TEL_BSSMAP,
60 TEL_RANAP,
61 VOIP_UNISTIM,
62 VOIP_SKINNY,
63 VOIP_IAX2,
64 VOIP_COMMON
65} voip_protocol;
66
67typedef enum _hash_indexes {
68 SIP_HASH=0
69} hash_indexes;
70
71extern const char *voip_protocol_name[];
72
73typedef enum _flow_show_options
74{
75 FLOW_ALL,
76 FLOW_ONLY_INVITES
77} flow_show_options;
78
81typedef enum _sip_call_state {
82 SIP_INVITE_SENT,
83 SIP_200_REC,
84 SIP_CANCEL_SENT
86
87typedef struct _sip_calls_info {
88 char *call_identifier;
89 uint32_t invite_cseq;
90 sip_call_state sip_state;
92
94typedef struct _isup_calls_info {
95 uint16_t cic;
96 uint32_t opc, dpc;
97 uint8_t ni;
99
100/* defines specific H245 data */
101typedef struct _h245_address {
102 address h245_address;
103 uint16_t h245_port;
105
107typedef struct _h323_calls_info {
108 e_guid_t *guid; /* Call ID to identify a H225 */
109 GList* h245_list;
111 bool is_h245;
114 bool is_h245Tunneling;
115 int32_t q931_crv;
116 int32_t q931_crv2;
117 unsigned requestSeqNum;
119
121typedef struct _mgcp_calls_info {
122 char *endpointId;
125
128 int32_t crv;
129 int trunk;
131
134 int32_t bchannel;
135 int trunk;
137
139typedef struct _skinny_calls_info {
140 uint32_t callId;
142
144typedef struct _voip_calls_info {
145 voip_call_state call_state;
146 voip_call_active_state call_active_state;
147 char *call_id;
148 char *from_identity;
149 char *to_identity;
150 void * prot_info;
151 void (*free_prot_info)(void *);
152 address initial_speaker;
153 uint32_t npackets;
154 voip_protocol protocol;
155 char *protocol_name;
156 char *call_comment;
157 uint16_t call_num;
159 frame_data *start_fd;
160 nstime_t start_rel_ts;
161 frame_data *stop_fd;
162 nstime_t stop_rel_ts;
164
167/* struct holding all information of the tap */
168/*
169 * XXX Most of these are private to voip_calls.c. We might want to
170 * make them private.
171 */
172struct _h245_labels;
173typedef struct _voip_calls_tapinfo {
174 tap_reset_cb tap_reset;
175 tap_packet_cb tap_packet;
176 tap_draw_cb tap_draw;
177 void *tap_data;
178 int ncalls;
179 GQueue* callsinfos;
180 GHashTable* callsinfo_hashtable[1];
183 int start_packets;
184 int completed_calls;
185 int rejected_calls;
186 seq_analysis_info_t *graph_analysis;
190 uint32_t rtp_evt_frame_num;
191 uint8_t rtp_evt;
192 bool rtp_evt_end;
193 char *sdp_summary;
194 uint32_t sdp_frame_num;
195 uint32_t mtp3_opc;
196 uint32_t mtp3_dpc;
197 uint8_t mtp3_ni;
198 uint32_t mtp3_frame_num;
200 char *q931_calling_number;
201 char *q931_called_number;
202 uint8_t q931_cause_value;
203 int32_t q931_crv;
204 uint32_t q931_frame_num;
205 uint32_t h225_frame_num;
206 uint16_t h225_call_num;
207 int h225_cstype; /* XXX actually an enum */
208 bool h225_is_faststart;
209 uint32_t sip_frame_num;
210 uint32_t actrace_frame_num;
211 int32_t actrace_trunk;
212 int32_t actrace_direction;
213 flow_show_options fs_option;
214 uint32_t redraw;
215 bool apply_display_filter;
217
218#if 0
219#define VOIP_CALLS_DEBUG(...) { \
220 char *VOIP_CALLS_DEBUG_MSG = ws_strdup_printf(__VA_ARGS__); \
221 ws_warning("voip_calls: %s:%d %s", G_STRFUNC, __LINE__, VOIP_CALLS_DEBUG_MSG); \
222 g_free(VOIP_CALLS_DEBUG_MSG); \
223}
224#else
225#define VOIP_CALLS_DEBUG(...)
226#endif
227
228/****************************************************************************/
229/* INTERFACE */
230
239
245
250
254void
256
257#ifdef __cplusplus
258}
259#endif /* __cplusplus */
260
261#endif /* __VOIP_CALLS_H__ */
Definition voip_calls.h:133
Definition voip_calls.h:127
Definition address.h:56
Definition guid-utils.h:23
Definition voip_calls.h:101
Definition voip_calls.c:161
Definition voip_calls.h:107
address h225SetupAddr
Definition voip_calls.h:110
GList * h245_list
Definition voip_calls.h:109
bool is_faststart_Setup
Definition voip_calls.h:112
bool is_faststart_Proc
Definition voip_calls.h:113
Definition voip_calls.h:94
Definition voip_calls.h:121
bool fromEndpoint
Definition voip_calls.h:123
Definition sequence_analysis.h:66
Definition voip_calls.h:87
Definition voip_calls.h:139
Definition voip_calls.h:144
frame_data * start_fd
Definition voip_calls.h:159
Definition voip_calls.h:173
struct _h245_labels * h245_labels
Definition voip_calls.h:199
voip_calls_info_t * filter_calls_fwd
Definition voip_calls.h:182
tap_reset_cb tap_reset
Definition voip_calls.h:174
tap_draw_cb tap_draw
Definition voip_calls.h:176
GList * rtpstream_list
Definition voip_calls.h:189
epan_t * session
Definition voip_calls.h:187
GQueue * callsinfos
Definition voip_calls.h:179
int npackets
Definition voip_calls.h:181
int nrtpstreams
Definition voip_calls.h:188
GHashTable * callsinfo_hashtable[1]
Definition voip_calls.h:180
int ncalls
Definition voip_calls.h:178
void * tap_data
Definition voip_calls.h:177
tap_packet_cb tap_packet
Definition voip_calls.h:175
Definition epan.c:467
Definition nstime.h:26
void voip_calls_init_all_taps(voip_calls_tapinfo_t *tap_id_base)
Definition voip_calls.c:187
_sip_call_state
Definition voip_calls.h:81
enum _sip_call_state sip_call_state
struct _isup_calls_info isup_calls_info_t
struct _actrace_cas_calls_info actrace_cas_calls_info_t
void voip_calls_free_callsinfo(voip_calls_info_t *callsinfo)
Definition voip_calls.c:316
struct _actrace_isdn_calls_info actrace_isdn_calls_info_t
struct _h323_calls_info h323_calls_info_t
void voip_calls_remove_all_tap_listeners(voip_calls_tapinfo_t *tap_id_base)
Definition voip_calls.c:233
struct _skinny_calls_info skinny_calls_info_t
void voip_calls_reset_all_taps(voip_calls_tapinfo_t *tapinfo)
Definition voip_calls.c:263
struct _voip_calls_info voip_calls_info_t