Lately, we've been getting a LOT of telemarketers and spammers calling our home line, evn though we're entered in the national Do Not Call directory.

The other day, I unearthed a Pentium 1 in my basement - it had a dial-up modem in it, and we could actually manage to send a "phone call" made of a horrible screeching, grating sound.

I was wondering if there's any way to use this to answer an inbound phone call.

Our current setup is this: we have a phone connection, and an internet connection. There are 2 phone jacks in the wall (each one is a full hookup.) We have a DSL filter hooked up to one jack, with its outputs going to the Modem and the Phone.

What I'm envisioning is this:

  1. Telemarketer calls us.
  2. We check the CID, confirm it's a spammer (the same 3 or so are calling us OVER and OVER and OVER...)
  3. We quickly run over to the Pent. 1, and click something, maybe a batch script or similar, that would do this:
  4. Tap into the phone line as a normal handset
  5. Attempt to perform a dial-up handshake.
  6. Salesman: "?????"
  7. PROFIT! (Well, maybe not profit, per se, but it will certainly be nice not to be spammed every 5 minutes...)

So, if anyone could help me out with this, that would be nice.

P.S., if this is illegal (harassment, spam, etc.,) just answer it as a hypothetical answer to a hypothetical question. (I may need some hypothetical troubleshooting, as well... ;)

  • 1
    This is certainly an interesting idea - but if you're planning to check the CID manually before engaging the modem, you could pick up with just about anything. Maybe stop at the hardware store and buy an airhorn? Getting the p1 with the modem to do the screening for you would be a really cool trick.
    – Fopedush
    Apr 23, 2013 at 23:48
  • 14
    I think it is harassment/spam (but not by you). Also I believe it's everyone's right to answer the phone screeching like a velociraptor.
    – Dracs
    Apr 23, 2013 at 23:56
  • 1
    Can't you report those spammers and their numbers to the authorities who can take action against them (fines, cancelling license etc.) for harassing people on the Do Not Call list?
    – Karan
    Apr 24, 2013 at 1:07
  • 1
    @Karan Ehh, I'm not sure why my parents haven't done it yet - it doesn't seem to bother them... This way is much more fun, though! >:) Apr 24, 2013 at 1:23
  • 3
    Wouldn't it be awesome if there was some way to employ a voice recognition system and Eliza-type chatterbot AI to keep these guys engaged in a lengthy fruitless conversation?! :D
    – Karan
    Apr 24, 2013 at 16:38

8 Answers 8


While not a direct answer to your question, someone has accomplished something similar to this using a Raspberry Pi.

Their full article can be found here but the summary is that they've used a phone to Ethernet adaptor (like the one @Rich Homolka mentions in his answer) wired in to the Pi and a couple of scripts to make sure that the caller is a person or appears on a whitelist before the actual phone is allowed to ring. I'm assuming you'd be able to set it up as a black list so that the three numbers would be told to go away in no uncertain terms or just forever put on hold.

I'm assuming (and hoping) that once the competition is over that he'll make his work available for anyone to use.


I'd like to say, this does not answer your question directly, but I think you're looking at the problem the wrong way. Do you really want a 400 Watt computer running all day just to screen a couple phone calls? I think Both "what do I do with a Pentium I" and "How do I screen calls" are both excellent questions, but IMHO I think you should split these.

Im not sure how the "run to the Pentium, click a script, blow some noise over the modem" is any more effective than saying "I'll never buy your product" and hanging up. Or even better, say "let me get ____" and leave your phone off the hook; these guys live and die by turnover, and dead air may cost them and frustrate them enough for them to not call you.

As far as being rude to the caller, remember; the person on the phone talking to you is not the boss. These are people, whose dire financial straits make the best job available to them sitting making repetitive phone calls that people hate.

I have an ObiTalk 110, hooked into my (spare) Google Voice account. The device has two lines, and one can be an existing house line, like in your situation. The other can be SIP or Google Voice, so you have room for expansion. It's a bit clunky to configure, but the ObiTalk can be used to screen phone numbers. Since you have a small number of numbers to block, this clunkiness may not be an issue.

If you like the ObiTalk, you can eventually use it to talk to Google Voice directly. You could even port your home number to Google Voice if you needed to keep it (though you may need to port to a Mobile number first). Great call screening! Free USA calls! The downside is, you'd essentially be VoIP on your main line, a pain if you ever need to send a fax.

