« Back to CVP - All Versions

Re: New Message from Ivan Fernandez in Customer Voice Portal (CVP) - CVP -

Combination View Flat View Tree View
Threads [ Previous | Next ]
Hi everyone I am new to the CVP / Call studio world. I have created a dtmf application that uses a couple of very simple external  dtmf grammars . I read that to use built in I need to use dtmf_keypress  and character (0-9, #, *) but I am not clear how I can define the input lenght (min - max) digits I create the built in dtmf grammar .... I had a look at a thread and I saw some folks using ..? but it wasn't very clear what are the rules. Again the grammars are really simple-  all the numbers  except  * and #   , The most complex one accepts hash at the end of the input... how can I translate them to bult in? My current external grxml grammars rely on the nuance server but I think that if I use built in grammars then the interpretation can take place in the proccessing gateway so I can just choose in Cisco Unified CVP 4.1/7.0/8.0/8.5 with Cisco DTMF in the root doc settings ..is that right? Thanks   Ivan    

If this application will be DTMF-Only, then there are differences in how you configure the application. In the Form element, you can specify DTMF-Grammar: builtin:dtmf/digits and have the caller end their entry by pressing #. The DTMF-Only will never allow the caller to enter * for the digits grammar. It'll cause a NoMatch. If you need to collect * while also collecting digits, then you must configure the VxmlGateway with 'vxml allow-star-digit' - and then * is ALWAYS considered a valid digit. Janine

Hi Janine Thanks for that, so under DTMF-Grammar: builtin:dtmf/digits How do i specify the allowed length? E,g for abuild  grammar of 5 digits (without the * )  and a grammar with 3 -8 digits with * in the end. Regards Ivan   Do I need to use 'builtin:dtmf/digits?minlength=5;maxlength=5' . will that work?

To allow a range of digits, your best bet for DTMF-only is to use the Digits element in Studio where you can specify the min and max lengths. This is because VxmlServer won't let you use the ';' in your grammar specification. So you can't do enter: builtin:dtmf/digits?minlength=4;maxlength=10 If you had Nuance parsing the input, you could specify 7 separate DTMF Grammar lines: builtin:dtmf/digits?length=4 builtin:dtmf/digits?length=5 builtin:dtmf/digits?length=6 builtin:dtmf/digits?length=7 builtin:dtmf/digits?length=8 builtin:dtmf/digits?length=9 builtin:dtmf/digits?length=10 And Nuance would allow only 4 - 10 digit DTMF entries. BUT - I believe when I tested this with the DTMF-only gateway, the above settings caused the gateway to accept any entry greater than or equal to 4 digits. Quite frustrating. If you want to accept * and/or digits, you'll have to configure the gateway with 'vxml allow-star-digit' and in that case, I don't think you can distinguish between collecting digits and the star key. But, after you've collected the caller input you can use the Decision element to test if the input contains/starts with/ends with * You should look at the Cisco VoiceXML Programmer’s Guide - it discusses (not very well) the gateway DTMF-grammar formats. Janine

Hope this formats better:

To allow a range of digits, your best bet for DTMF-only is to use the Digits element in Studio where you can specify the min and max lengths.

This is because VxmlServer won't let you use the ';' in your grammar specification. So you can't do enter: builtin:dtmf/digits?minlength=4;maxlength=10


If you had Nuance parsing the input, you could specify 7 separate DTMF Grammar lines:
builtin:dtmf/digits?length=4
builtin:dtmf/digits?length=5
builtin:dtmf/digits?length=6
builtin:dtmf/digits?length=7
builtin:dtmf/digits?length=8
builtin:dtmf/digits?length=9
builtin:dtmf/digits?length=10

And Nuance would allow only 4 - 10 digit DTMF entries.
BUT - I believe when I tested this with the DTMF-only gateway, the above settings caused the gateway to accept any entry greater than or equal to 4 digits. Quite frustrating.

If you want to accept  * and/or digits, you'll have to configure the gateway with 'vxml allow-star-digit' and in that case, I don't think you can distinguish between collecting digits and the star key. But, after you've collected the caller input you can use the Decision element to test if the input contains/starts with/ends with  *

You should look at the Cisco VoiceXML Programmer’s Guide - it discusses (not very well) the gateway DTMF-grammar formats.

Janine

I just tested the DTMF-Only gateway with VXML Server 8.5 and IOS 15.1 and got some unexpected results.
When I select DTMF-Only and use a Form element and enter  DTMF-Grammar: builtin:dtmf/digits 
The vxml code sent to the gateway contains no grammar at all (whether I include a minlength, or maxlength, or length doesn't matter - the grammar doesn't show up in the vxml code). And the gateway allows me to enter any number of digits I want.
If I use a Digits element, then the vxml code contains what I'd expect  
So - if you want to specify a min/max number of digits you will have to use the Digits Element.
Finally, if you want a fixed number of dtmf keys (for example, 2 dtmf keys), then you can enter this on the DTMF-Keypress setting: .. (dot dot) that allows only 2 DTMF keys. It accepts the first 2 dtmf keys and ignores the rest entered by the caller.
I'm going to paste the vxml created by VxmlServer below.
I will attach 2 VXML Debug Logs on the forum in case you'd like to see.     (one shows just the field and grammars, the other is the complete log)
Attachments:

This link discusses the vxml allow-star-digit (and other IOS commands)
http://www.cisco.com/en/US/docs/ios/mcl/allreleasemcl/all_16.html