Jay Phillip’s Adhearsion Demo at the Moutain West Ruby Conf
Jay Phillip’s talk at MWRC attempted to get the audience involved in
actually running an Adhearsion demo on their own laptops.
Unfortunately, the demo at MWRC was plagued with firewall and network
problems, but eventually I was able to get it working. Here are the
steps needed.
You will need a skype account to complete the sign-up. After signing
up, you should get an email with a link that you need to click before
your account is activated. Go ahead and activate the account now.
Step 2—Install the Adhearsion Gem
Run:
gem install adhearsion
I’m running the 0.8.2 version of the gem.
Step 3—Create an Adhearsion project
Run:
ahn create project_name
Step 4—Enable the Sandbox
Run:
cd project_name
ahn enable component sandbox
Step 5—Edit Your Credentials
Edit the file: components/sandbox/sandbox.yml and update the
username and password you used when you created the Adhearsion account
in step 1.
Step 6—Create a Dial Plan for the Sandbox
Edit the dialplan.rb file to contain the following:
adhearsion {
simon_game
}
sandbox {
play "hello-world"
}
The adhearsion section should alread be in the file. You will be
adding the sandbox section.
Step 7—Star the Adhearsion Server
Run:
cd ..
ahn start project_name
You should see:
INFO ahn: Adhearsion initialized!
Errors at this stage might mean that your adhearsion account isn’t
setup properly, you don’t have the right user name and password (in
step 5), or that you have firewall issues preventing you from
connecting to the Adhearsion server.
Step 8—Call The Sandbox
Using Skype, call the Skype user named sandbox.adhearsion.com.
You should hear a hello world message.
Step 9—Change the Dial Plan
Just for fun, change the dialplan.rb file to contain:
adhearsion {
simon_game
}
sandbox {
play "hello-world"
play "tt-monkeys"
}
(Add the tt-monkeys line to the sandbox dial plan).
Now call the sandbox again (skyping user sandbox.adhearsion.com)
to hear the change in the dial plan. Monkeys FTW.
More Examples
Here’s a example of what can be done in a dial plan. I was just
goofing around with my dial plan.
adhearsion {
simon_game
}
sandbox {
play "vm-enter-num-to-call"
digits = input 1, :timeout => 10.seconds
case digits
when '1'
play "hello-world"
when '2'
play "tt-monkeys"
when '3'
play "what-are-you-wearing"
when '4'
play 'conf-unmuted'
when '5'
play 'tt-weasels'
when '6'
play "pbx-invalidpark"
when '7'
play "1000", "dollars"
when '8'
play "followme/sorry"
when '9'
simon_game
when '0'
play Time.now
else
play "demo-nomatch"
end
sleep 1
play "demo-thanks"
}
Think about what you are doing. You are calling the Adhearsion server
and controlling how that remote server responds by the adhearsion
program running on your own local box. That is wild.
The adhearsion sandbox makes it easy to play around with telephony
programming without any investment in the associated hardware.
I hope this demo encourages you to give Adhearsion a try.