SMS API that allows you to specify FROM? - api

I'm wanting to move away from using $phonenumber#$provider domain because it is too limited in usability.
Is there a SMS service with a good API (prefer HTTP/s, XML, JSON) that allows you to send from a specific phone number?
The reason I want it to come from a specific phone number is because I have a Google Voice number I use for my business...

Since you want to use your google voice phone number maybe you just want to send the SMS though google voice. One way to connect w/ google voice is to use the Asterisk software. You would use Asterisk to talk to google voice over the SIP protocal - documented here:
http://michigantelephone.wordpress.com/2010/05/21/how-to-use-google-voice-for-free-outgoing-calls-on-an-asteriskfreepbx-system-the-easy-way/
and
http://eggie5.com/10-installing-asterisk-on-osx
For example I did this and then I interface asterisk from ruby code and can make calls, sms, etc.

Twilio will let you set the FROM number to any Twilio number that you own. Of course, you'd have to give up your Google Voice phone number. I'm pretty sure you won't find any SMS service that allows you to set the FROM number to an arbitrary number (just think of the mess it would cause).
See comment below indicating that the Google Voice number could be ported to Twilio.

Related

API Whatsapp to send messages from an external application

I want to implement Whatsapp
to send information from an external application. The idea is to use this
external application to send information throughout Whatsapp.
If you can help me about the terms and
conditions and if this query is possible to develop.
There is a way through which you can send WhatsApp message from your self created application. Use this link Chat API.
But it only provides 3 days trail period and after that you have to purchase it.
The process in that is, you have to register with your google account, then scan the QR code provided(which changes after every 45 seconds). and you are set to go, they will provide you the API for : PHP, Node.JS, Jquery, CURL.
One thing more you always have to keep your phone connected with the internet everytime.
Also I found a drawback in that, i.e. they also provide API to read messages, but it is too slow, as in my condition I can see my messages of yesterday but not of today.

Google Voice number doesn't work with Google Fabric?

