Robocall screen is a good start...
Abating Telephone Nuisance Calls
Due to the proliferation of telephone technology, at present there is no reliable way of caller id This has allowed rampant telemarketing, both legitimate and fraudulent. I believe that it would be possible to create the equivalent of an telephone captcha on a device that could be wired into the end user's phone system at telco’s access point, and be programmed through wifi. Such a device would have a simple web interface over wifi, and be configured by the owner. This could be done either as a box at the subcriber, or as a telco service at hte exchange.
I get frequent calls, usually from the U.S. with a recorded message, “Stop what you are doing. How would you like to make ten thousand dollars a month…”; “This is a time limited offer, there is no problem with your credit card”; Or sometimes a non-recorded message. Or even an aluminum siding salesman.
I have complained to the CRTC. They have told me to tell my service provider. I have complained to Telus. They say nothing can be done. I have looked at the problem, and it is not trivial. There are companies working on hammering out a set of standards. This will likely not happen quickly. Twenty minutes after writing this paragraph, I received a report from Bell Canada et al due to my complaints. Summary: It’s too soon, too hard, too expensive to even comment on it at this point. This tells me that there is likely at minimum a 5-10 year market for this device.
I envision a moderately smart box that screens your calls for you. It basically is about as complicated as a hybrid answering machine and dialup modem.
I’m not the first with this idea: Failed project of smaller scope on kickstarter: (Links not allowed here.)
details an Arduino interface that can make/intepret telephone DTMF tones. It also brings up interface requirements of the POTS, and possible legal issues.
I have in mind a box, probably based on Raspberry Pi or Arduino.
- Wifi radio
- Phone connector & switch This may be doable with a standard modem, however neither rPi nor Arduino seem to have either RS-232 port or conventional serial ports. This may require a different single board computer, or custom daughter card.
Operation Cycle -- Incoming call.
- Answers: Device answers on line open. Waits for caller id string. Decodes this.
- Config check Caller id is checked against user configuration. Based on configuration, the call is rejected out of hand (Message: Rejected) or it is subject to further processing.
- Challenge: Plays a voice message recorded by the user, or if a custom one has not been recorded, a standard ‘Initial Greeting’ message. This message would be on the lines of “This is a private number. Please enter the 4 digit passcode.” There are other options for this step.
- Puts ring signal through to phone system in rest of house. Optionally this can be one of several distinctive rings.
- If no pickup after N rings, acts like an answering machine. N may be different for different classes of calls. (Can this be punted back to the Telco? This would keep voicemail from ending up in multiple locations.)
Operation cycle -- outgoing call.
- Checks for existence of recorded messages locally. Gives verbal, “You have new messages, press ** to skip. ## to retrieve messages. At this stage the device has to listen for the local emergency service number, and abort the message routine and go direct to the telco.
- If ## do the answer machine thing. Preferably with the same codes people are used to from their local telco. This can be a config option. Put in the local telco, and your menu is done from that.
- If ** connect to the outside line.
This system has very flexible configuration: I have gotten a few spam calls that ID’d as local exchange. Returning the call got either a ‘not me’ or not in service. If this becomes common, then the user can require a passcode for all incoming calls.
More about Challenges.
Challenges can be of various forms:
- “If you are a real human being, please punch in the number twenty-two seventy-four”
- “We are filtering calls for caller IQ: What animal do firemen rescue from trees? Punch in your answer”
- “What is the square root of 9?”
- “Our business is closed right now. If you have an override code, punch it in now, otherwise hit # to go to voice mail. Or call back when we are open.”
In the first three cases the device can pick a question randomly from a list; users are encouraged to dictate their own questions as it challenges voice recognition software. The process can be made harder for bots by ‘augmenting’ the recording with some amount of static, hisses, children playing, dog barking, etc. (People are much better than machines at dealing with signal noise)
This is a first sketch of the configuration. In general one of the problems of the Internet of Things, is that most devices are neither secure nor readily upgradeable. For this reason, I would propose that configuration be done on the manufacturers web site, then the local browser be used to program the Call Screener. This requires that the user register his device, and provide a way to be contacted. This may also be done through a smartphone app.
On start, the configuration app fetches the model/serial number of the device. This allows multiple versions to be maintained. The current firmware version and current config is also fetched.
Area code Whitelist. I find that most problem calls originate in the U.S. So at this point I would allow all the area codes in western Canada.
Area code Blacklist. For users who have more eclectic regular callers, they may want to work by disallowing codes instead. Note that modified versions of this would be required in areas where country codes are in common use. It may be desirable to have multiple lists.
Phone number blacklist. Based on caller id. This can be spoofed. This configuration page could also be used to set policy on “Private Caller” “Unknown” or cases where the number or state only is present with no further information. On on those ones where Vcode is show as caller ID.
Phone number whitelist. These are numbers that go through automatically, without audio captcha.
Both white lists and black lists are not pure black and white. You may say tnat blacklisted area codes/numbers have more limited hours/harder challenges.
Hours. One or more lists of times. Times can be in terms of weekly schedule, holidays etc.
Captcha questions. Recordings of questions, and their answers.
The remaining configuration is an action plan:
- Caller is on list X Choose one of:
- Go on to next Action
- Go to captcha
- Ring through
- Ring through with distinctive ring x
- Go to voicemail
- Use standard message
- Create a new message using your computer microphone
- Create a new message by picking up your phone and dialing xxxx code.
- Create a file of questions, and answers, then read out the questions, and punch in the answer.
- Standard options.
- Time of day is on list H
Do one of these:
- Give closed message
- Go to action Request emergency bypass code.
And one of these:
- Ring through
- Start an action tree.
- Go to Voice Mail
Thus you can still have a private life on a business phone.
Sample Action Tree
Introduction. “We are call screening. If you have a code, enter it at any time. If you are a business customer, this months’s code is below the logo on our website, or you can use the one in our latest flyer.
We have a business that normally closes at 8 p.m, but we don’t want cold calls after 5, but are willing to have current customers call to arrange a pickup.
So part of our email signature is this month’s current customer code. When that code is punched in, and it’s not yet after 8, we get the business phone ring pattern. If after 8, goes direct to voice mail. If it’s a friend’s code, it comes through it gets passed through with a family ring. If no code is punched after a suitable period, the device starts an action tree.
The configuration is complex. It must have an easy way to both set it up and test it. It should make a good diagram of it’s configuration.
One of the ways to configure it may be to posit scenarios:
- You get a robo call.
- Breakdown by time. (In which case it will give you options to use a current time list or create a new time list.) This option is present in all of the below.
- You get a call from some stranger
- Normal challenge tree
- Your daughter's crush calls. Distinctive ring, and no one else touches it, unless she's not home.
There are at least three different markets for this sort of device.
- Consumer item. As a consumer item, it would command the same sort of price as a local wifi router. $50 to $100
- Local PABX add on.
- Full telephone exchange add on.
The threat of marketing this as a consumer item may be enough to convince telcos to add it at the exchange level.
Version 1 to determine feasibility and interface could likely be done on an older PC with serial out, and a modem. Version 2 on a cheap single board computer. Production version would be a single board.
Power. While phones continue to work when power goes out, Telcos will not be amused by even small parasitic (to their view) loads on the system. That said, the power demand for something like this should be very small.
- Power with a wall wart, much as normal modems were.
- Instead of wi-fi, communicate with the local network with ethernet, and power the device by POE.
- The telco version would likely have a thousand of these in a box, much like a multiport modem.