首页 > 解决方案 > 是否可以使用 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,因为我们必须为每个元素再次从数据库中提取元素列表。

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

标签: python-3.xtwiliotwilio-apipython-3.7ivr

解决方案


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

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

您需要路由到一个 URL,该 URL 从每个接收输入<Gather>,然后询问下一个问题。

为了避免每次都从数据库中提取所有元素,您可以研究将元素保存到 HTTP 会话并将它们从那里拉回。Twilio 是一个表现良好的 HTTP 客户端,因此您可以使用 cookie 之类的东西来存储有关当前呼叫/对话的信息。


推荐阅读