I have been trying to create an account on digits with a Google Voice number. Whenever I enter my Google Voice phone number, the digits login screen simply shows an infinite loading icon. When checking the console, I see that a 403 message was generated for "digits (dot) com / sdk / login" and the following error message was returned:
"We cannot send a text message to this phone number because its operator is not supported".
The voice account was created about 12 hours ago.
I am not sure if Google Voice is supported, but now that Digits has been acquired by Google, I think its only logical that it should be supported.
It is important that I get this account to work, because I need it in order have a "developer account" for testers to use in the App Store review process.
I would like to know if there is anything that I can do about this, or if there is any type of help I can get from the team.
"We cannot send a text message to this phone number because its operator is not supported".
Seems pretty cut and dry there. A lot of services don't allow the use of a Google Voice number because it is a VOIP number. It is relatively easy to get a GV number, so some services block/don't whitelist their (and other VOIP's) numbers to prevent bots or mass accounts from abusing their services.
Whatever their reason is, it still doesn't work. As for actually getting it to work, I would contact the team and see if they can do anything, but it doesn't look like there is something you can do.

is it possible to identify telecom provider by mobile or phone number?

There are ulimited online bulk sms provider supporting Restful API. Mainly I look into Nexmo, Tropo, Twilio pricing in different countries.
Let take an example sms to Brazil.
[ TROPO ]
2¢ / msg
[ Nexmo ]
3.63¢ / msg
[ Twilio ]
Twilo offers based on providers. see the pricing.
Vivo 8.3¢ / msg
Claro 8.6¢ / msg
TIM 1.2¢ / msg
Oi 8.3¢ / msg
So, What I want is before sending SMS, I want to identify the Provider. See the example sending sms to TIM is cheaper in Twilio but others Tropo and Nexmo are cheaper. If there is a way to identify the telecom provider then I can program which API to use before sending sms. I don't know this question should be posted here or not. Is there a way or api available to identify this? Thank you.
I didn't see ready solutions, except databases in billings (in most cases they are detailed as needed for concrete needs)
The "number one" source is ITU. Link to docs - http://www.itu.int/oth/T0202.aspx?parent=T0202
It's official source, but it isn't ready to consume database. You must spend much time to manually create database.
There are some preparsed databases, as http://en.allworldsms.com/html/phone_codes.php ...
it's ugly, but it contains logos. And it's not downloadable in one file, but it's still easy to consume.
http://www.data24-7.com/git.php offers a free look up service if you want to use the web based panel they have. If you want API access they charge a sub-penny rate per look up. When I was using it the rate was something like .006 cents. Also the data was only about 90% correct. They may have improved it since then.
You can get more then just the provider, you can also tell if the phone number supports SMS, if it's wireless and what the greeting interrupt tone is (the number that by-passes the voice mail greeting).

Testing SMS code without access to a texting plan

Is there any way to test SMS messaging without having a texting plan?
There isn't any way to setup the equivalent of a mock email server for the purposes of testing an SMS service is there? Are there any other ways to accomplish the task? Perhaps setting up something like a GrandCentral account that can receive text messages?
I am looking to test SMS messages to multiple accounts without having to find multiple people with texting plans and coordinating the effort.
Google now has the answer for which I seek. With the roll-out of their new Google Voice (previously GrandCentral) they added the ability to received text messages to the phone number (which currently is free). While technically somewhat of a text plan, one could theoretically sign up for a few accounts and be able to test multiple phone numbers.
http://www.google.com/voice/
Update (Nov 2010):
Perhaps an even better way to do this now is to use either Tropo (tropo.com) or Twilio (twilio.com). Both of them offer low cost SMS messaging and Tropo is free for development. I've been using Tropo and it's very quick and easy to setup and write and code for.
It would depend on the method of how you're sending out the SMS messages. If you're using the email method (<ten digit number>#<cell provider's doman>) you can fake it with a regular email account that can be purged automatically. If you're using an actual SMS publisher your best bet would be to refactor the design so that you can test that your function gets called the expected number of times, but doesn't actually send the messages. Then when you want to test the production-ready code you actually round up a group of people and try it out.
Having a provider that doesn't charge for incoming text messaging (like US Cellular) comes in handy for situations like that.
SMS text can be done under a few different protocols. I've had success with SMPP using the Easy SMPP .NET library and this java-based SMPP server simulator. It saved me a bunch of overpriced service charges.
you can send email to their phone:
18005551212#txt.att.net (IIRC)

Programmatically get own phone number in Symbian

How to get the phone number of the device in Symbian?
According to the GSM specs, only the IMSI is required to be available on the SIM card.
The actual phone number MSISDN is stored on the HLR database in the operator's network and does not need to be available on the SIM card or transmitted to the phone.
So no matter what technology you are using (Symbina, Java ...) you can never count on being able to consistently get your own phone number from the device or SIM. You might be lucky if the operator stores it on the SIM or if the phone provides the user with a possibility to enter it manually, but it does not have to be this way.
As Pat has said, although there are APIs for accessing the "own number" slot on the SIM, rarely in my experience is this slot filled.
The usual strategy for obtaining the phone number for a connected application is to send an SMS as part of a verification process. Either:
Programatically send an SMS from the handset to your server (lots of good SMS gateway interconnect providers out there). The SMS will arrive at your server 'from' the number of the handset (or the SIM to be more correct). Of course the SMS should contain some token so the server can link it with a given session/user.
This has the advantage that you don't need the user to enter their own phone number (which is fraut with subtle difficulties given few folks understand how to format numbers in E.164 format). One disadvantage is that the process can cost your user money (one SMS).
Have the user enter their phone number (web site or on the handset) and connect to your server, passing that phone number. Have the handset then wait for an SMS to arrive that you send from your server. If this SMS does indeed arrive, you have verified the phone number they entered as correct and valid. Obvious disadvantage is that this relies on the user to enter their number correctly - again, given the plethora of ways of writing phone numbers around the world, its not as trivial as it sounds to normalise numbers to E.164....
Alas, neither of these methods are bullet-proof, particularly because SMS is an unconnected transport. Depending on GSM network load, the load of your gateway provider, phase of the moon and direction of window blowing an SMS can take a second to a month to arrive (yes, I do have experience of the latter). The mean delivery time is often in the seconds, but you do have to play with the operation timeout and might have to tweak it on a geographical and GSM network basis.
[And no, don't rely on delivery reports - even more unreliable than SMS delivery]
FYI: Actually i have found this.
http://www3.symbian.com/faq.nsf/AllByDate/100335073FFD8FEF80256E3200571A49?OpenDocument
But the fact is, the phone number is not always stored in SIM. The operator chooses to do it or not!
You can't. Afaik.
Check this discussion:
http://discussion.forum.nokia.com/forum/showthread.php?t=65117
It is not generally possible to get the MSISDN from a Symbian device (or BREW, or any other platform). We've tried.