==============================================
CALL_INIT 2008/02/25 23:40:02.126
TRAN_ID 0000afab
CGI 420-1-303-10689
CHAN N/A
CHAN_MODE Speech Version 1
CHAN_TYPE TCH/F
SUB_CHAN 0
TIMESLOT 3
TSC 7
HOPPING Enabled
MAIO 0
HSN 20
MA 777,808,820
ENCR A5/1
SESSION_KEY A35CEEBE61150AD8
RESPONSE_TIME 12500 ms
==============================================
CALL_RESPONSE 2008/02/25 23:40:02.888
TRAN_ID 0000afac
CGI 420-1-303-10689
PLR_RESPONSE_TIME 13500 ms
LCS CAUSE Unexpected data value in position request
==============================================
CALL_RESPONSE 2008/02/25 23:40:14.636
TRAN_ID 0000afab
CGI 420-1-302-13448
PLR_RESPONSE_TIME 13500 ms
Px,Py = bfbc76df8932b7b9,3faca201ba5e7998
UNCERTAINTY MAJOR 0x30 (960 m)
UNCERTAINTY MINOR 0x30 (960 m)
CONFIDENCE 67 %
TYPE OF SHAPE 3
LOCATION METHOD 8
==============================================
CALL_RESPONSE 2008/02/25 23:42:27.627
TRAN_ID 0000afb7
CGI 420-1-301-15401
PLR_RESPONSE_TIME 13500 ms
LCS CAUSE Unexpected data value in position request
==============================================
CALL_INIT 2008/02/25 23:42:28.746
TRAN_ID 0000afb8
CGI 420-1-315-12057
CHAN N/A
CHAN_MODE Signaling Only
CHAN_TYPE SDCCH/8
SUB_CHAN 1
TIMESLOT 2
TSC 0
HOPPING Enabled
MAIO 0
HSN 1
MA 799,822,842,844,848
ENCR A5/1
SESSION_KEY A78C8953CE40CC00
RESPONSE_TIME 12500 ms
==============================================
CALL_RESPONSE 2008/02/25 23:42:29.777
TRAN_ID 0000afb9
CGI 420-1-302-13448
PLR_RESPONSE_TIME 13500 ms
LCS CAUSE Unexpected data value in position request
####
#!/usr/bin/perl
use constant MAX_OPEN_CALLS => 1000;
use strict;
use warnings;
my %call;
{
local $/ = '==============================================';
while (<>) {
my ($type, $id, $info) = parse_rec($_);
print "$_\n";
if ($type eq 'INIT') {
next if $info !~ /TCH/;
$call{$id} = 1;
}
elsif ($type eq 'RESPONSE') {
next if ! exists $call{$id};
(my @args) = $info =~ /(.{8})(.{8}),(.{8})(.{8})/;
my $cprogram = `./decrypt @args`;
print $cprogram;
print "\n";
delete $call{$id};
}
die "Too many unanswered calls" if keys %call > MAX_OPEN_CALLS;
}
}
sub parse_rec {
my ($rec) = @_;
my ($type) = $rec =~ /CALL_(\w+)/;
$type = '' if ! defined $type;
my ($id) = $rec =~ /TRAN_ID\s+(\S+)/;
my $info;
if ($type eq 'INIT') {
($info) = $rec =~ /CHAN_TYPE\s+(\S+)/;
}
elsif ($type eq 'RESPONSE') {
($info) = $rec =~ /Px,Py\s*=\s*(\S+)/;
}
$info = '' if ! defined $info;
return ($type, $id, $info);
}
####
==============================================
CALL_RESPONSE 2008/02/25 23:40:14.636
TRAN_ID 0000afab
CGI 420-1-302-13448
PLR_RESPONSE_TIME 13500 ms
Px,Py = bfbc76df8932b7b9,3faca201ba5e7998
UNCERTAINTY MAJOR 0x30 (960 m)
UNCERTAINTY MINOR 0x30 (960 m)
CONFIDENCE 67 %
TYPE OF SHAPE 3
LOCATION METHOD 8
==============================================
LAT 39.0712913394
LONG -77.4686356683
####
==============================================
CALL_RESPONSE 2008/02/25 23:40:14.636
TRAN_ID 0000afab
CGI 420-1-302-13448
PLR_RESPONSE_TIME 13500 ms
LAT 39.0712913394
LONG -77.4686356683
UNCERTAINTY MAJOR 0x30 (960 m)
UNCERTAINTY MINOR 0x30 (960 m)
CONFIDENCE 67 %
TYPE OF SHAPE 3
LOCATION METHOD 8
==============================================