Tuesday, December 17, 2013

Working on open source version

I have started working on an open source version of GVMax.
It will probably take me a week or two until I am ready to publish it.
I have been cleaning up the code and trying to simplify it to make it easier to maintain.
Some of the changes include:

  • Reviewing/Cleaning the code.
  • Moving all the code into a single repository (was split into 3)
  • Getting rid of JMS (potential cause of the problems I have had recently)
  • Removing build system configs from poms and settings files.
  • Some documentation
Unfortunately as part of this revamp I will make changes to how I store data which will not allow me to upgrade the existing users. So once I release this version you will need to re-register.

I will give advance warning on the GVMax forum and Twitter.


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.


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

Monday, December 13, 2010

GVMax being used by a couple of WM7 GoogleVoice clients.

I always thought the api and http post functionality of GVMax was pretty nice, but until recently very few people used it.

Now it looks like a couple of Google Voice clients have started to make use of it.

GoVoice and FreeTalk

Sunday, September 19, 2010

For iPhone users

There are many reasons to use GVMax these include:
- Being able to get SMS/VM notification on your computer's desktop via GTalk (and being able to reply from the IM program)
- Sending group SMS messages
- HttpPost and general API access to GV.
- Auto responding to SMS

But I suspect most people use GVMax for the original reason it was built for, namely to be able to be notified of SMS/VM on the iPhone. Of those people I would say around 2/3rd of them use it via an IM client on the iPhone such as Beejive or Meebo. This is because until recently this was the most seemless way to integrate GV with a non-jailbroken iPhone.

Recently Apple has allowed a couple of Google Voice native applications into its AppStore. This is great news ofcourse. Unfortunately currently both of these applications do not provide push notifications. This can be fixed by using GVMax together with Prowl. GVMax monitors your GV account for SMS/VM and tells Prowl to notify the user. The cool thing about Prowl is that it is them able to redirect the notification straight into GVMobile+ or GV Connect.

So to these people I suggest that they switch to using the GVMax/Prowl configuration (see my previous posts on how to set that up).

Saturday, September 18, 2010

GVMobile+ also released on Apple's store.

Well done to Sean for getting GVMobile+ into the Apple Store. It is a pity that it appeared a day after GV Connect, since I think it is better than GV Connect.

If you need push notifications of SMS and Voicemail, you can follow the same instructions from my previous post but select GVMobile instead of GV Connect (note: I have not tried that yet, so let me know if it works, ie prowl can redirect properly).