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?
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)
IVR post to capture caller's e-mail address
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
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.
Plum Support
http://www.plumvoice.com
http://www.plumvoice.com
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"/>
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
Turns out it was the "grammarmaxage" property: needed to set it to 0.
Email capture nearly works but is very flaky.
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>
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
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
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.
Plum Support
http://www.plumvoice.com
http://www.plumvoice.com