Is it possible to send an SMS or MMS message from a server through a service such as Twilio and set the source 10 digit number as desired?
For example, a delayed message system where someone wants to send a text at a scheduled time, they would enter their phone number, the message, destination number and target delivery date & time.
That information is stored on the server, then, at the specified time, sent through a service such as Twilio. The desire is the recipient should receive the message just as they would have if it was just sent by the sender direct.
The desire is to allow the recipient to respond back to the originator of the scheduled message directly as if it was live in real time and not delayed.
Twilio developer evangelist here.
With Twilio it is only possible to send SMS messages using a Twilio number that you've bought or an alphanumeric sender ID, that is a string up to 11 characters long that starts with a letter.
Spoofing numbers or business names is not allowed.
Related
I have an app that monitors the temperature of my beer batch and wants me if it starts tp warm up. I would like to receive an SMS when this happens. Is it possible to send an SMS with twilio without having to pay a monthly charge for a number? Prepaying for the SMS messages is not the issue, but I have no interest in replying to messages.
If you sent out an SMS message from a SMS Gateway, will send it to the mobile network so how we get the perfect result for SMS delivery..? they send us the number of successfully send message but not in detail like sent Successful on this numbers and for this number are failure
It totally depends on what SMS gateway you use, what destinations you send to (even within a country there are differences between operators)
You have 3 options really, and these are country/SMS route dependant:
No DLR support
Network DLR (so you get updates if the NETWORK has received the SMS)
Handset DLR (you will get updates if the HANDSET has received the SMS)
The handset DLR is the most reliable, but in general, depending on DLR for delivery stats is not something you want to do too much. Operators fake these (antispam measures), SMS route suppliers sometimes fake them to be able to offer lower pricing (by not submitting 10% of the messages for example), etc.
Only way to be sure if an SMS is delivered is by using testing services.
There are a number of them around. If you use services like Messagebird or BudgetSMS.net, you can get the DLR updates pushed to your server, for further processing on your end (they are linked to the sent SMS itself)
I'm trying to establish SMS sending with Node.js via Clickatell.
I've already tried the way described here: https://www.clickatell.com/developers/api-documentation/nodejs/
And both REST and HTTP requests from here (topics "How do I test my HTTP integration?" and "How do I test my REST API integration?"): https://www.clickatell.com/faqs/product-specific-faqs/platform/integration-testing/
In "SMS integration" area for both HTTP and REST APIs delivery type been set to: "Time critical delivery".
And i'm sending messages to number, that is in "test phones" list.
All the messages, I've sent to the server, are visible in "Reporting" area. But all them are stuck in "Delivered_to_gateway" status.
What i'm doing wrong?
UPD:
So, first message is finaly delivered to cell phone. After almost one and half hour of waiting.
I've also tried to send message to another phone with another cell operator ("Mobile network: Beeline (KB Impuls, VimpelCom)"), and it delivered in a minute or two.
So, detailing my question: it seems Clickatell have some kind of problems with delivering messages to "Mobile network: MTS (Sistema, Prim Telefon)". Can it be fixed somehow?
I'm testing out the service and it appears that sandboxed applications do not support incoming replies even if the reply is from a verified number. Can I get that confirmed?
If that is not the case, my second question is how Sinch handles self-signed certs for the endpoint on non standard SSL ports ... in my case self-signed on 8443.
Lastly, a gripe. As a developer I look for immediate feedback when errors occur with my integrations. I'm not really willing to wait 24 hours for a CSV to see what happened. Any roadmap here to timely error feedback?
To handle incoming replies you need to rent a number like most providers, you can rent a number in the dashboard https://www.sinch.com/dashboard/#/numbers assign it to your app and configure your callback for SMS.
To handle incoming sms, check out the documentation here:
https://www.sinch.com/docs/sms/#smsmessagingcallbackapi
And if you have multiple numbers assigned to you app you can set the from id in the body of the request
{
“from”:”your rentednumber”,
“message”:”hello world”
}
You can always check the status for a particular message using the API here
https://www.sinch.com/docs/sms/#checkmessagestatus as you probably know long code delivery is only carrier delivery and not handset delivery.
If you mail me at christian#sinch.com I can hook you up with some more credits to rent a number.
I am trying to implement my own theoretical SMS web service (just to understand how this stuff works, I have posted a few other related questions, I think this is it).
Set up a PC. It takes requests from a website I make to send out SMS messages: a user-entered destination phone number, and a user-entered text message
I get a GSM modem, or just a GSM phone. I connect it to the computer.
I get a service plan from Verizon or whoever, some sort of unlimited SMS messaging plan.
They give me a SIM card, which has my unique phone # attached to it (ex: 555-5555). I stick this in the GSM modem.
I get some application (like Kannel) which handles interfacing with the modem and sending out the messages from my machine.
Now users can visit my theoretical website, enter a phone # and message. I grab that data, forward it to Kannel. Kannel interacts with the modem, passing it the data for the message. The modem interacts with the carrier network I signed up with, and broadcasts the actual SMS to it. The carrier network handles routing the message to the actual destination.
This is my understanding of how it works. Now the recipient of this text message will see this message pop up on their device from my modem's number (555-5555). In fact, all the thousands of people using my service will all see the same origin phone number.
If that's so, how do these 3rd party SMS applications give people unique #s for replying to messages they send out?
For example, when I sign up for one of these 'free' SMS services on iPhone, they assign me a unique user ID, like '123'. My friend is on a normal AT&T phone plan. He can send an SMS addressed to '123', and somehow I will get the message. How does AT&T know to route that to this third party service? I can't imagine that they would somehow get a new SIM card with a unique phone number per user that signs up for their service!
Thanks for all your help.
Thanks
The cell network carriers (e.g. AT&T, Verizon) actually rent out custom phone numbers (called "short codes") to 3rd parties to use.
You usually can't acquire these short codes directly from the carrier, but you can go through a 3rd party company to rent the short code. I've worked with companies like MBlox and OpenMarket to use carrier short codes. These companies are sometimes referred to as "SMS/MMS messaging aggregators," because they aggregate messaging services across multiple carriers and offer them to people/companies like you. Most of the time the aggregator will expose some sort of API (SOAP/XML or binary protocol) to access the messaging services to send and receive messages.
There may be other ways to do it, this is just my experience.
I think your comment at the bottom of your message is misleading.
Your friend probably doesn't send a message to "123" infact he probably sends "123 hello george" to a central number, which in turns routes "123" on to you, behind the scenes.
FWIW, mobile messages can appear as though they come from anything (including, for example, a word, and not a number).
Your general underlying assumption as to how gateways work (acquiring simcards) is accurate enough.