是否可以使用 Twilio IVR 收集多个值?

Is it possible to gather multiple values with Twilio IVR?

我有一个视图函数需要根据从数据库中提取的数据在一次调用中收集多条信息(这是一个快速出站调用 - 用户应答并立即提示这些数据点) .我希望视图函数执行的操作如下所示:

group_id = <get group id>
params = data_element_select_params.DataElementSelectParams(group_id=group_id)
data_elements = worker.select(params) # function I wrote which returns a list of objects, in this case objects called DataElements

vr = VoiceResponse()
say_msg = 'Enter {element}, then press star.'

for element in data_elements:
    say_message = say_msg.format(element=element.name)
    <Gather input with say_message and save it>

如果不一遍又一遍地路由到同一个 URL 是否可以实现这一点?我还没有看到任何其他解决方案,我宁愿不继续重定向到相同的 URL,因为我们必须为每个元素再次从数据库中提取元素列表。

抱歉,如果有任何不清楚的地方 - 请指出,我会尽快澄清。

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

每个 TwiML 文档只能使用一个 <Gather>,所以不可以,您不能在一个 webhook 中提出多个问题和接受多个输入。

您需要路由到一个 URL,它接收每个 <Gather> 的输入,然后提出下一个问题。

为了避免每次都从数据库中提取所有元素,您可以研究将元素保存到 HTTP 会话中,然后再将它们从那里提取出来。 Twilio is a well behaved HTTP client,因此您可以使用 cookie 之类的东西来存储有关当前 call/conversation 的信息。