19
Pavel Růžička, January 2012 T-Mobile Czech Republic How to make a list in a voice app shorter by entering letters via DTMF

Make a shorter list by entering letters via DTMF

Embed Size (px)

DESCRIPTION

How to enter a letter via DTMF? How to make a list in your VoiceObjects voice application shorter?

Citation preview

Page 1: Make a shorter list by entering letters via DTMF

Pavel Růžička, January 2012T-Mobile Czech Republic

How to make a listin a voice app shorterby entering letters via DTMF

Page 2: Make a shorter list by entering letters via DTMF

2

Pavel Růžička, January 2012T-Mobile Czech Republic

Agenda

•List – hidden treasure of VoiceObjects•When a list is too long•How to enter letters via DTMF•Let the user navigate by a letter•Optimization•Summary•Example to import into your project•Resources

Page 3: Make a shorter list by entering letters via DTMF

3

Pavel Růžička, January 2012T-Mobile Czech Republic

List object – a treasure of VoiceObjects•allows users go through collection of data

•without significant effort of a developer•it's like an audible excel sheet with unified navigation

Page 4: Make a shorter list by entering letters via DTMF

4

Pavel Růžička, January 2012T-Mobile Czech Republic

When a list is too longAfghanistanAlbaniaAlgeriaAmerican SamoaAndorraAngolaAnguillaAntarcticaAntigua And BarbudaArgentinaArmeniaArubaAustraliaAustriaAzerbaijanBahamasBahrainBangladeshBarbadosBelarusBelgiumBelizeBeninBermudaBhutanBoliviaBosnia And

Herzegowina......Trinidad And TobagoTunisiaTurkey......Zimbabwe

• Imagine a list of countries

• Isn't it cruel to let the user go through 216 items to reach Turkey?

Page 5: Make a shorter list by entering letters via DTMF

5

Pavel Růžička, January 2012T-Mobile Czech Republic

Make the user closer to the target

TaiwanTajikistanTanzaniaThailandTogoTokelauTongaTrinidad And TobagoTunisiaTurkeyTurkmenistanTurks And Caicos

IslandsTuvalu

•make the list alphabetically ordered

•offer items starting with a chosen letter• approximatelly 12 items starting with the same letter• Turkey is 10th

• isn't that nice?

Page 6: Make a shorter list by entering letters via DTMF

6

Pavel Růžička, January 2012T-Mobile Czech Republic

Is it possible to enter letters via DTMF?

• of course by CCITT it recognizes also A,B,C and D• but not on common phones. It's too little, it's useless.

• there is other possibility – users know it from sending SMS• e.g. for B you need to press the key twiceA - 2

B - 22 ...O - 666...Z - 9999

Page 7: Make a shorter list by entering letters via DTMF

7

Pavel Růžička, January 2012T-Mobile Czech Republic

What do we need to get a letter from DTMF digits?• input object with grammar for 1-4 digits

• good explanation what you expect from the user

• translation collection

• VALUESUBSTITUTION expression

Page 8: Make a shorter list by entering letters via DTMF

8

Pavel Růžička, January 2012T-Mobile Czech Republic

Input with TTG grammar and with translation expression

Page 9: Make a shorter list by entering letters via DTMF

9

Pavel Růžička, January 2012T-Mobile Czech Republic

Translation the input result value

Page 10: Make a shorter list by entering letters via DTMF

10

Pavel Růžička, January 2012T-Mobile Czech Republic

Digits are translated – but what if user needs to enter a real

digit?• the approach of translation prevents users to enter

the real value of a key

• we should offer an alternative how to enter any digit

• only one key at once is valid for generating a letter• we can recognize different key as a request for suppressing the translation

• if the entered value is not in the translation collection – return the first pressed key• 22 will be translated as B• 963, 7*, 54 are not in translation collection

only first digit will be taken: 9, 7, 5

Page 11: Make a shorter list by entering letters via DTMF

11

Pavel Růžička, January 2012T-Mobile Czech Republic

Check if the entered value can be translated

• FINDROW expression to check if the value exists in the translation collection

Page 12: Make a shorter list by entering letters via DTMF

12

Pavel Růžička, January 2012T-Mobile Czech Republic

Translation or assign unchanged value?• CONDASSIGN expression to conditionally assign translated or

unchanged value• LEFT to return only the first pressed digit (unchanged value)

Page 13: Make a shorter list by entering letters via DTMF

13

Pavel Růžička, January 2012T-Mobile Czech Republic

Wrap it to sequence with confirmation

• Confirmation object to confirm and, if necessary, to correct information from the preceding dialog

Page 14: Make a shorter list by entering letters via DTMF

14

Pavel Růžička, January 2012T-Mobile Czech Republic

Long list - let the user navigate by the first letter

TaiwanTajikistanTanzaniaThailandTogoTokelauTongaTrinidad And TobagoTunisiaTurkeyTurkmenistanTurks And Caicos

IslandsTuvalu

•filter out unnecessary items • copy the collection to a temporary collection and

then with ITERATE and DELETEROW expressions delete redundant items

•scroll the list down to the first item starting with chosen letter• you need to find row index of the item going through the collection using LOOP object or ITERATE expression with INDEX • then update row index of the list• you have to ensure there is at least one item starting with the letter

Page 15: Make a shorter list by entering letters via DTMF

15

Pavel Růžička, January 2012T-Mobile Czech Republic

Other optimization• include special chars to the translation collection like _ . @ #

<row> <col name="key">1</col> <col name="default">.</col> </row><row> <col name="key">11</col> <col name="default">_</col></row><row> <col name="key">*</col> <col name="default">@</col></row>

• since grammar allows to enter 4 digits it's good to translate 4th press of a key with only 3 letters as well as 3rd letter to help users avoid of mistyping<row>

<col name="key">8</col> <col name="default">T</col></row><row> <col name="key">88</col> <col name="default">U</col></row><row> <col name="key">888</col> <col name="default">V</col></row><row> <col name="key">8888</col> <col name="default">V</col></row>

Page 16: Make a shorter list by entering letters via DTMF

16

Pavel Růžička, January 2012T-Mobile Czech Republic

More than one letter at once

• enhanced algorithm could allow to enter more than one letter at once• grammar needs to be changed• way of confirmation needs to be changed to confirm after whole input• whole input needs to be splitted by clusters of the same key to collection,

then translated• real digit in the input could be followed by an asterisk (*) or by 1 wich has no

meaning

• could be useful for experienced users, special applications, admin interfaces• you can enter alphanumeric password, e-mail address etc...

Page 17: Make a shorter list by entering letters via DTMF

17

Pavel Růžička, January 2012T-Mobile Czech Republic

Summary

• create a special input for entering a letter by numbers with proper grammar• sequence with confirmation will make it much more useful

• fill the translation collection and implement translation into postprocessing of the input

• use the letter from the input for your alphabetically ordered list as an key for filtering or scrolling down

• here is an example with the translation collection to import into your project OneLetter_Example

.xml

Page 19: Make a shorter list by entering letters via DTMF

19

Pavel Růžička, January 2012T-Mobile Czech Republic

Pavel RůžičkaProgrammer – AnalystService Development Department

T-Mobile Czech Republic a.s.Tomíčkova 2144/1, 149 00 Praha 4T-Mobile: +420 603 416 974E-Mail: [email protected]