在Twilio呼叫中记录多个用户应答

在Twilio呼叫中记录多个用户应答,twilio,twilio-twiml,Twilio,Twilio Twiml,我正在使用Twilio构建一个交互式语音助手。我的目标是录制部分对话,处理录制的音频和视频 这是对/voice webhook的回答(将接收Twilio呼叫的人) 欢迎光临 处理音频和提供答案可能需要很长时间,因此我在/处理结束时添加了暂停: <Response> <Play>./ok</Play> <Pause length="10"></Pause> </Response> /好的 这是完成/g

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

这是对/voice webhook的回答(将接收Twilio呼叫的人)


欢迎光临
处理音频和提供答案可能需要很长时间,因此我在/处理结束时添加了暂停:

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

/好的
这是完成/getRecording后的答案

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

/答复
/欢迎,/ok和/answer引导到相应的音频文件

因此,我能够执行所有步骤,我可以在日志中检查/getRecording是否实际执行到最后,twiml是否再次发送回,但是/getRecording之后的/answer从未被Twilio执行(调用刚刚结束)

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

注意:出于某种原因,如果我使用/getrecording作为“操作”而不是使用“recordingStatusCallback”,它确实可以工作。。。但是我们不能确定我们正在使用的录音是真的生成的,对吗


谢谢你的帮助

这里是Twilio开发者福音传道者

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

相反,您应该使用RESTAPI,通过基于对录制文件的响应将其重定向到要执行的下一个TwiML来执行

希望录音所需的暂停时间不超过您使用的10秒,但您可能希望在
/processing
端点中添加一个循环,以便呼叫方不会挂断电话。您可以通过调用者重新回到起始位置来执行此操作:

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

/好的
/加工
然后,当您收到录音回调时,您将调用者重定向出该循环


如果有帮助,请告诉我。

您的第一句话似乎不见了something@Andy看起来语法还可以,至少对我来说可以。正如philnash在下面解释的那样,我们不能在/getRecording webhook中发送一个新的twiml,但是一旦过程完成,实际上会将调用重定向到另一个twiml。谢谢谢谢,这正是我们一直在寻找的解决方案,它是有意义的。我已将/getRecording twiml移动到另一个/sendRecording,在音频处理后会重定向该功能,并且它可以正常工作。还感谢关于循环的提示,这是特别有用的,因为这样我们也可以向用户播放不同的消息,这取决于处理所需的时间。
<Response>
    <Play>./ok</Play>
    <Pause length="10"></Pause>
    <Redirect>./processing</Redirect>
</Response>