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

Capture caller's email address (i.e. have them spell it)

Questions and answers about IVR programming for Plum DEV

Moderators: admin, support

Post Reply
opwernby
Posts: 7
Joined: Thu May 15, 2008 5:00 pm

Capture caller's email address (i.e. have them spell it)

Post by opwernby »

Hi,

We have a need to capture a caller's email address as an optional step: I notice that in the Field types, there isn't one which lets them spell something (i.e. the same kind of thing for alphanumeric data as "digits" does for numbers).

How would one go about implementing such a thing?

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

IVR post to capture caller's e-mail address

Post by support »

Hi,

I believe this was addressed in an earlier IVR post:

http://support.plumvoice.com/viewtopic.php?t=927

Hope this helps.

Regards,
Plum Support
Last edited by support on Mon Jan 11, 2010 4:40 pm, edited 4 times in total.

opwernby
Posts: 7
Joined: Thu May 15, 2008 5:00 pm

Post by opwernby »

I tried it: the call log says, "Error creating grammar" but doesn't say why. Here's the grammar I made (http://devtb.com/plumivr/Grammars/email.xml). I also tried it after removing all the <item>s after the "9", and it still didn't work.

Any ideas?

Thanks.

<?xml version="1.0" ?>
<grammar mode="voice" root="email" xml:lang="en_us">
<rule id="email" scope="public">
<one-of>
<item repeat="1-">
<ruleref uri="#emailchars" />
</item>
</one-of>
</rule>
<rule id="emailchars" scope="private">
<one-of>
<item>A<tag>SWI_literal="a"</tag></item>
<item>B<tag>SWI_literal="b"</tag></item>
<item>C<tag>SWI_literal="c"</tag></item>
<item>D<tag>SWI_literal="d"</tag></item>
<item>E<tag>SWI_literal="e"</tag></item>
<item>F<tag>SWI_literal="f"</tag></item>
<item>G<tag>SWI_literal="g"</tag></item>
<item>H<tag>SWI_literal="h"</tag></item>
<item>I<tag>SWI_literal="i"</tag></item>
<item>J<tag>SWI_literal="j"</tag></item>
<item>K<tag>SWI_literal="k"</tag></item>
<item>L<tag>SWI_literal="l"</tag></item>
<item>M<tag>SWI_literal="m"</tag></item>
<item>N<tag>SWI_literal="n"</tag></item>
<item>O<tag>SWI_literal="o"</tag></item>
<item>P<tag>SWI_literal="p"</tag></item>
<item>Q<tag>SWI_literal="q"</tag></item>
<item>R<tag>SWI_literal="r"</tag></item>
<item>S<tag>SWI_literal="s"</tag></item>
<item>T<tag>SWI_literal="t"</tag></item>
<item>U<tag>SWI_literal="u"</tag></item>
<item>V<tag>SWI_literal="v"</tag></item>
<item>W<tag>SWI_literal="w"</tag></item>
<item>X<tag>SWI_literal="x"</tag></item>
<item>Y<tag>SWI_literal="y"</tag></item>
<item>Z<tag>SWI_literal="z"</tag></item>
<item>0<tag>SWI_literal="0"</tag></item>
<item>1<tag>SWI_literal="1"</tag></item>
<item>2<tag>SWI_literal="2"</tag></item>
<item>3<tag>SWI_literal="3"</tag></item>
<item>4<tag>SWI_literal="4"</tag></item>
<item>5<tag>SWI_literal="5"</tag></item>
<item>6<tag>SWI_literal="6"</tag></item>
<item>7<tag>SWI_literal="7"</tag></item>
<item>8<tag>SWI_literal="8"</tag></item>
<item>9<tag>SWI_literal="9"</tag></item>
<item>dot<tag>SWI_literal="."</tag></item>
<item>period<tag>SWI_literal="."</tag></item>
<item>com<tag>SWI_literal="com"</tag></item>
<item>net<tag>SWI_literal="net"</tag></item>
<item>edu<tag>SWI_literal="edu"</tag></item>
<item>org<tag>SWI_literal="org"</tag></item>
<item>gov<tag>SWI_literal="gov"</tag></item>
<item>co<tag>SWI_literal="co"</tag></item>
<item>info<tag>SWI_literal="info"</tag></item>
<item>dash<tag>SWI_literal="-"</tag></item>
<item>minus<tag>SWI_literal="-"</tag></item>
<item>underscore<tag>SWI_literal="_"</tag></item>
<item>underline<tag>SWI_literal="_"</tag></item>
<item>mail<tag>SWI_literal="mail"</tag></item>
<item>yahoo<tag>SWI_literal="yahoo"</tag></item>
<item>hot mail<tag>SWI_literal="hotmail"</tag></item>
<item>at<tag>SWI_literal="@"</tag></item>
<item>at sign<tag>SWI_literal="@"</tag></item>
</one-of>
</rule>
</grammar>


Meanwhile, the "grammar" tag in the form looks like this:

<grammar src="Grammars/email.xml" type="application/srgs+xml"/>

opwernby
Posts: 7
Joined: Thu May 15, 2008 5:00 pm

Never mind - it worked

Post by opwernby »

Turns out it was the "grammarmaxage" property: needed to set it to 0.

opwernby
Posts: 7
Joined: Thu May 15, 2008 5:00 pm

Email capture nearly works but is very flaky.

Post by opwernby »

So I wrote a grammar for capturing the email, and put a form around it. It nearly works... simple things seem to be captured, but if you try to spell anything more than about 10 characters long, it spontaneously ends the capture and sticks with what it's captured so far, usually inaccurately.

I tried increasing the timeout property to 30 seconds, but that didn't help; also tried playing with the sensitivity settings, but that didn't change much, either.

Could you take a quick glance and see whether you think I'm doing this right?

Here's the form which tries to capture the email address:

<form id="email">
<field name="em">
<prompt>

Please spell your email address. You can also say things like "dot com".
</prompt>
<grammar src="Grammars/email.xml" type="application/srgs+xml"/>
<filled>
<assign name="email" expr="em"/>
<goto next="#readback"/>
</filled>
<noinput>
<goto next="#capturefailed"/>

</noinput>
<nomatch count="4">
<goto next="#capturefailed"/>
</nomatch>
</field>
</form>


The grammar looks like this:

<?xml version="1.0" ?>
<grammar mode="voice" root="email" xml:lang="en_us">
<rule id="email" scope="public">
<one-of>
<item repeat="1-">
<ruleref uri="#emailchars" />
</item>
</one-of>
</rule>
<rule id="emailchars" scope="private">
<one-of>
<item>A<tag>SWI_literal="a"</tag></item>
<item>B<tag>SWI_literal="b"</tag></item>
<item>C<tag>SWI_literal="c"</tag></item>
<item>D<tag>SWI_literal="d"</tag></item>
<item>E<tag>SWI_literal="e"</tag></item>
<item>F<tag>SWI_literal="f"</tag></item>
<item>G<tag>SWI_literal="g"</tag></item>
<item>H<tag>SWI_literal="h"</tag></item>
<item>I<tag>SWI_literal="i"</tag></item>
<item>J<tag>SWI_literal="j"</tag></item>
<item>K<tag>SWI_literal="k"</tag></item>
<item>L<tag>SWI_literal="l"</tag></item>
<item>M<tag>SWI_literal="m"</tag></item>
<item>N<tag>SWI_literal="n"</tag></item>
<item>O<tag>SWI_literal="o"</tag></item>
<item>P<tag>SWI_literal="p"</tag></item>
<item>Q<tag>SWI_literal="q"</tag></item>
<item>R<tag>SWI_literal="r"</tag></item>
<item>S<tag>SWI_literal="s"</tag></item>
<item>T<tag>SWI_literal="t"</tag></item>
<item>U<tag>SWI_literal="u"</tag></item>
<item>V<tag>SWI_literal="v"</tag></item>
<item>W<tag>SWI_literal="w"</tag></item>
<item>X<tag>SWI_literal="x"</tag></item>
<item>Y<tag>SWI_literal="y"</tag></item>
<item>Z<tag>SWI_literal="z"</tag></item>
<item>zero<tag>SWI_literal="0"</tag></item>
<item>one<tag>SWI_literal="1"</tag></item>
<item>two<tag>SWI_literal="2"</tag></item>
<item>three<tag>SWI_literal="3"</tag></item>
<item>four<tag>SWI_literal="4"</tag></item>
<item>five<tag>SWI_literal="5"</tag></item>
<item>six<tag>SWI_literal="6"</tag></item>
<item>seven<tag>SWI_literal="7"</tag></item>
<item>eight<tag>SWI_literal="8"</tag></item>
<item>nine<tag>SWI_literal="9"</tag></item>
<item>dot<tag>SWI_literal="."</tag></item>
<item>period<tag>SWI_literal="."</tag></item>
<item>com<tag>SWI_literal="com"</tag></item>
<item>net<tag>SWI_literal="net"</tag></item>
<item>edu<tag>SWI_literal="edu"</tag></item>
<item>org<tag>SWI_literal="org"</tag></item>
<item>gov<tag>SWI_literal="gov"</tag></item>
<item>co<tag>SWI_literal="co"</tag></item>
<item>info<tag>SWI_literal="info"</tag></item>
<item>dash<tag>SWI_literal="-"</tag></item>
<item>minus<tag>SWI_literal="-"</tag></item>
<item>underscore<tag>SWI_literal="_"</tag></item>
<item>underline<tag>SWI_literal="_"</tag></item>
<item>mail<tag>SWI_literal="mail"</tag></item>
<item>yahoo<tag>SWI_literal="yahoo"</tag></item>
<item>hot mail<tag>SWI_literal="hotmail"</tag></item>
<item>at<tag>SWI_literal="@"</tag></item>
</one-of>
</rule>
</grammar>

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

IVR developer recommends grammar with military phonetic alph

Post by support »

Hi,

Yes, we've just tested your IVR grammar and while it works okay for spelling up to 5 characters, it becomes more difficult for the speech recognition to capture what the user is saying as more letters are being spelled.

You could try implementing an IVR grammar that uses the military phonetic alphabet to try to capture longer e-mail addresses, but please keep in mind that just as it is difficult for "human recognition" of spelling (i.e. m's and n's), it is difficult for a speech recognition engine to capture a spelling grammar.

Regards,
Plum Support
Last edited by support on Fri Feb 19, 2010 10:46 am, edited 2 times in total.

opwernby
Posts: 7
Joined: Thu May 15, 2008 5:00 pm

Post by opwernby »

Yeah - that was pretty much what I thought was going on -- I think I'll give up, then, and have them just record an email address instead.

Thanks.

Post Reply