Standardized IVR UI Pattern (was: Re: [asterisk-users] Is thereany Asterisk controllable thermostat?)

Jon Schøpzinsky jos at detele.dk
Thu Dec 7 08:10:24 MST 2006


If you want a standardized ivr ui pattern, wouldn't something like VoiceXML be interesting?
That's a standard for use with IVR applications.

Jon

-----Original Message-----
From: asterisk-users-bounces at lists.digium.com [mailto:asterisk-users-bounces at lists.digium.com] On Behalf Of Matthew Rubenstein
Sent: 7. december 2006 15:53
To: Asterisk-Users
Subject: Standardized IVR UI Pattern (was: Re: [asterisk-users] Is thereany Asterisk controllable thermostat?)

On Wed, 2006-12-06 at 23:51 -0700,
asterisk-users-request at lists.digium.com wrote:
> Date: Wed, 06 Dec 2006 22:37:01 -0500
> From: Steve Prior <sprior at geekster.com>
> Subject: Re: [asterisk-users] Is there any Asterisk controllable
>         thermostat?
> To: Asterisk Users Mailing List - Non-Commercial Discussion
>         <asterisk-users at lists.digium.com>
> Message-ID: <45778C5D.3080102 at geekster.com>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
> 
> Doug Crompton wrote:
> > and it works great. Now I have one more way to control X10 devices.
> I can
> > even call my VM on the way home and turn on my lights or whatever
> before I
> > get home.
> > 
> > Doug
> 
> I've started to play with writing some code using the Java FastAGI 
> interface to connect to my home automation system.  The code is
> working and I could now write whatever I wanted, but I haven't figured
> out what would be a reasonable menu interface that wouldn't be very
> annoying to use.  I'd be very interested to hear what menu structures
> and what actual capabilities people have found useful and nice to use.
> 
> For example, has anyone come up with something less annoying than the
> following dialog:
> 
> "Press 1 for living room, press 2 for outside, press 3 for bedroom"
> (I press 2)
> "Press 1 for porch light, press 2 for garage light"
> (I press 1)
> "Press 1 to turn on, Press 2 to turn off, Press 3 to say current
> status"
> (I press 1)
> "congratulations, you just spent several minutes just to turn on a
> light!"

	I don't know why IVR menus still include so much extra verbiage. They
should act like numbered lists - everyone knows the stated number means
the key to press, and the stated name means what you will get. So: 

(Listens for DTMF)
Hello, this is home thermostat.
1 living room
2 outside
3 bedroom
(waits for DTMF, maybe repeats after a 2 second pause)
(I press 2)

(Listens for DTMF)
Outside
1 porch light
2 garage light
(waits for DTMF, maybe repeats after a 2 second pause, offers to hangup
after maybe 15 seconds)
(I press 1)

(Listens for DTMF)
Outside Porch light
1 on
2 off
3 say current status
(waits for DTMF, maybe repeats after a 2 second pause)
(I press 1)

(Listens for DTMF)
Outside porch light status
turned on
star for options, hash to hangup
(waits for DTMF, maybe repeats after a 2 second pause)

	That menu system would take about 10 seconds the first time through,
listening to all prompts. Subsequent navigation could take 2-4 seconds.
Subsequent shortcuts through a collapsed star-hash "menu" could take 1-2
seconds.

	Make the star key an "<escape>" key to the previous scope. Make the
hash key an "<Enter>" key that terminates any multiple-key entry.
Collapse all menu scopes/items into a single long list that can be
reached at any time through "star-hash". Introduce the whole menu system
with "press star for options", to the star-star menu. Make the "0"
option in the "star options" menu the path to a human operator, if there
is one. And always immediately feedback to any received key with at
least a click.

	This simple UI should be common to every IVR app, so anyone can always
use it without listening for a while to learn how to navigate the IVR.
In fact, I call this system "IKR" (Interactive Key Response), and maybe
every system should answer the call with first saying "IKR". Then
callers would immediately know when our skills on the common UI would
work, without waiting to learn, or mistake it.

	If the server played a few touchtones, like "4-5-7" (keypad "IKR")
while saying "IKR", smart automated clients could detect the system and
use it. To complete the interactivity protocol, every spoken digit to be
pressed in the numbered menus would also play the digits' DTMF. And the
intro to the scope to which a client DTMF navigated would play the last
digits that navigated there from the previous scope while saying the
name of the new scope.

	This is the system that I used to use when I built dedicated IVR
systems a dozen years ago (on Dialogic HW). Almost no IVR people were on
the Internet then, before the Web. There was no community, and IVR
vendors competed so harshly that they couldn't get such a standard
interface going, even for mutual benefit. So now everyone hates using
IVR, even when it's better than a human operator. And we still all roll
our own from scratch. But with Asterisk, and web/maillists connecting a
community, we can adopt a common system. If enough people like it, I
will publish the spec, and maybe write the RFC. Or maybe there's a
better one that will be adopted more widely more quickly, and we can get
behind that. If you don't like it, you can still roll your own, just
don't call it "IKR" when answering the call, and callers will be free to
use your klugey, nonstandard UI, and hate it :).
-- 

(C) Matthew Rubenstein

_______________________________________________
--Bandwidth and Colocation provided by Easynews.com --

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users


More information about the asterisk-users mailing list