2017-07-29 19 views
1

当前使用Twilio TaskRouter构建电话呼叫中心来路由呼叫。任务/预约超时后将Twilio任务重定向到新的TwiML

我的目标是:

  1. 当任务保持一定时间待定(即:无工可预订),重定向到语音邮件
  2. 当任务被保留,但工人没有响应它,重定向到语音邮件

我目前的执行情况是:

  1. 同时指定任务超时和预约超时
  2. 当触发任务超时/预约超时回调时,查询Redirect Instruction预留api将其重定向到录制语音信箱的TwiML。

但问题是:

  1. 当一个任务是在pending状态,没有预约被创建,使我不能访问预约执行重定向
  2. 保留时超时,试图执行重定向将收到来自Twilio的执行说,保留不再可用于重定向

回答

2

Twilio开发人员传道这里。

这里有两个问题,就像你在最后说的那样。您要么尝试移动不存在的预留,要么重定向不可用于重定向的预留。

我认为你可以通过改用工作流程来实现你的目标。

首先,考虑事物的任务方面。你给任务一个超时。当它超时时,任务的正常行为是移动到它在工作流中匹配的下一个队列。

我建议设置一个最终队列,其中有一个永久可用的工作对象(但不是真人)。当您为该队列中的任务预留回拨指定回叫时,可以使用redirect assignment将呼叫发送到某个TwiML,该TwiML返回<Record>以接收消息。您的TwiML应用程序也可以调用REST API来接受预订。

适用于永远不会从初始队列分配给工作人员的任务。对于事物的预留超时方面,请考虑这一点。

当预约超时时,任务会再次返回原来的队列进行分配。该任务仍处于我们之前为其定义的相同原始超时之下,因此当任务本身超时时,最终会移至我们的语音邮件队列。这对于来电者具有相同的效果,因为他们不知道什么时候预约被分配,因为他们只是在等待他们所在队列中的音乐。

这是否有意义呢?

+0

嗨philnash,谢谢你的解决方案。只是一个问题:如何创建一个“永久可用的工作人员”?一旦创建预约,工作人员就变为“预留”(如果预约未被自动接受)或“忙碌”(如果预约被自动接受)。我应该如何使其恢复到可用状态,以便“他”处理新的预订?谢谢 – Marconline

+0

您可以尝试使用[多任务工作者](https://www.twilio.com/docs/api/taskrouter/multitasking),该工具一次可以接受多个预留。此外,您可以使用REST API将[工作者的状态恢复为可用状态](https://www.twilio.com/docs/api/taskrouter/workers#code-update-a-worker)。 – philnash

+0

嘿@philnash,这就是我所做的。我使用Event端点进行了检查,并且一旦创建了预留,我就将Worker状态更新为Idle。这是正确的方法吗?谢谢,Marco – Marconline