A quick summary of how the gateway works somewhere?


playSMS looks really interesting but I have been browsing around for a bit and I can’t find what I want to decide whether to investigate further. My immediate need is simple - my parents are both sick and I just want a simple mechanism for all my siblings and I (6 people) to be able to send a SMS to somewhere and have it delivered to everyone else - just like a mailing list works - so people can reply and everyone gets the reply. I assume there has to be a SMS - server gateway somewhere that allows this mechanism to work and I just want to find some documentation somewhere that describes this (preferably with pictures!) - where is it?


This can be done with SMS command. When you receive a message with a keyword that message will trigger a script that just copy the message and send it via webservices to a list of numbers that you have in a configuration file. This also have the advantage that you will kept records of the messages that you received and sent and also by using the keyword you can also use your playsms for another purposes as well.

If you have a little experience programming in bash or python you can will find out that is very simple.

Hope this helps


OK, that part is good and straightforward - I can do that without much trouble - thanks!

Now, is there a diagram somewhere which shows how any needed hardware works with the software? ie How an SMS is received, how it is passed into the system; how a new SMS is sent out of the system?



I am not aware that there is a diagram on how playsms works. Probably Anton has one and can help you in the matter but in general the process goes this way (keep in mind that the actual process is way more complicated but as an overview this is how it works).

Remember that playsms does not actually sends or receive the messages you use a gateway. Now that gateway can be a commercial provider or you can set up your own using sms server tools, kannel or gammu. If you will use a commercial provider make sure that is supported by Playsms by checking Settings => Manage gateway and SMSC.

If you are going to set up your own gateway you can do it with a gsm modem or just an old phone. that is compatible with any of those software that I mention.

I personally use gammu with very good results and it seems that is the one that is less complicated. I am not sure about sms server tools or kannel but you are welcome to give them a try.

So this is how it works with gammu. Your modem or old phone is connected to your server via a serial cable or usb cable. Depending on the phone you can even connect with it even using bluetooth. So when it receives a message gammu sense it a move the message from the phone to a folder in you computer. From there Playsms daemon pick it up and process it. You can choose what to do with the message. Usually if the message comes with a keyword playsms will do something (like running a external command, deliver it to a inbox or group etc.)

When you send, playsms process the message either from the webpage directly or from webservices and creates a file with a specific name and format and place it in a directory in your server. From there gammu pick it up and send it to your phone with the instructions to send it to a specific number.

In general this how it works. You can see a list of compatible phones and modems (with gammu) here: http://wammu.eu/phones/

Also you can see the documentation for the smsd daemon here http://wammu.eu/docs/manual/smsd/index.html#smsd

The compilation instructions are here http://wammu.eu/docs/manual/project/install.html

Here is guide on how to install on ubuntu: http://xaintech.blogspot.com/2010/05/build-your-own-sms-gateway-with-ubuntu.html

Here is another: https://pakeklinux.wordpress.com/2011/07/09/how-to-install-and-configure-latest-gammu-1-29-in-ubuntu-10-04/

You can check the documentation for playsms here: http://book.playsms.org/

Once you have your gammu-smsd working to set up playsms and start sending messages is very easy

Remember that you have to have a LAMP up a running before you can start with playsms. Here some documentation about that in ubuntu https://help.ubuntu.com/community/ApacheMySQLPHP

I hope this helps. Please let me know if you have more questions.

Many thanks for the thorough response! - see inline comments:

OK, thanks.

Any recommendations for a cheap and reliable modem? - my requirements are minimal at the moment ie sending and receiving about 10-20 SMSs per week.

I had a brief look at kannel before but I will also have a look at gammu.

OK, that sounds straightforward except I want to know more detail about how the system knows that a message has arrived on the modem.

So I presume I could just manually construct the appropriate file from a shell script and put it in the right place? Does the system use something like inotify to know about new files?

Wow! A bit of reading material! (I had to delete the "http://"s in the quoted text - quora complained about the number of links . .

I have been using RH/Fedora for a couple of decades - so that shouldn’t be an issue . . except I would prefer Ruby to PHP and Nginx to Apache . . is anyone doing that?

It has helped greatly! - many thanks! I think on the basis of what you have told me I will “bite the bullet” and set up a system.



My comments below:

That amount of messages you can handle with an old phone. I highly recommend that you look in the documentation of the gateway software for compatibility issues. Some phones do not support certain commands and you have to reset them once in a while.

If you do not have an old phone you can get a gsm modem in ebay or amazon

GSM Modem Wavecom Q2303a Module Com Rs232 at Commands for sale online | eBay


I have not tested specifically those but they are fully compatible with AT command protocol and that is compatible with most of the software. Please also check the compatibility of GSM networks in your area. Those ones are for 900/1800Mhz and depending on you carrier frequencies they will not work

Gammu seems to be less complicated. But Kannel seems to be a good option as well

In the case of Gammu what happens is this. Gammu is connected with the modem and communicating usually via AT command protocol, pretty much like the old dialout modems that were used for connectivity to internet in old days (god I am getting old since I used them). So basically gammu is inquiring the modem evey couple of seconds to see if there is a new message in the internal sim card memory. If there is a new message it fetch it and erase it from the modem. The actual process is a little more complicated you can see more in the gammu or kannel documentation

Since the actual message is let in a directory (in gammu) playsms grab it and them depending on what you decided to do it will process it or just put it in the sandbox. For what you need basically you need to the play sms to run a script when you receive a message. If you tell your senders to put a keyword in the message then you can choose different actions to perform. One of them is to run your script that will copy the message and send it to several people As a notification the message can be put in the sandbox or in one inbox. Also with your script you can choose to send yourself a notification.

You can skip the use for playsms if you set up gammus directive RunOnRecive. That is basically the same when a message is received gammu goes and executes command. Obviously it will be more complicated on the programming part since you have to do a lot of things that playsms already does for you. The actual program that does it is gammu-smsd

To send the messages from your script you can use the webservices API that will allow you to send the messages and keep track of them

I am pretty sure that there is people working with Fedora and Nginx so it should not be any issue to run on them. Ruby will be more than enough to program your script so you will not have any issue. You can even do it on bash.

It seems that you have more than enough experience to set it up in an afternoon.

Please let us know how it goes