If the ObiTalk is too clean-box and you want a project, I'd suggest Asterisk on Raspberry Pi or something similar. More fun than an old Pentium, and you save some electricity.

  • 5
    That is an excellent point. There are devices dedicated to stopping telemarketers, too. Googling shows this amazon.com/Privacy-Technologies-TZ-900-TeleZapper-900/dp/… and many others
    – Keltari
    Apr 24, 2013 at 2:24
  • 2
    Even if you're only annoying people because it's required as part of the only job you can get, you're still annoying people.
    – AakashM
    Apr 24, 2013 at 8:53
  • 1
    "Do you really want a 400 Watt computer running all day" - More like 50 W ... It's a Pentium I, not a modern gaming machine running benchmarks.
    – Joren
    Apr 24, 2013 at 9:47
  • re: splitting questions, too, I mean the Pentium was just to date the device / out of interest / to show where it came from; the modem itself is just an addon card which could easily be dropped into my daily driver as long as I don't cheap out and get another mobo without a PCI port Mar 5, 2019 at 16:01

Sure you can do this. Hook the modem up to the phone line. You will need a terminal program to control the modem. Granted, I havent seen one in years and MS doesnt include one with Windows anymore, but Im sure if you google it, you can find one.

You might even be able to pipe the command "ATA" to the COM port in command window.

FYI "ATA" is the Hayes standard command to tell a modem to pick up.

  • It's running Win 95 at the moment, it had some sort of bult-in driver/utility for the dial-up modem. A friend set it up (I have no idea about old stuff like that :) so I'll need to be guided through the process. :/ Apr 23, 2013 at 23:52
  • I think Win 95 has the terminal program... check and see under accessories
    – Keltari
    Apr 24, 2013 at 1:00
  • Win95 had HyperTerminal. If you don't see it under Accessories follow the instructions here.
    – Karan
    Apr 24, 2013 at 1:33
  • 1
    So if you follow @Karan 's instructions and the Hyperterminal help, you should be able to connect to the modem and type ATA into the console and answer the phone to start the handshake (screeching noise)
    – Keltari
    Apr 24, 2013 at 2:25
  • 2
    I miss that noise; even used an MP3 of it as my ringtone for a while. :)
    – Karan
    Apr 24, 2013 at 16:23

In a past, evil life I worked on the technical side of the telemarketing industry. I'm sorry.

Something that works very well is to quickly stop the caller in their tracks and say, "Please add me to your do-not-call list." By law they have to stop what they're doing and add you to the list. Sometimes they'll ask if you're sure, but that's about it. Just repeat to them, "Please add me to your do-not-call list." It's like you said "Betelgeuse" three times. If they don't get it, then you need to insist on speaking to their supervisor. This can cost them thousands of dollars, and you can be paid for your trouble.

Second, if you want to approach it from a technical standpoint, you can add three tones at the beginning of every call that you pick up. This is what some of the hardware that you could add to your phone in the 1990's would do. Different sequences of different tones mean different things. Here's one reference that goes into a bit of detail:


Finally, others have suggested blasting the modem sounds at the telemarketer. They will likely never hear this noise, but it could prevent callbacks. Telemarketing software dials massive numbers of calls per hour. If it hears a fax, it will understand that a human is not there and if it is coded logically, will mark the number as a fax and never call back, as the goal is to speak with as many humans as possible. If you simply hang up or don't answer, or it goes to answering machine or voice mail, you will definitely be called back soon. Definitely.

  • 1
    What jurisdiction are you referring to when you say "By law they have to stop what they're doing and add you to the list"? Keep in mind that most of the people reading your answer (possibly including the OP) probably live in a different state or country than you.
    – Psychonaut
    May 19, 2015 at 10:42

Allow me to answer your question from a purely technical point of view. This is what I would do if I was in your position and sharing your motivations:

  1. Google the modem and download the technical info - if you can't find any then it's probably too much hassle. While you are at it download the reference on the Hayes command set (AT commands, etc)
  2. blow away windows 95 - it's more trouble than its worth
  3. install a server only version of Linux - or even just DSL (Damn Small Linux)
  4. write a small Python (Ruby, Lua, etc if you prefer) program to do what you require.

