blob: 06ae824def5c1abc7b2cce72a2586baaf7ffec11 (
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
|
#! /bin/bash
logfile=$1
callid=$2
function usage()
{
echo "USAGE: $1 logfile Call-ID [Call-ID ...]"
exit -1
}
[ -r "${logfile}" ] || usage $0
[ -n "${callid}" ] || usage $0
shift; shift;
while [ $# -gt 0 ]; do
callid="${callid}|$1"
shift
done
# modes:
# 0 - searching for SIP start block ...
# 1 - transmit of sorts
# 2 - receive
dos2unix < "${logfile}" | awk '
BEGIN { mode = 0 }
mode==0 && $4~"^VERBOSE" {
dt=$1" "$2" "$3
}
mode!=0 && $1 == "Call-ID:" {
#print
if ($2 ~ /('"${callid}"')/) {
callidmatch=1
} else {
#print $2" does not match ^('"${callid}"')$"
mode=0
}
}
(mode==1 && $0=="---") || (mode==2 && $0=="<------------->") {
if (callidmatch) {
print dt" "sipmode"\n"pckt"---"
}
mode=0
}
mode!=0 {
pckt = pckt $0 "\n"
}
mode==0 && $0 ~ "chan_sip[.]c: .*[tT]ransmitting" {
#print
if ($6 == "Retransmitting") {
sipmode = $6" "$7" to "$NF
} else {
sipmode = "Transmitting to "$NF
}
mode=1
pckt=""
callidmatch=0
}
mode==0 && $0 ~ "SIP read from" {
#print
mode=2
pckt=""
callidmatch=0
sipmode="Received from "$5":"
}
'
|