A very effective way of detecting AMD on a VXML call is via the noinput tag. As per the w3c voiceXML specification, the noinput tag is a short hand for catching events. In other words
<source lang="xml"> <noinput>I didn't hear anything, please try again.</noinput> </source> can be replaced with <source lang="xml"> <catch event="noinput"> I didn't hear anything, please try again. <catch> </source>
This page will now demonstrate one possible way of using the noinput tag to detect answering machines.
Answering machine detection has to be done early in the calls for multiple reasons:
It is therefore recommended that any VXML document have the detection mechanism as the first option in the call.
| Caller: Answering machine picks up |
| CallFire: This is a VoiceXML Message from CallFire, Please press 1 to continue. |
| Caller: No DTMF input |
| CallFire: (second time)This is a VoiceXML Message from CallFire, Please press 1 to continue. |
| Caller: No DTMF input |
| CallFire: (third time)I'm sorry, I did not understand your response. Goodbye! |
The vxml document for such a call flow will look like: <source lang="XML"> <form id="top">
<block>
<prompt>This is a VoiceXML Message from CallFire, Please press 1 to continue.
</prompt>
<block>
<field name="AMD" type="digits?length=1">
<noinput>
<reprompt/>
</noinput>
<noinput count="3">
<prompt>I'm sorry, I did not understand your response. Goodbye!
</prompt>
</noinput>
</form> </source>
