The Chain Game
Have you ever played a game with friends in which everybody takes a turn adding a word to a growing sentence, story, poem, or stream-of-nonsense? The later the hour and the more creative the group of players, the funnier the results are. Every word is to be added after only having looked at the previous word or two, so every new word is a new association. Following these association chains (and cleverly breaking them!) can be a lot of fun. Try it sometime!
The chain game is a realization of this party favorite using audio and telephony. When the game is played with pen and paper, the players have to be careful not to read futher back than they should according to the rules, because otherwise the chains become too predictable and boring. This audio chain game takes care of that by only letting people hear the previous two words, and makes things easy by running the whole game autmatically.
Our experience at Almende while running this game for a month or so was that it was a lot of fun. The system is set up to not disturb people when they don't want to play, and to discover when people are absent so that their absence doesn't hold up the game.
The lion's share of the work is done by the open source telephony system called Asterisk, and the link is made with Groovy Actors using the asterisk-java library. An actor called "Switchboard" has been created which offers a useful set of functions built on top of parts of asterisk-java to allow for handling and even originating telephone calls using the Asterisk FastAGI and AMI socket interfaces.
public interface SwitchboardInside {
boolean call(String callerId, int timeout);
void pause(int maxMillis, String callerId);
void say(String jack, String callerId);
String choose(String jack, String escapeKeys, String callerId);
String ask(String jack, long timeout, int maxKeys, String callerId);
String record(int maxMillis, String callerId);
void play(String jack, String callerId);
void joinMeeting(String jack, String callerId);
void hangup(String callerId);
}
|
As you may imagine, setting up the whole system using Asterisk, Switchboard, and the Groovy Actors who do the call handling is not trivial. So far there hasn't been the time to document it all step-by-step, but if you're really interested in trying it out, be sure to connect up with us in the community so we can help, or contact me directly <geralddejong@gmail.com>
|