Page 1 of 1

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

Posted: Tue May 20, 2008 4:30 pm
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?

IVR post to capture caller's e-mail address

Posted: Tue May 20, 2008 4:49 pm
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

Posted: Tue May 20, 2008 5:57 pm
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"/>

Never mind - it worked

Posted: Tue May 20, 2008 6:07 pm
by opwernby
Turns out it was the "grammarmaxage" property: needed to set it to 0.

Email capture nearly works but is very flaky.

Posted: Wed Jun 04, 2008 4:22 pm
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>

IVR developer recommends grammar with military phonetic alph

Posted: Thu Jun 05, 2008 9:30 am
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

Posted: Thu Jun 05, 2008 3:16 pm
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.