image provider

Long Distance SpeedDialer Amanuensis


This essay does not describe an existing computer program, just one that should exist. This essay is about a suggested student project in Java programming. This essay gives a rough overview of how it might work. I have no source, object, specifications, file layouts or anything else useful to implementing this project. Everything I have prepared to help you is right here.

This project outline is not like the artificial, tidy little problems you are spoon-fed in school, when all the facts you need are included, nothing extraneous is mentioned, the answer is fully specified, along with hints to nudge you toward a single expected canonical solution. This project is much more like the real world of messy problems where it is up to you to fully the define the end point, or a series of ever more difficult versions of this project and research the information yourself to solve them.

Everything I have to say to help you with this project is written below. I am not prepared to help you implement it; or give you any additional materials. I have too many other projects of my own.

Though I am a programmer by profession, I don’t do people’s homework for them. That just robs them of an education.

You have my full permission to implement this project in any way you please and to keep all the profits from your endeavour.

Please do not email me about this project without reading the disclaimer above.

This is one of the amanuensis projects. This little Applet has several possible functions:
  1. Let your Day-Timer address book software in your notebook computer or Palm Pilot autodial for you, no matter where in the world you are, without having to make any adjustments for local dialing rules.
  2. Estimate the cost of the call via various long distance providers given where the call is going, the time of day and the estimated length of the call.
  3. Time your call with a running dollar total.
  4. Dial the call, from an address book selection, via the cheapest provider.
  5. Track the calls to help roommates sort out the phone bill. (Phone companies might offer bills split out by roommate.)
  6. Isolate programmable dialing equipment from changes in the phone system.
  7. Bulk delivery of FAX (Facsimile) es from a list of fully qualified phone numbers: e.g. country code, area code and exchange and phone number. The software automatically figures out which ones need long distance dialling and which ones can be dialled as local calls.
  8. Automatically connecting you to the nearest Internet provider.
  9. BusTel style exchange of electronic business cards in the middle of voice calls.
If you have a GPS (Global Positioning System) unit, it could all work off the latitude and longitude to select the appropriate dialing rules.

I’m told windows 98 makes a brave stab at solving this problem. Windows NT/W2K lets you manually configure a list of area codes for which you don’t have dial 1+ and another list of exchanges in your local area code that do need 1+ dialling. You have to manually compile such a list for every location in North America you dial from. You can turn 10-digit dialing within the area code on or off, but you cannot control it on a per-exchange basis. Where are people supposed to get these lists to key into the computer? Is keeping track of that sort of trivia not what computers are for?

In British Columbia, where I live, the new (778) area code and 10-digit local dialing meant on 2001-05-26, every phone, fax machine, computer, PDA (Personal Digital Assistant), Day-Timer, speed dialer, alarm system, anything that dials the phone will had to be reprogrammed to dial the (604) area code prefix even for local calls.

Yet, you may not dial 1+(604), (unless of course, it is a toll call). How are you supposed to know if it is a toll call to Lion’s Bay?

The phone companies refuse to co-operate and allow you do dial a full international number with country/area and local numbers and let their equipment figure out how to route and bill it. Cell companies are only a little better.

Arrgh! In this day of computers why can’t it be simple? Allow any number, local or long distance, to also be autodialed: 111 + country + area + exchange + number. Then your laptop would work without adjustment even if you took it to Switzerland.

Your Applet is a stop gap measure until some noble band of terrorists force the world’s phone companies to implement a universal dialing scheme. Why stop there? Surely the phone system should support global roaming — a permanent phone number you keep no matter where you move or go on business or vacation. Since there is so much legacy equipment in the world’s phone system, this will have to be implemented via the Internet. Then your problem reduces finding Internet access (by autodial, direct connect or satellite) wherever in the world you find yourself.

For this to work, you need a giant database of countries, state/provinces, cities, exchanges and how you dial them from various other locations. How could you acquire such a database? The phone company won’t give it to you. Many others and I have already asked. Assuming, by some magic you did acquire it, how could you possibly keep it up to date? The phone companies couldn’t help you even if they wanted to.

The answer is simple — the same way people do it, by trial and error and by asking other people. Every time your dialing software fails, it starts experimenting. It may find an alternate dialing sequence on its own. It may find one with human help. The dialing program automatically reports home any errors it finds in the global database. It reports the results of its experiments. It shares with all other users what it has learned! This way everyone is brought up to date the very next time it checks in with database central for updates on the parts of the master database it has cached. A Palm Pilot may have just one city cached at a time. A major corporation might cache the entire thing. You could charge them big bucks for that information.

You could also implement this Napster-style without a central database, with users talking to each other directly to share just the information they want from each other.

There are complications.

Eventually the global database could learn all sorts of facts about the phone system that no human knows now, such as the cheapest possible way to route every call and the telephone number and current nearest telephone of every person on the planet. It might evolve into a system to integrate the ordinary phone system with the Internet in one seamless whole so that you could find people by knowing any facts about them such as previous addresses, phone numbers, websites, email addresses, friends, high school, previous employers, or whatever each person provided as keys to finding them in a vCard-like XML file on their website.

This page is posted
on the web at:

Optional Replicator mirror
on local hard disk J:

Canadian Mind Products
Please the feedback from other visitors, or your own feedback about the site.
Contact Roedy. Please feel free to link to this page without explicit permission.

Your face IP:[]
You are visitor number