Wednesday, November 23, 2011

New version of GVMax released

Yesterday I released a new version of GVMax. I have not had time to update the documentation on the website yet, but thought I would write something here until I do.

Although to most users nothing much changes, this version is in fact an almost complete rewrite. I completely restructured GVMax to make it much more robust. I is now split into 6 different programs:

  • web: The website and api endpoints.
  • smtp: The mail server in charge of receiving the SMS and VM emails
  • server: Where all the magic happens
  • relay: In charge of handling GTalk messages and out-bound emails (runs on appengine)
  • keyman: In charge of encryption keys (runs on appengine)
  • queue: Holds the incoming emails and GTalk messages until server picks it up.
I can now upgrade the server for example without bringing down the web interface and without losing any messages while it is down.

Encryption

This new version of GVMax is also much more secure. Each user's settings is stored in the database using a user-specific encryption key which is based on their email and pin. What this means is that even I cannot decrypt the data unless the user tells me his email or pin.

Additionally no keys are stored in the server, key management is handled by 'keyman' which is running on appengine. When I start 'server' for example I must enter my 'master' password as well as a 'OneTimePassword' generated by a Yubico key. So for anyone to be able to get the required keys they would need to know my password as well as have access to my Yubico key. Additionally an email is sent to me whenever someone attempts to authenticate with 'keyman'

New Features

This version does have a number of new features as well as some bug fixes
  • Missed call notifications. You can now get missed call notification. (Note you will have to log into GoogleVoice and ensure that GoogleVoice is sending missed call notification emails, since I have not updated my account creation code to do it automatically as I do with SMS and Voicemail.
  • Group SMS. Sending SMS to groups in the old version was hit and miss. It should be working much better in the new version. Note that I will stagger the sending of these SMSs to ensure I don't get blocked. I have access to 50 odd numbers for testing and can send a group SMS to those numbers with no problems. Another user let me know that he was able to send it to a group containing 260 contacts.
  • Two-factor login support. You can now use GVMax even if your Google Voice account uses two-factor authentication. You will ofcourse need to generate a application-specific password for GVMax.
  • Extended API. I have extended the functionality of GVMax's API, so instead of only being able to send SMS, it now has all the functionality available to GVMax (for example you can change settings etc)
There are a number of other small features that I have added and quite a few bug fixes, but I can't remember them right now.

ps: Since there was so much change under the hood, I am sure I have also introduced a few bugs, but hopefully I can iron these out quickly.

Hope you guys like it.

Saturday, May 28, 2011

smoking cessation program - Auto Responder

I created an app engine application that performs the same task as GVMax's autoresponder.

Basically it will send an SMS back to any person who sends you an SMS.

I did this app for a smoking cessation program and wanted it to be more reliable than GVMax.

In addition to what GVMax does, this app allows the admin to specify multiple SMS responses so if a client sends multiple SMSs he gets multiple different responses.

I will probably open source this aswell (like gvmax-post), but I still need to remove some stuff specific to the particular smoking cessation program I was working with.

ps: The app allows the admin to manage multiple numbers as well.

HTTP Post Service

GVMax has been a bit moody the last few weeks and the problem is probably related to GTalk notifications.

Since a lot of the new users use GVMax to perform an HTTP Post (mainly WM7 users) I decided to split that functionality out into a separate service .

To use it you will need to :
1- Forward your GV emails to gvmax@gvmax-post.appspotmail.com
2-Log into the service at https://gvmax-post.appspot.com and type in the HTTP Post URL you want to use.

I will probably provide an API for WM7 Phone developers so that they can do step 2 for there users automatically.

As for step 1, you create the gmail filter in the same way you would do in GVMax (if doing it manually (https://www.gvmax.com/filters)), but forward it to gvmax@gvmax-post.appspotmail.com instead.

This app runs wholly app engine it should be VERY reliable, since it does very little.

And by the way it is open source ( http://code.google.com/p/gvmax-post/ )