At the beginning of 2014, I got an aggressive telemarketer call at my house. Like most people, I really hate telemarketing calls so I let my 13-year-old son take the call. Well, my son said the caller said something really rude but he didn’t really hear. At that point, I said “hey, I’m a telephone guy. I should be able to stop this.” So I did.
Being a telephone guy, I cannot imagine NOT having a landline at home. I have AT&T U-Verse so it’s not like I have old-school POTS service anyway, but I like my home telephone numbers and don’t want to disconnect them. And hey, this was all an experiment anyway. So I got a new telephone number from a SIP provider and forwarded my home line to it, then via that SIP provider I routed it to my Asterisk server at a cloud provider. Then I added an Analog Terminal Adapter at home and plugged my home cordless phone into that. So I’m kinda like a Vonage or any other VoIP provider now. Incoming calls come into the SIP provider, then my Asterisk server, and then to my house via the ATA. Outgoing calls go out my Asterisk server then to my SIP provider. Pretty basic stuff. Yes, I tested 911.
Then I created a “white list” inbound app on Asterisk where all incoming callers get a greeting “hey, if you’re a real person press a digit and you’ll ring through to my house. If you don’t press a button, you’ll go to voicemail”. If a caller presses a button, their caller-id is added to the “white list” and rings to my house. From then on, that caller-id is allowed. After each call, I get an email with the caller-id and caller-id name of the caller, along with what happened to the call (e.g. rang through, went to voicemail, or hungup). It worked perfectly. It turns out that in the last six months, 100{0ed28e3470e974017c124b0897303dd14e34b5245564abb28916e7d48d9b07c0} of telemarketers are using predictive dialers; their machine thinks it got an answering machine and simply calls back later.
So on the email notification, I added a link to let me set the “disposition” of the caller-id next time. For friends, relatives, vendors, service providers, schools, etc, I can grant access next time. For obvious telemarketers (“SUN SOLAR”, “ELITE SERVICES”, etc), I can reject the call completely (“I’m sorry, your call did not go through”).
Sweet relief! It’s my telephone again! Now when the phone rings, I know it’s a real person and probably want to talk to him or her. I figured some telemarketers would punch through occasionally, but they don’t. I’ve stopped them all.
But here’s where it got interesting. I kept getting repeated calls from the same numbers – sometimes four within one minute. I get calls from particular numbers every night at about the same time. I got calls from fake numbers like “10000000000” or “16261346229”. That last one may not be obvious, but the first digit of an office code cannot be a 0 or 1. There’s no possible telephone number 134-6229 in the 626 area code. Now that my number is “protected”, I could even call the valid numbers back without worrying about tipping them off. When I did, I would get “Thank you for calling back. To be removed from our list…” or sometimes I would get a home-made “your call cannot be completed as dialed” message. Or sometimes just a fast busy or dead-air then disconnect. Obvious telemarketers.
So great, I’m blocking telemarketers and none are getting through, but I’m not causing them pain. I’m just blocking their dialing machine with my blocking machine. What if I send telemarketers to a greeting that says “hello” a few times, then tells them to hang on? Would that cause the predictive dialer to cut the agent through to me? If so, it would at least burn some “human time” and cost the telemarketing company some money, right? I tried it, and this was the result:
Not bad! I wasted 41 seconds of her time! So clearly I can get my telephone system to fool the predictive dialer into thinking it found a real person. I figured if I could combine some “detect noise” and “detect silence” algorithms into this thing, could I keep them on the phone longer? And how would I do it without any kind of speech recognition? Could I really keep a telemarketer on the phone just by detecting noise and silence? It turns out I could:
I really have to say thanks to Sofia for this call. Ironically, I listened more closely to Sofia’s pitch (and so have my friends) than if I had just hung up on her at the beginning. But anyway, this gave me the confidence to build a more elaborate parrot. At this point, I have collected several dozen calls of various entertaining quality. I will post them individually. I hope you enjoy. Perhaps next post about this subject, I’ll get a bit more technical how the algorithm works.