Slashdot Mirror


How Do I Filter Phone Calls on a Land Line?

An anonymous reader asks: "I have a telephone on a plain old land-line, with the option of subscribing to caller-id. I would like to filter incoming phone calls, diverting them to either the handset or answering machine, based on whether the caller-id matches a list of trusted phone numbers. Considering that many of today's land-line telephone handsets can display caller-id and store a list of favourite phone numbers, I don't think this is technologically difficult. AI am not interested in: subscribing to a service provided by my telephone company. I would prefer the filtering occurred on my side of the phone line, or implementing a software solution on my PC. Frankly, that is overkill, and I don't want my PC turned on permanently. I would prefer something like a small, solid-state hardware device. Is there any such thing available?"

3 of 181 comments (clear)

  1. Telephone Hacking for Fun and Proffit by MBCook · · Score: 4, Interesting

    OK, you have a couple of options as I see it.

    First would be to set up some kind of PBX. It's a little complex, but it would work. You could use Asterisk (I think that is what it's called) and some hardware (since I think it was designed for VOIP) and do it that way.

    The more fun (in my eyes) and complicated way is to build it yourself. You could do this with a PIC micro-controller (or similar). You could put the little box you would make at the phone entry point of your house. When the phone rings you let the first ring through (so you know someone called). Caller ID is transfered between the 1st and 2nd rings so that is when the MCU picks that up. Based on that, it can power a double pole double throw relay. In the normally closed position the phone signals are routed to your house wiring. When a "bad" caller ID is encountered it simply powers the relay switching the phone line from being connected to the phones to the answering machine. Of course the answering machine could be anywhere if you can isolate it's phone jack from the rest (shouldn't be too hard).

    Now there are a few little things to take into account here. First is that you may want to generate a ring for the answering machine so that it picks up on the 4th ring (or whatever) instead of the 5th because of the "lost ring". Second is that if you automatically send people to the answering machine unless the right caller ID comes across (i.e. the answering machine is in the normally closed position) then you'll need to make sure you have a way to force the relay to switch. You would want this even if you decide to pick up a call from the machine. When the main wiring is disconnected you could monitor the wiring to see if anyone picks up (you'd have to power it probably) and switch the relay if that happens. That way any time you pick up the phone you will always get the dial tone/caller. Having the relay connect you to the phone line in the normally-closed position is an important idea because you want it to be safe and let you use the line during a power outage.

    It'd be a very cool project. You can find bits about how to do it on the web. For example, I once saw something about a guy who built his own TTL PBX. That project (which was rather well documented, as I remember) would be a gold mine for you.

    If you do it, make sure to write it up and post it. I'd love to read it and I'm sure others would too.

    --
    Comment forecast: Bits of genius surrounded by a sea of mediocrity.
    1. Re:Telephone Hacking for Fun and Proffit by MBCook · · Score: 3, Interesting

      I like the idea of keeping the phone line connected all the time by default, and it makes some other things easier. That said, I bet you could easily make the circuit to eat that first ring so it doesn't go through to the house wiring. You could eat ALL rings and just re-generate them yourself on the outputs (house and answering machine).

      Heck, you could use a voltage comparison to trigger a disconnect so when the phone rang the line is temporarily disconnect for the duration of the ring signal. The the right sized capacitor to absorb the spike that did get through and a transistor to let you turn that feature on and off (so you can let rings through if you want) would probably do it.

      As for how to get the data on and off, there are a few ways. You can go the program the MCU way, but that's annoying as you mentioned. You can make the MCU take direction form a serial port so you can program some flash memory that holds the list. But the easiest way is that it's not too hard to interface to a SD card or similar. You can buy very simple devices that let you access them with just a serial line or two. Put the list in a text file with a simple format (first line is the number of entries, after that each line is a valid number, sorted to allow for binary search) and you can update it trivially without having to reprogram and such.

      That said, as the parent poster said you could use a Rabbit or some other MCU with easy external access. There are ethernet (often an add on you can buy for another MCU), you could use serial or USB or BlueTooth. Plus there is always the LCD/buttons approach.

      Heck, program it with your phone. Pick up the phone and dial a magic sequence (###) or press a button then pick up the phone and you can do simple button combinations to program it. When in "magic mode" press 1 and then a 10 digit number to add it to the list. Press 2 and then a 10 digit number to remove it from the list. Both are confirmed with a simple tone. Press 3 then a 10 digit number to find out if it is in the list or not (one beep yes, two no). You could add other features later this way too. A simple way to turn on/off the filter for when you are expecting a call but you don't know who it will come from, or you want to go into "silent mode" to watch a movie where EVERYTHING goes to the machine.

      You could do other fun stuff. If someone calls from a blocked number and gets the machine, you can monitor that with the PIC. If you detect they press the magic button sequence (44666, spells "HI MOM") then the PIC generates a ring on your phone. This could be used for emergencies. Then you just pick up and the auto-detect I mentioned earlier connects you and you take over from the machine.

      The only complication I can see is the issue of how to handle call waiting, but you can avoid that just by turning it off.

      I gotta say, the more I write about this the more fun it sounds. Too bad I have no use for it or time to work on it right now.

      --
      Comment forecast: Bits of genius surrounded by a sea of mediocrity.
  2. Microsoft MP-900 phone...yes, really by TheCodeFoundry · · Score: 4, Interesting

    Microsoft released a 900MHz cordless phone back in late 1998 that had all the features you want, plus more. You could create a whitelist in the software and any phone call that wasn't in the whitelist wouldn't even ring the handset, but get diverted straight to voice mail. The phone supported voice dialing, multiple voice mailboxes, personalized rings and greetings based on the Caller-ID number. The software would automatically divert or block Caller-ID blocked incoming phone calls. The software even imported your phonebook from Outlook Express/Outlook.

    Ok, granted, the phone was 900MHz, was quite bulky and the batteries were less than optimal. The one feature that this phone had that none (except PBXs) have had since, was total control of the hardware ringer. Because you had total control of the ringer, features became available (and controllable via software) that would allow you to force select incoming calls straight to voicemail or DND without ever being distracted by the ring. Of course, this product was soon killed and all support for updates to the software quickly killed, too.