We've Moved! Please visit our new and improved forum over at our new portal: https://portal.plumvoice.com/hc/en-us/community/topics

dtmf grammer

Questions and answers about IVR programming for Plum DEV

Moderators: admin, support

Post Reply
rayishome
Posts: 23
Joined: Mon Aug 13, 2007 7:12 am

dtmf grammer

Post by rayishome »

I can't seem to get this to work:

Code: Select all

<form>
<field name="UserConfirm"><prompt>
              
               Press 1 to place  press 2 to reenter, or press star to cancel 
               </prompt>
               <grammar type="application/x-gsl" mode="dtmf">
			<![CDATA[
			[
			
                                                        [dtmf-1] {<cmd "confirm">}
                                                        [dtmf-2] {<cmd "change">}
                                                        [dtmf-star] {<cmd "quit">}
			]
			]]>
		</grammar>
               <catch event="noinput nomatch">
                   Sorry. I didn't get that.
               
                   
               </catch>
               <filled>
                 <if cond="'confirm' == UserConfirm">
                    <prompt> confirmed</prompt>
                </if>

support
Posts: 3632
Joined: Mon Jun 02, 2003 3:47 pm
Location: Boston, MA
Contact:

IVR platform supports JSGF and SRGS grammars

Post by support »

Hi,

We do not support gsl grammars. We only support JSGF and ABNF(SRGS) grammars, which are documented in the VoiceXML Specification:

http://www.w3.org/TR/speech-grammar/

For more details, you can also read about our IVR grammar formats here in the Plum Programmer Reference Manual:

http://www.plumvoice.com/docs/dev/devel ... ce:grammar

So, you would have to replace this IVR code:

Code: Select all

<grammar type="application/x-gsl" mode="dtmf">
with either:

Code: Select all

<grammar type="application/srgs+xml" mode="dtmf"> 
or this IVR code:

Code: Select all

<grammar type="application/x-jsgf" mode="dtmf"> 
Regards,
Plum Support
Last edited by support on Fri Feb 19, 2010 4:50 pm, edited 3 times in total.

rayishome
Posts: 23
Joined: Mon Aug 13, 2007 7:12 am

still having issues

Post by rayishome »

I get the following error

Loading Builtin grammar: builtin:grammar/digits
Loading Builtin grammar: builtin:dtmf/digits
Loading Builtin grammar: builtin:grammar/digits
Loading Builtin grammar: builtin:dtmf/digits
GrammarManager::CreateGrammarFromString(application/srgs xml):
---------

<?xml version='1.0'?>
<grammar version="1.0" root="ROOT" xml:lang="en-us" mode="voice">
<rule id="ROOT" scope="public"><one-of><item>1</item><item>2</item><item>*</item></one-of></rule>
</grammar>

---------

bargein set to true
INPUTMODES set to "DTMF VOICE"
Audio segment added to prompt queue from TTS text/plain;charset=wchar_t for:
---------

A serious error of type
---------
bargein set to true
INPUTMODES set to "DTMF VOICE"
Audio segment added to prompt queue from TTS text/plain;charset=wchar_t for:
---------
error.grammar.inlined


From the code below

Code: Select all

<field name="UserBidConfirm">
                             
               <prompt>
               You are bidding.  <value expr="UserBidDollars"/> dollars and <value expr="UserBidCents"/> cents.  
               Press 1 to place your bid and accept the E Bay and Call It Up policy, press 2 to reenter, or press star to cancel your bid
               </prompt>
               <grammar type="application/srgs+xml" root="ROOT" mode="voice" version = "1.0">
<rule id="ROOT" scope = "public">
 <one-of>
   <item> 1 </item>
   <item> 2 </item>
   <item> * </item>   
 </one-of>
</rule>
</grammar>
               <catch event="noinput nomatch">
                   Sorry. I didn't get that.
                    
                    press 1 for place your bid, press 2 to change, or press star key to cancel your bid.
                   
               </catch>
               <filled>
                 <if cond="'1' == UserBidConfirm">
                    <prompt> bid confirmed</prompt>
                </if>
[/code]

support
Posts: 3632
Joined: Mon Jun 02, 2003 3:47 pm
Location: Boston, MA
Contact:

IVR error due to incorrect grammar specifications

Post by support »

Hi,

The IVR error is occurring because the mode that you specify in your IVR <grammar> is "speech" instead of "dtmf".

So, this line of IVR code:

Code: Select all

