管理与多个代理 Twilio 的呼叫

Managing calls with multiple agents Twilio

我正在使用 Twilio 进行一个项目来拨打和接听电话。所以,想象一下你想打个电话,在另一边我们有 3 个代理接电话,有三个 twilio 号码。我只想(随机)向其中一位代理显示呼入电话。

我不确定是否要实现此行为,我应该使用不同的或不同的代理之一生成不同的响应。

例如:

response = Twilio::TwiML::Response.new do |r|
  # Should be your Twilio Number or a verified Caller ID
  r.Dial :callerId => caller_id do |d|
      d.Client <custom_client_name>
  end

response = Twilio::TwiML::Response.new do |r|
  # Should be your Twilio Number or a verified Caller ID
  r.Dial :callerId => caller_id do |d|
      d.Number <custom_client_number>
  end

谢谢大家!

我看到的场景是这样的:

                         /- agent 1
client    -> pick random |- agent 2
(make call)              \- agent 3

为此我会:

  1. 独立于 Twilio 跟踪代理可用性。例如。每次座席开始通话时,您都会在后端将他标记为 in call,当通话结束时,您再次将座席标记为 available
  2. 如果客户端请求新呼叫时语音端点被命中,您查询可用的代理并随机选择一个。然后 return 必要的 TwiML 来拨打该代理。您还可以设置 会议 以获得更大的灵活性(例如,在通话期间切换座席)。
  3. 当没有代理可用时,return TwiML 使用 <say> 动词让客户端知道没有代理可用。

此处为 Twilio 开发人员布道师。

这听起来像是我们 TaskRouter API 的一个很好的用例。 TaskRouter 允许您将传入呼叫放入队列中,队列将使用工作流在代理可用时将这些呼叫分配给代理。

此博客 post 展示了如何 build a priority based queueing system using TaskRouter,但如果您只是跟进到优先级到达之前的时间点,那么您将有一个队列,其中代理会自动分配来电。

如果这有帮助,请告诉我。