I am stuck in the midst of a project. The project requires that a desktop pc must receive an sms sent from a mobile phone. How can I accomplish this? Please help.
You can connect a GSM Modem like this one to the serial port. It acts like a mobile phone with its own SIM card. I'm sure there are other products for USB.
On the software side, you can check for SMS messages by talking with AT commands to the device. I've done that in Perl and in .NET "manually", but maybe there are some out-of-the-box solutions.
i know (and have used) 2 ways to do this.
The quick, dirty and hacky way is to buy a mobile phone and connect it to your PC with a serial cable, then use old fashioned AT commands to control the phone (including listening for new SMS messages).
Many older Nokias support this, though it's not hugely well documented - this is about the best resource I found: http://wiki.forum.nokia.com/index.php/AT_Commands.
There are many exciting ways this can fail - you have to keep the phone charged, and in a data centre, reception is often pretty poor.
The alternative is to talk to a mobile aggregator (Google for likely candidates in your area). These are companies that can set up SMS short codes, and have APIs for forwarding the messages to you; APIs vary between the providers. This is usually fairly expensive - shortcodes cost money, sending and receiving SMS messages costs money, and the aggregator may not have deals with countries you care about. Caveat emptor, and all that.
You would also need a library to send/receive the AT commands to and from the modem.
See http://www.codeproject.com/KB/vb/phonesmsrecv.aspx
This software can help you. It uses a GSM/3G modem attached to a PC. It can store incoming SMS messages in a database, save to files, forward them to a webserver, in real-time.
(A 3g/gsm modem has a SIM card and therefore has its own phone number to which sms messages can be sent)
Related
I want to know how can I build my own Sms service provider?
In another say; What is needed to have a system to inject sms messages to the mobile network systems freely or is it possible at all?
with VoIP server we can do voice and video and text messaging through internet; but what about from internet to the land line or mobile network?
How Skype, smartvoip, etc. do this?
Please give me a direction that I could go through.
You need some sort of interface to the Mobile network to make this work. Your choices include:
build a system with a GSM/UMTS card or phone which you control to send SMS messages into the network. This will need a valid SIM and contract (and the small print may say that you are not allowed to use it to provide an IP to SMS service to others). If you google 'Asterix SMS Gateway' you can find several open source examples. You could also look at http://www.kannel.org/overview.shtml, although I am not sure how actively this is being maintained these days.
Build a front end for your SMS service and use an existing back end SMS service in whatever your target market is - i.e. connect directly to your local operators SMSC, most likely using SMPP protocol. This assumes the operator provides this service in your target network/market.
Use an SMS aggregator service such as MBlox or Clickatell
This is my newest project which consists of making a Server for phone and sms. I would like to do something like google talk where one would be able to make calls and receive calls or even text through the internet.
I would than be able to connect a land line phone or even just a microphone and call my cellular and talk. Otherwise just sending a sms message through the internet to my cell would be awesome as well.
Any Reference or guides would be much appreciated.
Notes:
Yes I know there are websites that do these things. Not what I am asking.
I got a Windows Server 2008 r2 setup at home.
I think I am a decent programmer, enough to be able to program this if I have some clue what I should be searching for.
Do not tell me it is impossible, as not too long ago I saw usb hardware that allowed to make calls over the internet (I know it's more complicated than that but I want to have this knowledge)
Okay, as others have already suggested, Asterisk is one the most obvious ways to go. Some time ago we created an online solution which allows most of the things that you have described, voip calling, dial plan generation, pbx, connection with landlines, sms sending, payments.
Tools used:
- LAMP (linux, apache, mysql, php)
- Asterisk
- OpenSer (http://en.wikipedia.org/wiki/OpenSER)
- 3rd party for SMS sending
- 3rd party for billing.
For phone you have two options:
not buying hardware and use voip. You can use some voip to land line gateways. There are many ways for achieving that. The most "professional" would be buying did number: http://www.voip-info.org/wiki/view/DID+Service+Providers. But there are other ways for example using skype api.
second option is connecting server to landline using special hardware - http://www.voip-info.org/wiki/view/FXO
Probably the funniest part would be writing webgui since writing PBX part could be little tricky. You should consider using Asterisk (free, Open Source) - Linux or 3CX (non-free) - Windows.
Regarding sms:
You can use sms gateway i.e.: http://www.clickatell.com/
You can buy gsm modem to your server
For the SMS part there is the SMSLib (http://smslib.org/), where you can use an attached phone to send and receive SMS.
You could provide a webinterface to write and read the SMS then of course, that would be the easier part.
For the calling I don't know, but it should be possible too. I know there are GSM chips for e.g. arduino but I guess it is very hard to reroute them to the application on the server. It could be possible with a short delay though.
Another option is to look into a VOIP library, e.g. Asterisk (http://www.asterisk.org).
I've absolutely no idea if this is possible and how it would work.
is it possible to give users a phonenumber where they should send an sms to.
e.g. the sms contains
name
some code
i want to track how many sms are sent to this number.
i want to read the sms text and use both nodes
they weird way i imagine this: i buy a prepaid simcard from any phone provider, i plug the simcard into any device (sim-reader :) ) connected to my computer. my computer is ONLINE. so my computer is kind of transformed to a mobile phone. some software is able to retrieve those sms and i can use the data in it.
is that even possible, if yes HOW?
You can use e.g. gammu to send and receive SMS from a cellphone connected to your computer - essentially creating a SMS gateway. I've succesfully used it in the past in this setup (newer phones have serial port emulation through USB, for older ones you need a model-specific serial-to-phone cable):
my program <-> database/textfiles <-> gammu <-> serial port <-> cellphone
The operation was as follows:
gammu ran in the command line/daemon mode, with a watchdog script restarting it (and the cellphone) if the cellphone became unresponsive (this was a really old phone; a watchdog is probably not necessary with anything > 2006)
gammu polled the cellphone for new messages, those were store into a "received" table in the database.
gammu also polled an "outgoing" table in the database for messages I wanted to send, and sent them through the cellphone.
my program was a web frontend for reading the incoming messages or inserting the outgoing ones.
(Gammu has an API to interface with the cellphone directly, without the database; I decided to keep the backend and frontend parts separate, and since the frontend was using the database for other things anyway, it was easiest to go that way; also, I was using an old phone for this, and needed the frontend to run even if the cellphone wasn't responding)
There are several possibilities listed here. But it depends on the phone you are using. Symbian, iOS, Android, Windows Mobile. But basically it is possible using a GSM Modem.
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.
I'm taking shots in the dark here. I'd like to create a web service where eventually I send an SMS by using my own hardware. I'm not sure what I need in order to send an SMS myself. I don't want to use any of the existing SMS send services out there, I need to be able to send these SMS myself.
It looks like there's one opensource project in particular that deals with this, "Kannel":
http://www.kannel.org/
what I don't understand is, do I need to get a GSM modem to be able to send SMS? Do SMS gateways (like Kannel) eventually need to get to a GSM modem to send messages, or is there some other hardware you need to be able to actually send the messages?
Thanks
Just find an online SMS Gateway. These Gateway providers are your best bet since they have handled all the heavy lifting for you. Just utilize their API and you should be able to do whatever you want. Some of these gateways are free and some are not. I've included a short list below.
https://www.clickatell.com/pricing/message_cost.php
http://www.zeepmobile.com/
(Carrier based SMS transit)
http://en.wikipedia.org/wiki/List_of_carriers_providing_SMS_transit
I'm sure there are a ton more, but this will get you started.
You always need a GSM modem to send the SMS unless you use a provider that handles this for you (but they usually want money for this).
If you want to setup your own Hardware infrastructure, you have to get GSM Modem, A Sim card and use it to send SMS.
Other option, which I recommend, is to use SMS getways and use
SMPP protocol
XML or HTTP Apis
In later, you dont have to create any infrastructure and the starting cost will be very low compared to GSM Modem. You can get up and running in a day.
Note : to reduce the SMS costs, you should choose different getways for different countries. In India you can easily find getways who provides SMS at merely 3 paise
You will have to download an API that handles the sending and recieving of messages for you. I once used this in one project where i had my GSM Phone connected to my computer thru one of the COM ports. Configured the API to communicate thru the COM Port to listen to any incoming text messages also send messages thru my GSM Phone. Here is a great link to the resources i used for that project. I hope this will help. http://www.codeproject.com/KB/cs/SMS.aspx