IVR adventure game for Asterisk, plus a Python version

qrleon's picture

Glad to see GT is still alive and kicking! I will try to post more often.

Here is a small adventure game you can add to an Asterisk dialplan. I'm sure you will agree that every PBX needs a hidden immature adventure game. Works well with RasPBX + a small analog gateway to a physical phone.

I made an alternate Python + Kivy version packaged for Windows. If you want a package for a different OS, let me know. There are some small differences but it's basically the same deal.

AttachmentSize
ivrgam_dialplan.zip4.24 MB
ivrgam_windows.zip20.6 MB

Comments

my gosh

i learned a good bit of events by looking at your stuff and getting a feel for how things click, or klik. spread a... random number i think? it's been a while and i've been out of the loop. Anyway, congratulations. I'll have to check this out later. It's nice to see alumni pop in once in a while.

Thank you

This is now my answering service.
Was giggling about making an IVR hell for cold callers and thought "someone, somewhere... must have been done already".

sergiocornaga's picture

Thanks for bringing this

Thanks for bringing this adventure to my attention! I have now played it in full and had a wonderful time. The portions with music and sound effects were my favourite parts.

In terms of IVR games I would also recommend Here And There Along The Echo, though that doesn't seem to be available for home installation.

qrleon's picture

Thanks! Just a heads up, I

Thanks! Just a heads up, I don't think I included an idle timeout in the main input loop, so someone who idles on the line doing nothing will not be automatically disconnected by the game. The introduction and ending should have disconnects on timeout.

I haven't Asterisk'd or looked at these scripts in a while, but I think in 'extensions-ivr-game.conf' line 67 is the looping point for the polling loop. The silence period could be modified and a disconnect statement appended to the end.

Fantastic

I have no idea how to implement one of these things, but it seems like it would be tremendously fun to implement. Just developing a script and then recording the voice would be immensely cool to do. I love recording voice-overs.

For this, did you use a text-to-speech program? It sounds like it at several points (and no, this is not a bad thing).

Your standalone version, with no phone required, seems incredibly sweet and works flawlessly. Played it through to the end, and was completely tickled when I heard the cymbal crash: an absolute PERFECT sound effect for the moment.

qrleon's picture

It was a lot of fun to put

It was a lot of fun to put together! The dialplan script ended up being a spaghetti mess, but I was able to keep it manageable by keeping the world limited to a set of 3x3 rooms, with one context-sensitive action possible at a time.

Once I set down limits, I worked out the play-through steps from start to finish, and then wrote out all of the scene / item / action descriptions, adjusting as I went.

I used a now-defunct* TTS service called Ivona with 'English British Brian' as the voice. I recall having to fudge the spelling of some words because they weren't coming through clearly (though perhaps his accent is fine and it was me not hearing things correctly).

*Edit: It seems to just be the public browser-based version that is deprecated. You can hear a bit of Brian in all his glory here.

Once the meat of the game was written down, it was a slow process to collect the audio from Ivona and plug things into the dialplan script. One really cool thing about it was that I could start a session, watch what was happening in the Asterisk debug console, and tweak+reload the scripts without ending the call, and the changes would reflect in the current session.

I should have added keyboard input to the Python+Kivy version, but neglected to do so at the time.