Welcome to the hell that is ‘mandatory toll alerting’. For the benefit of foreigners and people who live in non-toll-alerting areas of the North American Numbering Plan, let me explain…
In Ontario, we dial 1 or 0 for long-distance calls, and dial no such digit for local calls. The 1 or 0 serves as a ‘toll alert’ for the more-expensive long-distance calls.
Other areas in North America dial 1 or 0 before an area code, and nothing before an exchange code. In areas with ten-digit dialling, this means that they dial 1 or 0 all the time, since they’re dialling area codes all the time, even on local calls.
Whether a call is local or not depends on the location of both caller and recipient, and often cannot be figured out by the customer from the numbers involved. (The phone company looks up the ‘V&H’ codes–the telephone equivalent of latitude and longitude–for the locations of both caller and recipient, and uses that to figure out whether the call is local and how much to charge if it isn’t.)
In large area codes, it is often long-distance to call from one place to another in the same area code. It’s long-distance to call from Oshawa, Ontario, to Niagara Falls, Ontario, and both are in the 905 area code.
There are oddities: for example, it’s a local call from Streetsville to downtown Toronto, and a local call from Georgetown to downtown Toronto, but it’s long-distance from Streetsville to Georgetown. Which are next to each other and closer to each other than to downtown Toronto.
This all goes back to Bell’s calculations of local monthly phone rates based on what areas were accessible without long-distance calls. Remember, we have unlimited local calling. So when local calling was opened from a town to the Big City, it was a big deal for the townies and affected their rates. The city-dwellers probably didn’t notice. Towns around the big city tend to have local calling radially inwards to the city, but often forget to make each other local.
The problem? Bell Canada, at least, does not allow you to dial 1 or 0 before a local call. If you do, you get an error message saying that it’s a local call. But if you can’t tell whether a call is long-distance or not, there’s nothing to do but try it as a local call, and if it doesn’t work, try it again as a long-distance call. It’s maddening.
What Bell ought to do is allow 1 or 0 plus the ten-digit number on all calls, local or not. This would essentially signify, “I don’t know whether this call is long-distance, but I’m willing to pay timed charges if it is. Let the call go though.”
The system’s smart enough to know whether the call is local or long-distance; it just needs a bit of tweaking. An option on the “this is not a long-distance call” error message to let the call go through would be nice as well.
This has been a major grudge for years in telecom discussion groups.
This also applies mostly to traditional land-line calling. Mobile phones are more flexible, not least because all their calls are timed by the minute.