【问题标题】:Is it possible to gather multiple values with Twilio IVR?是否可以使用 Twilio IVR 收集多个值?
【发布时间】:2018-11-01 05:20:34
【问题描述】:

我有一个视图函数,需要在一个呼叫中收集多条信息(这是一个快速的呼出呼叫 - 用户应答并立即提示输入这些数据点),基于从数据库中提取的数据。我希望视图函数执行以下操作:

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.x twilio twilio-api python-3.7 ivr


    【解决方案1】:

    这里是 Twilio 开发者宣传员。

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

    您需要路由到一个 URL,该 URL 接收来自每个 &lt;Gather&gt; 的输入,然后询问下一个问题。

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

    【讨论】:

    • 谢谢菲尔!我将看看将元素保存到 HTTP 会话并从那里检索它们。
    • 谢谢,菲尔。您能否就 Twilio 方面的会话管理提供一些清晰的说明?您是否认为单个通话是单个会话?如果我们有多个来自同一个电话号码的呼入电话,想要确保我们不会受到会话污染。
    • @BrianP 我相信每个单独的电话都是一个会话,因此不应该有会话污染。如果您需要确保自己在您的服务器上,您可以使用 Call Sid 作为密钥,因为每个呼叫都是唯一的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多