Lookup by Twilio
twilio.com
twilio.com
When someone leaves me a message, I get an SMS with the message and caller details. I've been using OpenCNAM (https://www.opencnam.com) for the caller ID look-up.
I implemented something similar for our office so that each person has a proxy number that can be given out to clients. Voicemail is handled by a similar app, and each person also receives a Slack notification for an incoming call or voice message.
Lookup by Twilio is a bit different than OpenCNAM, but also pretty similar. They're both pretty affordable, though in the end, I'll likely create our own lookup database that we can customize.
For me, the most immediately useful info is the state/province as well as country of the incoming call. It appears that with Twilio Local, on the latter comes through. I did some tests of Lookup with a bunch of numbers, and the additional info that comes through for the paid portion of things doesn't seem that particularly useful. The (free) "national_format" is nice, but I'd say the most valuable part of the service is quickly identifying invalid and VoIP-based numbers.
With VOIP.ms, I ordered a DID and set it to auto-answer any call. They have a voicemail feature you can use, so it handles the recorded message and recording after the beep. Voip.ms then emails you the voicemail (nice for recordkeeping). If your cellular provider has an email to SMS gateway, you can forward the email there, and you'll see the callerid in the subject, but no CNAM to speak of.
Once working, I set my cellphone to auto-direct any unanswered calls to the DID I setup.
Here's how some Canadians are doing it: http://awslookup.com/free-voice-mail-on-wind-mobile/
Thanks for the opencnam mention. We are about to launch www.everyoneapi.com -- version 2. The current everyoneapi offers the same lookups that Twilio offers, but we will be lowering our price and adding even more data-points. Our reverse phone append product offers a lot more than just linetype and carrier. The parent company to both opencnam and everyoneapi is telo (www.telo.com). If anyone has any questions or requests, feel free to contact support@telo.com!
Any plans on open sourcing the formatting library?
It's a good functionality, but (at least for me) would mainly be useful for view-layer on-the-fly formatting, and we wouldn't use an remote API request for that.
Sort of like Strip's jQuery.payment[1], it would be a simple and clever marketing trick. People searching for a phone number formatting library are just the people you want to sell your services to.
EDIT: just found libphonenumber, which does local formatting[2]
[1] https://github.com/stripe/jquery.payment [2] https://github.com/googlei18n/libphonenumber
Not much different than looking up someone's whois and pretending to be GoDaddy.
For example the Giffgaff network is carried by O2, and a UK landline rented through Twilio appears to be carried by Jersey Telecom.
Re: a Twilio UK landline number coming up as JT, as you're probably looking at the results of a SS7-MAP command that returns the SMS routing info for a particular number, in this case it's likely that JT look after the SMS side of that number (routing for voice and SMS and the networks themselves are generally quite separate).
+18005551212
{
"country_code": "US",
"phone_number": "+18005551212",
"national_format": "(800) 555-1212",
"url": "https://lookups.twilio.com/v1/PhoneNumber/+18005551212",
"carrier": {
"type": "mobile",
"error_code": null,
"mobile_network_code": null,
"mobile_country_code": "310",
"name": "ICE Wireless"
}
}
+18005551111
{
"country_code": "US",
"phone_number": "+18005551111",
"national_format": "(800) 555-1111",
"url": "https://lookups.twilio.com/v1/PhoneNumber/+18005551111",
"carrier": {
"type": "mobile",
"error_code": null,
"mobile_network_code": null,
"mobile_country_code": "310",
"name": "Zipwhip"
}
}
Specifically, Ice Wireless seems to be a small northern Canada provider?1. Wrong carrier for my mobile - number started out life with a UK MVNO (sainsbury's mobile), I have since ported it to Virgin UK (another MVNO) but Twillio lists the carrier as being EE (which is sort of correct in so much as that's who Virgin resell capacity from).
2. No carrier type info for UK voip numbers - tried two numbers, one from Telappliant and one from Andrews & Arnold, got nulls back each time :(
Re: 2, the data is available from Ofcom - maybe if you ask Twilio nicely they'll load it :)
https://clients.txtnation.com/entries/21436098-HLR-Lookup-Ov...
'The UK is an unusual country as far as number portability is concerned. There is no central number administration database, and Vodafone UK prevent HLR Lookups to all parties. Hence, we currently fully resolve all UK mobile numbers except Vodafone ported out. - If you query a Vodafone number our Gateway responds based on number range info. - If the Vodafone number has been ported out, our Gateway response will still come up as a Vodafone number. - If a number has been ported in to Vodafone, our Gateway response will be correct. NOTE: Vodafone UK is only reachable with the NPLU, it is still blocked with RTLU. To be more accurate, it's blocked if the number range belongs to Vodafone.'
- Is the phone number not only valid in terms of syntax but a number actually registered to a subscriber?
- Is the subscriber currently connected to the network? (Normally indicates if their phone is switched on or off with the exception of not having a signal)
- Has the phone number or subscriber been barred or blacklisted in any way?
- Network that the number originally belonged to
- Network that the number is currently registered with. For example if they ported their number from another provider this will be different from the network the number originally belonged to.
- Network that the subscriber is currently connected to. So say if you were roaming in a different country this would return the network the phone is currently roaming on. Can be used to see if someone is out of the country.
This works mostly worldwide with a few exceptions. In a few countries we can actually determine if you are on a prepay or contract plan as well.
Good feedback - appreciate you sharing. We do have geographic information with each webhook sharing city, state and zip - agree it would be useful to have this in the Lookup resources as well.
If you did add geographic info, what would it be base on? area code/NXX? How relevant would it be considering LNP?
``` Right now there are no plans to add this ability to this feature but I'm sure it's something we would look at as we go along. We really weren't sure this was a viable feature but enough people made noise so we developed it to help companies be more efficient when sending and calling the people they need to connect with. ```
I tried a bunch of UK numbers for big cities (and my US mobile number) and none had city information.
That used to be the curse of Google Voice. They'd only send SMS to a mobile number, but their database for recognizing mobile numbers was terrible.
It does recognize a Twilo number properly, though.
At least in India, there exists a central database of ported numbers which every carrier uses to do the routing.
If you both would like to shoot me an email to rob [at] twilio [dot] com, we'll ship you a t-shirt as thanks for pointing out the error.
That said, any ideas for what you could use this for? I'm actually interested in building a sample app for it, I'm just trying to think of a sexier use case than localization and spam-detection. Is that as good as it gets?
... "name": "Google (Grand Central) BWI" ...
"Some number types don’t accept all communications -- for example, most landline numbers and many VoIP numbers do not accept SMS messages. Identify which kind of communications users can accept, based on their number type. This allows businesses to optimally decide whether to send voice or text communications for $0.005 per lookup" - from that page
When you type a landline number into my app that sends text messages it will fail. So I can choose to pay Twilio to confirm that the number can receive SMS. My users have mistyped their numbers in the past and that can be awkward when some random stranger gets a text from my system in the middle of the night.
That being said, they would charge me half a cent per lookup. I probably won't bother with local numbers, but I think I will use this for international numbers.
Additionally, since Twilio is giving me national format preference data for free, I might as well reformat a user's entered number to match their usual preference as eye candy. Although, I will just use http://www.phoneformat.com/ JavaScript library like I planned since I want to auto-format numbers as they are typed.
If you are making a site like Craigslist and want to enforce phone verification for making new accounts, you can require that users use a cell phone number instead of easily obtainable VoIP numbers. Craigslist implemented something like this in-house.
Another good use is now you can see if the robocall you received originated from a Twilio number. I looked up my Twilio numbers and they show up as "Twilio" under carrier. The page is live, so you can lookup numbers for free. You can then file a ticket with Twilio and make that person's life miserable.
1) Smarter Routing - quite a few developers have expressed they'd like to know whether or not a phone number is a landline or not before attempting to send a text message. Twilio Lookup will describe whether the number is mobile, landline, or voip so you can choose the appropriate communication to reach the number.
2) Error Checking - While libraries like libphonenumber are useful for determining if a number can possibly exist, there are some conditions where determining if a number does exist is more valuable. This can be used for error checking - if I as a user input a typo in my phone number (e.g. I mistype my personal phone number as '(347) 193-6073' which does not exist instead of '(347) 923-6073')
I also suspect across larger applications carrier info might also contain useful demography. For example, knowing that your users in Montana mostly use Verizon might inform your advertising to surface more CDMA devices in that market.
Ultimately this will probably end up like every other product we release - the killer use case is one we never even considered.
Checked a few numbers, only number it didn't get the network provider for was a UK landline. Wish I had a way to make use of this API!