Does sandbox application support incoming texts to verified number? - sinch

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.

Related

Clickatell tells that SMS a successfully sent to gateway but messages are not delivered

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?

How Can achieve delivery failure notice mail using Spring JavMail?

I am using Spring JavaMail for my Email communication application. How Can achieve the functionality that when a email delivery fails due the reason of wrong email address?
Achieving this reliably is not trivial. The protocol specs for SMTP in RFC 821 specifies a number of return codes. Notably 550 is what an SMTP server should return when attempting to send an email to a nonexistent address. I say should because most public-facing SMTP servers won't do this - they either quietly accepts the message and then drops it or, if they are a little more good-mannered, accepts the message but sends a "delivery failed" notice back to the sender ("from" address). Public services like MSN and Gmail will also blacklist senders if they send enough emails to non-existing addresses to prevent spam.
The reason for this is to prevent email-fishing and spamming.
So what you can do is to
Check for SendFailedException in your code. This will only work for servers that follow the SMTP specifications and actually send an error code back. Like I said, very few public servers actually do this.
Set up a proper mailbox for the address you use as sender and monitor that inbox for delivery failed notices. Note thought that these need not follow any common pattern, which is why this is non-trivial.
For the email servers that doesn't give any notice, you really have no way of knowing.
This is one of the reasons why companies buy mass emailing services from dedicated providers, since they have all these things already built to measure bounce-rate etc. But even with those, it's never going to be 100% accurate.
These FAQ entries might help as well:
If I send a message to a bad address, why don't I get a SendFailedException or TransportEvent indicating that the address is bad?
When a message can't be delivered, a failure message is returned. How can I detect these "bounced" messages?

How do you authorize SMS delivery?

I'm looking for the best practice, proper and "mobile carrier accepted" way of authorizing the sending of SMS/text messages to a cell phone number so that it can't be flagged as spam or abuse.
Basically, I want the user to enter in their cell phone number in my web app and then I want my web application to send some kind of SMS to them asking them to do something that tells the carrier and my app that they accept SMS messages from my web service. I do not want to spam - I only want people that want to receive the messages to their phone.
Also, I'm assuming that I can just SMTP to "email" text messages to their phone as well. Hopefully there's not a caveat to this method.
I have a little experience in this area and AFAIK there is no 'opt-in' list. However, carriers typically use the keyword DELETE to allow users to block messages.
Most carriers support a SMTP gateway addresses but you will need to know the carrier for each number. Here's a list to get you started. Also most messages received via a SMTP gateway will appear to come from different numbers on the users phone. (This is annoying for iPhone users who are accustomed to grouping of messages by individuals.)
If you are willing to pay per message services like EZTexting can take away some of the pain by doing the carrier lookup for you or sending your message via a direct, and more expensive, SMS gateway.
Here is a good overview :
http://www.acma.gov.au/webwr/consumer_info/frequently_asked_questions/spam_business_practical_guide.pdf
The US is actually behind with SMS regulations. We typically adhere to EU and Australian Legislation, which are stricter. The US will get there.
From a technical perspective:
You can use our Red API, just log on to www.redoxygen.com and select developers.

Replying to an SMS sent from a modem of SMS service?

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.

Receive SMS messages by web application

We are building a web app that should be able to receive SMS messages and store the information contained in it in database.
Which methods have you used? Which service providers are out there that can assist?
http://www.clickatell.com/ are massive and it works exactly like it says on the tin. You pay for a phone number and sms messages sent to that end up hitting a URL on your site to deliver them just like someone posting a form.
I'd recommend using a service such as TextMarks. TextMarks is free, and lets you pick a keyword for your service that allows users to route messages to you through TextMarks' shared short code, 41411. The only catch here is that they reserve 20 characters in each message for short advertisements to pay for their services.
If you ever outgrow their ad-sponsored services, you can upgrade to a premium version that doesn't include ads.
Another (cheaper) alternative is to have your users send text messages to an email address like sms#yourapp.com. Then you can have a background thread that's looking at the email account and puts the messages into the database.
I've implemented and tested this approach with major US carriers with everything from smart phones to pay-as-you-go "crappy" phones without a hitch.
When the user sends the SMS to your email address you get the SMS email gateway address (e.g. 8055551234#vtext.net) so you can send response messages.
The only downside is that it's a bit more difficult to find the "send to email address" options on most phones, but it is (basically) free for you. This is especially helpful for reducing costs while testing out workflows. Those ~3 cents for each SMS add up pretty quickly, especially during automated testing.
When you want to support SMS numbers you can configure most SMS gateways to send an email to an address, so you won't have to change your infrastructure to support a "real" SMS messages.
I haven't done it yet, but I guess you could also setup an Asterisk system on your server, then get a regular VOIP acccount (which Asterisk hooks into) and configure the Asterisk server to forward all SMS to your application. This article might help setting up the Asterisk server.
I've had experience using MX Telecom as an SMS Gateway. Essentially they posted data to our web service every time we received an incoming SMS. The application in question was also sending SMS messages as well and we just did an http GET to a web page of theirs.
I can't speak to the business end (i.e. cost), as I was just in charge of implementing the features - but working with an SMS gateway is really very simple from a development perspective.
+1 on sebastian i was jsut writting pretty much the same
if you are working with ruby you might want to have a look at adhearsion
You can use SMS gateway software which will receive SMS messages through a GSM modem or 3G dongle connected to a PC and POST them to your website via HTTP. Eg: this software

Resources