I attended a TCLUG (Twin Cities Linux Users Group) meeting tonight; the speakers talked about Asterisk, a toolkit for building phone/VoIP applications. Justin Grammens, who I know from MN StartupCamp, was one of the speakers.
Justin demonstrated a simple Ruby program he had written to play a multiple-choice game over the phone. One subtlety is that the Ruby code doesn't actually have to handle any voice bitstreams, nor does it actually execute sub-programs. Instead it interacts with the Asterisk instance, which executes programs (like a text-to-speech package) on the script's behalf.
Asterisk comes with a custom language for specifying "dial plans" (actions to take in response to calls and user input), but it sounds like Ruby (or a bunch of other languages) can be used instead. This made me wonder when the original version was written--- would it have made more sense to embed a "real" scripting language, or are there compelling reasons for having the application-specific one? (Which is actually quite crude by the looks of it.)
Predictably, this technology has been used to make
telemarketer traps, though it looks like the sample the speaker played was not actually generated with the Asterisk software.
MinneBar is coming up May 10th and I plan to participate. Ideas for a session:
* Outrageous ideas (in the spirit of SIGCOMM). My current favorite joke along these lines is using IRC (or Jabber) as an IPC mechanism. This has numerous advantages which can be expounded upon.
* Parallel dynamic programming with Hadoop + Amazon EC2. I'd have to hustle to get a demo working.
* Iteratively solving Chinese Poker.
* Using GLPK to solve games.