Creating a Server for phone or sms - sms

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).

Related

Sending Packets Using TCP/IP to Use in XCode

I'm very new to network programming, and would appreciate some help understanding what some good progress steps would be. I am designing an iOS app that requires real-time information to be delivered over a network from another machine. I know the IP address of this machine, as well as the API that the machine adheres to in terms of sending and receiving messages.
From doing some research, it seems like I need to open up a socket on one of the machine's ports, and open up another socket on my computer, and then use TCP/IP to send and receive packets between the two.
What is a good overview of the process that I need to do at this point? Which languages and environments would you suggest that would be most efficient for me to be able to get the information I need from this machine into my XCode project?
Thanks! Any help would be appreciated.
you just need to look for examples of how to do "socket programming" for IOS. here's one resource:
http://www.tekritisoftware.com/sites/default/files/Socket_Programing_for_IOS.pdf

Send SMS over IP

I hope to create a web server that can give some extra facilities for SMS Service Providers. Can I send SMS through internet? If its possible then, Are there any libraries for Send and Receive SMS over the internet?
There are many different options to send SMS over Internet, but most popular are the following:
Connecting to SMSC of mobile carriers directly (usually via SMPP protocol).
Connecting through some SMS aggregation service like Clickatell mentioned in previous answers.
Choice between these options depends mostly on non-technical issues:
Required coverage (mobile carrier will provide only messaging inside it's network).
Premium Rate billing possibility (this requires closer work with carrier).
Well, price too... :-)
Technically most popular options are:
Specialized protocols like SMPP (Short Message Peer to Peer).
HTTP based protocols provided by SMS aggregators.
If you need unified solution, I recommend to use Kannel open source SMS gateway that support many popular transports (SMPP, CIMD, UCP, HTTP, etc).
You've got www.Nexmo.com www.tropo.com www.twilio.com www.smsified.com ... and so on...
You can use http://www.clickatell.com/ which gives you a few options such as sending SMS one by one, or by using bulk files such as XML.
I found the clickatell API to be really usefull and easy, I managed to add SMS capability to an existing website in a few hours by creating a simple class to wrap up all the methods.
One thing to remember though this is not going to be free for you, there will be costs involved depending on where you send the text to, and where you are based.
You can send SMS programmatically through TheTexting API, They provide cheap rates and their service is really good.
Full disclosure: I work for company that makes this product.

How to receive an sms in a desktop pc?

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)

connecting computer to a mobile phone - reading sms and use it?

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.

How to setup a SMS Gateway on Windows 7 and test with .NET

My company is working for a Telco who will allow us to send/receive sms using their gateway eventually but for now I need a sms gateway setup on my Win7 box that I can used to test and build an applicaton that sends and optionally receive sms messages.
I have had a look at Kannel but I cant seem to find a Win7 version or dont know how to compile and setup one on Win7.
If someone has any experience in this then please help me. Thanks
If you will be connecting to the telco it will probably be to their SMSC directly via SMPP or similar protocols, which means you will need to setup something to talk to that. Kannel is an excellent open source implementation of an SMS Gateway, and probably your best bet at this. It will take care of talking with the telco's SMSC, and will provide you with a simple HTTP based interface to submit messages to from your application.
In that case, you are better off trying to set it up sooner rather than later, because quite a bit is involved in Kannel's configuration. It requires linux based systems to run and there is no windows port.
However, in order to get started developing your application, you can look into a fake SMS Gateway that will accept the same HTTP interface as Kannel, and return back made up replies. A quick and dirty way would be to write a simple web page in any language you wish, that will accept a few parameters over a web request and print out "55124" for the new message id, or similar. Then your application can do a simple HTTP call to it to simulate sending an sms:
http://smsgateway.local/simulator.php?to=12345678&from=12345&body=hello+there
If you want something more realistic look at this list of software. There are some libraries for sending sms via mobile phone connected serially, and SMPPSim which looks like it could work for you for this.

Resources