微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

只听驳船

如何解决只听驳船

所以我有一个脚本,我需要读给调用者,大约 30 分钟。

在此过程中,客户可能会打断阅读并提出问题。

需要解决调用者的问题,然后需要从中断之前继续读取。

为了跟踪进度,我存储了一个带有步骤编号的会话变量。

我说一两句剧本。 | 我用驳船听真的

然后我重定向到脚本的下一部分。

这会在说之后和重定向之前创建一个等待调用者响应的暂停。

呃…… 所以我创建了一个 twilio 函数来检查步骤并在当前步骤之上添加步骤。结果看起来像这样

    {
            "Action": [
                    { "Say":"This is a couple sentences..." },{"Remember":{"Step":1}},{ "Say":"This is a couple sentences..." },{"Remember":{"Step":2}},{"Remember":{"Step":3}},{"Remember":{"Step":4}},{"Listen":{"barge":true},{"Redirect":"task://goodbye"}
            ]
    }

这里唯一的问题是 Multiple Remembers 调用,用于识别在何处听到读取导致错误

任何想法都会很棒!!!

解决方法

这里是 Twilio 开发者布道者。

由于在 Twilio 函数的响应中同时返回所有操作,因此所有“记住”操作都有效地同时运行。因此,在您的示例中,您试图同时使用不同的值编写相同的“记住”步骤,因此出现错误。

在阅读你所做的之后,我打算推荐重定向方法,但你已经解释说这对你不起作用。

如果您可以使用常规 TwiML,而不是 Autopilot,您可以尝试使用带有嵌套 <Say> 元素的 <Gather> 来读取脚本。当 <Gather> 没有收到用户的响应时,它会继续处理文档中的下一个 TwiML 元素。因此,如果您连续设置多个 <Gather> 并设置短超时并将步骤添加到 action URL,您可以复制此行为。

例如:

<Response>
  <Gather action="/speech?step=1" timeout="1">
    <Say>First sentences</Say>
  </Gather>
  <Gather action="/speech?step=2" timeout="1">
    <Say>Next sentences</Say>
  </Gather>
  ... etc ...
</Response>

这有帮助吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。