在 Twilio 通话中记录多个用户答案

Recording multiple user answers in Twilio call

我正在使用 Twilio 构建交互式语音助手。我的目标是录制部分对话,处理录制的音频并

这是对 /voice webhook 的回答(将收到 Twilio 的电话)

<Response>
    <Play>./welcome</Play>
    <Record maxLength="10" action="/processing" recordingStatusCallback="/getRecording"></Record>
</Response>

处理音频并提供答案可能需要很长时间,所以我在 /processing 的末尾添加了一个暂停:

<Response>
    <Play>./ok</Play>
    <Pause length="10"></Pause>
</Response>

这是完成 /getRecording 后的答案

<Response>
    <Play>./answer</Play>
    <Record maxLength="10" action="/processing" recordingStatusCallback="/getRecording "></Record>
</Response>

/welcome, /ok 和 /answer 指向相应的音频文件。

所以我能够执行所有步骤,我可以在我的日志中检查 /getRecording 实际上执行到最后并且 twiml 再次发回,但是 /getRecording 之后的 /answer 从未被 Twilio 执行(并且通话刚刚结束)。

你有什么指导吗? Twilio 是否接受同一通话的多个录音?

注意:出于某种原因,如果我不使用 'recordingStatusCallback' 而使用 /getrecording 作为 'action' 它确实有效......但是我们无法确定我们正在使用的录音真的生成了吧?

感谢您的帮助!

这里是 Twilio 开发人员布道者。

您的 /getRecording 端点被调用,但是在调用的上下文中这是一个异步网络钩子。将 TwiML 返回到 recordingStatusCallback 不会影响当前调用。

相反,您应该使用 REST API 到 modify the call,方法是根据对记录文件的响应将其重定向到您要执行的下一个 TwiML。

希望录音不会超过您使用的 10 秒暂停时间,但您可能希望在 /processing 端点中添加一个循环,这样呼叫就不会挂断您的来电者。您可以通过 redirecting 来电者再次回到开始来执行此操作:

<Response>
    <Play>./ok</Play>
    <Pause length="10"></Pause>
    <Redirect>./processing</Redirect>
</Response>

然后,当您收到录音回调时,您会将呼叫者重定向到此循环之外。

如果有帮助请告诉我。