<grammar type="application/srgs+xml" root="ROOT" mode="voice" version = "1.0">
should be:

Code: Select all

<grammar type="application/srgs+xml" root="ROOT" mode="dtmf" version = "1.0">
Regards,
Plum Support
Last edited by support on Fri Feb 19, 2010 4:51 pm, edited 3 times in total.

rayishome
Posts: 23
Joined: Mon Aug 13, 2007 7:12 am

more sample

Post by rayishome »

Sorry, I was trying everything and posed the code with voice. Below is more of the code. I've tired it all... I've even created a non inlined piece of code and that doesn't work.

Code: Select all

<form id="Bidding">
    <block>
    <prompt>The Current Bid is 
                 <say-as interpret-as="currency"><value expr="document.CurrentBidAmt"/></say-as>.
                 
            </prompt>
    </block>
             <field name="UserBidDollars" type="digits">
                
                Please enter your bid dollars. Press the pound key when finished.
                <catch event="noinput nomatch">
                   Sorry. I didn't get that.  Please enter only the dollar amount and no cents.
                    
               </catch>
             </field>
             <field name="UserBidCents" type="digits">
                
                Please enter you cents. Press the pound key when finished.
                <catch event="noinput nomatch">
                   Sorry. I didn't get that.  Please enter only cents.  Enter 0 for no cents
                    
               </catch>
             </field>
             
            <field name="UserBidConfirm">
                             
               <prompt>
               You are bidding.  <value expr="UserBidDollars"/> dollars and <value expr="UserBidCents"/> cents.  
               Press 1 to place your bid and accept the E Bay and Call It Up policy, press 2 to reenter, or press star to cancel your bid
               </prompt>
               <grammar type="application/srgs+xml" root="ROOT" mode="dtmf" version = "1.0">
<rule id="ROOT" scope = "public">
 <one-of>
   <item>1</item>
   <item>2</item>
   <item>*</item>   
 </one-of>
</rule>
</grammar>
                        
               <catch event="noinput nomatch">
                   Sorry. I didn't get that.
                    
                    press 1 for place your bid, press 2 to change, or press star key to cancel your bid.
                   
               </catch>
               <filled>
                 <if cond="'1' == UserBidConfirm">
                    <prompt> bid confirmed</prompt>
                </if>

support
Posts: 3632
Joined: Mon Jun 02, 2003 3:47 pm
Location: Boston, MA
Contact:

IVR call log needed to help better understand problem

Post by support »

Hi,

Are you still getting the same error.grammar.inlined error? If not, could you post your IVR call log here?

Regards,
Plum Support
Last edited by support on Tue Dec 29, 2009 1:29 pm, edited 1 time in total.

rayishome
Posts: 23
Joined: Mon Aug 13, 2007 7:12 am

call log

Post by rayishome »

still getting the error. Can it come from the start "*" in the item tag. I'm simply trying to allow the user to press 1,2, or * and process based on that

