My phone uses a sim card from a verizon MVNO. I don't even know the phone number.
"My" phone number was provisioned, and has always lived, in Twilio.
I set up a simple call forward and SMS forward to my SIM number. When I land in a foreign country, I get a new sim card and just point the forwards to the new number. Easy.
I wrote a shell script that allows me to SMS from the command line from my phone number. So I can SMS people from an airplane even though my handset is off. If I lost my handset I could still SMS you.
It's also nice to have a proper date/time stamped SMS log that lives in /var/mail/sms ... I use this a lot.
My favorite thing about all of this is that I have finally removed voicemail from my life. Hint: you need to tell your carrier, with star-71, to forward to a "black hole" number at the end of your call sequence, otherwise verizon will jump in and say "the wireless blah blah voicemail box that is not set up blah blah ...". So my twilio number rings for X seconds (whatever I set the timeout to) but then the call progresses to verizon, but verizon has been instructed with star-71 command to forward calls to a second number I set up in twilio that does nothing but hang up. That's my "black hole" number and you can insert that into the end of a lot of workflows like this.
Calling has to be done with a voip app on your phone because, of course, you cannot call from your twilio number directly from your phone. Well, you could, if perhaps you called yourself and then set up some logic where you type in the phone number you really want and then twilio forwards you there, but I think it's easier to use a nice VOIP app ... I use groundwire, but whatever works.
I might try to formalize all of this and present it at Signal next year ... there are a lot of other neat things you can do ....
Neat! I have a similar setup, except a little more native support because of Twilio Wireless (not sure if you know about this? https://www.twilio.com/wireless)
I have the Twilio SIM (T-Mobile coverage) in my primary SIM (iPhone dual sim), and then Verizon/ATT/Sprint/TMobile on my e-sim. The e-sim is for data only, because data is expensive (and slow) on Twilio. If you don't have Dual Sim then the data element may be a bit of a roadblock for you to totally switch over to the Twilio SIM depending on your data needs. Tthe goal of my setup is to be completely cell phone agnostic. I wanted to be able to send a single signal into the PSTN over an IP connection OR over a cell-only connection (no data). The native support on this is great when you use the Twilio SIM, but with call forwarding and some other hacks you can get support without the Twilio SIM. Also, the great thing about the SIM is that I can pop it into a phone from 2002, and have it talk to the internet through a series of signals sent via SMS (e.g. server maintenance, open up a firewall for a few moments, etc). I wrote a server that I point the SIM endpoint to, and this server handles all of the forwarding/reception of voice and SMS.
I also built out a CLI for messaging (pulls in SMS history, deletes from Twilio, stores locally encrypted, lets you send out messages on a "convo" view, etc)... using the python API, and then built out a Web UI for making phone calls using client.js (receiving phone calls TBD). This has integrated support with my CardDav contacts (and depending on if someone is in my contacts, they get a different number on the caller ID), which makes for a more powerful (IMO) app than an iOS VOIP app, of which the options are fairly clunky and limited.
It is all pretty hacky but if you want to talk more about it I am curious to see what you have built out. I am not totally dependent on it for a few reasons, a big one being that I don't want to send all of my communications through the unencrypted telephone network.. The long-term goal here is to package it and open-source it so that people can easily "free" their communications, but it is pretty scattered right now.
Eagerly awaiting the PinePhone to give me more flexibility with all of this.
Yes, I do have some of the Twilio SIMs but I live in a verizon-only zone so ...
Interesting how you are sending SMS with different caller-ID based on contacts, but I am curious - without a VOIP dialer, can you place voice calls from your native dialer with different caller ID ?
Please, please email (or trouble ticket) twilio and ask them to add an "email" verb to twiml ...
That is one of the big missing links in all of this - you should be able to fire off email alerts/messages in your twiml workflow without any third-party[1] integration or other accounts/logins, etc.
[1] I would still consider sendgrid third party since I need a different login, account, etc.
> Interesting how you are sending SMS with different caller-ID based on contacts, but I am curious - without a VOIP dialer, can you place voice calls from your native dialer with different caller ID ?
Yes it is not very pleasant, and it is how you basically described it where you call a Twilio number, and then type in the destination. You could set up some sort of signaling where you activate the outbound number with an SMS which may be less cumbersome than dialing on a phone call, but for native support that is the only way I can think of -- just dialing the target number would of course route from your main Telco
A decent SIP app might be an alternative here, I haven't explored them thoroughly because of Twilio Wireless (last I checked they weren't spectacular, but SIP is good)
Here is a possible way to call from the native dialer in the event that data is not available...
One can prepend a calling card-like sequence, using hard and soft pauses, before the actual telephone number gets called so all calls get routed through twilio (or any VoIP carrier) for managing the caller id.
In other words, you are calling your personal calling card telephone number for every call so you will enter in your code and then enter the telephone number that you would like to call.
"You could set up some sort of signaling where you activate the outbound number with an SMS ..."
Thanks - that is a great idea and I might consider implementing that ...
I think a SIP/VOIP app might be cleaner, and I see that some VOIP apps now support SMS, if I understand correctly ? Call quality and volume issues are a side-effect of the voip dialers, though ...
For people who are looking for a similar setup, jmp.chat is an alternative service built on free software and a voip provider like twilio. They forward SMS over XMPP and you can make calls with any old SIP client. Its literally a bunch of ruby scripts, a very charming project. I jumped ship from twilio after they made payments without a credit card impossible for small-timers like myself.
We don't always provide our complete number list at https://jmp.chat/ - as an example, we usually have off-list numbers available in area codes like 416 and 212.
Just message the JMP support number (+1 416 993 8000) or my Jabber ID, denver@ozg.ca , to let us know which area code(s) you're interested in and we can send you a number list.
Google Voice (née GrandCentral) also has the phone number indirection-layer feature. It's a product and not a developer tool, so it lacks some of the more advanced features (eg command line access), but it's far more accessible to non-developers.
Google's uses Google Voice as part of GoogleFi, so hopeful it won't be killed off any time soon.
Similar to what the parents does, I use "conditional call forwarding" to send all non-answered calls to Google Voice. When I get a voicemail, GVoice then sends me a transcription of the message.
> if perhaps you called yourself and then set up some logic where you type in the phone number you really want and then twilio forwards you there
It would be cumbersome to have to do that manually, but have you looked into any of the 3rd-party dialer apps on Android? They'll dial the prefix specified before dialing the number that was entered.
Yes, I have - and indeed that would solve a major usability issue - however I live in a ATT/Tmobile dead-zone and the Twilio SIMs are issued by T-Mobile ...
So I have some weirdness in my workflow just to connect to VZW.
Oh, btw - if you use a verizon MVNO, use US Mobile and not straighttalk because straighttalk does not allow tethering whereas US Mobile does ...
EDIT: one more thing ... using a voip dialer instead of the native iOS dialer is a bit clunky but it also gives me the ability to dial from any of my twilio numbers. So I can pick my "from" number - either personal or rsync.net or (throwaway personal that we give to salespeople). So there is a pro/con involved in using a twilio SIM and the native dialer vs. using a voip dialer...
Certainly it costs some amount more because I pay for US Mobile (verizon MVNO) and then the twilio fees, but I think my monthly Twilio bill is negligible ...
"My" phone number was provisioned, and has always lived, in Twilio.
I set up a simple call forward and SMS forward to my SIM number. When I land in a foreign country, I get a new sim card and just point the forwards to the new number. Easy.
I wrote a shell script that allows me to SMS from the command line from my phone number. So I can SMS people from an airplane even though my handset is off. If I lost my handset I could still SMS you.
It's also nice to have a proper date/time stamped SMS log that lives in /var/mail/sms ... I use this a lot.
My favorite thing about all of this is that I have finally removed voicemail from my life. Hint: you need to tell your carrier, with star-71, to forward to a "black hole" number at the end of your call sequence, otherwise verizon will jump in and say "the wireless blah blah voicemail box that is not set up blah blah ...". So my twilio number rings for X seconds (whatever I set the timeout to) but then the call progresses to verizon, but verizon has been instructed with star-71 command to forward calls to a second number I set up in twilio that does nothing but hang up. That's my "black hole" number and you can insert that into the end of a lot of workflows like this.
Calling has to be done with a voip app on your phone because, of course, you cannot call from your twilio number directly from your phone. Well, you could, if perhaps you called yourself and then set up some logic where you type in the phone number you really want and then twilio forwards you there, but I think it's easier to use a nice VOIP app ... I use groundwire, but whatever works.
I might try to formalize all of this and present it at Signal next year ... there are a lot of other neat things you can do ....