SMS receiving confirmation - sms

I am trying out different things with Twilio, but open for other solutions with Nexmo, Tropo or Plivo.
Here's a situation, I am sending an SMS texts from a server to bunch of clients. I can get a status back: like queued, sending, sent, or failed. Here's what Twilio says about SMS sent status:
"Sent" indicates that your message was successfully sent into the SMS
network for delivery. However Twilio does not receive confirmation from
the destination carrier that the message was received, and this is not
a guarantee that the message has reached the intended device.
(https://www.twilio.com/help/faq/sms/what-do-the-sms-statuses-mean)
So, my question is: does Plivo, Tropo or Nexmo (or any other service that I missed) do anything like that? I mean, knowing that an SMS was received either by client directly, or client's carrier would be really important.
PS. I'm not even sure if it is possible
Any help or suggestions would be appreciated.

It's certainly possible with Nexmo - as the other answer and comment state, it's not possible with Twilio & Tropo. Plivo's docs look like their delivery receipts are similar to Nexmo's.
Nexmo sends a delivery receipt if it's supported by the carrier. In the US it's not, but internationally it is supported often. In those cases Nexmo will give your app a callback with a delivery receipt. You can also use the message ID to query for the message status.
This screencast shows checking the DLR from the dashboard, which is really just a UI on top of the API.
Kevin makes the point that this could be difficult if the message is bounced through multiple providers - one of Nexmo's focuses is getting as direct a connection as possible.
[Disclaimer: I do occasional developer evangelism for Nexmo.]

I'm a Tropo customer, and I've asked the same question, and so far, the answer's similar to what Kevin Burke gave for Twilio. It's hard to do, so there's no confirmation at this time. They do give some debugging information in the logs which is helpful with that first-hop negotiation, at least, even if it's hard to retrieve/parse easily. They are working on it, and have been very active adding new features.

Related

Twillio Two-Way SMS: How to connect inbound SMS message to the outbound one?

Inbound SMS messages from Twilio have some details like the from number, etc.
My app is sending out an SMS message to a group of people about an event, and expecting a reply within a short time.
The event of course has an EventId, and I need to connect the reply received to that EventId so that I update the DB with the users who have chosen to reply.
I could store the EventId with all the numbers it was sent to, and then do a lookup based on the "From Number" from Twilio's webhook POST data (the incoming messages)
Then check the time to make sure it's within the "short time" frame I am excepting.
But I am sure there has to be a simpler way?
Like embedding the EventId into the outbound SMS and then receiving it in the inbound SMS?
I have not seen any docs or examples that show this. Is anyone aware of a way to embed the EventId directly into the two-way communication?
Or is the approach I've outlined above pretty much the only thing I can do?
Twilio developer evangelist here.
The approach you describe is indeed the best way to approach this.
Joachim mentions the ability to store cookies with SMS messages, but that only applies to incoming messages and you are looking to link to the original outbound message.
Other than that, we would be relying on the third party SMS application on your users' devices to send back data with a message and that is not something that exists.
Your best bet is to look up the From number on the incoming message, check out the last message you sent to that number and decide whether this message is related to that one and update the event accordingly.

clickatell sms messages fail with no error or notification for non-US numbers

I have a web application that sends verification codes to users through clickatell. Nearly all users are in the US, and those work fine, but I have about 5 with international phone numbers who receive no texts.
I have a page set up to accept delivery notifications and dump them into a log file.
If I send a message to a US number, like +18161234567 I get a notification like so:
integrationName=MyIntegration&messageId=*******************&clientMessageId=&to=18161234567&from=1##########&status=DELIVERED_TO_GATEWAY&statusDesc=DELIVERED_TO_GATEWAY&timestamp=1502911816000
But if I send a message to a non-US number, like +393921234567, I get no response from the clickatell server at all. It's like they don't even get the request. The phone number is the only difference between the two requests.
I have a case open with clickatell support but they have been less than insightful so far, just telling me they need a messageID or error code to investigate further, but since I get no response, I have none to give them.
Has anyone else experienced this or have any ideas I can use to troubleshoot?
We have a two-way number because that is required for sending texts in the US. However, clickatell notes on the two-way settings page that
If the country does not support two-way messaging, Clickatell will not submit the message (you will not be charged for messages that aren't successfully submitted)
I can't seem to find a list of countries that do or do not support two-way messaging. Do I need to add a separate integration without two-way messaging to support my international numbers?
UPDATE: Upon further research, my international users are in 3 countries. Italy, which does not support two-way messaging, and France and Mexico, both of which do support it. Yet none of the three are working.
FURTHER UPDATE: I have tried creating a separate integration just for Italy, since they do not support two-way messaging. I have set it up to use the clickatell automatic mobile number formatting for that country. The result is the same. No text is sent and I receive no response of any kind from the server.
Can you please check/provide response from server when you submit message with number: +393921234567.
Most likely you get validation error - that this destination number not covered by number that you bought.
Have a nice day.

Why do I my outbound SMS from Plivo not work when they work with Twilio?

I've been using Twilio to send SMS and things work great. The only issue is that Twilio charges for both outbound and inbound messages. As such, we've been looking for other solutions.
We thought we found it with Plivo as their pricing was more favorable for SMS.
However, with Plivo, very quickly our outbound messages are being marked as spam or something and they're not being delivered.
We are sending the exact same message every day to about 5k users at a given time in the day. The message has a url in it, but it is something our users signed up for.
Two questions:
1. Why does everything work on Twilio and not on Plivo?
2. Is there a code change I can make to ensure our outbound messages sent with Plivo are not marked as spam by carriers and then stopped?
You need to contact Plivo about this. I experience this problem too. Their carrier mark our number as spammer since we are sending almost the same messages (verification). They called their carrier and our number was white-listed.
Plivo Sales engineer here. This is indeed an issue with the carrier marking your messages as spam. We can definitely help you overcome this. Could you please drop an email to ramya(at)plivo.com and we can sort this out?
You need to contact with Plivo support , there may be problem for number prefix for country like if you are using twilio you have to add +(with country prefix) but not in Plivo. It will be better to contact with Plivo support.
Thank You
I dont know how Pilvo work but usually with SMSC there is Message Queue associated sometimes with each SMPP Client and also with Mobile Station. You can't always send messages until your certain number of request are still pending. there is a specific error code that SMSC sent to its client about message queue overflow.
BADABING BADABOM! After having a look in the Plivo administration I noticed a new option under other-settings "Automatic Encoding Of Unicode Characters". As Norway uses inernational characters this is definately a setting for me, and after enabling it all SMS are delivered as expected. So remember to enable this setting.
MAKE SURE TO ENABLE THIS:
Path: Plivo admin / Messages / Settings / Other settings
Feature: Automatic Encoding Of Unicode Characters -> Enable

Replying to certain message in Twilio

I am making an event organisation platform. Whenever user creates an event, the candidate gets an email notification as well as sms notification asking whether the suggested time fits or not. The problem is that since it is event organisation, there may be more than one occurance of candidate's mobile phone. So I need to have some unique information to identify to which event candidate is responding to.
I have tried identify using Message SID, but then I realised that Message SID is different on reply message.
So my question would be: is there any way to authenticate to which message candidate is replying to?
Hi Twilio developer evangelist here.
Because every message is idempotent, you wouldn't be able to track them just via the call sid. however, there's way to get around that such as passing a code that goes with each message which you can then read, or using cookies.
I think you are probably going to be more successful using cookies, and luckily enough there is an article on twilio's website that describes just how to do that. And because I noticed you're using PHP, I'm pointing you directly to the PHP article on tracking SMS conversations.
Hope this helps you

SMS containing links not delivered by some carriers

My web app sends an SMS text message to users in the US when they enter their phone number, using the Nexmo API. When the SMS contains a link, it does not get delivered to users if their carrier is Verizon or T-Mobile. For other carriers, such as Sprint and AT&T, it does get delivered. It does not generate error messages in any case with Nexmo and I still get charged for the text even if it gets blocked by the carrier.
I contacted Nexmo and they replied:
I would say it is very likely that the link in this sms caused a spam
filter to block this message, especially if other plain content
messages have been delivered to this number successfully. So the issue
with US LVNs is that they are intended for pure P2P traffic and this
is why sending a link might be suspicious and seen as a message
originated from an application. Unfortunately there is nothing we can
do about this as it is set by the US carriers.
These are not definitely not spam or marketing messages. How can I send a link in an SMS message and not get blocked?
I had the same issue recently. All major carriers have some basic checks in place which blocks the SMS from getting delivered if you use short links (e.g.http://abc.gl/1432). The SMS will get delivered as long as you have a .com in the URL (e.g. http://abc.gl.com/1432)
Well, I observed that some carriers mark it as spam if have "Some Message. Click Here http://example/somelink" format.
Removing "Click here" part worked for me.
i.e. "Some Message. http://example/somelink"
Got the same issue. I have been using twilio to a t-mobile phone in the US.
SMS Hello Alan, your code is: 146945 for website.com is not working but
SMS Hello Alan, your code is: 146945 is working fine.

Resources