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 -~----------~----~----~----~------~----~------~--~---