Tue 11 Sep 2007 01:39:52 PM EDT:
Call Start Event: ANII 3017892092 DNIS 9301 VURL http://hosting.plumgroup.com/plumvp/director.vxml
DocumentParser::FetchDocument()
DocumentParser::FetchDocument(http://hosting.plumgroup.com/plumvp/director.vxml)
Cache Hit: http://hosting.plumgroup.com/plumvp/director.vxml
VXI::var_element(name="dnis" expr = "session.telephone.dnis")
DocumentParser::FetchDocument(director.php)
Posted form data is URL encoded
Attempting to fetch http://hosting.plumgroup.com/plumvp/director.php
Click here to view saved VoiceXML script
DocumentParser::FetchDocument(http://maloneideas.com/PhoneWeb/initcall.asp)
Cache Miss: http://maloneideas.com/PhoneWeb/initcall.asp
Attempting to fetch http://maloneideas.com/PhoneWeb/initcall.asp
Click here to view saved VoiceXML script
VXI::var_element(name="application.ani" expr = "session.telephone.ani")
VXI::var_element(name="application.LoginTries" expr = "0")
DocumentParser::FetchDocument(initCall2.asp)
Cache Miss: http://maloneideas.com/PhoneWeb/initCall2.asp
Attempting to fetch http://maloneideas.com/PhoneWeb/initCall2.asp
Click here to view saved VoiceXML script
Loading Builtin grammar: builtin:grammar/digits?length=4
Loading Builtin grammar: builtin:dtmf/digits?length=4
VXI::var_element(name="ani" expr = "application.ani")
VXI::var_element(name="dnis" expr = "session.telephone.dnis")
VXI::var_element(name="counter" expr = "0")
VXI::var_element(name="uri" expr = "'Process.asp'")
VXI::queue_prompts()
bargein set to false
INPUTMODES set to "DTMF VOICE"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak>
Please enter or say your pin.
</speak>
---------
Newly queued prompts are now being played
VXI::field_element - activating grammars for form = 'callerid' formitem = 'ab'
VXI::do_recognition()
PromptManager::Play()

Tue 11 Sep 2007 01:39:59 PM EDT:
Found grammar match
hypothesis #0: 1111 (0.9950)
DocumentParser::FetchDocument(Process.asp)
Posted form data is URL encoded
Attempting to fetch http://maloneideas.com/PhoneWeb/Process.asp
Click here to view saved VoiceXML script
GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="voice">
(My E Bay)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(My E Bay)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(1)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="voice">
(Reminders)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(Reminders)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(2)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="voice">
(exit)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(exit)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(3)
</grammar>

---------

bargein set to true
INPUTMODES set to "DTMF VOICE"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak>
Welcome to Call My Auction.
</speak>
---------

Tue 11 Sep 2007 01:40:00 PM EDT:
VXI::queue_prompts()
bargein set to true
INPUTMODES set to "DTMF VOICE"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak>
Please choose a function:

My E Bay<break size='small'/>
Reminders<break size='small'/>
exit<break size='small'/></speak>
---------
VXI::do_recognition()
PromptManager::Play()
Newly queued prompts are now being played

Tue 11 Sep 2007 01:40:06 PM EDT:
Found grammar match
hypothesis #0: My E Bay (0.9900)
VXI::var_element(name="uri" expr = "'ebay/PhoneProcessReqTest.asp'")
VXI::var_element(name="req" expr = "'EbayBuying'")
DocumentParser::FetchDocument(ebay/PhoneProcessReqTest.asp)
Posted form data is URL encoded
Attempting to fetch http://maloneideas.com/PhoneWeb/ebay/Ph ... eqTest.asp

Tue 11 Sep 2007 01:40:07 PM EDT:
Click here to view saved VoiceXML script
GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="voice">
(Bid List)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(Bid List)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(1)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="voice">
(Watch List)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(Watch List)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(2)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="voice">
(Won List)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(Won List)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(3)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="voice">
(Winning List)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(Winning List)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(4)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="voice">
(Lost List)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(Lost List)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(5)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="voice">
(Back)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(Back)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(6)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="voice">
(Exit)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(Exit)
</grammar>

---------


Tue 11 Sep 2007 01:40:08 PM EDT:
GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(9)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="voice">
(Back)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(Back)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(1)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="voice">
(Next)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(Next)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(2)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="voice">
(Next)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(Next)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(1)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="voice">
(Back)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(Back)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(2)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="voice">
(Bid)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(Bid)
</grammar>

---------

GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------

<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
(3)
</grammar>

---------

Loading Builtin grammar: builtin:grammar/digits
Loading Builtin grammar: builtin:dtmf/digits
Loading Builtin grammar: builtin:grammar/digits
Loading Builtin grammar: builtin:dtmf/digits
GrammarManager::CreateGrammarFromString(application/srgs xml):
---------

<?xml version='1.0'?>
<grammar version="1.0" root="ROOT" xml:lang="en-us" mode="dtmf">
<rule id="ROOT" scope="public"><one-of><item>1</item><item>2</item><item>*</item></one-of></rule>
</grammar>

---------

bargein set to true
INPUTMODES set to "DTMF VOICE"
Audio segment added to prompt queue from TTS text/plain;charset=wchar_t for:
---------

A serious error of type
---------
bargein set to true
INPUTMODES set to "DTMF VOICE"
Audio segment added to prompt queue from TTS text/plain;charset=wchar_t for:
---------
error.grammar.inlined
---------
bargein set to true
INPUTMODES set to "DTMF VOICE"
Audio segment added to prompt queue from TTS text/plain;charset=wchar_t for:
---------
has occurred. Exiting.
---------
VXI::exit_element()
Newly queued prompts are now being played

Tue 11 Sep 2007 01:40:15 PM EDT:
Call End Event
Ending session
Ending Session On Channel 16

rayishome
Posts: 23
Joined: Mon Aug 13, 2007 7:12 am

fixed the issue

Post by rayishome »

thanks: I fixed it. It was a missing plus sign.

Post Reply