我们有一个简单的案例,用户可以拨打我们的电话号码,在某些情况下需要输入PIN码,然后输入井号,进行身份验证并继续。在这种情况下,英镑符号被定义为我们的finishOnKey
。
如果用户输入PIN,一切都很完美。如果它有效,它们继续前进;如果不是,它会阻止它们。
但是,如果用户仅在没有任何先前输入的情况下击中英镑,则呼叫会挂断。
finishOnKey
重新定义为星号,则行为仍然存在 - 如果用户只键入星号(但重要的是,它不再挂在英镑符号上),它会挂起。 / LI>
这让我相信,无论是内置于Twilio还是我的代码中可能缺少某些东西,但我无法想象。这是Twilio的预期行为,和/或如何防止这种行为?我们希望系统能够像用户输入无效的PIN一样做出反应。
答案 0 :(得分:1)
Twilio开发者传道者在这里。
来自<Gather>
documentation on the action
attribute:
如果&#39;超时&#39;在呼叫者输入任何数字之前,或者如果呼叫者进入“完成”键,则会到达。在输入任何其他数字之前,Twilio不会向&#39;动作提出请求。 URL,而是继续使用
<Gather>
之后的动词继续处理当前的TwiML文档。
我认为您没有任何跟随<Gather>
的TwiML,因为您希望它始终提交到action
网址。我建议您<Say>
向用户发送消息,然后<Redirect>
返回相同的网址,有点像这样:
<Response>
<Gather finishOnKey="#" action="https://example.com/gather_response">
<Say>Please enter the PIN</Say>
</Gather>
<Say>We did not receive a PIN, please try again.</Say>
<Redirect>https://example.com/gather</Redirect>
</Response>
如果有帮助,请告诉我。