Matthew Rubenstein
2006-Dec-07 07:52 UTC
Standardized IVR UI Pattern (was: Re: [asterisk-users] Is there any Asterisk controllable thermostat?)
On Wed, 2006-12-06 at 23:51 -0700, asterisk-users-request@lists.digium.com wrote:> Date: Wed, 06 Dec 2006 22:37:01 -0500 > From: Steve Prior <sprior@geekster.com> > Subject: Re: [asterisk-users] Is there any Asterisk controllable > thermostat? > To: Asterisk Users Mailing List - Non-Commercial Discussion > <asterisk-users@lists.digium.com> > Message-ID: <45778C5D.3080102@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
Jon Schøpzinsky
2006-Dec-07 08:10 UTC
Standardized IVR UI Pattern (was: Re: [asterisk-users] Is thereany Asterisk controllable thermostat?)
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@lists.digium.com [mailto:asterisk-users-bounces@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@lists.digium.com wrote:> Date: Wed, 06 Dec 2006 22:37:01 -0500 > From: Steve Prior <sprior@geekster.com> > Subject: Re: [asterisk-users] Is there any Asterisk controllable > thermostat? > To: Asterisk Users Mailing List - Non-Commercial Discussion > <asterisk-users@lists.digium.com> > Message-ID: <45778C5D.3080102@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