twiliobot is Robot extension for Google Wave demonstrating how to initiate calls from within a wave to normal cell phones or landlines using the Twilio phone API. The project is still in development and there are still several limitations.
CONCEPTS
This project shows how to integrate the Google Wave API with the Twilio phone API. While this particular project only implements click-to-call inside of Google Wave, one could think of many of interesting ways to integrate Google Wave and Twilio:
- Add call recording and transcription of all click-to-call initiated calls that can are appended to the wave
- Use Twilio to record voicemail messages and create a new wave for each message containing the audio and a speech-to-text transcription of the voicemail. Combining such an application with conditional call forwarding on your GSM mobile phone you could say goodbye to traditional voicemail and use Google Wave to manage all your messaging.
- Use Google Wave to set a status message that is heard by caller contacting your business. You could create a robot that monitors the last blip in a wave and reads the text of that blip to anyone who calls a business phone powered by Twilio.
LIMITATIONS
twiliobot still has several important limitations.
1) The first limitation is in the process of initiating the call when a number is clicked. At the moment all phone numbers get transformed into URLs that point back to app engine and a web service to start the call. This is problematic for several reasons. The external link back to app engine puts up an annoying page that says you are connecting to an external site and the phone number to call is passed in the URL as a parameter so anyone could manually modify the url initiate calls outside of wave.
2) The second limitation is that the phone number for the first leg of the call (i.e. the phone of person reading the wave) is hardcoded into the bot. That means that if anyone other than the owner of the bot clicks a link the a phone link the call will be misdirected.
3) The third limitation is that phone number detection and outbound calling is currently limited to 10 digit US numbers.
USAGE
If you haven't been dissuaded and still want to try creating your own instance of twiliobot, here are instructions for getting started.
1. sign up for a google app engine account and download and install the
python sdk if you haven't already http://appengine.google.com2. sign up for twilio account if you haven't already
http://www.twilio.com3. in the twiliobot code, edit app.yaml to reference your google app engine
application e.g. "application: mybot"4. edit twiliobot.py and set APP_NAME to the name of your google app engine
application5. edit index.py and
- set MY_NUMBER to your phone number
- set TWILIO_ACCOUNT_SID to your twilio AccountSid (see Account page)
- set TWILIO_ACCOUNT_TOKEN to your twilio AccountSid (see Account page)
appcfg.py update twiliobot7. log into google wave and add the twilibot robot to your contacts using
your app engine application name e.g. mybot@appspot.com8. create a new wave and add the bot e.g. "Twilio" as a participant 9. create a new blip and enter a phone number and hit "Done" 10. if everything worked, the phone number should be transformed into a URL
that can be clicked to initiate a call to your phone and the number written in the wave