我的 Twilio API 一切正常。但最近我发现了一个奇怪的问题。 我正在尝试从呼叫者那里收集邮政编码。如果呼叫者立即输入邮政编码,则该功能有效。但不知何故,如果呼叫者延迟 4-5 秒输入邮政编码,Twilio 会再次播放收集消息。
这是我的代码:
$response = new VoiceResponse;
$gather = $response->gather(['numDigits' => 5, 'timeout' => 10, 'action' => 'api/twilio-gather-handle']);
$gather->say("Please enter your zip code.");
$response->redirect('api/twilio-gather-handle');
return $response;
因此,如果呼叫者在播放 Twilio 消息后立即输入邮政编码,则一切都会顺利进行,但如果呼叫者延迟 4-5 秒,则收集将不起作用,Twilio 会播放“请输入您的邮政编码”。再次。因此,呼叫者第二次听到此消息后就会断开呼叫,这对应用程序造成了很大的损害。
请问有什么帮助吗?
我认为这可能与
redirect
之后的gather
有关。我假设您的 /api/twilio-gather-handle
端点检查所需的参数,如果丢失则重定向回来。这就是为什么用户会听到两次。
您可以通过删除
redirect
来解决此问题。由于 gather
属性,action
知道端点。