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

System speed

Questions and answers about IVR programming for Plum DEV

Moderators: admin, support

Post Reply
jcooper
Posts: 45
Joined: Tue Jul 22, 2008 5:22 pm

System speed

Post by jcooper »

I'm not sure if this is a development issue or a platform issue. I am looking for a way to speed up the transition from one field to the next. Below is a sample of my code. The transition between the access code confirmation and the password field takes from 1 to 2 seconds. This seems to be the case with other field -> confirmation -> field transitions. Is there anything I can do to speed these up?
Thanks!
JC

<field name="AccessCode" type="digits?length=5">
<prompt>
Please enter your I.D. code followed by the pound sign.
</prompt>
<filled>
<goto nextitem="confirmID"/>
</filled>
<catch event="noinput nomatch" count="3">
<prompt bargein="false">
Please confirm your I.D. and try your call later.
</prompt>
<disconnect />
</catch>
<catch event="noinput nomatch">
<reprompt/>
</catch>
</field>
<subdialog name="confirmID" src="#confirm" cond="false">
<param name="user_input" expr="AccessCode"/>
<filled>
<if cond="confirmID.result==false">
<clear namelist="AccessCode"/>

</if>
</filled>
</subdialog>
<field name="Password" type="digits?minlength=2;maxlength=10">
<prompt bargein="true">
Please enter your password followed by the pound sign.
</prompt>
<filled>
<goto nextitem="login"/>
</filled>
<catch event="noinput nomatch" count="3">
Your entry was invalid. Goodbye.
<disconnect />
</catch>
</field>
...
</form>

<!-- Confirmations -->
<form id="confirm">
<property name="voicename" value="Jennifer"/>
<property name="inputmodes" value="dtmf"/>
<property name="termchar" value="#"/>
<property name="timeout" value="3s"/>
<property name="interdigittimeout" value="2s"/>
<property name="scriptmaxage" value="0s"/>
<property name="documentmaxage" value="0s"/>
<property name="sensitivity" value="0.0"/>

<var name="user_input"/>
<field name="yn" modal="true">
<grammar type="application/x-jsgf" mode="dtmf">
1 | 2
</grammar>
<prompt bargein="true" timeout="2s">
You entered:
<prosody volume="200.0" rate="-25%">
<say-as type="number:digits">
<value expr="user_input"/>
</say-as>
</prosody>.
<prosody volume="100.0" rate="default">
Press 1 to confirm.
Press 2 to re enter.
</prosody>
</prompt>
<filled>
<var name="result" expr="true"/>
<if cond="yn==2">
<assign name="result" expr="false"/>
</if>
<return namelist="result"/>
</filled>
</field>

<catch event="connection.disconnect">
<submit next="Process.aspx?p=Disconnect"
namelist="session.id"
method="post"
/>
</catch>
</form>

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

IVR script change needed for delays

Post by support »

Hi,

Do you have a global property such as interdigittimeout in your IVR script?

i.e.

Code: Select all

<property name="interdigittimeout" value="2s"/>
This might be the reason why you are experiencing a 2s delay between the confirmation and password field.

To avoid this, you could try setting your IVR properties within local scopes.

Regards,
Plum Support
Last edited by support on Wed Feb 17, 2010 3:43 pm, edited 3 times in total.

jcooper
Posts: 45
Joined: Tue Jul 22, 2008 5:22 pm

interdigittimeout

Post by jcooper »

My understanding of interdigittimeout was the time it waited for another digit to proceed on to the <filled> section. These are my properties:
<property name="voicename" value="Jennifer"/>
<property name="inputmodes" value="dtmf"/>
<property name="termchar" value="#"/>
<property name="timeout" value="3s"/>
<property name="interdigittimeout" value="2s"/>
<property name="scriptmaxage" value="0s"/>
<property name="documentmaxage" value="0s"/>
<property name="sensitivity" value="0.0"/>

If I set a locally scoped property for interdigittimeout to 0 seconds would this take precedence over the root document's interdigittimeout?
Thanks!

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

IVR application and interdigittimeout

Post by support »

Here's a link that further describes the IVR attribute of how the timing for interdigittimeout works: http://www.w3.org/TR/voicexml20/#dmlATiming

And yes, if you set a locally scoped property for interdigittimeout to a small value such as 10ms or 0s, it would take precedence over the root document's interdigittimeout.

Regards,
Plum Support
Last edited by support on Sat Dec 26, 2009 7:06 pm, edited 1 time in total.

jcooper
Posts: 45
Joined: Tue Jul 22, 2008 5:22 pm

speed

Post by jcooper »

I tried your suggestion and set the confirmation forms interdigittimeout to 0s. It seems like it might be a little faster now, but there is still a little delay switching back from a confirmation to the main form. Anything we can do about that?

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

IVR code and interdigittimeout

Post by support »

Hi,

We've found that using an interdigittimeout value of 10ms works pretty well. There is almost no delay between the confirmation and main form after entering a DTMF-2 key. The following IVR code example:

Code: Select all

<?xml version="1.0"?>
<vxml version="2.0">
<property name="voicename" value="Samantha"/>
<property name="inputmodes" value="dtmf"/>
<property name="termchar" value="#"/>
<property name="timeout" value="3s"/>
<property name="interdigittimeout" value="2s"/>
<property name="scriptmaxage" value="0s"/>
<property name="documentmaxage" value="0s"/>

<form id="login">

<block>
<prompt>Welcome to the Nutro Demo Check In System.</prompt>
</block>

<field name="AccessCode" type="digits?length=5">
<prompt>
Please enter your I.D. code followed by the pound sign.
</prompt>
<filled>
<goto nextitem="confirmID"/>
</filled>
</field>

<subdialog name="confirmID" src="#confirm" cond="false">
<param name="user_input" expr="AccessCode"/>
<filled>
<if cond="confirmID.result==false">
<clear namelist="AccessCode"/>
</if>
</filled>
</subdialog>

<field name="Password" type="digits?minlength=2;maxlength=10">
<prompt bargein="true">
Please enter your password followed by the pound sign.
</prompt>
<filled>
<goto nextitem="login"/>
</filled>
<catch event="noinput nomatch" count="3">
Your entry was invalid. Goodbye.
<disconnect/>
</catch>
</field>

</form>

<!-- Generic confirmations -->
<form id="confirm">
<property name="voicename" value="Samantha"/>
<property name="inputmodes" value="dtmf"/>
<property name="termchar" value="#"/>
<property name="timeout" value="3s"/>
<property name="interdigittimeout" value="10ms"/>
<property name="scriptmaxage" value="0s"/>
<property name="documentmaxage" value="0s"/>
<var name="user_input"/>

<field name="yn" modal="true">
<grammar type="application/x-jsgf" mode="dtmf">
1 | 2
</grammar>
<prompt bargein="true" timeout="2s">
You entered:

<prosody volume="200.0" rate="-25%">
<say-as type="number:digits">
<value expr="user_input"/>
</say-as>
</prosody>.

<prosody volume="100.0" rate="default">
Press 1 to confirm.
Press 2 to re enter.
</prosody>
</prompt>
<filled>
<var name="result" expr="true"/>
<if cond="yn==2">
<assign name="result" expr="false"/>
</if>
<return namelist="result"/>
</filled>
</field>

</form>

</vxml>
Regards,
Plum Support

Post Reply