I’ve been looking at CellTrack program for series 60 phones recently.
This is a native series 60 Symbian application that can record details of the current mobile phone cell your phone is using. It also lets you annotate each cell if you want.
Celltrack is something I downloaded for my Nokia 7610 a while ago, and have just installed on the Nokia 6630.
On Monday, while the train was running slow, I had it running and started to annotate stations so I could tell where I was in the evening when it’s dark outside. CellTrack has a feature that allows you to log used cells to a flat tab seperated file. In my case, as I have the software installed on the 6630’s MMC card, the file can be found in the directory E:NokiaOthersCellTrack and copied off using the Nokia PC Suite.
Here’s the journey I took on Tuesday morning by train. I turned on CellTrack at Marks Tey station and had it running to just before the train pulled into Stratford station in East London.
Time |
Cell ID |
LAC |
Cell Name |
Description |
07:26:08 |
12972 |
629 |
XXBC97 B |
Marks tey station |
07:27:15 |
12973 |
629 |
XXBC97 C |
Approaching marks tey |
07:27:35 |
8812 |
629 |
XXB881 B |
Approaching kelvedon |
07:28:03 |
4340 |
629 |
XXB434 A |
no info |
07:29:01 |
4339 |
629 |
XXB433 X |
Kelvedon station |
07:29:25 |
4341 |
629 |
XXB434 A |
Approaching kelvedon |
07:31:40 |
16772 |
629 |
XXBG77 B |
Between witham and kelvedon |
07:32:10 |
16774 |
629 |
XXBG77 X |
Between kelvedon and witham |
07:32:43 |
2084 |
629 |
XXB208 X |
Approaching witham |
07:34:09 |
2086 |
629 |
XXB208 F |
Witham station |
07:36:34 |
382 |
629 |
XXB038 B |
Approaching witham |
07:37:15 |
2086 |
629 |
XXB208 F |
Witham station |
07:37:55 |
7249 |
629 |
XXB724 X |
Hatfield Peveral station |
07:38:33 |
7251 |
629 |
XXB725 A |
Approaching hatfield peveral |
07:39:30 |
13877 |
629 |
XXBD87 G |
Approaching hatfield peveral |
07:39:40 |
13878 |
629 |
XXBD87 X |
Between hatfield peveral and chelmsford |
07:39:52 |
13879 |
629 |
XXBD87 X |
Between hatfield peveral and chelmsford |
07:41:17 |
3910 |
629 |
XXB391 A |
Approaching chelmsford |
07:41:37 |
3912 |
629 |
XXB391 B |
Approaching chelmsford |
07:42:07 |
16055 |
629 |
XXBG05 E |
Chelmsford station |
07:43:01 |
3877 |
629 |
XXB387 G |
Chelmsford station |
07:43:52 |
16057 |
629 |
XXBG05 G |
Approaching chelmsford |
07:44:10 |
3879 |
629 |
XXB387 X |
Approaching chelmsford |
07:44:24 |
5282 |
629 |
XXB528 B |
Approaching chelmsford |
07:44:46 |
16779 |
629 |
XXBG77 X |
Between chelmsford and ingatestone |
07:44:58 |
16778 |
629 |
XXBG77 X |
Approaching chelmsford |
07:45:08 |
16779 |
629 |
XXBG77 X |
Between chelmsford and ingatestone |
07:45:31 |
16780 |
629 |
XXBG78 A |
no info |
07:45:49 |
2073 |
629 |
XXB207 C |
Between chelmsford and ingatestone |
07:46:01 |
367 |
629 |
XXB036 G |
Between chelmsford and ingatestone |
07:46:11 |
12354 |
629 |
XXBC35 X |
Between ingatestone and chelmsford |
07:46:25 |
12355 |
629 |
XXBC35 E |
Between ingatestone and chelmsford |
07:47:03 |
2073 |
629 |
XXB207 C |
Between chelmsford and ingatestone |
07:47:21 |
369 |
629 |
XXB036 X |
Approaching ingatestone |
07:47:32 |
11240 |
105 |
XXBB24 A |
Approaching ingatestone |
07:48:14 |
11242 |
105 |
XXBB24 B |
Ingatestone station |
07:48:34 |
3755 |
105 |
XXB375 E |
Ingatestone station |
07:49:14 |
3756 |
105 |
XXB375 F |
Between ingatestone and shenfield |
07:49:30 |
11239 |
105 |
XXBB23 X |
Between shenfield and ingatestone |
07:50:09 |
16872 |
105 |
XXBG87 B |
Approaching shenfield |
07:50:35 |
16875 |
105 |
XXBG87 E |
Approaching shenfield |
07:50:49 |
3661 |
105 |
XXB366 A |
Approaching shenfield |
07:51:42 |
3662 |
105 |
XXB366 B |
Shenfield station |
07:51:54 |
3663 |
105 |
XXB366 C |
Shenfield station |
07:55:03 |
531957 |
0 |
XXB-76 X |
?:no info |
07:55:25 |
531957 |
65535 |
XXB-76 X |
?:no info |
07:55:59 |
0 |
0 |
XXB000 A |
?:no info |
07:56:50 |
7240 |
105 |
XXB724 A |
no info |
07:57:26 |
3788 |
105 |
XXB378 X |
no info |
07:57:52 |
3789 |
105 |
XXB378 X |
Approaching gidea park |
07:58:09 |
2068 |
105 |
XXB206 X |
no info |
07:58:19 |
16035 |
105 |
XXBG03 E |
Gidea park station |
07:59:31 |
19568 |
105 |
XXBJ56 X |
no info |
07:59:45 |
5057 |
105 |
XXB505 G |
no info |
08:00:16 |
197140 |
3008 |
XXB-12 F |
*:Gidea park station |
08:01:09 |
10925 |
105 |
XXBA92 E |
no info |
08:01:26 |
5058 |
105 |
XXB505 X |
Approaching gidea park |
08:01:59 |
6249 |
700 |
XXB624 X |
Approaching gidea park |
08:02:18 |
1381 |
700 |
XXB138 A |
no info |
08:02:30 |
197214 |
3009 |
XXB-69 A |
no info |
08:03:19 |
4829 |
700 |
XXB482 X |
no info |
08:03:23 |
8611 |
600 |
XXB861 A |
Seven kings station |
08:03:49 |
7748 |
600 |
XXB774 X |
no info |
08:04:49 |
11170 |
700 |
XXBB17 A |
Approaching ilford |
08:05:17 |
9724 |
600 |
XXB972 X |
Manor park station |
08:05:39 |
3325 |
600 |
XXB332 E |
Approaching manor park |
08:06:02 |
9726 |
600 |
XXB972 F |
Manor park station |
08:06:16 |
17536 |
600 |
XXBH53 F |
Approaching forest gate |
08:06:44 |
17535 |
600 |
XXBH53 E |
Forest gate station |
08:07:55 |
1335 |
600 |
XXB133 E |
no info |
08:08:19 |
14197 |
600 |
XXBE19 G |
no info |
08:08:38 |
10334 |
700 |
XXBA33 X |
Maryland station |
So what do some of the columns mean? Well Cell ID is the ID taken from the actual cell. LAC means the location area code of the cell. I’m not sure what Cell Name actually is, the CellTrack site says it comes from the cell broadcast as I have a service number set. The description is the text I entered to give a rough location to the cell.
As I said before, the log file has the data in tab seperated format. The data is recorded in the following order…
- Date
- Time
- Cell ID
- LAC
- Country
- Net
- Signal
- Signal dBm
- Cell Name
- Description
This makes it very easy for us to write a data extractor using Perl. Here’s the code I used to generate the table above.
#!/usr/bin/perl -w
use strict;
## Perl script to parse the CellTrack trace.log file, and split selected
## contents into an HTML table.
## Robert Price - rob@robertprice.co.uk - March 2005
## start the table, and print out a table header.
print "<table>n";
print " <tr><th>Time</th><th>Cell ID</th><th>LAC</th><th>Cell Name</th><th>Description</th></tr>n";
## iterate over each line, placing the contents in $line.
while (my $line = <>) {
## clean up the data a bit.
chomp($line); # loose trailing linefeeds.
$line =~ s/r//g; # loose any rogue carriage returns.
$line =~ s/t */t/g; # remove preceeding spaces from data.
## split the data in $line into variables.
my ($date,$time,$cellid,$lac,$country,$net,$strength,$dBm,$cellname,$description) = split(/t/,$line);
## create a copy of $time, and format it so it has colons between hours and minutes.
my $nicetime = $time;
$nicetime =~ s/(d{2})(d{2})(d{2})/$1:$2:$3/g;
## print out the data we're interested in.
print " <tr><td><a link="$time" />$nicetime</td><td>$cellid</td><td>$lac</td><td>$cellname</td><td>$description</td></tr>n";
}
## close the table.
print "</table>n";
You may have noticed I didn’t bother to print the country or network used. Well that’s because it’s always the same for me. The country is 234 (UK) and the network is 33 (Orange). This may be more interesting when travelling abroad and using roaming.