NB: The CID is sent as a set of tones between the first and second rings. Most modems can be configured to "read" these numbers. Thus you could have a "black-list" of numbers that you automatically detect and handle.

  • I like your idea - in fact, I just got a Dell Inspiron B130 the other day, and it has a phone jack, but running echo ata > /dev/ttyS0 and other similar commands gave an I/O error while writing to the device :( Apr 26, 2013 at 4:03

Because your thinking about doing it manually, it should be pretty easy. set up the modem on the line as it would be for fax or net , and initiate a dial-up. Opening a browser, with the internet options set to dial, would initiate a dial-up. There are also parameters that could be input into most modems to dial (lots) faster, and other commands that were put right into the net options settings, the system would send to the modem on a dial-up.

When we had a modem on the Same line as the (only) landline, that would happen by accident sometimes, someone could be on the phone, and someone else opens a program that wanted net access. The modem was not smart enough to check for a dial-tone, it will just dial away , and start trying a connect. The rest of the time, there is no problem with leaving the modem connected to the line.

That not only dates me back to modem use, but all the way back to when the web wasn't something humans were connected to as a constant :-)

I think you need another "use" for this computer though, to have it sitting there wasting power just to make a noise, seems like the telemarketers would have won.

  • It's just a PCI chip - I could easily transfer it to one of the computers that are on more consistently.. Apr 24, 2013 at 2:38
  • I'm no expert with Fax/Dial-up/etc., one of my friends saw my internal modem and showed me some of the stuff you can do with it. Without specific instructions, the entirety of the first paragraph is a bunch of nonsense to me. (I know it's perfectly valid, I've just not learned it yet - if someone told me to post my partition table or something like that when I was new, I would've had no clue what they were talking about. It's not your answer that's inadequate - it's my knowledge ;) Apr 26, 2013 at 4:00

Someone has written a program that looks like it would do roughly what you want. Perhaps even better than what you want:


The documented solution is based on a Raspberry Pi and a particular brand of voice modem, but they have since supported a few other brands.

The core of the program seems to be a C program that simply reads and writes to the serial port the modem is on.

This should be quite readily ported (i.e. With minor modifications) to any Operating System, so long as you can compile a C program and Google how to read/write a serial port for your OS.

It should be much simpler than the 'Bananaphone' solution linked - The 'jcblock' solution simply plugs into any socket, and when it detects an undesirable call (From a blacklist), it picks up the line briefly via the modem, then hangs up, thereby hanging up on the telemarketer, and stopping any other phones in your house from ringing after just 1 ring or so. i.e. It's a completely user-free operation once setup.

I am seriously considering putting it together myself...


I know I'm 8 years late but I wrote a simple batch script for the modem I have; what it does is picks up the line, attempts to perform a fax handshake, and then hangs up 20 seconds later, usually enough time for the other end to hang up. It probably won't work for every modem out there but a few small changes and maybe removal of the AT+FCLASS commands should make it work with whatever you have. The advantage of attempting to perform a handshake is that there's a chance that the bot placing the calls will detect your number as a dial-up server or fax machine, and may stop calling you altogether.

Unfortunately with this script you'll have to check the CID yourself and run the script manually, but as stated further down, there are a few ways to fully automate this, given enough time and resources.

ECHO +++ > COM1

Most, if not all, modems should return a NO CARRIER result if they receive any input before successfully establishing a connection, so the +++ command ensures that said result is received before sending the ATH0 or hangup command.

The AT+FCLASS commands can be removed to attempt a V.34 handshake instead of a fax, and from what I've experimented with, some commands (most notably AT+FCLASS) might need to be sent twice back-to-back...


...as the modem may not respond correctly due to the fact that you're sending the commands and immediately closing the port, rather than using a terminal program such as HyperTerminal or PuTTY. If you choose to remove the AT+FCLASS lines, this shouldn't be necessary.

The TIMEOUT commands may need to be replaced with PING localhost -n x > NUL on older systems, x being a number. However, with TIMEOUT you will be able to press a key to hang up early, should the calling party hang up early or end up being a quiet line.

The COM1 port may be a different number such as COM2 or COM3 depending on how your modem is hooked up to your computer. For example, an external modem should plug directly into an RS232 port, and as such will be assigned to COM1. However, an internal PCI modem may be listed as COM3 or COM4.

Automation, similar to the jcblock solution, should be possible with newer computers (Anything capable of running Python 3.4, Node.js or PowerShell), but you'd need to enable Caller ID on the modem and write the program yourself.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .