Wireshark
4.5.0
The Wireshark network protocol analyzer
Toggle main menu visibility
Main Page
Related Pages
Topics
Namespaces
Namespace List
Namespace Members
All
Variables
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
a
b
c
d
e
f
g
h
i
m
o
p
r
s
t
u
v
w
Variables
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
Functions
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
Variables
Typedefs
a
b
c
d
e
f
g
h
i
m
p
r
s
t
u
v
w
Enumerations
Enumerator
a
b
c
e
f
h
i
n
o
r
s
t
w
Macros
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
v
w
x
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
Pages
Loading...
Searching...
No Matches
epan
dissectors
packet-iax2.h
1
/* packet-iax2.h
2
*
3
* Copyright (C) 2003, Digium
4
* Mark Spencer <markster@digium.com>
5
*
6
* Wireshark - Network traffic analyzer
7
* By Gerald Combs <gerald@wireshark.org>
8
* Copyright 1998 Gerald Combs
9
*
10
* SPDX-License-Identifier: GPL-2.0-or-later
11
*/
12
13
#ifndef __PACKET_IAX2_H__
14
#define __PACKET_IAX2_H__
15
16
#include <
epan/tap-voip.h
>
17
#include <
epan/conversation.h
>
18
19
/* Max version of IAX protocol we support */
20
#define IAX_PROTO_VERSION 2
21
22
#define IAX_MAX_CALLS 32768
23
24
#define IAX_FLAG_FULL 0x8000
25
26
#define IAX_FLAG_RETRANS 0x8000
27
28
#define IAX_FLAG_SC_LOG 0x80
29
30
#define IAX_MAX_SHIFT 0x1F
31
32
#define IAX_WINDOW 64
33
34
#define AST_FRAME_DTMF_END 1
/* A DTMF end event, subclass is the digit */
35
#define AST_FRAME_VOICE 2
/* Voice data, subclass is AST_FORMAT_* */
36
#define AST_FRAME_VIDEO 3
/* Video frame, maybe?? :) */
37
#define AST_FRAME_CONTROL 4
/* A control frame, subclass is AST_CONTROL_* */
38
#define AST_FRAME_NULL 5
/* An empty, useless frame */
39
#define AST_FRAME_IAX 6
/* Inter Aterisk Exchange private frame type */
40
#define AST_FRAME_TEXT 7
/* Text messages */
41
#define AST_FRAME_IMAGE 8
/* Image Frames */
42
#define AST_FRAME_HTML 9
/* HTML Frames */
43
#define AST_FRAME_CNG 10
/* Confort Noise Generation */
44
#define AST_FRAME_MODEM 11
/* Modem-over-IP datastream */
45
#define AST_FRAME_DTMF_BEGIN 12
/* A DTMF begin event, subclass is the digit */
46
47
48
49
/* Subclass for AST_FRAME_IAX */
50
#define IAX_COMMAND_NEW 1
51
#define IAX_COMMAND_PING 2
52
#define IAX_COMMAND_PONG 3
53
#define IAX_COMMAND_ACK 4
54
#define IAX_COMMAND_HANGUP 5
55
#define IAX_COMMAND_REJECT 6
56
#define IAX_COMMAND_ACCEPT 7
57
#define IAX_COMMAND_AUTHREQ 8
58
#define IAX_COMMAND_AUTHREP 9
59
#define IAX_COMMAND_INVAL 10
60
#define IAX_COMMAND_LAGRQ 11
61
#define IAX_COMMAND_LAGRP 12
62
#define IAX_COMMAND_REGREQ 13
/* Registration request */
63
#define IAX_COMMAND_REGAUTH 14
/* Registration authentication required */
64
#define IAX_COMMAND_REGACK 15
/* Registration accepted */
65
#define IAX_COMMAND_REGREJ 16
/* Registration rejected */
66
#define IAX_COMMAND_REGREL 17
/* Force release of registration */
67
#define IAX_COMMAND_VNAK 18
/* If we receive voice before valid first voice frame, send this */
68
#define IAX_COMMAND_DPREQ 19
/* Request status of a dialplan entry */
69
#define IAX_COMMAND_DPREP 20
/* Request status of a dialplan entry */
70
#define IAX_COMMAND_DIAL 21
/* Request a dial on channel brought up TBD */
71
#define IAX_COMMAND_TXREQ 22
/* Transfer Request */
72
#define IAX_COMMAND_TXCNT 23
/* Transfer Connect */
73
#define IAX_COMMAND_TXACC 24
/* Transfer Accepted */
74
#define IAX_COMMAND_TXREADY 25
/* Transfer ready */
75
#define IAX_COMMAND_TXREL 26
/* Transfer release */
76
#define IAX_COMMAND_TXREJ 27
/* Transfer reject */
77
#define IAX_COMMAND_QUELCH 28
/* Stop audio/video transmission */
78
#define IAX_COMMAND_UNQUELCH 29
/* Resume audio/video transmission */
79
#define IAX_COMMAND_POKE 30
/* Like ping, but does not require an open connection */
80
#define IAX_COMMAND_PAGE 31
/* Paging description */
81
#define IAX_COMMAND_MWI 32
/* Stand-alone message waiting indicator */
82
#define IAX_COMMAND_UNSUPPORT 33
/* Unsupported message received */
83
#define IAX_COMMAND_TRANSFER 34
/* Request remote transfer */
84
#define IAX_COMMAND_PROVISION 35
/* Provision device */
85
#define IAX_COMMAND_FWDOWNL 36
/* Download firmware */
86
#define IAX_COMMAND_FWDATA 37
/* Firmware Data */
87
#define IAX_COMMAND_TXMEDIA 38
/* Transfer Media */
88
#define IAX_COMMAND_RTKEY 39
/* Rotate key */
89
#define IAX_COMMAND_CALLTOKEN 40
/* Call token */
90
91
#define IAX_DEFAULT_REG_EXPIRE 60
/* By default require re-registration once per minute */
92
93
#define IAX_LINGER_TIMEOUT 10
/* How long to wait before closing bridged call */
94
95
#define IAX_DEFAULT_PORTNO 4569
96
97
/* IAX Information elements */
98
#define IAX_IE_CALLED_NUMBER 1
/* Number/extension being called - string */
99
#define IAX_IE_CALLING_NUMBER 2
/* Calling number - string */
100
#define IAX_IE_CALLING_ANI 3
/* Calling number ANI for billing - string */
101
#define IAX_IE_CALLING_NAME 4
/* Name of caller - string */
102
#define IAX_IE_CALLED_CONTEXT 5
/* Context for number - string */
103
#define IAX_IE_USERNAME 6
/* Username (peer or user) for authentication - string */
104
#define IAX_IE_PASSWORD 7
/* Password for authentication - string */
105
#define IAX_IE_CAPABILITY 8
/* Actual codec capability - unsigned int */
106
#define IAX_IE_FORMAT 9
/* Desired codec format - unsigned int */
107
#define IAX_IE_LANGUAGE 10
/* Desired language - string */
108
#define IAX_IE_VERSION 11
/* Protocol version - short */
109
#define IAX_IE_ADSICPE 12
/* CPE ADSI capability - short */
110
#define IAX_IE_DNID 13
/* Originally dialed DNID - string */
111
#define IAX_IE_AUTHMETHODS 14
/* Authentication method(s) - short */
112
#define IAX_IE_CHALLENGE 15
/* Challenge data for MD5/RSA - string */
113
#define IAX_IE_MD5_RESULT 16
/* MD5 challenge result - string */
114
#define IAX_IE_RSA_RESULT 17
/* RSA challenge result - string */
115
#define IAX_IE_APPARENT_ADDR 18
/* Apparent address of peer - struct sockaddr_in */
116
#define IAX_IE_REFRESH 19
/* When to refresh registration - short */
117
#define IAX_IE_DPSTATUS 20
/* Dialplan status - short */
118
#define IAX_IE_CALLNO 21
/* Call number of peer - short */
119
#define IAX_IE_CAUSE 22
/* Cause - string */
120
#define IAX_IE_IAX_UNKNOWN 23
/* Unknown IAX command - byte */
121
#define IAX_IE_MSGCOUNT 24
/* How many messages waiting - short */
122
#define IAX_IE_AUTOANSWER 25
/* Request auto-answering -- none */
123
#define IAX_IE_MUSICONHOLD 26
/* Request musiconhold with QUELCH -- none or string */
124
#define IAX_IE_TRANSFERID 27
/* Transfer Request Identifier -- int */
125
#define IAX_IE_RDNIS 28
/* Referring DNIS -- string */
126
#define IAX_IE_PROVISIONING 29
/* Provisioning info */
127
#define IAX_IE_AESPROVISIONING 30
/* AES Provisioning info */
128
#define IAX_IE_DATETIME 31
/* Date/Time -- unsigned int */
129
#define IAX_IE_DEVICETYPE 32
/* Device Type -- string */
130
#define IAX_IE_SERVICEIDENT 33
/* Service Identifier -- string */
131
#define IAX_IE_FIRMWAREVER 34
/* Firmware revision -- u16 */
132
#define IAX_IE_FWBLOCKDESC 35
/* Firmware block description -- u32 */
133
#define IAX_IE_FWBLOCKDATA 36
/* Firmware block of data -- raw */
134
#define IAX_IE_PROVVER 37
/* Provisioning Version (u32) */
135
#define IAX_IE_CALLINGPRES 38
/* Calling presentation (u8) */
136
#define IAX_IE_CALLINGTON 39
/* Calling type of number (u8) */
137
#define IAX_IE_CALLINGTNS 40
/* Calling transit network select (u16) */
138
#define IAX_IE_SAMPLINGRATE 41
/* Supported sampling rates (u16) */
139
#define IAX_IE_CAUSECODE 42
/* Hangup cause (u8) */
140
#define IAX_IE_ENCRYPTION 43
/* Encryption format (u16) */
141
#define IAX_IE_ENCKEY 44
/* Encryption key (raw) */
142
#define IAX_IE_CODEC_PREFS 45
/* Codec Negotiation */
143
#define IAX_IE_RR_JITTER 46
/* Received jitter (as in RFC1889) u32 */
144
#define IAX_IE_RR_LOSS 47
/* Received loss (high byte loss pct, low 24 bits loss count, as in rfc1889 */
145
#define IAX_IE_RR_PKTS 48
/* Received frames (total frames received) u32 */
146
#define IAX_IE_RR_DELAY 49
/* Max playout delay for received frames (in ms) u16 */
147
#define IAX_IE_RR_DROPPED 50
/* Dropped frames (presumably by jitterbuf) u32 */
148
#define IAX_IE_RR_OOO 51
/* Frames received Out of Order u32 */
149
#define IAX_IE_VARIABLE 52
/* IAX variable transmission */
150
#define IAX_IE_OSPTOKEN 53
/* OSP Token */
151
#define IAX_IE_CALLTOKEN 54
/* Call Token */
152
#define IAX_IE_CAPABILITY2 55
/* Codec capability */
153
#define IAX_IE_FORMAT2 56
/* Desired codec capability */
154
#define IAX_IE_DATAFORMAT 255
/* Data call format -- iax_dataformat_t */
155
156
/* hangup cause codes */
157
#define AST_CAUSE_UNALLOCATED 1
158
#define AST_CAUSE_NO_ROUTE_TRANSIT_NET 2
159
#define AST_CAUSE_NO_ROUTE_DESTINATION 3
160
#define AST_CAUSE_MISDIALLED_TRUNK_PREFIX 5
161
#define AST_CAUSE_CHANNEL_UNACCEPTABLE 6
162
#define AST_CAUSE_CALL_AWARDED_DELIVERED 7
163
#define AST_CAUSE_PRE_EMPTED 8
164
#define AST_CAUSE_NUMBER_PORTED_NOT_HERE 14
165
#define AST_CAUSE_NORMAL_CLEARING 16
166
#define AST_CAUSE_USER_BUSY 17
167
#define AST_CAUSE_NO_USER_RESPONSE 18
168
#define AST_CAUSE_NO_ANSWER 19
169
#define AST_CAUSE_SUBSCRIBER_ABSENT 20
170
#define AST_CAUSE_CALL_REJECTED 21
171
#define AST_CAUSE_NUMBER_CHANGED 22
172
#define AST_CAUSE_REDIRECTED_TO_NEW_DESTINATION 23
173
#define AST_CAUSE_ANSWERED_ELSEWHERE 26
174
#define AST_CAUSE_DESTINATION_OUT_OF_ORDER 27
175
#define AST_CAUSE_INVALID_NUMBER_FORMAT 28
176
#define AST_CAUSE_FACILITY_REJECTED 29
177
#define AST_CAUSE_RESPONSE_TO_STATUS_ENQUIRY 30
178
#define AST_CAUSE_NORMAL_UNSPECIFIED 31
179
#define AST_CAUSE_NORMAL_CIRCUIT_CONGESTION 34
180
#define AST_CAUSE_NETWORK_OUT_OF_ORDER 38
181
#define AST_CAUSE_NORMAL_TEMPORARY_FAILURE 41
182
#define AST_CAUSE_SWITCH_CONGESTION 42
183
#define AST_CAUSE_ACCESS_INFO_DISCARDED 43
184
#define AST_CAUSE_REQUESTED_CHAN_UNAVAIL 44
185
#define AST_CAUSE_FACILITY_NOT_SUBSCRIBED 50
186
#define AST_CAUSE_OUTGOING_CALL_BARRED 52
187
#define AST_CAUSE_INCOMING_CALL_BARRED 54
188
#define AST_CAUSE_BEARERCAPABILITY_NOTAUTH 57
189
#define AST_CAUSE_BEARERCAPABILITY_NOTAVAIL 58
190
#define AST_CAUSE_BEARERCAPABILITY_NOTIMPL 65
191
#define AST_CAUSE_CHAN_NOT_IMPLEMENTED 66
192
#define AST_CAUSE_FACILITY_NOT_IMPLEMENTED 69
193
#define AST_CAUSE_INVALID_CALL_REFERENCE 81
194
#define AST_CAUSE_INCOMPATIBLE_DESTINATION 88
195
#define AST_CAUSE_INVALID_MSG_UNSPECIFIED 95
196
#define AST_CAUSE_MANDATORY_IE_MISSING 96
197
#define AST_CAUSE_MESSAGE_TYPE_NONEXIST 97
198
#define AST_CAUSE_WRONG_MESSAGE 98
199
#define AST_CAUSE_IE_NONEXIST 99
200
#define AST_CAUSE_INVALID_IE_CONTENTS 100
201
#define AST_CAUSE_WRONG_CALL_STATE 101
202
#define AST_CAUSE_RECOVERY_ON_TIMER_EXPIRE 102
203
#define AST_CAUSE_MANDATORY_IE_LENGTH_ERROR 103
204
#define AST_CAUSE_PROTOCOL_ERROR 111
205
#define AST_CAUSE_INTERWORKING 127
206
207
#define IAX_AUTH_PLAINTEXT (1 << 0)
208
#define IAX_AUTH_MD5 (1 << 1)
209
#define IAX_AUTH_RSA (1 << 2)
210
211
#define IAX_META_TRUNK 1
/* Trunk meta-message */
212
#define IAX_META_VIDEO 2
/* Video frame */
213
214
#define IAX_DPSTATUS_EXISTS (1 << 0)
215
#define IAX_DPSTATUS_CANEXIST (1 << 1)
216
#define IAX_DPSTATUS_NONEXISTANT (1 << 2)
217
#define IAX_DPSTATUS_IGNOREPAT (1 << 14)
218
#define IAX_DPSTATUS_MATCHMORE (1 << 15)
219
220
typedef
enum
{
221
IAX2_MINI_VOICE_PACKET,
222
IAX2_FULL_PACKET,
223
IAX2_MINI_VIDEO_PACKET,
224
IAX2_TRUNK_PACKET
225
} packet_type;
226
227
/* Container for tapping relevant data */
228
typedef
struct
_iax2_info_t
229
{
230
packet_type ptype;
231
uint16_t scallno;
232
uint16_t dcallno;
233
uint8_t ftype;
234
uint8_t csub;
235
uint32_t timestamp;
236
unsigned
payload_len;
237
voip_call_state callState;
238
const
char
*messageName;
239
const
char
*callingParty;
240
const
char
*calledParty;
241
const
uint8_t *payload_data;
242
}
iax2_info_t
;
228
typedef
struct
_iax2_info_t
{
…
};
243
244
/* Container for passing data between dissectors */
245
typedef
struct
_iax2_dissector_info_t
246
{
247
conversation_type ctype;
248
uint32_t circuit_id;
249
}
iax2_dissector_info_t
;
245
typedef
struct
_iax2_dissector_info_t
{
…
};
250
251
#endif
/* __PACKET_IAX2_H__ */
conversation.h
tap-voip.h
_iax2_dissector_info_t
Definition
packet-iax2.h:246
_iax2_info_t
Definition
packet-iax2.h:229
Generated by
1.9.8