Twilio自动驾驶仪动作序列和超时配置

时间:2019-01-03 23:38:18

标签: twilio

测试Twilio自动驾驶仪的行为和功能时,我注意到以下@ task_creation:

1-Action-> redirect_url(从应用服务器中获取JSON)

  • 我找不到配置任何超时的方法
  • redirect_url(CallbackURL)操作被“阻止”
  • 助手在州之间
  • 不能说也不能听
  • 助手需要20秒钟以上的时间才能进入Fallback_Task
  • 同时,对话框为空白(不说,不听,不执行任何操作)

2-Action-> SAY-> then-> redirect_url(从App Server获取更多JSON)

  • 在redirect_url操作之前的SAY操作在任务具有完整图片(JSON)之前不会“讲话”,其中某些图片是通过redirect_url获取的。
  • 因此,我无法使用SAY来宣布:“请稍等,我正在用我们的系统进行查找...”,因为SAY仅在app Server响应“完成” actions_description所需的JSON之后执行/ li>
  • 同时,与上一点#1相同。封锁,不说,不听

我的问题:是否存在任何机制可以防止Dialog在应用服务器“挂起”时“挂起”?我正在考虑某种分离的体系结构,其中助手配置可以自行依赖,并且不能被应用服务器故障/滞后/抛弃。即:自动驾驶仪方面的某种超时控制。

我的测试:

测试1 创建了一个简单的任务,该任务使用redirect_url(HTTP CALLBACK URL)选项而不是ACTIONS BIN @任务创建从App Server中获取JSON。

  • 服务器端,我强制长时间睡眠(30秒),因此服务器保持套接字连接,但滞后响应JSON,从而无法定义此任务的操作
  • 同时,对话框挂起并且助手没有响应(也不监听)
  • 大约20秒后,助手将继续执行默认的后备任务

    {
    "actions": [
        {
            "redirect": "https://www.myExampleAppServer.com/assistant_endpoint/"
        }
    ]}
    

测试2 与上面相同,但在redirect_url之前添加了SAY。

  • 在从应用服务器收到响应之前,“说”不会“说”。

  • 我降低了sleep(10sec)服务器端以确认该行为,并且其工作原理与我的问题简介中所述相同。对话框挂起10秒钟,然后继续进行硬编码的SAY,接着是从应用服务器收到的操作(JSON)

    {
    "actions": [
        {
          "say": "Please Wait while I check with the central offices."
        },
        {
          "redirect": "https://www.myExampleAppServer.com/assistant_endpoint/"
        }
    ]}
    

我还使用了LISTEN(这也是“阻止”)测试了不同的组合,并且无法取消对助手的阻止。即:在挂起/等待App Server时,找不到调用者可以询问的任何结构:“有人在吗?”并触发任何新的路由。

任何想法都将不胜感激。我知道自动驾驶仪是BETA,但我认为在BETA期间我的问题仍然可以解决。

谢谢!

0 个答案:

没有答案