The AutoResponder, described in more detail here, is a program, a set of web pages, and some scripts, that automatically respond to email and SMS text messages. I wrote the AutoResponder a few years ago for a puzzle race. During a race, it is handy for teams to get immediate feedback about their success or failure at solving a puzzle. My service provided that feedback.
Old AutoResponder Architecture
Now, a few years after the race (which never took place), I wanted to keep the AutoResponder running as an example of my abilities as a programmer. It’s a fairly interesting item to put in an online portfolio. The only problem is that the email handler is a Windows program that runs as a service and checks the email server every few seconds for new incoming messages. That program requires a Windows system, and that system needs to be at a fixed IP address. Both of those things are hard to come by. I have a fixed IP address, but I no longer have a Windows system sitting around to use for this. Plus, using my own IP address and my own computer is not a long-term solution.
Using an Internet Service Provider is a much better choice. It is a long-term solution, but has restrictions that are more than a tiny bit inconvenient. Specifically; the system cannot run my program as a service. I would need a special arrangement with the ISP to have a program running continuously.
And the way to get my service running on a providers system is to get rid of the email responses and only support SMS text messaging. This is not as simple as it seems because my entire architecture, seen in that picture above, relies on the service program for all message handling.
I am proud to say that I have the SMS message response code ported to PHP. The new architecture is still under development, but I can get responses to simple messages. I am currently adding code to handle special messages, such as those for becoming a registered user, or to forward help messages to another number.
The new architecture simply removes the Auto Responder Service and instead performs all of the same functionality within the Twilio SMS Message Service code. That code is in a PHP script and runs once for each message. It was not a big change except that I needed to add the ability to send messages directly through the Twilio service and the C++ code from the service program was not portable to PHP.
If anyone reads this and wants to see it in action, send me an email, reply to this post, or contact me using the contact form (see the right column of this page), and I’ll tell you the phone number and what messages to send to the service to get an interesting response.