summaryrefslogtreecommitdiffstats
path: root/trace.h
blob: 092c2dfe5c015d26b1eb7c7f35a3c5d50ae36cbf (plain) (blame)
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
/*****************************************************************************\
**                                                                           **
** Linux Call Router                                                         **
**                                                                           **
**---------------------------------------------------------------------------**
** Copyright: Andreas Eversberg                                              **
**                                                                           **
** trace header file                                                         **
**                                                                           **
\*****************************************************************************/ 

/* definitions of commands */
#define L1_ACTIVATE_REQ			0x0001f000
#define L1_ACTIVATE_CON			0x0001f001
#define L1_ACTIVATE_IND			0x0001f002
#define L1_ACTIVATE_RES			0x0001f003
#define L1_DEACTIVATE_REQ		0x0001f100
#define L1_DEACTIVATE_CON		0x0001f101
#define L1_DEACTIVATE_IND		0x0001f102
#define L1_DEACTIVATE_RES		0x0001f103
#define L2_ESTABLISH_REQ		0x0002f000
#define L2_ESTABLISH_CON		0x0002f001
#define L2_ESTABLISH_IND		0x0002f002
#define L2_ESTABLISH_RES		0x0002f003
#define L2_RELEASE_REQ			0x0002f100
#define L2_RELEASE_CON			0x0002f101
#define L2_RELEASE_IND			0x0002f102
#define L2_RELEASE_RES			0x0002f103
#define L3_ALERTING_REQ			0x00030100
#define L3_ALERTING_IND			0x00030102
#define L3_PROCEEDING_REQ		0x00030200
#define L3_PROCEEDING_IND		0x00030202
#define L3_CONNECT_REQ			0x00030700
#define L3_CONNECT_IND			0x00030702
#define L3_CONNECT_RES			0x00030703
#define L3_CONNECT_ACKNOWLEDGE_REQ	0x00030f00
#define L3_CONNECT_ACKNOWLEDGE_IND	0x00030f02
#define L3_PROGRESS_REQ			0x00030300
#define L3_PROGRESS_IND			0x00030302
#define L3_SETUP_REQ			0x00030500
#define L3_SETUP_IND			0x00030502
#define L3_SETUP_ACKNOWLEDGE_REQ	0x00030d00
#define L3_SETUP_ACKNOWLEDGE_IND	0x00030d02
#define L3_RESUME_REQ			0x00032600
#define L3_RESUME_IND			0x00032602
#define L3_RESUME_ACKNOWLEDGE_REQ	0x00032e00
#define L3_RESUME_ACKNOWLEDGE_IND	0x00032e02
#define L3_RESUME_REJECT_REQ		0x00032200
#define L3_RESUME_REJECT_IND		0x00032202
#define L3_SUSPEND_REQ			0x00032500
#define L3_SUSPEND_IND			0x00032502
#define L3_SUSPEND_ACKNOWLEDGE_REQ	0x00032d00
#define L3_SUSPEND_ACKNOWLEDGE_IND	0x00032d02
#define L3_SUSPEND_REJECT_REQ		0x00032100
#define L3_SUSPEND_REJECT_IND		0x00032102
#define L3_USER_INFORMATION_REQ		0x00032000
#define L3_USER_INFORMATION_IND		0x00032002
#define L3_DISCONNECT_REQ		0x00034500
#define L3_DISCONNECT_IND		0x00034502
#define L3_RELEASE_REQ			0x00034d00
#define L3_RELEASE_IND			0x00034d02
#define L3_RELEASE_COMPLETE_REQ		0x00035a00
#define L3_RELEASE_COMPLETE_IND		0x00035a02
#define L3_RESTART_REQ			0x00034600
#define L3_RESTART_IND			0x00034602
#define L3_RESTART_ACKNOWLEDGE_REQ	0x00034e00
#define L3_RESTART_ACKNOWLEDGE_IND	0x00034e02
#define L3_SEGMENT_REQ			0x00036000
#define L3_SEGMENT_IND			0x00036002
#define L3_CONGESTION_CONTROL_REQ	0x00037900
#define L3_CONGESTION_CONTROL_IND	0x00037902
#define L3_INFORMATION_REQ		0x00037b00
#define L3_INFORMATION_IND		0x00037b02
#define L3_FACILITY_REQ			0x00036200
#define L3_FACILITY_IND			0x00036202
#define L3_NOTIFY_REQ			0x00036e00
#define L3_NOTIFY_IND			0x00036e02
#define L3_STATUS_REQ			0x00037d00
#define L3_STATUS_IND			0x00037d02
#define L3_STATUS_ENQUIRY_REQ		0x00037500
#define L3_STATUS_ENQUIRY_IND		0x00037502
#define L3_HOLD_REQ			0x00032400
#define L3_HOLD_IND			0x00032402
#define L3_HOLD_ACKNOWLEDGE_REQ		0x00032800
#define L3_HOLD_ACKNOWLEDGE_IND		0x00032802
#define L3_HOLD_REJECT_REQ		0x00033000
#define L3_HOLD_REJECT_IND		0x00033002
#define L3_RETRIEVE_REQ			0x00033100
#define L3_RETRIEVE_IND			0x00033102
#define L3_RETRIEVE_ACKNOWLEDGE_REQ	0x00033300
#define L3_RETRIEVE_ACKNOWLEDGE_IND	0x00033302
#define L3_RETRIEVE_REJECT_REQ		0x00033700
#define L3_RETRIEVE_REJECT_IND		0x00033702
#define L3_NEW_L3ID_REQ			0x0003f000
#define L3_NEW_L3ID_IND			0x0003f002
#define L3_RELEASE_L3ID_REQ		0x0003f100
#define L3_RELEASE_L3ID_IND		0x0003f102
#define L3_TIMEOUT_REQ			0x0003f200
#define L3_TIMEOUT_IND			0x0003f202
#define L3_UNKNOWN_REQ			0x0003ff00
#define L3_UNKNOWN_IND			0x0003ff02


struct trace_element {
	char name[11];
	char sub[11];
	char value[64];
};

#define MAX_TRACE_ELEMENTS	32
struct trace {
	/* header */
	int port;
	char interface[32];
	char caller[64];
	char dialing[64];
	int direction;
	unsigned int sec, usec;
	
	/* type */
	int category;
	unsigned int serial;
	char name[64];

	/* elements */
	int elements;
	struct trace_element element[MAX_TRACE_ELEMENTS];
};



#define	CATEGORY_CH	0x01
#define	CATEGORY_EP	0x02
//#define CATEGORY_BC	0x04 check lcradmin help


#define start_trace(port, interface, caller, dialing, direction, category, serial, name) _start_trace(__FILE__, __LINE__, port, interface, caller, dialing, direction, category, serial, name)
#define add_trace(name, sub, fmt, arg...) _add_trace(__FILE__, __LINE__, name, sub, fmt, ## arg)
#define end_trace() _end_trace(__FILE__, __LINE__)
void _start_trace(const char *__file, int line, int port, struct interface *interface, const char *caller, const char *dialing, int direction, int category, int serial, const char *name);
void _add_trace(const char *__file, int line, const char *name, const char *sub, const char *fmt, ...);
void _end_trace(const char *__file, int line);
//char *print_trace(int port, char *interface, char *caller, char *dialing, int direction, char *category, char *name);