I’ve not posted much in the past 2 years because I’ve been busy on the project that was, in part, due to the research that I ended up posting here.
I didn’t want to post anything specifically about this project because I really didn’t know where I was going with it. I still don’t. But I’ll at least admit it exists 🙂
A little intro – I detest telephone solicitors of any kind. When I was a director of networking services for an S&P 500 company, my phone would ring all day with cold calls. I would then go home where it would continue ringing with credit card offers, etc. I have grown to detest my phone ringing unless it is someone I know.
To add to my personal distaste of telemarketers, there has been a fast rise of telephone-based scams on seniors. My aging relatives call me asking if they were right in hanging up on Microsoft, Apple, the IRS, etc. I realized it was just a matter of time until one or more of them was taken.
I’ve looked at existing telemarketer call blockers and none of them were really going to buy much. They all work on the same basic concept – you blacklist individual numbers. A few would allow some kind of wild card, but that is rare. More importantly either they didn’t stop the phone from ringing, OR they intercepted caller ID so that it would not make it to my handset. Really not worth the money in my opinion.
I didn’t originally come up with the idea of building a device to block telemarketers. I was belly-aching to a friend about them as I was teaching myself electronics and he suggested building something. Now there was an idea I could get behind. The idea for Scammer Jammer was born.
I started thinking about the idea and came up with a list of my “wants”:
- The phone should ONLY ring when it is someone I know.
- The handset should still receive caller ID properly. Even if it is someone I know, I want to decide if I really want to answer the phone.
- People I don’t know or don’t want to talk to should go straight to an answering machine / Voice mail.
- Telemarketers should just be hung up on.
- There should be a centralized list of scammers, perhaps crowd sourced. When one user marks a caller as a scammer, then it is blocked for everyone.
- The device needs to be remotely monitored. My parents don’t live in the same state but someday I might need to manage it for them.
At first, I was going to build a call blocker much like those I had seen but with more smarts – perhaps based on a raspberry Pi. I worked on that idea for several months. Various issues came up, most of which I can no longer even recall, and then I had a eureka moment!
The Scammer Jammer device should be as simple as possible – it would just take the caller ID from the phone, send it to a server, and the server would decide how to handle the call. That action would be returned to the Scammer Jammer and it could connect, answer, or block the call.
Sounded simple but it has been quite a learning experience to get this all to run. It took about a year to get the hardware fully designed.
Probably the most challenging part was generating my own caller Id signal. This not only achieves the goal of providing the handset with caller ID information, unlike other call blockers, but it allows me to transmit my own text to the handset. Thus, the user can assign names to phones that would otherwise be just ‘out of area’.
Once the hardware was done, I spent another 18 months on the software. I used sqlite as the database and produced a Raspberry Pi server capable of handling 30 simultaneous calls for a total of about 600 calls a minute during stress testing. The ‘production’ server I’m using is a linux Core-I7 computer. It should be capable of much higher calls rates, though I haven’t tested it.
Once the server was done I had not only achieved my initial goals but had went further – with a DB of 1.5M known telemarketers, Scammer Jammer can identify roughly 80% of telemarketers without any additional rules from the user. In fact, it has become so good, I no longer tell it to send unknown callers to the answering machine – almost everyone that calls is someone I probably should talk to, assuming I’m not grumpy.
It can even handle spoofing. Say your phone number is 123-555-1212. The telemarketers will call you with a phone number in the 123-555 exchange to fool you into thinking it is a local call so you answer. To get around this, I simply white-list the numbers in 123-555 that are allowed to ring my phone. I then create a 123-555 rule that forces everyone else to the answering machine.
Now the problem was only a Linux-knowledgeable person could use it because all of the rules were in flat files on a linux server. The last part of the puzzle was to write software that allowed the user to manage his rules and devices. This was written as a front-end/back-end.
Partially this client/server design is due to how sqlite works (there is no network access allowed to a sqlite db). There must be server software front-ending the sqlite db. Also, by designing it this way, I can have multiple front-ends.
The quickest front-end I could write is for windows, in Lazarus. This can be easily recompiled for Linux and MAC so the config software immediately became available for all 3 platforms. If/when I’m ready, I can address phones by either implementing the front-end in HTML or perhaps delphi for android.
My friends often ask why I designed Scammer Jammer for landlines / VoIP phones rather than cell phones. Fair question. My primary interest was to protect seniors and all of the ones I was thinking of have land lines. Further, my primary line is still a land line. Also, there are solutions already available for cell phones, though I haven’t used any so far.
Because the Scammer Jammer device uses a simple protocol to determine, from the server, how a call should be handled, there is no reason why software couldn’t be written for the phone that would take advantage of the back-end being used by the Scammer Jammer devices.
This device isn’t for everyone. It is just too expensive. I tried my best to keep costs down, but in its current form the parts are roughly $175. Price conscious consumers aren’t going to find this worth the cost. But it does start to make sense for people like me who DETEST telemarketers, seniors, small business owners that don’t have time to answer the phone for non-customers, etc.
As I said at the beginning, I’m not sure where I’m going with Scammer Jammer yet. But it has done a great job at keeping me amused for over 2 years now!