Correction for the posse:

I think it was Joe that said that the telephone companies already have
this information.

They don't. 20 to 50 cells make up a block. A phone only actively lets
the cell towers know when it moves across a block border. When you get
a call or text message, every cell in the entire block you last
registered with sends a packet out that contains, essentially: "Phone
with ID 123456789, contact your nearest cell tower!". Cell towers
broadcast their ID continuously so the phone knows which cell has the
most signal strength nearby, and will yell back "I'm phone 123456789
and I'm closest to cell ID 12-34-567-1234". Then that cell and the
phone will handshake amongst themselves, and then your phone rings.

CAVEAT: Any call, sms text message, or data traffic causes the phone
to handshake with a specific cell tower. There are plenty of people in
a traffics jam that get/send calls, text, or data, so with some
heuristics you can still get a pretty good idea. As far as I know no
phone companies do this, and they are very very very stingy about
giving your access to the firehose of cell phones logging into their
cell, which is what you'd need to do this heuristic.

----- you can stop reading on air now -----

For those interested, a few more details:

The phone company can't triangulate all phones all the time, because
your phone isn't sending anything. It only sends data when actively
asked to do so by the cell tower, or when you initiate an action on
your phone (data, call, or sms text message), or timed update (when
you turn on your phone, and every 4 or so hours, the phone re-asserts
its location in a given block (but not cell). The cell location
database assumes your phone is off after ~6 hours of not reporting
your location).

This explains a few phenomena:

 - Sometimes when someone's phone is off, you get voicemail
immediately. The cell phone location database didn't have a record,
because it had not received any 'I'm in block FOO' message in the last
6 hours, so it knows the phone must be off. Other times, it takes a
long time and then you get voicemail. The phone was turned off
recently and thus all cells in its last reported block called out to
the phone, and this callout process timed out. If you call again, you
should get voicemail immediately, because that timeout also
invalidated the cell phone location record.

 - Before your phone rings, if you're near an audio installation, you
hear an interference sound. This is the phone yelling out its ID and
its nearest cell's ID, and the subsequent handshake process, which
gives it a specific frequency to carry the actual call on.

 - Some cells are tiny (Leicester square, a small square in london
that is often used as a meeting place, and thus very phone-call-dense,
has 3 cells. Farmland, if it has coverage at all, usually has a cell
of many square miles). In sparse locations, the size of a block can be
many hundreds of miles. A big city / metropolis has 5 to 20 blocks.
This really isn't too useful to cell companies. It certainly doesn't
have the granularity to detect traffic jams.

 - Block boundaries usually run across lines that people hardly ever
cross, such as a river or the farmland next to a highway with few
overpasses. Cell towers near the boundary overlap the cell tower on
the other side of the block more than usual, so that moving around
near a border doesn't drain your phone (if you actually walked from
one boundary to another and back again, quickly, your phone will drain
almost as fast as if you were calling, because it needs to send a
continuous stream of 'Now I'm in block XYZ' messages.

 - A broadcast text message is a rarely used GSM feature which causes
the message to be displayed on your phone, for immediate reading and
dismissal. They skip your inbox. They SHOULD be used for the 'welcome
to country Foo. Calls are this many cents a minute' messages that
european travelers are familiar with, but they aren't. The GSM spec
states that an empty broadcast text message should not be displayed at
all; it should cause zero visible change in the user interface of the
device. But they do cause a full handshake (don't let the name fool
you, they are private and require the phone to chat with the local
cell before it receives the actual content). The active location
systems offered by some cell operators (for a set fee per request) use
this to make the phone announce its nearest cell tower. However, the
phone company could never do this for all phones.

 - A phone always knows far more about its location than the network.
The network can actively ping a phone to get its nearest cell, but a
phone knows far more than this: It passively knows nearest cell, and
the cell IDs of many other cells which are nearby enough to hear but
not closest. If only the phone companies would release a cell ID ->
[Latitude, Longitude] mappings, a phone could easily figure out with
excellent accuracy, particularly in densely populated locations, where
it is, without the battery drain and cost of a GPS chip. The phone
companies are paranoid about releasing this info. A community effort
that uses the GPS of a phone along with a data connection to send
[Latitude, Longitude, list of cell IDs and their relative signal
strengths] to a central server, which should be able to make an
excellent mapping easily. It's unfortunate there is no such community
effort going on currently. Almost all phones have a secret menu option
to get at debug data that lists this stuff. On older phones it's
*#somenumber# and on newer phones it tends to be some magic number you
enter while in the menu. Google around for your phone's model number,
you may find it. Not all phones offer a way to get you access to this
data via J2ME or Cocoa or whatever framework you use to write software
for it, even though all phone firmware has this information.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "The 
Java Posse" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to