At work recently, we’ve been exploring the idea of integrating voice and/or SMS into our applications. Much of what we do has to do with people responding to their physical environments — their neighborhoods and the streets and public spaces that constitute the bulk of our public experience.
So, I decided to take on a small weekend project, to experiment with voice and SMS. There are several tools that help you do this, including Mobile Commons, Tropo, and Twilio. For my first experiment, I chose Twilio, as the start-up process was really easy and they have a super well-documented API. Twilio claims that you can get a voice/sms app up and running in five minutes.
Here are the project goals I was shooting for:
- Something that can be done over a weekend, ideally in a small enough amount of time not to piss off my family.
- Something simple and useful.
- Something that demonstrates the power of connecting a phone experience and a web application experience, seamlessly tying the two together.
- Something that takes advantage of the native capabilities of a regular phone. In other words, something that wouldn’t be better implemented on a smart phone.
As the result of this experiment, I’m proud to present Phone Idol, a phone-based online singing competition. You know, kind of like that other idol thing, but using a phone and with no big prizes.
Here’s how it works:
- Pick a song you want to sing, and think you can sing well (or at least humorously)
- Dial (718) 775-3384
- Sing your song!
- Go to http://phone-idol.com and listen to your recording online.
- Then, America votes, choosing their favorite tracks through online rating
Looking back at my project goals, I’d say this definitely accomplishes #1, #3 and #4. It was done quickly, using just the Twilio API and a simple WordPress install, it demonstrates the power of connecting phones to web apps, and it works well using a regular phone. However, it’s definitely not what I would call simple and useful. But it was fun to make, and has spurred some more thinking about what’s possible here.
In the spirit of a weekend project, here are the things I didn’t do, but that I think would be cool:
- Identities and account management. Right now, all I know about each submitter is his/her phone number, which I don’t want to publish. I am intrigued by the idea of web accounts that are bootstrapped and managed by phone only, not email. One of the next features I want to build is to connect submissions to online identities. This would be easy to accomplish by creating user accounts based on phone numbers and sending a text with credentials, and could easily connect to existing social networks. I admit that without this, the site is much less fun than it could be.
- Content management. Right now, there’s very little meta data associated with each entry. For example, I would like to include the name of the person who submitted it, as well as the title of the song. Given the phone as an interface, this is bit tricky to manage, but not impossible. Two ways this could be accomplished: 1) after submission, send the user a text asking them to respond with their name and the title of their song. This approach would either require multiple texts (expensive) or a special syntax; 2) text the user a login link and their credentials (see Account Management, above) and ask them to log in and update their submission with details. Neither of these approaches is perfect, and I’m sure there are other alternatives I’m not considering. However, doing at least something would definitely be possible.
- More social integration. This could be huge on Facebook. For now I just have standard Facebook and Twitter sharing links, but I could imagine maybe trying for deeper Facebook integration, maybe as a Facebook app. Out of scope for a weekend project, but maybe worth doing.
And here’s a little bit of info on how it’s wired together:
- Twilio is configured to route calls to (718) 775-3384 to a script at Phone Idol, which produces TwiML, the markup language that serves instructions to Twilio. You can see the XML output here.
- These scripts are written as a WordPress plugin, so that after the final step in the Twilio workflow, the response data (most importantly the URL to the recording) is posted to WordPress as a new post. Given more work on account and content management, as described above, I’d make more use of the WP API.
- The website is an adaptation of the Stripey WordPress theme and uses a few plugins, most notably Audio, GD Star Rating, and Sociable.
That’s about it. Now time to tweet out the vote and see if anyone wants to sing us a song….