Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

A contact based whitelist would solve this immediately for personal phone use.

There was a single throw away line in WWDC that suggested they may have finally added this (depending on what they mean by “unknown” caller).

All I want is a contact based whitelist with an API endpoint that allows calls for a small time window (for doordash and Uber to use).

This would solve 99% of the spam issue. All other calls can go straight to voicemail. Allow an option for repeated calls to get through if you must.

Apple’s current call kit api only allows blacklists which work poorly and are a lot less elegant.



This isn't really feasible right now. Your bank, your doctor or a potential employer may all have different numbers each time they call you. Some critical calls may be unexpected and need the immediate attention a phone call gives (example: friend on somebody else's mobile)


I let them leave a message, then skim the transcript. So far it's 100% spam, but I only lose 5 seconds checking and if it's important, I'll see it. I never pick up unrecognized numbers.


You are not alone.


If you are receiving transcripts it means your private voicemail data is being harvested. Even if you may not care, this is a violation of privacy for your friends and family.


Is that fundamentally different to the calls running over someone else's network in the first place? But, good point.


Yes, I long for encrypted voicemail built into Signal et al. One can only hope.


I (and many other people, I suspect) don’t pick up unknown numbers, so whether it’s critical or not is besides the point.


Even better, just get an app that puts everybody who is not a contact right in voicemail. I don't know why this is not a built-in open on iOS and Android. If you're expecting a call from a non-contact just turn it off for 15 minutes or call them back.


Do Not Disturb mode on more recent Androids (and I believe iOS too) effectively does this. I configured my phone to just not even ring for non-contacts, so I only see it if I have my phone open already. Otherwise I only find out when I see a voicemail later. It's been on for 3 months and I think 1 has been legitimate.


The iOS implementation of DND is lacking. It kills notifications for text messages from everyone, for example.


As an implementation of Do Not Disturb, that sounds like the expected and correct behaviour. It is only lacking if you want to (ab)use DND as a technical solution to the social problem that there is no adequate legal protection against spam calls in your jurisdiction. In Europe, I get a spam call maybe once a month, slightly more if you see legitimate (according to the local interpretation of law) market research and opinion polling as spam.


I'm overusing it for the permanent spam-blocking use case, for sure, but it makes sense to me that often when I say "Do Not Disturb", I mean specific groups. My spouse and kids can interrupt me pretty much whenever they want (especially if they know why I don't want to be disturbed - then they can make an educated judgment about if it's worth it or if emailing me is better). Maybe I don't want to be annoyed but I'm on call, so work contacts can get through. If anything more granularity and "contact groups" would be nice.


I've been wondering the same, I recently made MyHumans for iPhone to do just this. I think this works for a lot of people, and it has completely solved my spam problem.


Kinda ironic, since letting your bank/doctor/employer call from the same outbound number is literally the purpose of spoofing.


But they should be limited to only allow them to spoof numbers they own.


This. We view this as a problem for IP addresses, how is this not viewed as a problem for phone numbers?


So those businesses can redo how they handle their outbound calls. When a business emails me, they don’t use a different domain each time.


> Your bank, your doctor or a potential employer may all have different numbers each time they call you.

Then maybe they ought not to do that?


The whole definition of identity is ill-defined in this kind of context. Should your doctor have the same number on their work phone as on their desk phone as at the front desk as...? What about another doctor at the same clinic? What about your doctor's secretary? What about their personal mobile?


But that is not my choice


This doesn’t matter - voicemail works fine.

Services that cared could change behavior to call from a single number.


I just created an iPhone app that uses a whitelist from your contacts like you described. It's available on iOS 11+ and called MyHumans.

I've tested out the "silence unknown callers" feature in the iOS 13 beta and it works very much in a similar way. "Unknown callers" seems to be any call that isn't in your recent calls or in your contacts.

When I made MyHumans (just launched in the last month), I knew there was a risk of something like this appearing in iOS 13, but I'll be adding some more features.


Out of curiosity how did you implement this? I looked briefly to see if I could make something and call kit seemed to require a blacklist (I figured this is why no whitelist app existed).

Do you do something special?


When I first became interested in the idea for the app, I quickly ran into the same limitations with CallKit. What my app, MyHumans, does is relay the call through a backend service which sends it to your phone via a VoIP call using CallKit. CallKit allows the incoming call to act nearly the same UI-wise as a normal incoming call. The backend service is then able to filter calls using salted hashes of numbers from your contacts.


Cool - thanks for the explanation.


My Pixel 3 has spam filtering on by default. I rarely get spam. If you still get spam you can screen calls as they come in. There's a button on the "Hey your phone is ringing" screen where you can send callers to a prompt asking them to identify themselves.

You can also configure Do Not Disturb mode to allow calls to come in from your contacts or from your favorites.


On iOS DND turns off all other notifications from all other apps so I can’t use it for this.


There's apps you can pay a service fee to have them do the spam filtering that comes free on the Pixel. RoboKiller is like $3/mo.

For a free alternative, you could route all your calls through Google Voice. You can transfer your current # to GV and then forward your GV calls to your new number that you don't have to even know beyond configuring call forwarding. GV has spam filtering, call screening, and lots of other useful features. Dunno how/if it would mess up your texting app though.


I pay for and use Robokiller and it sucks, about 30% of spam calls are blocked.

I used GV for a long time, but abandoned it once I learned Google was silently dropping group chat messages (without telling the sender) because they let their gizmo5 purchase languish with no dev work for years and never implemented MMS (this was a couple of years ago). Google had such a head start with GV, but did nothing with it and let iMessage catch up and pass them.

If there's something that I find completely puzzling about Google it's their disaster around messaging strategy.

It's also frustrating to me that all of these mediocre blacklisting applications (robokiller, hiya, nomorobo) only exist as hacks because neither iOS or Android allowed the obvious contact whitelist ability. Though it sounds like in iOS13 this may finally be changing.


> There was a single throw away line in WWDC that suggested they may have finally added this (depending on what they mean by “unknown” caller).

I could be wrong, but I believe a "known caller" is someone whose number appears in your Contacts, or a number that has recently shown up in Mail or Messages.


I hope so - it could also mean an unknown number without caller ID.


How big of a blacklist can you have? Say a billion, minus a few hundred? ;)


Hence whitelisting as a primary strategy.

W/G/B is still the best policy: white/grey/black.


I tried that - a file containing that many numbers is way too large to work.


Seems like a thing you could encode/compress, like continuous ranges between your known numbers...


The callkit api required a list of numbers passed to it that it would check to see if the list included the incoming call’s number.

I couldn’t figure out an obvious way around the api restriction, but if you want to try there was a github project called open call block which was a decent starting point.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: